Automa a stati finiti non deterministico: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Xqbot (discussione | contributi)
m →‎Definizione formale: corretto errore di battitura
Riga 23: Riga 23:
* un insieme di stati ''A'' di accettazione (''A'' ⊆ ''S'')
* un insieme di stati ''A'' di accettazione (''A'' ⊆ ''S'')


Dato l'automa a stati finiti non deterministico '''M''' tale che '''M''' = (''S'', &Sigma;, ''T'', ''s<sub>0</sub>'', ''A''), e ''X'' è una [[Stringa (formale)|stringa]] dell'alfabeto &Sigma;. '''M''' accetta le stringhe ''X'' se esiste un rappresentazione di ''X'' nella forma ''x<sub>1</sub>x<sub>2</sub> ... x<sub>n</sub>'', ''x<sub>i</sub>'' &isin; &Sigma;),
Dato l'automa a stati finiti non deterministico '''M''' tale che '''M''' = (''S'', &Sigma;, ''T'', ''s<sub>0</sub>'', ''A''), e ''X'' è una [[Stringa (formale)|stringa]] dell'alfabeto &Sigma;. '''M''' accetta le stringhe ''X'' se esiste un rappresentazione di ''X'' nella forma ''x<sub>1</sub>x<sub>2</sub> ... x<sub>n</sub>'' (''x<sub>i</sub>'' &isin; &Sigma;),
e una sequenza di stati ''r<sub>0</sub>,r<sub>1</sub>, ..., r<sub>n</sub>'', ''r<sub>i</sub>'' &isin; ''S'', concordate a queste definizioni:
e una sequenza di stati ''r<sub>0</sub>,r<sub>1</sub>, ..., r<sub>n</sub>'', ''r<sub>i</sub>'' &isin; ''S'', concordate a queste definizioni:
# ''r<sub>0</sub>'' = ''s<sub>0</sub>''
# ''r<sub>0</sub>'' = ''s<sub>0</sub>''

Versione delle 16:45, 5 apr 2009

Nella teoria del calcolo, un automa a stati finiti non deterministico (NDFA in inglese) è una macchina a stati finiti dove per ogni coppia stato-simbolo in input ci possono essere più stati di destinazione.

Definizione formale

Un automa a stati finiti non deterministico è una quintupla, (S, Σ, T, s0, A), formata da:

  • un insieme finito di stati (S)
  • un insieme finito dei possibili simboli in input (Σ), chiamato alfabeto
  • una relazione di transizione (T : S × Σ) → P(S)).
  • uno stato iniziale (s0S)
  • un insieme di stati A di accettazione (AS)

Dato l'automa a stati finiti non deterministico M tale che M = (S, Σ, T, s0, A), e X è una stringa dell'alfabeto Σ. M accetta le stringhe X se esiste un rappresentazione di X nella forma x1x2 ... xn (xi ∈ Σ), e una sequenza di stati r0,r1, ..., rn, riS, concordate a queste definizioni:

  1. r0 = s0
  2. riT(ri-1, xi ), for i = 1, ..., n
  3. rnA.

La macchina parte dallo stato iniziale e legge un stringa. Attraverso la relazione di transizione T determina il prossimo/i stato/i di destinazione usando lo stato corrente e il simbolo appena letto. Se finisce in uno stato di accettazione la macchina accetta la stringa, altrimenti rifiuta la stringa. L'insieme di tutte le stringhe accettate dall'automa a stati finiti non deterministico è il linguaggio accettato dall'automa.

Il linguaggio accettato da questo tipo di automa è un linguaggio regolare.

Equivalenza tra automa non deterministico e deterministico

Per ogni automa a stati finiti non deterministico può essere trovato un automa a stati finiti deterministico che accetta lo stesso linguaggio. Quindi è possibile convertire un automa a stati finiti non deterministico in uno deterministico per realizzare una macchina più semplice; quest'operazione può essere effettuata utilizzando la costruzione dei sottoinsiemi.

Esempio

Il seguente esempio mostra un automa a stati finiti non deterministico M, con alfabeto binario, il quale determina se l'input contiene un numero pari di zero o un numero pari di uno.

M = (S, Σ, T, s0, A) dove

  • Σ = {0, 1},
  • S = {S0, S1, S2, S3, S4},
  • s0 = S0,
  • A = {S1, S3}, e
  • La funzione di transizione T può essere definita da questa tabella di transizione di stato:
0
1
ε
S0
{}
{}
{S1, S3}
S1
{S2}
{S1}
{}
S2
{S1}
{S2}
{}
S3
{S3}
{S4}
{}
S4
{S4}
{S3}
{}

Il diagramma di stato per M è:

M può essere visto come l'unione di due automi a stati finiti deterministico: uno con gli stati{S2, S1} e l'altro con gli stati {S3, S4}.

Il linguaggio di M può essere descritto da un linguaggio regolare attraverso la seguente espressione regolare:

Automa a stati finiti non deterministico con -transizioni

È possibile definire una variante degli automi a stati finiti non deterministici che permetta transizioni di stato spontanee, ossia transizioni su stringa vuota . Per tali automi è sufficiente ridefinire la funzione di transizione come:

.

Funzione di chiusura su

La funzione di chiusura su si definisce induttivamente.
Base: .
Ipotesi induttiva: .
Passo induttivo: .

Funzione di transizione estesa

La funzione di transizione estesa va ridefinita in termini di come segue:
Base: .
Ipotesi induttiva: .
Passo induttivo: .

Voci correlate

Teoria degli automi: linguaggi formali e grammatiche formali
Gerarchia di Chomsky Grammatica formale Linguaggio Automa minimo
Tipo-0 (illimitato) Ricorsivamente enumerabile Macchina di Turing
(illimitato) Ricorsivo Decider
Tipo-1 Dipendente dal contesto Dipendente dal contesto Automa lineare
Tipo-2 Libera dal contesto Libero dal contesto Automa a pila ND
Tipo-3 Regolare Regolare A stati finiti
Ciascuna categoria di linguaggio o grammatica è un sottoinsieme proprio della categoria immediatamente sovrastante.