Angenommen, man hat eine Sprache , aber man weiß nicht, welche Zeichenfolgen tatsächlich Teil der Sprache sind. Alles, was man hat, ist eine endliche Sicht auf die Sprache: eine endliche Menge von Strings , von denen bekannt ist, dass sie in der Sprache sind, und eine endliche Menge von Strings , die bekannt sind nicht in der Sprache sein. A ⊆ L B ⊆ ( Σ * ∖ L )
ich habe und . Ich könnte die Sprache , da und mit übereinstimmen , oder ich könnte eine vollständig haben andere Sprache.
Meine Frage ist: Gibt es eine bekannte Möglichkeit, eine DFA (deterministische endliche Automaten) zu erstellen, die die Zeichenfolgen in akzeptiert und die Zeichenfolgen in mit einer minimalen oder fast minimalen Anzahl von Zuständen zurückweist ? Wie komplex ist dieses Problem? Wie gut ist es, zu approximieren (vorausgesetzt, hat eine relativ geringe beschreibende Komplexität und und sind groß)?
Ursprüngliche Frage auf math.stackexchange.com. Ich entschied mich, hier einen neuen Beitrag zu schreiben, nachdem ich keine Antworten auf die ursprüngliche Frage erhalten hatte und keine Ahnung hatte, wo ich nach ihnen suchen sollte. Wenn jemand mich auf die Forschung in diesem Bereich hinweisen könnte, wäre er sehr dankbar.
quelle
Antworten:
Wie Sie bereits aus den Kommentaren wissen, ist es -hard , den minimalen DFA zu finden, der eine endliche Menge positiver und negativer Beispiele erfüllt . Es ist jedoch nicht alle Hoffnung verloren, wenn Sie bereit sind, Ihr Lernparadigma geringfügig zu ändern, können wir zu P zurückkehren .NP P
Angenommen, Sie versuchen, ein unbekanntes DFA zu lernen, das für einige Sprachen L W minimal ist . Wenn Sie den Oracle - Mitgliedschaft Abfragen ermöglichen und als Lehrer zu wirken , indem sie die folgende Frage zu beantworten: Bei einem vorgeschlagenen DFA G tut es erkennt L W ? Wenn nicht, können Sie ein Gegenbeispiel liefern?W LW G LW
Beachten Sie, dass, wenn das Orakel Zugriff auf es G mit W in Polyzeit vergleichen kann , da das Testen der Gleichheit zwischen regulären Sprachen einfach ist. Das Erzeugen eines Gegenbeispiels kann auch in Polynomzeit erfolgen.W G W
In diesem Rahmen können Sie in der Polynomzeit mit dem Angluin- Algorithmus ( 1987 ; pdf ) lernen (oder mit Schapires Verfeinerung ; siehe Abschnitt 5.4.5). Weitere Informationen zu diesem Modell finden Sie in den folgenden zwei Fragen zu cstheory und CS.SE:W
Untere Grenzen für das Lernen im Mitgliedschaftsabfrage- und Gegenbeispielmodell
Gibt es Verbesserungen an Dana Angluins Algorithmus zum Erlernen regulärer Mengen?
quelle
Es scheint mir, dass Sie eine Verfeinerung der Myhill-Nerode-Äquivalenz für dieses Problem verwenden können.
Wir definieren , wenn es vorhanden ist x ∈ & Sigma; so dass u x ∈ A und v x ∈ B . Dies bedeutet, dass sich jeder Automat, der A von B trennt , nach dem Lesen von u und v in verschiedenen Zuständen befinden muss .u≁v x∈Σ ux∈A vx∈B A B u v
Es reicht aus, diese Beziehung über Präfixe von Elementen von und B zu untersuchen . Dies gibt Ihnen eine Untergrenze für die Anzahl der Staaten, die Sie benötigen. Ich bin mir nicht sicher, ob es Ihnen direkt einen Weg gibt, den Minimalautomaten zu bauen, aber es ist zumindest ein Weg, den Sie erkunden müssen.A B
quelle
Ich denke, dieses Problem wurde möglicherweise vom Fragesteller ungenau formuliert. Der Fragesteller wünscht sich anscheinend einen Algorithmus, der unendliche Wörter auf der Grundlage bestimmter Beispiele für endliche Wörter verallgemeinert, indem er eine Art mechanisierte Induktion verwendet, dh offensichtliche Muster in den Beispielen erkennt.
Neben einigen in Kommentaren zitierten Untersuchungen zur CS-Theorie gibt es auch weitere empirische Untersuchungen in diesem Bereich, z. B. unten, bei denen ANNs verwendet werden, um FSMs aus Beispielen zu erstellen. Beachten Sie, dass für das Ergebnis immer ein Standard-DFA-Minimierungsalgorithmus ausgeführt werden kann. Die AT & T FSM-Bibliothek ist gut für die Arbeit in diesem Bereich.
Der Fragesteller ist nicht spezifisch in Bezug auf seine Problemdomäne. Dies kann helfen, die Struktur von Beispielen zu verstehen und spezifischere Referenzen zu erhalten. Ein Beispiel dafür sind KI-Algorithmen in Spielen, die FSM-Algorithmen verwenden. Ich vermute, dass es einige Fälle gibt, in denen die FSM anhand von Beispielen mit Lernalgorithmen gelernt werden.
[1] Lernen einer Klasse großer endlicher Zustandsmaschinen mit einem wiederkehrenden neuronalen Netzwerk C. Lee Giles, 1, BG Horne, T. Lin 1995
[2] Learning FSMs with Self-Clustering Recurrent Networks von Zeng & Smyth 1993
[3] AT & T FSM-Bibliothek
quelle