[Introduzione alla teoria della computazione] Esercizio 1.10 #61
FeddyLix17
started this conversation in
Esercizi
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Usare la costruzione nella prova del Teorema 1.49 per dare i diagrammi di stato degli NFA che riconoscono lo star dei linguaggi descritti in
Teorema 1.49
La classe dei linguaggi regolari è chiusa rispetto all'operazione star.
IDEA. Abbiamo un linguaggio regolare A1, e vogliamo provare che anche A*1 è regolare.
Prendiamo un NFA N1 per A1 e lo modifichiamo per riconoscere A*1, come mostrato nella figura seguente.
L'NFA N risultante accetterà il suo input quando esso può essere diviso in varie parti ed N1 accetta ogni parte.
Possiamo costruire N come N1 con ε-archi supplementari che dagli stati accettanti ritornano allo stato iniziale.
In questo modo, quando l'elaborazione giunge alla fine di una parte che N1 accetta, la macchina N ha la scelta di tornare indietro allo stato iniziale per provare a leggere un'altra parte che N1 accetta.
Inoltre, dobbiamo modificare N in modo che accetti ε, che è sempre un elemento di A*1.
Un'idea (leggermente cattiva) è semplicemente aggiungere lo stato iniziale all'insieme degli stati accettanti.
Questa strategia certamente aggiunge ε al linguaggio riconosciuto, ma può anche aggiungere altre stringhe non volute.
L'esercizio 1.15 chiede un esempio che mostri l'insuccesso di questa idea.
Il modo per correggerla è aggiungere un nuovo stato iniziale, che è anche uno stato accettante, e ha un ε-arco entrante nel vecchio stato iniziale.
Questa soluzione ha l'effetto desiderato di aggiungere ε al linguaggio senza aggiungere qualcos'altro.
DIMOSTRAZIONE
Sia N1 = (Q1, Σ, δ1, q1, F1) che riconosce A1. Costruiamo N = (Q, Σ, δ, q0, F) per riconoscere A*1.
Q = { q0 } ∪ Q1. Gli stati di N sono gli stati di N1 più un nuovo stato iniziale.
Lo stato q0 è il nuovo stato iniziale.
F = { q0 } ∪ F1. Gli stati accettanti sono i vecchi stati accettanti più il nuovo stato iniziale.
Definiamo δ in modo che per ogni q ∈ Q e ogni a ∈ Σε,
Beta Was this translation helpful? Give feedback.
All reactions