Dies ist eine problematische Frage. Es gibt eine Möglichkeit, die Gleichwertigkeit von Automaten zu überprüfen, die ich jetzt erläutern werde, aber ich fürchte, es wird Ihnen nicht helfen, wie Sie am Ende sehen werden.
Denken Sie daran, dass zwei Mengen und gleich sind, wenn und (dies ist die Definition der Mengengleichheit). Es reicht also aus, zu überprüfen, ob und , wobei und Ihr DFA bzw. NFA sind.B A ⊆ B B ⊆ A L ( D ) ⊆ L ( N ) L ( N ) ⊆ L ( D ) D N.EINB.A ⊆ B.B ⊆ A.L ( D ) ≤ L ( N.)L ( N.) ⊆ L ( D )D.N.
Aber wie überprüfen Sie die Einschließung von Sprachen, könnten Sie fragen. Nun, beobachten Sie nun, dass iff (wobei das Komplement von ).A ∩ ¯ B = ∅ ¯ B BA ⊆ B.A ∩ B.¯¯¯¯= ∅B.¯¯¯¯B.
Betrachten wir zunächst, ob . Dazu müssen Sie ergänzen (sehr einfach - die akzeptierenden und ablehnenden Zustände austauschen), dann den Schnittautomaten (z. B. mit der Produktkonstruktion) mit konstruieren und auf Leere prüfen, indem Sie einen Pfad zu einem akzeptierenden Zustand finden.D N.L ( N.) ⊆ L ( D )DN
Die umgekehrte Richtung zeigt jedoch, warum dies Ihnen nicht hilft. Um zu überprüfen, ob , müssen Sie ergänzen . Um eine NFA zu ergänzen, müssen Sie sie zunächst in eine DFA konvertieren, wodurch die gesamte Idee sinnlos wird.N.L(D)⊆L(N)N
Im Wesentlichen ist das Problem mit Ihrer Frage viel tiefer: Sie möchten überprüfen, ob Sie (ein undefiniertes Rechenmodell) einen genau definierten Algorithmus ordnungsgemäß ausgeführt haben. Das ist also kein wirkliches Informatikproblem.
Ich werde dies sagen: Nach den von mir vorgeschlagenen Konstruktionen ist es nicht schwer zu schließen, dass wenn es ein Wort mit einer Länge von höchstens ( ist die Anzahl der Zustände von ) das wird von dem einen und nicht vom anderen akzeptiert. Sie können also alle Wörter bis zu dieser Länge ausprobieren.2 2 n n N.L(D)≠L(N)22nnN