• Non ci sono risultati.

1Definizioneformale Automiastatifinitinondeterministici AzzoliniRiccardo2020-10-14

N/A
N/A
Protected

Academic year: 2021

Condividi "1Definizioneformale Automiastatifinitinondeterministici AzzoliniRiccardo2020-10-14"

Copied!
4
0
0

Testo completo

(1)

Azzolini Riccardo 2020-10-14

Automi a stati finiti non deterministici

1 Definizione formale

Un automa a stati finiti non deterministico (NFA, Nondeterministic Finite Auto- maton) è una quintupla A =⟨Q, Σ, δ, q0, F⟩ in cui:

• Q è l’insieme finito e non vuoto degli stati;

• Σ è l’alfabeto di input;

• δ : Q× Σ → 2Q è la funzione di transizione;

• q0 ∈ Q è lo stato iniziale;

• F ⊆ Q è l’insieme degli stati finali.

Si osserva che questi elementi sono uguali a quelli che caratterizzano un DFA: l’unica differenza è la funzione di transizione, che associa a ogni coppia stato-simbolo non un singolo stato, bensì un sottoinsieme di stati.

Notazione: Si scrive p−→ r per indicare che r ∈ δ(p, a) (per un DFA, la stessa notazionea indicava che δ(p, a) = r, ma per un NFA δ(p, a) è un insieme S ⊆ Q, non un singolo stato r).

1.1 Esempio

Riprendendo il diagramma di transizione usato per introdurre in modo informale gli NFA,

q0

start q1 q2 q3

0, 1

1 0 0, 1

formalmente esso rappresenta un NFA A =⟨Q, Σ, δ, q0, F⟩ con:

• Q ={q0, q1, q2, q3};

• Σ ={0, 1};

1

(2)

• funzione di transizione δ :{q0, q1, q2, q3} × {0, 1} → 2{q0,q1,q2,q3};

• stato iniziale q0;

• F ={q3};

La rappresentazione tabellare di questo automa è:

δ 0 1

→q0 {q0} {q0, q1} q1 {q2}q2 {q3} {q3}

∗q3 ∅ ∅

In questa tabella, l’insieme riportato per una certa combinazione di stato q e simbolo a

— cioè il valore di δ(q, a) — è l’insieme degli stati in cui l’automa può arrivare a partire dallo stato q seguendo transizioni etichettate con il simbolo a.

2 Computazioni di un NFA su una stringa

Dato un NFA A = ⟨Q, Σ, δ, q0, F⟩, in cui δ : Q × Σ → 2Q, si definisce la funzione di transizione estesa ˆδ : Q× Σ → 2Q di A, per induzione sulla lunghezza della stringa w∈ Σ (in modo simile a quanto fatto per i DFA):

• Base: quando |w| = 0, cioè w = ϵ, si pone ˆδ(q, ϵ) = {q} (l’automa non cambia stato).

• Passo induttivo: se|w| > 0, allora la stringa può essere scomposta in w = xa, con x∈ Σ e a∈ Σ, e si definisce

ˆδ(q, xa) =

p∈ˆδ(q,x)

δ(p, a)

(si considerano tutti gli stati in cui l’automa arriva leggendo il prefisso x, rac- cogliendo per ciascuno di essi gli stati in cui si arriva leggendo poi il simbolo a).

In pratica, la funzione di transizione estesa ˆδ(q, w) descrive l’insieme degli stati in cui si trova l’automa dopo essere partito da uno stato q e aver letto l’intera stringa w.

2

(3)

3 Stringhe e linguaggi accettati da un NFA

Sia A =⟨Q, Σ, δ, q0, F⟩ un NFA.

• A accetta una stringa w se e solo se ˆδ(q0, w)∩ F ̸= ∅ (cioè se almeno uno degli stati raggiunti da q0 seguendo la stringa w è uno stato finale).

• Il linguaggio riconoscuito da A è

L(A) ={w ∈ Σ | A accetta w} = {w ∈ Σ | ˆδ(q0, w)∩ F ̸= ∅}

4 Esempio di computazione

Considerando ancora l’automa

q0

start q1 q2 q3

0, 1

1 0 0, 1

si è già visto che sulla stringa 11101 si sviluppa il seguente albero di computazione:

q0

q1 (bloccato) q0

q1 (bloccato) q0

q1 q2 q3

q0 q0

q1 q0

1

1 1

1

1 1

1

0 1

1 0

1 1

Per studiare formalmente le computazioni sulla stessa stringa, bisogna calcolare il valore di ˆδ(q0, 11101). Come nel caso deterministico, piuttosto che seguire alla lettera la defini- zione induttiva di ˆδ, conviene operare sui prefissi della stringa, nell’ordine dal più corto

3

(4)

(ϵ) alla stringa intera:

δ(qˆ 0, ϵ) ={q0} ˆδ(q0, 1) =

p∈ˆδ(q0,ϵ)

δ(p, 1) = δ(q0, 1) ={q0, q1}

δ(qˆ 0, 11) =

p∈ˆδ(q0,1)

δ(p, 1) = δ(q0, 1)∪ δ(q1, 1) ={q0, q1} ∪ ∅ = {q0, q1}

δ(qˆ 0, 111) =

p∈ˆδ(q0,11)

δ(p, 1) = δ(q0, 1)∪ δ(q1, 1) ={q0, q1}

δ(qˆ 0, 1110) =

p∈ˆδ(q0,111)

δ(p, 0) = δ(q0, 0)∪ δ(q1, 0) ={q0, q2}

δ(qˆ 0, 11101) = δ(q0, 1)∪ δ(q2, 1) ={q0, q1, q3}

Si osserva che i passaggi di calcolo della funzione di transizione estesa corrispondono ai livelli dell’albero di computazione (nella figura sopra, ciascun livello è indicato con un riquadro tratteggiato).

Siccome ˆδ(q0, 11101)∩ F = {q0, q1, q3} ∩ {q3} = {q3} ̸= ∅, la stringa 11101 è accetta- ta dall’automa (come si era già concluso osservando che nell’albero di computazione è presente almeno un percorso che porta a uno stato finale).

4

Riferimenti

Documenti correlati

Per scaricare questa tensione senza danneggiare altri componenti del circuito (ad esempio il transistor che comanda la bobina), bisogna collegare un diodo in “antiparallelo”

• quando il pulsante è aperto (non premuto), la resistenza mette la porta di I/O alla tensione di alimentazione, quindi si ha uno stato logico

La causa di questo comportamento strano non è un errore nel software, bensì un comportamento fisico del pulsante, chiamato bouncing: quando esso viene premuto (e quando

Se questa è troppo bassa, il segnale digitale ottenuto dalla conversione può diventare un alias del segnale originale, cioè un segnale di fatto completamente diverso, che assume

RDF Schema (RDFS) fissa il significato di alcune risorse (“classe”, ecc.) e proprie- tà/predicati (“appartenenza” di un’istanza a una classe, “inclusione” di una classe

Problema: Qual è la probabilità di fare un terno al lotto giocando i numeri 9, 13 e 87 su una singola ruota (dalla quale vengono estratte 5 palline diverse).. Per poter risolvere

• N > 1 vuol dire che i canali disponibili devono essere suddivisi tra le N celle del cluster, quindi ogni cella ha meno canali, e può allora servire meno utenti

Trattandosi di una rete a commutazione di pacchetto, le risorse assegnate al sistema GPRS vengono condivise da più utenti (e non riservate per instaurare canali di comuni- cazione