Können wir bei zwei Mengen von Strings über dem Alphabet Σ den kleinsten deterministischen Finite-State-Automaten (DFA) M so berechnen, dass A ⊆ L ( M ) und L ( M ) ⊆ Σ ∗ ∗ B ?
Mit anderen Worten, repräsentiert eine Reihe positiver Beispiele. Jede Zeichenfolge in A muss vom DFA akzeptiert werden. B repräsentiert eine Reihe negativer Beispiele. Keine Zeichenfolge in B sollte vom EDA akzeptiert werden.
Gibt es eine Möglichkeit, dies zu lösen, möglicherweise mithilfe von DFA-Minimierungstechniken ? Ich könnte mir vorstellen, einen DFA-ähnlichen Automaten mit drei Arten von Zuständen zu erstellen: Zustände akzeptieren, Zustände ablehnen und Zustände "egal" (jede Eingabe, die mit einem Zustand "egal" endet, kann entweder akzeptiert werden oder abgelehnt). Aber können wir dann einen Weg finden, dies auf einen normalen DFA zu minimieren?
Sie können sich dies als das Problem des Lernens eines DFA vorstellen, wenn Sie positive und negative Beispiele geben.
Dies ist inspiriert von Ist Regex Golf NP-Complete? , die ähnliche Fragen für reguläre Ausdrücke anstelle von DFAs stellt.