Il più piccolo DFA che accetta determinate stringhe e rifiuta altre stringhe date


11

Dati due insiemi di stringhe sull'alfabeto Σ , possiamo calcolare il più piccolo automa deterministico a stati finiti (DFA) M tale che A L ( M ) e L ( M ) Σ B ?UN,BΣMUNL(M)L(M)Σ*B

In altre parole, rappresenta un insieme di esempi positivi. Ogni stringa in A deve essere accettata dal DFA. B rappresenta un insieme di esempi negativi. Nessuna stringa in B dovrebbe essere accettata dal DFA.UNUNBB

C'è un modo per risolverlo, magari utilizzando le tecniche di minimizzazione di DFA ? Potrei immaginare di creare un automa simile a DFA che abbia tre tipi di stati: accetta stati, rifiuta stati e stati "non importa" (qualsiasi input che termina in uno stato "non importa" può essere accettato o rifiutato). Ma possiamo quindi trovare un modo per minimizzare questo a un normale DFA?

Potresti pensare a questo come al problema dell'apprendimento di un DFA, dati esempi positivi e negativi.

Questo si ispira a regex golf NP-Complete? , che pone domande simili per regexps anziché per DFA.


1
Penso che dovresti porre una sorta di restrizione su quali tipi di lingue e B possono essere e su come possono essere specificate. UNB
reinierpost,

C'è molta letteratura sulle funzioni / lingue di apprendimento, ad esempio archiviate sotto l'apprendimento al limite (anche l'apprendimento in stile Gold). Questi non si adattano esattamente al tuo problema ma possono essere interessanti.
Raffaello

Risposte:


7

Un DFA come descritto è chiamato DFA di separazione . C'è della letteratura su questo problema quando e B sono lingue regolari, come l' apprendimento dei DFA minimi di separazione per la verifica composizionale, di Yu-Fang Chen, Azadeh Farzan, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw WangUNB

Si noti che come afferma @reinierpost, senza alcuna restrizione su A e B, il problema potrebbe diventare indecidibile.


Se A e B sono entrambe lingue regolari e se si è autorizzati ad accettare o rifiutare arbitrariamente qualsiasi input per il quale A e B avrebbero prodotto lo stesso risultato, non vedo come il problema potrebbe essere indecidibile. Per un DFA di qualsiasi dimensione particolare, sarebbe possibile costruire un set completo di input che dovrebbe accettare e input che dovrebbe rifiutare, in modo tale che qualsiasi DFA con lo stesso numero di stati o meno che gestisca correttamente tutti i casi di test può essere garantito un comportamento identico in tutti i casi. Dal momento che una macchina che accetta tutto A accetta e rifiuta tutto il resto ...
supercat

... soddisfare i vincoli, si può porre un limite superiore al numero di stati che una macchina dovrebbe contenere; poiché esiste un numero finito di possibili macchine di qualsiasi data dimensione e un numero finito di casi di test da valutare, si potrebbero generare tutte le possibili macchine che sono più piccole di A e vedere se qualcuno di loro soddisfa le condizioni necessarie. Non è esattamente un modo rapido per risolvere il problema, ma sicuramente decidibile se A e B sono regolari. Se non sono regolari, un DFA non sarebbe in grado di risolvere A o B. La "differenza" a volte potrebbe essere regolare anche se A e B non lo sono, ma quello ...
supercat

... sarebbe un caso "insolito".
supercat

8

UNBUNB=UNUNB

Trovare il DFA minimo coerente con un determinato set di stringhe è NP-completo. Questo risultato appare come Teorema 1 nell'articolo di Angluin Sulla complessità dell'inferenza minima degli insiemi regolari . Quindi chiaramente il tuo problema è NP-completo.

Per molti buoni collegamenti e discussioni sull'apprendimento delle lingue regolari, consulta il blogpost CSTheory sull'apprendimento delle lingue regolari .


Se i requisiti fossero cambiati in modo che un automa potesse accettare o rifiutare arbitrariamente qualsiasi cosa sia in A e B, allora il problema sarebbe sempre risolvibile per qualsiasi A e B; se trovare l'automa ottimale sarebbe NP completo senza farlo, sarebbe NP completo anche con tale requisito.
supercat il
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.