calcolare il minimo NFA per un DFA


17

Molti anni fa ho sentito che calcolare il minimo NFA (automa finito non deterministico) da un DFA (deterministico) era una domanda aperta, al contrario della direzione viceversa che è nota da decenni ed è ben studiata con un efficiente algoritmo. Qualcuno ha escogitato un algoritmo?O(nlgn)

Una rapida ricerca mi ha dato questo documento che dimostra che è sicuramente un problema difficile. Apparentemente, non viene fornito alcun algoritmo.

[1] I problemi minimi di NFA sono difficili / Tao Jiang e B. Ravikumar

Mi è stato ricordato questo problema dalla seguente domanda sul sito CS.SE per la quale un algoritmo di minimizzazione DFA-> NFA sarebbe strettamente correlato. Questa seguente domanda mi sembra essere a livello di ricerca. Ho suggerito di migrarlo su TCS e ho scritto una risposta suggerendo un attacco statistico / empirico.

[2] Quali sono le condizioni affinché un NFA per il suo equivalente DFA abbia dimensioni massime?


4
Il documento che citi mostra completezza di PSPACE. In particolare, il problema è in PSPACE, che suggerisce immediatamente un algoritmo. Che tipo di algoritmi stai cercando? Pratiche e / o euristiche? Limiti più noti all'esponente del tempo di esecuzione? Qualcos'altro?
Joshua Grochow,

8
Non è così insolito, in realtà. Prima che il problema fosse noto come completo per PSPACE, tutti i tentativi di sviluppare algoritmi efficienti fallivano, quindi poco fu pubblicato. Dopo che il problema era noto per essere completo con PSPACE, nessuno ha cercato di sviluppare algoritmi efficienti, perché sapeva che avrebbero fallito, quindi è stato pubblicato ancora meno.
Jeffε,

4
(1) Cosa significa "viceversa nota da decenni e ben studiata con un efficiente algoritmo O (n lg n)"? Il DFA minimo per un NFA con n stati può avere dimensioni esponenziali in n, quindi richiederebbe una codifica di output non banale. (2) Non esiste un "minimo" NFA per un determinato linguaggio normale. Confronta questo con l'esistenza del DFA minimo.
Tsuyoshi Ito,

1
JEFFE hai ragione, ma sono sicuro che ci sono molti problemi completi di Pspace che hanno ancora algoritmi sofisticati che sfruttano la struttura del problema oltre a elencare tutte le possibili soluzioni, vero? ammetto, non riesco a pensare a nessun altro nella mia testa. forse puoi? suppongo che sarebbe un'altra domanda interessante da porre qui.
vzn,

2
@vzn: ci sono due NFA non isomorfi a 2 stati per la linguaun'+
mikero

Risposte:


25

Questo è davvero un problema testardo e ben studiato. Per quanto riguarda i risultati positivi, un algoritmo esatto di Kameda e Weiner, un approccio euristico di Polák e un approccio recente che utilizza solutori SAT di Geldenhuys et al. viene in mente. Ma sembrano esserci risultati molto più negativi che escludono altri possibili approcci (ad esempio algoritmi di approssimazione, casi speciali, modelli meno potenti di NFA, ...) Vedi sotto per alcuni riferimenti.

T. Kameda e P. Weiner. Sulla minimizzazione dello stato di automi finiti non deterministici. Transazioni IEEE su computer, C-19 (7): 617–627, 1970.

A. Malcher. Ridurre al minimo gli automi finiti è difficile dal punto di vista computazionale. Teoretical Computer Science 327: 375-390, 2004.

L. Polák. Minimalizzazioni di NFA usando l'automa universale. International Journal of Foundations of Computer Science, 16 (5): 999-1010, 2005.

G. Gramlich e G. Schnitger. Riduzione al minimo degli NFA e delle espressioni regolari. Simposio sugli aspetti teorici dell'informatica (STACS 2005), LNCS 3404, pagg. 399–411.

H. Gruber e M. Holzer. Inapprossimabilità di stato non deterministico e complessità di transizione assumendo P <> NP. Developments in Language Theory (DLT 2007), LNCS 4588, pagg. 205–216.

H. Gruber e M. Holzer. Complessità computazionale della minimizzazione di NFA per linguaggi finiti e unari. Teoria e applicazioni della lingua e degli automi (LATA 2007), pagg. 261–272.

H. Björklund e W. Martens. La frontiera della tracciabilità per la minimizzazione di NFA. Colloquio internazionale su automi, lingue e programmazione (ICALP 2008), LNCS 5126, pagg. 27–38.

J. Geldenhuys, B. van der Merwe, L. van Zijl: Riduzione degli automi finiti non deterministici con solutori SAT. Metodi a stati finiti ed elaborazione del linguaggio naturale (FSMNLP 2009), LNCS 6062, 81–92.

EDIT (8 giugno 2015)

Aggiornamento: il seguente documento presenta un algoritmo euristico per ridurre la dimensione degli automi Büchi non deterministici, insieme ad esperimenti su automi casuali. Come affermano nella conclusione, il loro metodo si applica anche agli NFA: "Mentre abbiamo presentato i nostri metodi nel contesto degli automi Büchi, la maggior parte di essi passa banalmente al caso più semplice di automi su parole finite".

Richard Mayr, Lorenzo Clemente. Minimizzazione avanzata degli automi. POPL 2013. Rapporto tecnico esteso EDI-INF-RR-1414.

Il loro strumento da riga di comando Riduci v1.2 può essere richiamato con l'opzione "-finite" per ridurre un dato NFA. L'implementazione è open source e rilasciata sotto la GNU General Public License.


3
Sai se ci sono implementazioni open source di qualcuno di questi calci in giro?
jmite,

Ciao Hermann, grazie mille per tutte le informazioni! So che dato un NFA, è difficile trovare il più piccolo NFA equivalente. Ma che dire di quanto segue: dato un DFA, trova il più piccolo NFA equivalente. È difficile? Quanto è difficile?
Michael Wehar,

Scusa, ora vedo! Il primo documento elencato affronta questo: springerlink.com/content/y61724u571v487x5 Inoltre, un altro documento che hai elencato si rivolge a questo per le lingue regolari finite: hermann-gruber.com/data/lata07-final.pdf Grazie per avermi chiarito questo! :)
Michael Wehar,
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.