Äquivalenzproblem

Begriff aus der Theoretischen Informatik
(Weitergeleitet von Programmäquivalenz)

Als Äquivalenzproblem bezeichnet man in der Theoretischen Informatik das Problem, zu entscheiden, ob zwei formale Definitionen von zwei Sprachen und äquivalent sind, also gilt.

So können die Sprachen durch Grammatiken oder Automaten oder auch ganz anders definiert sein.

Das Äquivalenzproblem ist für reguläre Grammatiken und deterministisch kontextfreie Grammatiken entscheidbar, für nichtdeterministische kontextfreie ist es unentscheidbar. Offenbar ist es sinnvoll, nach der Komplexität des Äquivalenzproblems zu fragen, wenn das Problem entscheidbar ist. In diesem Fall kann diese Komplexität ganz erheblich von der vorgegebenen Art, wie die Sprache definiert wird, abhängen.

Für reguläre Sprachen ist das Äquivalenzproblem wegen der Entscheidbarkeit des Leerheitsproblems und der Abschlusseigenschaften entscheidbar, da genau dann, wenn .

Liegen die Sprachen und schon in Form von DEAs vor, so kann man das Äquivalenzproblem auch entscheiden, indem man von beiden DEAs jeweils die Minimalautomaten bildet und diese dann auf Isomorphie überprüft. Ist das der Fall, so sind die beiden Sprachen und ebenfalls äquivalent.

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • Marco Almeida, Nelma Moreira und Rogério Reis: Testing the Equivalence of Regular Languages. In: 11th International Workshop on Descriptional Complexity of Formal Systems (DCFS 2009) EPTCS 3. 2009, S. 47–57, doi:10.4204/EPTCS.3.4, arxiv:0907.5058 (englisch).