Der Schnittpunkt einer kontextfreien Sprache L mit einer regulären Sprache M soll immer kontextfrei sein. Ich habe den produktübergreifenden Konstruktionsnachweis verstanden, verstehe aber immer noch nicht, warum er kontextfrei, aber nicht regelmäßig ist.
Die durch eine solche Schnittmenge erzeugte Sprache enthält Zeichenfolgen, die sowohl von einem PDA als auch von einem DFA akzeptiert werden . Sollte es nicht eine reguläre Sprache sein, da es von einem DFA akzeptiert wird? Wenn die Schnittmenge regelmäßig ist, bedeutet dies auch, dass sie kontextfrei ist, da alle regulären Sprachen auch kontextfrei sind.
Kann mir jemand erklären, warum die durch eine solche Kreuzung erhaltene Sprache nicht regelmäßig ist?
Antworten:
Wenn kontextfrei ist, gibt es einen PDA P , der dies akzeptiert. Wenn M regulär ist, gibt es einen DFA F , der dies akzeptiert. Die Schnittmenge besteht aus den Wörtern, die durch P und F erkannt werden .L P M F P F
Jedes Wort, das sich in der Schnittmenge befindet, wird von akzeptiert , aber nicht alle Wörter, die von F akzeptiert werden, befinden sich in der Schnittmenge: nur diejenigen, die auch von P akzeptiert werden .F F P
Der produktübergreifende Beweis besteht aus der Konstruktion eines Automaten der die Mechanik von P und F enthält und der nur Wörter akzeptiert, für die beide Seiten akzeptieren. Der produktübergreifende Automat ist ein PDA (und daher ist die erkannte Sprache kontextfrei) - intuitiv, da das produktübergreifende mit einem DFA mit n Zuständen darin besteht, n Kopien von P zu nehmen und ( q , a , [ q ] ) zu addieren. Pfeile zwischen den Zuständen in passenden P , wo die DFA hat eineP⊗ F P F n n P ( q, a , [ q] ) P ein Pfeile. Das Ergebnis ist im Allgemeinen kein endlicher Automat (nicht einmal ein nicht deterministischer), da der Teil auf dem Stapel beruht und diese Abhängigkeit in P ⊗ F im Allgemeinen nicht verschwindet .P P⊗ F
Ein triviales Beispiel ist, dass regulär ist, und wenn L kontextfrei, aber nicht regulär ist, dann ist L ∩ A ∗ = L kontextfrei, aber nicht regulär.EIN∗ L L ∩ A∗= L
quelle