Im einfachsten Fall kenne ich einen Algorithmus, der existiert, obwohl nicht bekannt ist, welcher Algorithmus sich auf Automaten mit endlichen Zuständen bezieht.
Der Quotient einer Sprache L 1 durch eine Sprache L 2 definiert ist als L 1 / L 2 = { x | ∃ y ∈ L 2 derart , daß x y ∈ L 1 } .L1/L2L1L2L1/L2={x∣∃y∈L2 such that xy∈L1}
Es ist leicht zu beweisen, dass reguläre Mengen unter einem Quotienten durch eine beliebige Menge geschlossen werden. Mit anderen Worten, wenn regulär ist und L 2 willkürlich ist (nicht notwendigerweise regulär), dann ist L 1 / L 2 auch regulär.L1L2L1/L2
Der Beweis ist ganz einfach. Sei eine FSA, die die reguläre Menge R akzeptiert , wobei Q und F jeweils die Menge von Zuständen und die Menge von akzeptierenden Zuständen sind, und sei L eine beliebige Sprache. Lassen F ' = { q ∈ Q | ∃ y ∈ LM=(Q,Σ,δ,q0,F)RQFL ist die Menge von Zuständen, aus denen ein Endzustand erreicht werden kann, indem ein String aus L akzeptiert wird.F′={q∈Q∣∃y∈Lδ(q,y)∈F}L
Der Automat , das sich von M
nur in seinem Satz F ' von Endzuständen erkennt präzise R / L . (Oder siehe Hopcroft-Ullman 1979, Seite 62 für einen Beweis dieser Tatsache.)M′=(Q,Σ,δ,q0,F′)MF′R/L
LF′F′QR2|Q|
Dies ist ein Beispiel für das, was manchmal als beinahe konstruktiver
Beweis bezeichnet wird, dh ein Beweis dafür, dass eine von einer endlichen Anzahl von Antworten die richtige ist.
Ich nehme an, eine Erweiterung davon könnte ein Beweis dafür sein, dass eine der unzähligen Antworten die richtige ist. Aber ich kenne keine. Ich kenne auch keinen rein nicht konstruktiven Beweis dafür, dass ein Problem entscheidbar ist, zum Beispiel nur mit Widersprüchen.