Transizioni che si svolgono in NFA

3

Durante gli studi su NFA e DFA in Compiler Design non sono riuscito a capire come hanno convertito un'espressione regolare in NFA come mostrato in NFA . Vorrei sapere perché esiste una transizione epsilon tra (8 -> 10) e (9 -> 10) .

Perché penso che anche se non scrivessimo gli stati 9 e 10, la NFA non sarebbe toccata. Qualcuno può dirmi se è giusto fare così?

    
posta justin 20.11.2014 - 06:34
fonte

1 risposta

5

Senza gli stati 9 e 10, abbiamo bisogno di un nuovo stato di inizio e accettazione. Supponiamo che questi siano stati 7 per inizio (perché c'è una transizione ε da 9 a 7) e 8 per accettare (perché c'è un ε da 8 a 10).

Tuttavia, questo non corrisponde più alla stringa vuota.

Il diagramma mostrato è l'espressione regolare /^(ab|c)*$/ . Senza gli stati 9 o 10 e la transizione, l'espressione regolare che rappresenta questo NFA sarebbe /^(ab|c)+$/ che è diverso.

    
risposta data 20.11.2014 - 06:41
fonte

Leggi altre domande sui tag