Note
Gli automi a stati finiti sono dei semplici modelli operativi di calcolo. Modellano il calcolo come una serie di passi discreti da una condizione (stato) alla successiva. Gli FSA hanno memoria del calcolo formata da un insieme finito di stati. Formalmente, è costituito da:
- L’insieme finito dei suoi stati
- L’alfabeto dei simboli in ingresso
- Una funzione di transizione, che mappa una coppia in uno stato di destinazione
- Stato iniziale dell’automa
- L’insieme di stati finali
È possibile usare un FSA per riconoscere le parole di un linguaggio. Se l’automa, leggendo una stringa, partendo da termina in uno stato finale, la stringa appartiene al linguaggio.
FSA Riconoscitore
Note
Possiamo formalizzare l’accettazione di un linguaggio su , da parte di un FSA come:
Dove , è una sequenza di mosse, estensione di induttivamente definita come:
Esempio
Di seguito un FSA riconoscitore per un linguaggio
Esempio
Di seguito un FSA riconoscitore del linguaggio degli identificatori del linguaggio c. Si ha che è definito su :
FSA Traduttore
Note
Un FSA traduttore da a associa un simbolo letto e uno scritto a ogni transizione.
Formalmente un FSA traduttore è una -upla , dove:
- sono come nell’FSA riconoscitore
- è l’alfabeto di uscita
- è la funzione di traduzione.
Formalizziamo, analogamente a , come successione di traduzioni di elementi, e quindi come traduzione di stringhe:
Di conseguenza l’intero calcolo della traduzione è formalizzato come:
Esempio
Di seguito un FSA traduttore che traduce da a , entrambi definiti su , con un numero di pari, aventi funzione di traduzione che dimezza gli e raddoppia gli .
Pumping lemma
Note
Il pumping lemma è la formalizzazione di un comportamento ciclico in un FSA, cioè l’esistenza di un ciclo percorribile volte. Il pumping lemma afferma che se , dove è un linguaggio riconosciuto da un FSA, con (dove è l’insieme degli stati), allora esistono e tali che con e , cioè esiste una sottostringa di che viene riconosciuta dall’automa effettuando un’iterazione su un ciclo di stati.
Dal pumping lemma consegue che , che segue dal poter effettuare zero o più iterazioni del ciclo.
Si può dire, con la condizione , se allora , cioè che se una parola ha “cicli di riconoscimento” è possibile eliminarli, ed è possibile dare in pasto le all FSA e verificare se almeno una appartiene a .
Inoltre si può dire, se , allora , cioè ha un ciclo di riconoscimento.
Limitazioni degli FSA
Un FSA non può riconoscere un linguaggio . Per dimostrarlo, sia con . Applicando il pumping lemma si ha che , con una tra le seguenti forme:
- , pompando ottengo che è assurdo.
- , pompando ottengo che è assurdo.
- , pompando ottengo che è assurdo.
Linguaggi regolari
Note
La famiglia di linguaggi riconoscibili con un FSA è detta famiglia dei linguaggi regolari o REG. Si ha che è chiusa rispetto a .
Famiglie di linguaggi
Una famiglia di linguaggi è un insieme i cui elementi sono linguaggi . è chiusa rispetto ad un operazione binaria se vale .
Intersezioni tra linguaggi regolari
Note
Dati due FSA riconoscitori:
È possibile ottenere il riconoscitore del linguaggio intersezione facendoli funzionare insieme, con la condizione che di effettuare una transizione solo se c’è in entrambi:
Formalmente, dati due FSA e , si ha che l’automa intersezione è dato da:
- Insieme degli stati
- Alfabeto
- Funzione di transizione
- Insieme degli stati finali
Inoltre si ha che:
Esempio
Dati due FSA:
Si ha nel FSA intersezione che lo stato in rosso non è raggiungibile dallo stato iniziale e quindi può essere eliminato, e che con la costruzione a punto fisso a partire da non viene neppure aggiunto:
Unione di linguaggi regolari
Note
Formalmente, dati due automi e , l’automa unione è dato da:
- Insieme degli stati
- Alfabeto
- Funzione di transizione
- Insieme degli stati finali
In alternativa è possibile applicare la legge di De Morgan:
Complemento di linguaggi regolari
Note
Si ha che in ogni FSA esiste uno stato non accettante implicito, detto stato di errore. Aggiunto quello è possibile scambiare gli stati finali e gli stati non finali .


Formalmente un FSA traduttore è una 
È possibile ottenere il riconoscitore del linguaggio intersezione facendoli funzionare insieme, con la condizione che di effettuare una transizione solo se c’è in entrambi:
Formalmente, dati due FSA
Si ha nel FSA intersezione che lo stato in rosso non è raggiungibile dallo stato iniziale e quindi può essere eliminato, e che con la costruzione a punto fisso a partire da 