Überschneidung des Kontexts frei mit regulären Sprachen

16

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?

sanjeev mk
quelle
12
Betrachten Sie. * Als die reguläre Sprache und deren Schnittmenge mit einer kontextfreien.
AProgrammer
1
Es wären die Saiten des kontextfreien. Diese Zeichenfolgen werden jedoch auch von der regulären Sprache generiert, sodass es sich um eine kontextfreie Sprache handelt, die ebenfalls regulär ist.
Sanjeev mk
8
Die Sprache könnte regelmäßig sein. Aber normalerweise ist es nicht so. Denken Sie noch einmal an das Gegenbeispiel von AProgrammer. Es sollte wahrscheinlich die Antwort sein. Jede kontextfreie Sprache ist eine Teilmenge einer regulären Sprache. Es ist wahr, dass der Schnittpunkt der Sprachen CF und REG vom DFA von REG akzeptiert wird, aber es kommt auch darauf an, was abgelehnt wird.
Karolis Juodelė
1
@ DW Relevant, aber jemand hat es als Betrug vorgeschlagen, und das ist es nicht. Diese Frage stellt sich die Frage, warum die Kreuzung nicht immer regelmäßig ist. der andere fragt, warum die Kreuzung nicht immer unregelmäßig ist. Die spezielle Anordnung dieser Frage (die sich auf Zeichenfolgen bezieht, die sowohl von einem DFA als auch von einem PDA akzeptiert werden, sodass sie von einem DFA akzeptiert werden. Die Sprache ist also normal, oder?) Bedeutet, dass Antworten auf die andere Frage nicht angezeigt werden. t wirklich gut beantworten.
David Richerby

Antworten:

20

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 .LPMFPF

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 .FFP

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 einePFPFnnP(q,ein,[q])PeinPfeile. 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 PF im Allgemeinen nicht verschwindet .PPF

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.EINLLEIN=L

Gilles 'SO - hör auf böse zu sein'
quelle
2
+1 Ich habe fast eine Antwort gepostet, die Ihrem letzten Satz entspricht. Ehrlich gesagt, scheint der Rest der Antwort unnötig. :)
Patrick87
"Hinzufügen von (q, a, [q]) Pfeilen zwischen übereinstimmenden Zuständen in P, in denen der DFA Pfeile hat". Kann nicht visualisieren, wie das Produkt PDA sein wird.
Uhr