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:

/NessunoDavantiDietroEntrambi
ChiusoChiusoApertoApertoAperto
ApertoChiusoApertoApertoAperto

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 Σ*):

  1. Lo Stato (corrente)
  2. 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:

  1. (riflessivita)
  2. 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