DFA-Schnittalgorithmus für Sonderfälle


9

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:

Geben Sie hier die Bildbeschreibung ein

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.


Wie genau modellierst du "egal"? Es scheint die Automaten in gewisser Weise nicht deterministisch zu machen.
Shaull

@Shaull Warum sollte es den Automaten nicht deterministisch machen. Dies kann nur geschehen, wenn ein weiterer Übergang vom selben Zustand erfolgt, der ausdrücklich ausgeschlossen ist.
Babou

1
Was ist 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?
Babou

1
Hallo. Die Berechnung der tatsächlichen Kreuzung wäre großartig, da dies viele Dinge vereinfachen würde, aber auch die Entscheidung über die Leere wäre nützlich.
Ale64bit

1
Ich bin gerade auf ein neues Papier über Schnittgraphen gestoßen . Könnte ein Teil dieser Theorie relevant sein? Könnten Sie bitte Ihre Anwendung erweitern, die in Ihrem Kommentar im Theoretical Computer Science Chat erwähnt wurde ? & andere einladen, dort weiter zu diskutieren.
vzn

Antworten:


9

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}}uvuv

  1. L-vollständig für einen Endzustand in jedem DFA,
  2. NL-vollständig für zwei Endzustände in jedem DFA und
  3. NP-vollständig für drei oder mehr Endzustände in jedem DFA.

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]]


x2x3x5

Reduktions-Gadget

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.

  1. Michael Blondin. Complexité raffinée du problème d'intersection d'automates, M.Sc. Diplomarbeit, Université de Montréal, 2012.
  2. Michael Blondin, Andreas Krebs und Pierre McKenzie. Die Komplexität sich überschneidender endlicher Automaten mit wenigen Endzuständen, Computational Complexity (CC), 2014.
  3. Michael Wehar. Härteergebnisse für Schnittpunkt-Nichtleere. ICALP, 2014.

2
Vielen Dank! Ich akzeptiere deine Antwort. Die Frage ergab sich aus einigen praktischen Tests, bei denen sich nach vielen Schritten alles reduzierte, um die Lösungen vieler DFA mit diesen besonderen Merkmalen zu überschneiden. Trotzdem beobachteten wir, dass wir am Ende zwar einen einfachen DFA erhalten würden, der Prozess jedoch nie abgeschlossen wurde, da die dazwischen liegenden DFAs (während sie sich nacheinander kreuzten) wild zu einer exponentiellen Anzahl von Zuständen wuchsen. Daher die Frage, wie man die Antwort erhält, ohne die zwischengeschalteten "naiven" Schritte zu durchlaufen.
Ale64bit

1
Vielen Dank (und entschuldigen Sie die Unklarheit, ich bin in diesem Bereich unter Anfänger). Jetzt gibt es etwas, das ich nicht verstehe. Sie erwähnen, dass "als Baum geformt" "eindeutiger Pfad von der Wurzel zu jedem anderen Knoten" bedeutet. Aber in dem Bild, das Sie in der Bearbeitung gepostet haben, wäre das beispielsweise kein Baum (es sei denn, Sie zählen die 0/1-Übergänge als eine einzige Bezeichnung)?
Ale64bit

1
Sie haben Recht, aber ich habe verstanden, dass Sie Übergänge "egal" zulassen. Ist das nicht der Fall?
Michael Blondin

2
Hallo Michael. Danke für die nette Antwort. Ich hoffe alles ist gut. :)
Michael Wehar

2
@MichaelWehar Wenn Sie sowohl k als auch c beheben, erwähnen Sie, dass Sie das Problem "schnell" lösen können. Sie erwähnen jedoch nicht die zeitliche Komplexität, sondern nur die räumliche Komplexität. Was genau bedeutet in diesem Zusammenhang "schnell"?
Ale64bit
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.