Intro
Definizione: Automa a stati finiti (DFA)
Il piu semplice modello di computazione. Scorre l’input bit a bit in modo sequenziale “scorrendolo”
Esempio di un problema
Si vuole modellare una porta automatica con sensore che si apre quando qualcuno si trova nelle vicinanze:
/ | Nessuno | Davanti | Dietro | Entrambi |
---|---|---|---|---|
Chiuso | Chiuso | Aperto | Aperto | Aperto |
Aperto | Chiuso | Aperto | Aperto | Aperto |
In questo caso un automa che rappresenta il seguente problema puo essere:
Automi
Un automa si presenta cosi:
Dove: q1,q2,q3: sono STATI.
q2: e uno STATO DI ACCETTAZIONE.
→: si chiamano TRANSAZIONI.
In questo caso questo automa accetta ad esempio la stringa 11101
Definizione: DFA
Un DFA (Deterministic Finite Automa) e una 5-tupla, (Q, Σ, δ, q0 , F ) di cui:
- Q: Insieme finito degli stati .
- Σ: L’alfabeto che compone le stringhe in input.
- δ: Funzione Q x Σ → Q.
- q0: Stato iniziale, q0 ∈ Q.
- F: F ⊆ Q Stati finali (accettazione).
Funzione di Transizione e Configurazione
Se M e un DFA l’insieme delle stringhe riconosciute da M si denota L(M) ovvero il linguaggio riconosciuto da M (Puo anche essere che L = Ø)
Per definire formalmente un linguaggio di un automa e necessario introdurre la funzione di transizione estesa.
Un altro concetto utile e la Configurazione (coppia in Q x Σ*):
- Lo Stato (corrente)
- Cosa resta da leggere Dato x ∈ Σ*, la configurazione iniziale e (q0,x)
Passo Computazionale: porta da una configurazione ad un’altra rispettando le δ. Relazione Binaria: dove p,q ∈ Q, a ∈ Σ, x ∈ Σ*.
Posso estendere considerando la chiusura riflessiva e transitiva:
- (riflessivita)
- dove q,p,r ∈ Q; a,b ∈ Σ; y ∈ Σ*
DSF (Linguaggio Accettato)
Diciamo che x ∈ Σ* e accettato da M(Q, Σ, δ, q0 , F ) se
Ricordiamo che ε e la stringa vuota. Da cui:
Esempio:
Finally…
Ora possiamo dare la definizione formale dei Linguaggi Regolari:
Definizione: Linguaggi Regolari
Vogliamo capire come progettare DFA per un dato linguaggio, facciamo un esempio:
Dobbiamo eseguire una prova di correttezza:
DFA accetta . Osserviamo che:
Per induzione dimostriamo che DFA accetta x:
Base: Induttivo: Sia supponiamo che:
Prendo e lo penso con Da cui:
Due casi:
Abbiamo gia dimostrato che se entro in q1,q2 ci rimango . Con quest'ultimo passaggio abbiamo dimostrato che avendo una stringa u (che rappresenta qualsiasi combinazione binaria di lunghezza n) e un ultimo carattere a, in ogni caso, entriamo in q1,q2
Sui linguaggi possiamo effettuare Operazioni sui Linguaggi