In che modo un NFA utilizza le transizioni epsilon?


12

Nella foto qui sotto, sto cercando di capire cosa sta accettando esattamente questo NFA.

inserisci qui la descrizione dell'immagine

Ciò che mi confonde è il salto a q 0 .ϵq0

  • Se viene inserito uno , il sistema passa a q 0 e q 1 (lo stato di accettazione)?0q0 q1

  • Se viene inserito un , il sistema passa a q 1 e q 2 ?1q1q2

  • Il sistema passa solo a (accetta lo stato), se non viene fornito alcun input (stringa vuota)?q1


2
Torna alle definizioni: un NFA accetta una parola se accetta qualsiasi calcolo su di essa. Gli NFA non sono, di per sé, "algoritmi" nel senso in cui lo sono i DFA.
Raffaello

Risposte:


10

Ogni volta che ti trovi in ​​uno stato che ha una transizione , significa che sei automaticamente in ENTRAMBI gli stati, per semplificarti:ϵ

Se la stringa è tuoi automi terminano sia in q 0 che q 1ϵq0q1

Se la tua stringa è '0' sarà di nuovo tra e q 1q0q1

Se la tua stringa è '1', sarà solo in , perché se guardi dal punto di q 0 , hai una transizione '1' in q 2 , ma devi anche guardare nel caso in cui sei in q 1 (se eri in q 0 anche in q 1 ) non c'è transizione '1', quindi questo percorso alternativo "muore".q2q0q2q1q0q1

Solo osservando questi casi è facile vedere che i tuoi automi accettano , 0 e passando da q 0 a q 1 , l'unico modo per raggiungere q 2 è 0 11 1 , quindi, questo ripristina i tuoi automi a ϵ , 0 , 0 11 1ϵ0q0q1q20111ϵ00111

Spero che questo ti abbia aiutato, se hai ulteriori dubbi, basta chiedere!


7
"significa che sei automaticamente in ENTRAMBI gli stati" - Non penso che sia un'intuizione utile, cioè rappresenta il non determinismo in modo sbagliato.
Raffaello

Perché lo rappresenta in modo sbagliato? Bene, con la definizione di delta sul non determinismo, ottieni un insieme di stati anziché solo 1 correttamente? Questo può significare solo che sei in entrambi gli stati.
H_DANILO,

Promuove l'idea che le macchine non deterministiche "provano tutte le soluzioni in parallelo". Non è quello che succede, algoritmicamente parlando. Il non determinismo è un formalismo descrittivo, non una tecnica algoritmica.
Raffaello

Ho cercato di metterlo in modo comprensibile poiché sta lottando per comprendere i principi del non determinismo in modo teorico
H_DANILO

@Raphael Quale sarebbe un'intuizione più utile, secondo te?
Andrey Portnoy,

6

q0q0q1q1

q00q0q10q01q21q1q11

0+011101


ϵϵ


-1

Ho provato a costruire DFA per questo NFA

Q

σ(Q×(ϵ))P(Q)

q0=q0

FQ,F={q0}

M

alfabeto - lo stesso

Q=P(Q)

RP(Q)

E(R)ϵrR

σ(R,a)=rRE(σ(r,a))

q0=E({q0})

F=P(Q)÷F

Alcuni calcolano su questo FSM

1. ϵq0=E({q0})={q0,q1}q1ϵ

2. 0σ({q0,q1},0)=E(σ(q0,0))E(σ(q1,0))={q0,q1}{}={q0,q1}0

{ϵ,0}L(M)

Grazie a David Richerby


Grazie per ringraziarmi ma non vedo davvero come questo risponda alla domanda. Non hai stabilito quale lingua accetta la macchina e non hai affrontato nessuna delle tre domande.
David Richerby,

ϵ{q0,q1}00{q0,q1}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.