Perché dovremmo studiare tutte e tre le forme di rappresentazione degli automi finiti?


9

DFA, NFA e epsilon NFA tutti e tre ci consentono di rappresentare un linguaggio regolare particolare. Con una qualsiasi di queste rappresentazioni possiamo arrivare alla stessa espressione regolare, allora perché dobbiamo studiare tutte e tre le forme di rappresentazione degli automi finiti? Ci possono essere delle spiegazioni su ciò che NFA può fare e DFA non può, ovvero NFA potrebbe aiutarci a progettare le incertezze. Ad esempio nella progettazione di un gioco (scacchi), abbiamo molte opzioni per spostare un particolare pezzo da una posizione particolare che può essere facilmente rappresentato usando NFA. Ma a che serve epsilon NFA quando lo stesso può essere fatto usando NFA o DFA?


2
Ce ne sono più di tre. Questi sono solo quelli che si trovano in genere nei libri di testo. Le transizioni di Epsilon sono utili per dimostrare i teoremi, ma non sono sicuro di averle usate in modelli per il loro bene.
wvxvw,

3
ε

Risposte:


13

Aggiungi grammatiche regolari per un quarto. Ce ne sono altri ...

ε esempi di non determinismo NFA) (un'idea cruciale per modelli più elaborati). Per dimostrare che DFA e NFA accettano lo stesso set di lingue, sta anche esplorando un fenomeno molto importante in un contesto semplice e comprensibile.

Le espressioni regolari (e anche le grammatiche regolari) sono formalismi completamente diversi, che capita di descrivere lo stesso insieme di lingue. Ancora una volta, la prova di questo fatto esplora importanti relazioni incrociate e sono un esempio del fatto che i formalismi potrebbero apparire molto diversi, basarsi su concetti radicalmente diversi, ma descrivere le stesse lingue. Ancora una volta, in un ambiente piuttosto semplice.

Per un utilizzo "reale", puoi iniziare con un'espressione regolare e ottenere un DFA minimo per la ricerca ad alte prestazioni. I circuiti digitali sono essenzialmente DFA, la loro comprensione è fondamentale nell'ingegneria informatica. Ultimo ma non meno importante, spesso i sistemi possono essere modellati come "essere in uno stato" e "passare ad un altro" su stimoli esterni, anche se il sistema è molto lontano da un vero DFA osservandolo in questo modo potrebbe aiutare a capirlo.

Aggiunto in seguito: come notato da Raffaello, potrebbe essere più efficiente interpretare un NFA direttamente per la ricerca, perché la creazione di un DFA può essere costosa e un NFA può essere molto più piccolo.


1
"Ce ne sono altri" - dozzine ....
Raffaello

1
Potresti voler menzionare che NFA può essere utile (se DFA è l'unica alternativa) perché può essere molto più piccolo, ma usarne uno per verificare se una parola è accettata non è troppo costoso.
Raffaello

5

ci sono molte ragioni per studiare le diverse forme / corrispondenze di DFA vs NFA. qui ci sono alcuni punti salienti selezionati alcuni dalla teoria della complessità avanzata.

  • Gli NFA sono un modello interessante per il "calcolo parallelo". si può considerare l'avanzamento degli stati attraverso l'NFA come una versione parallela del calcolo DFA. quindi i calcoli DFA vs NFA riflettono parte della distinzione del calcolo sequenziale vs parallelo. confrontando entrambi i contesti aiuta anche a studiare la complessità algoritmica intrinseca dei problemi.

  • Gli NFA sono spesso utilizzati nei sistemi di corrispondenza delle espressioni regolari (abbastanza diffusi tra le lingue, specialmente in quelli moderni generati nell'era unix), che in genere consentono la descrizione di espressioni regolari che vengono convertite in NFA e quindi eventualmente convertite in DFA per facilitare una ricerca più efficiente.

  • ci sono alcuni problemi aperti che rimangono nelle aree e sono spesso studiati sulla base della corrispondenza DFA / NFA. vedi ad es. ci sono problemi aperti sui DFA (cstheory stackexchange). in qualche modo sorprendentemente, alcuni di essi sono legati ad aree molto profonde di CS, incluso il problema P vs NP, ovvero la non vacuità delle intersezioni dei DFA . anche un'altra area aperta è ad esempio il calcolo dell'NFA minimo per un DFA .

  • anche per alcune intuizioni correlate vedi questa domanda semifama / votata su cstheory.se : Qual è l'illuminazione che dovrei raggiungere dopo aver studiato gli automi finiti?

  • ci sono applicazioni molto diverse tra DFA e NFA e la corrispondenza tra i due è spesso sfruttata in esse. la corrispondenza del modello di stringa è menzionata sopra, ma le costruzioni DFA / NFA sono spesso utilizzate nel riconoscimento vocale (automatizzato). vedi ad esempio questo articolo altamente citato: trasduttori di stato finiti ponderati nel riconoscimento vocale / Mohri, Pereira, Riley


2

I DFA hanno un'implementazione più semplice rispetto a NFA poiché il loro stato successivo è determinato da una funzione e NFA aiuta un utente a esprimere facilmente ciò che desidera come output, poiché NFA può scegliere tra più percorsi. e epsilon-NFA è un'estensione di NFA in cui è possibile eseguire le transizioni senza prendere alcun simbolo di input.


2
riassumendo: gli NFA trasmettono l'idea di non determinismo, che è un'idea molto profonda (i suoi "inventori", Michael O. Rabin e Dana S. Scott, hanno vinto il premio Turing per queste idee)
Ran G.

1

C'è una brutta cosa sul numero di stati dei DFA. A volte esplode .

In breve, se il numero di stati è semplicemente troppo alto (ancora finito ma viviamo in un mondo fisico), allora devi aumentare il livello di astrazione per far fronte alla complessità in termini di rallentamento. Gli altri modelli, come NFA e AFA, devono fornire modi più concisi per rappresentare le lingue regolari.

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.