Ich interessiere mich für effiziente Algorithmen für die DFA-Schnittmenge für Sonderfälle. Wenn sich die zu schneidenden DFAs einer bestimmten Struktur gehorchen und / oder mit einem begrenzten Alphabet arbeiten. Gibt es eine Quelle, in der ich in solchen Fällen Algorithmen finden kann?
Um die Frage nicht zu weit zu fassen, ist die folgende Struktur von besonderem Interesse: Alle DFAs, die sich schneiden sollen, arbeiten im binären Alphabet (0 | 1). Sie können auch Symbole verwenden, die sich nicht darum kümmern. Darüber hinaus haben alle Zustände nur einen Übergang, mit Ausnahme von höchstens K speziellen Zuständen, die nur zwei Übergänge haben (und diese Übergänge sind immer 0 oder 1, aber es ist egal). K ist eine ganze Zahl, aus praktischen Gründen weniger als 10. Sie haben auch einen einzigen akzeptierenden Zustand. Darüber hinaus ist bekannt, dass der Schnittpunkt IMMER ein DFA in Form eines "Streifens" ist, dh keine Verzweigungen wie in der folgenden Abbildung:
EDIT: Vielleicht ist die Beschreibung der Einschränkung für die Eingabe-DFAs nicht sehr klar. Ich werde versuchen, es in diesem Absatz zu verbessern. Sie haben als Eingabe T DFAs. Jeder dieser DFAs arbeitet nur mit dem binären Alphabet. Jeder von ihnen hat höchstens N Zustände. Für jeden DFA ist jeder seiner Zustände einer der folgenden:
1) der akzeptierende Zustand (es ist nur einer und es gibt keinen Übergang von ihm zu einem anderen Zustand)
2) ein Zustand mit zwei Übergängen (0 und 1) zum gleichen Zielzustand (die Mehrheit der Zustände ist von dieser Art)
3) ein Zustand mit zwei Übergängen (0 und 1) zu verschiedenen Zielzuständen (höchstens K dieser Art)
Es wird garantiert, dass es nur einen akzeptierenden Zustand gibt und dass in jedem Eingangs-DFA höchstens K Zustände vom Typ (3) vorhanden sind. Es ist auch garantiert, dass der Schnittpunkt-DFA aller Eingangs-DFAs ein "Streifen" (wie oben beschrieben) mit einer Größe von weniger als N ist .
EDIT2: Einige zusätzliche Einschränkungen, wie von DW in den Kommentaren angefordert:
- Die Eingangs-DFAs sind DAGs.
- Die Eingabe-DFAs werden gemäß der DW-Definition in den Kommentaren "geebnet". Sie können nämlich jedem Zustand unterschiedliche Ganzzahlen zuweisen, so dass jeder Übergang von einer Ganzzahl u zu einer Ganzzahl v wechselt , sodass u + 1 = v .
- Die Anzahl der akzeptierenden Zustände für jeden Eingangs-DFA überschreitet K nicht .
Irgendwelche Ideen? Vielen Dank.
quelle
a DFA in form of "strip", i.e., no branches
? Haben Sie einen bestimmten Grund zu der Annahme, dass man in Ihrem Fall besser als der Standardalgorithmus arbeiten kann?Antworten:
Ja , es gibt einige Fälle des DFA-Problems der Nicht-Leere-Einfügung innerhalb von P. Meine Masterarbeit ist dieser Frage gewidmet, aber leider in französischer Sprache. Die meisten Ergebnisse sind jedoch hier in .[ 2 ]
Wenn das Alphabet unär ist, ist das Problem L-vollständig, wenn jeder DFA höchstens zwei Endzustände hat, und ansonsten NP-vollständig. Die meisten anderen Fälle beschränken die Übergangsmonoide der Automaten. Zum Beispiel liegt das Problem bei abelschen Gruppenübergangsmonoiden in wenn jeder DFA höchstens einen Endzustand hat, und ansonsten NP-vollständig; für elementar 2-Gruppe Übergang Monoide, ist das Problem L-abgeschlossen , wenn jede DFA höchstens zwei Endzustände hat und NP-vollständig anders.NC3 ⊕
Lassen Sie mich nun auf Ihre genauere Frage eingehen, die nur in . Angenommen, Sie erhalten DFAs, die über und als Bäume geformt sind, dh es gibt einen Zustand (Anfangszustand), sodass für jeden Zustand ein eindeutiger Pfad von nach . Die Entscheidung über die Nicht-Leere der Kreuzung lautet dann:[ 1 ] { 0 , 1 } u v u v
Die Härteergebnisse bleiben auch dann erhalten, wenn Sie 0, 1 oder 2 Mal "gabeln" (dies ist Ihr ). Wenn Ihre DFAs auf azyklische Graphen anstatt auf Bäume gerichtet sind, ist das Problem NP-vollständig, selbst wenn in jedem DFA ein Endzustand vorliegt und ; Die Reduktion ist recht unkompliziert und erfolgt von Monotone 1-in-3 3-SAT.K. K.= 2
Daher nicht , ich glaube nicht , dass es ein effizienter Algorithmus für Ihr Problem.
Wenn nun die Anzahl der Automaten festgelegt ist, möchten Sie möglicherweise mit Michael Wehar diskutieren , der kürzlich veröffentlicht hat .[ 3 ]
Beachten Sie, dass die Automaten Bäume (und damit DAGs) sind, geebnet sind und drei Endzustände haben. Tatsächlich könnten die drei Endzustände zu einem einzigen zusammengeführt werden, wenn man mit DAGs zufrieden ist. Darüber hinaus haben nur zwei Zustände zwei (unterschiedliche) ausgehende Übergänge.
quelle