Quanto velocemente possiamo decidere se un determinato DFA è minimo?


11

Minimizzando automi finiti deterministici (DFA) è un problema che è stato accuratamente studiato in letteratura, e sono stati proposti diversi algoritmi per risolvere il seguente problema: Dato un DFA , calcolare un corrispondente minimo DFA accettare la stessa lingua A . La maggior parte di questi algoritmi viene eseguita in tempi polinomiali.AA

Tuttavia, mi chiedo se la variante decisionale di questo problema - "dato un DFA , è A minima?" - può essere risolto in modo più efficiente rispetto al calcolo effettivo dell'automa minimo. Ovviamente, questo può essere fatto anche in modo efficiente eseguendo ad esempio l'algoritmo di affinamento delle partizioni di Hopcroft e quindi decidere se tutte le partizioni contengono esattamente uno stato.AA

Come suggerisce Yuval Filmus nella sua risposta , la variante di decidibilità può essere risolta più rapidamente, possibilmente utilizzando gli algoritmi standard. Sfortunatamente, non riesco a vedere come (spero di non perdere un punto ovvio qui).

Yuval sottolinea nei commenti qui che gli algoritmi più noti (come quello sopra) vengono eseguiti nel tempo per alfabeti di dimensioni costanti. Pertanto, non sono solo interessato a guadagni asintoticamente significativi nel tempo di esecuzione, in quanto questi sembrano piuttosto improbabili. Ciò che mi preoccupa di più è che non riesco a immaginare alcuna "scorciatoia" che potrebbe essere disegnata dal fatto che siamo interessati solo a una risposta sì-no-risposta - nemmeno una scorciatoia che consente di salvare un periodo di tempo asintoticamente trascurabile. Sento che ogni algoritmo sensibile che decide la minimalità di un DFA dovrebbe effettivamente minimizzare il DFA e vedere se qualcosa cambia durante il processo.O(nlogn)


L'algoritmo di Hopcroft funziona già in tempi quasi quindicinali, quindi non c'è molto margine di miglioramento.
Yuval Filmus

Sì, ho modificato la mia domanda in modo che rifletta questo fatto, @YuvalFilmus
Cornelius Brand

1
Credo che l'algoritmo di minimizzazione DFA più veloce conosciuto sia ancora questo . È più veloce di qualsiasi algoritmo pubblicato prima del 2008 in esecuzione nel tempo , dove m è il numero di transizioni. O(n+mlogn)m
Juho

mi sembra improbabile che il problema decisionale sia equivalente in termini di complessità al problema della minimizzazione, il primo sembra probabilmente più difficile perché comporta test per l'equivalenza di DFA che non è banale. quindi sembra che la complessità del problema decisionale sia il massimo del "test di minimizzazione o equivalenza". e qual è la complessità dei test di equivalenza?
vzn

@vzn Supponendo che intendessi "[...] che non è banale": non deve necessariamente, come ad esempio la procedura che ho indicato nella mia domanda evita il test di equivalenza. Tuttavia, penso anche che il problema non sia più semplice della minimizzazione.
Cornelius Brand

Risposte:


5

Potrebbe non essere esattamente il tipo di risposta che stai cercando, ma dato che hai chiesto dei problemi di decisione, ho pensato che potresti essere interessato alla complessità del problema. È completo.NL

Ora, cosa significa che un DFA è minimo? Esistono due proprietà:

  1. Ogni stato è raggiungibile: tale che possiamo raggiungere q dallo stato iniziale s seguendo w ; nei simboli: s w q .qQwΣqswswq

  2. q,rQqr wΣqwsrwt|{s,t}F|=1s,t

xwyLwNL

NLstNL

NLL2n


questo sembra migliorare lo spazio ma non la complessità del tempo?
vzn

Sono d'accordo con vzn. Anche se mi piace questa risposta, sono ancora interessato a approfondimenti che sono più strettamente correlati alla domanda originale.
Cornelius Brand

NLP
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.