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