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.
Antworten:
Beachten Sie, dass das Problem, wie @reinierpost feststellt, ohne Einschränkungen für A und B unentscheidbar werden kann.
quelle
Das Finden des minimalen DFA, der mit einem bestimmten Satz von Zeichenfolgen übereinstimmt, ist NP-vollständig. Dieses Ergebnis erscheint als Satz 1 in Angluins Aufsatz über die Komplexität der minimalen Inferenz regulärer Mengen . Ihr Problem ist also eindeutig auch NP-vollständig.
Viele gute Links und Diskussionen zum Erlernen regulärer Sprachen finden Sie im CSTheory-Blogpost zum Erlernen regulärer Sprachen .
quelle