Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo DMI, Fondamenti di informatica
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Fondamenti di Informatica

Automi a stati finiti

Lezione 21 di Fondamenti di informatica

Docente: Giuseppe Scollo

Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 3

Indice

  1. Automi a stati finiti
  2. sistemi di transizioni di stato
  3. macchine a stati finiti
  4. esempio: sommatore binario
  5. riconoscitori a stati finiti
  6. esempi e precisazioni
  7. riconoscitori non deterministici
  8. riconoscitore deterministico equivalente
  9. complessità del DFA equivalente
  10. un'applicazione: ricerca testuale
  11. automi con ε-transizioni
  12. eliminazione delle ε-transizioni
  13. temi per ulteriori approfondimenti

sistemi di transizioni di stato

un sistema di transizioni di stato è una struttura relazionale dotata di una costante e di una relazione binaria

è spesso utile in pratica distinguere fra diversi tipi di transizioni di stato,

un sistema di transizioni etichettate (ingl. labelled transition system (LTS)) generalizza il concetto ammettendo una famiglia di relazioni di transizioni, dove i simboli delle relazioni costituiscono l'insieme delle etichette del sistema

un LTS è deterministico se le sue relazioni di transizione sono funzioni, altrimenti è non deterministico

quando l'insieme degli stati è finito, il sistema è detto a stati finiti

macchine a stati finiti

una macchina a stati finiti (ingl. finite state machine (FSM)) è un LTS a stati finiti con un insieme finito di etichette, che ne designano le interazioni con l'ambiente

è spesso utile, ad es. per la modellazione di circuiti sequenziali, distinguere le interazioni di input da quelle di output di una FSM

la distinzione fra input e output nelle interazioni permette l'interconnessione di FSM, ed eventualmente la sincronizzazione delle rispettive transizioni di stato determinate da una interazione di I/O tra FSM interconnesse

quando le code sono di capacità limitata, il modello asincrono può essere ridotto a quello sincrono rappresentando le code stesse come FSM

esempio: sommatore binario

il comportamento di un circuito sommatore può essere facilmente modellato da una FSM con output

possiamo tener conto del riporto da ciascuna posizione alla successiva dotando la macchina di due stati, corrispondenti ai due valori del riporto

macchina di Mealy di un circuito sommatore

riconoscitori a stati finiti

come accennato nella lezione precedente, l'impiego di una macchina a stati finiti quale riconoscitore di un linguaggio non richiede interazioni di output, bensì la qualifica di un sottoinsieme F degli stati quali stati finali o accettanti

formalmente, un FSA è una quintupla <QΣ,δq0, F>, dove Σ è l'alfabeto di input e gli altri simboli hanno il significato già detto

è conveniente pensare a un NFA come in grado di transire simultaneamente a tutti gli stati permessi dalla dinamica, per un dato input e in un dato insieme di stati in cui si trovi

esempi e precisazioni

un FSA è un riconoscitore privo di memoria, dunque il solo modo di tener traccia di eventi accaduti, significativi per il riconoscimento, sta nel definire stati distinti a tal fine

il fatto che uno stato sia finale non implica assenza di transizioni uscenti da esso

per definire con precisione il linguaggio accettato da un DFA, estendiamo la sua funzione di transizione sì da considerare stringhe sul suo alfabeto quale input:

con la notazione introdotta, il linguaggio LA riconosciuto dall'automa A è definito da LA = {w | δ*(q0,w)  F }

riconoscitori non deterministici

la sola differenza di definizione formale tra DFA e NFA sta nel tipo della funzione di transizione, che per un NFA assegna a uno stato q e ad un'etichetta a l'insieme δ(q, a) degli stati ai quali l'automa può transire con l'input a

coerentemente con tale modifica, e con la condizione di accettazione di stringhe da un NFA, il linguaggio LA riconosciuto dall'automa non deterministico A è definito da LA = {w | δ*(q0,w F   }

un riconoscitore non deterministico

riconoscitore deterministico equivalente

una costruzione canonica di un DFA che riconosce lo stesso linguaggio di un dato NFA è fatta così (il pedice D o N, nella designazione di componenti di un automa, rispettivamente indica l'automa da costruire o quello dato):

in pratica, spesso molti degli insiemi in (QN) sono stati non raggiungibili dallo stato iniziale nel suo DFA equivalente canonico, e possono pertanto essere eliminati

N.B. l'insieme vuoto di stati del NFA è uno stato del DFA equivalente canonico, ed è raggiungibile dallo stato iniziale sse per qualche stringa di input nessuno stato è raggiungibile dallo stato iniziale nel NFA con quell'input

complessità del DFA equivalente

nel caso peggiore, il minimo numero di stati necessari a costruire un DFA equivalente a un NFA dato è esponenzialmente maggiore del numero di stati del NFA, come accade nel seguente caso

un riconoscitore non deterministico con n+1 stati

per fortuna, il caso peggiore non sempre si verifica...

un'applicazione: ricerca testuale

un problema frequente nella pratica è la ricerca di una qualsiasi stringa da un dato insieme, diciamo delle parole indicizzate, in un testo

un approccio alternativo, frequente in alcune applicazioni, richiede la costruzione di un indice invertito delle occorrenze delle stringhe ricercabili nel testo

un NFA che accetta il linguaggio suddetto è quello che ha la seguente "struttura a pettine":

teorema: esiste un DFA equivalente al NFA dato con un numero non superiore di stati

automi con ε-transizioni

una estensione degli NFA, che non ne estende la classe dei linguaggi da essi riconoscibili, permette transizioni prive di etichetta dall'alfabeto di input

come vedremo presto, una delle ragioni di interesse a questa estensione degli NFA sta nel fatto che rende agevole la dimostrazione di equivalenza di FSA ed espressioni regolari

un ε-NFA è definito come un NFA, ma con una funzione di transizione su Q X (Σ{ε})

la funzione di transizione estesa alle stringhe in input è così definita per un ε-NFA:

il linguaggio riconosciuto da un ε-NFA è definito come per un NFA, ma con questa δ*

eliminazione delle ε-transizioni

la costruzione canonica del DFA equivalente a un ε-NFA è analoga a quella per un NFA, ma con la differenza che gli stati raggiungibili dallo stato iniziale di questo DFA sono ε-chiusi

teorema: un linguaggio è accettato da un ε-NFA se e solo se è accettato da un DFA

temi per ulteriori approfondimenti

  1. Equivalenze di automi
    l'equivalenza di automi quali riconoscitori di linguaggi è appropriata alla teoria dei linguaggi formali, mentre non lo è per altre teorie, in cui gli automi sono modelli matematici di processi interagenti e comunicanti. In queste teorie, ad es. il Calculus of Communicating Systems (CCS) di Milner, o i Communicating Sequential Processes (CSP) di Hoare, generalmente si adottano equivalenze più restrittive, che richiedono l'indistinguibilità del comportamento osservabile di automi equivalenti. Diverse equivalenze sono state studiate in tal senso, da quelle di bisimulazione ad altre equivalenze, dette di testing, meno restrittive delle bisimulazioni (che in un certo senso "discriminano troppo"), ma più di quella della teoria dei linguaggi formali. Una ricognizione sulle diverse semantiche degli automi esula dai limiti dell'insegnamento, ma è un tema meritevole di approfondimento.