Ist das Problem, bei zwei DFAs herauszufinden, ob sie dieselbe Sprache erzeugen, ein entscheidbares Problem?
Ich weiß bereits, dass die Gleichheit von zwei CFL nicht entscheidbar ist
aber was ist mit der Gleichheit von zwei DFAs? Wenn man bedenkt, dass die meisten Probleme mit DFAs entscheidbar sind, ist dies auch entscheidbar?
computability
automata
finite-automata
decision-problem
Richard Jones
quelle
quelle
Antworten:
Um zu entscheiden , ob die erzeugten Sprachen von zwei DFAs durch denselben, ein DFA - Konstrukt A Δ für die symmetrische Differenz L ( A 1 ) Δ L ( A 2 ) : = ( L ( A 1 ) ∖ L ( A 2 ) ) ∪ ( L ( A 2 ) ∖ L ( A 1 ) ) und prüfen Sie, obA1,A2 AΔ L(A1)ΔL(A2):=(L(A1)∖L(A2))∪(L(A2)∖L(A1)) .L(AΔ)=∅
Hier sind einige weitere Details. Sie können konstruieren mit dem Produktaufbau : eine Produktautomat konstruieren, und die Verwendung ( F 1 × ¯ F 2 ) ∪ ( ¯ F 1 × F 2 ) als die Menge der Zustände anzunehmen.AΔ (F1×F2¯¯¯¯¯)∪(F1¯¯¯¯¯×F2)
Um zu überprüfen, ob leer ist oder nicht, reicht es aus, zu überprüfen, ob ein akzeptierender Zustand vom Anfangszustand aus erreichbar ist, und dies kann unter Verwendung von BFS / DFS erfolgen.L(AΔ)
quelle
Bei zwei DFA und D 2 sind die Gleichheit von D 1 und D 2 und die Überprüfung, ob D 1 und D 2 dieselbe Sprache erzeugen, dasselbe.D1 D2 D1 D2 D1 D2
quelle