Wie kann man beweisen, dass eine Sprache nicht kontextfrei ist?


88

Wir haben etwas über die Klasse der kontextfreien Sprachen gelernt . Es ist sowohl durch kontextfreie Grammatiken als auch durch Pushdown-Automaten gekennzeichnet, sodass leicht gezeigt werden kann, dass eine bestimmte Sprache kontextfrei ist.CFL

Wie zeige ich das Gegenteil? Mein TA hat darauf bestanden, dass wir dafür für alle Grammatiken (oder Automaten) nachweisen müssen, dass sie die jeweilige Sprache nicht beschreiben können. Das scheint eine große Aufgabe zu sein!

Ich habe etwas über pumpfähiges Lemma gelesen, aber es sieht wirklich kompliziert aus.


Ntpick: Es ist unentscheidbar zu zeigen , ob eine Sprache kontextfrei ist.
reinierpost

1
@reinierpost Ich verstehe nicht, wie sich Ihr Kommentar auf die Frage bezieht. Es geht darum , zu beweisen Dinge, nicht zu entscheiden (algorithmisch).
Raphael

Ich möchte nur darauf hinweisen, dass es nicht einfach ist, zu zeigen, dass eine Sprache im Allgemeinen kontextfrei ist . Wenn es für frafl einfach ist, muss dies auf bestimmte spezielle Bedingungen zurückzuführen sein, die für Sprachen im Allgemeinen nicht gelten, z. B. einen Pushdown-Automaten, der die Sprache beschreibt.
reinierpost

@reinierpost Diese Argumentation scheint davon auszugehen, dass unentscheidbare Implikationen (gleich?) schwer zu beweisen sind. Ich frage mich, ob das stimmt.
Raphael

Antworten:


69

Meines Wissens ist das Pumplemma die mit Abstand einfachste und am häufigsten verwendete Technik. Wenn Sie es schwer finden, versuchen Sie zuerst die reguläre Version , es ist nicht so schlimm. Es gibt einige andere Mittel für Sprachen, die alles andere als kontextfrei sind. Zum Beispiel sind unentscheidbare Sprachen trivialerweise nicht kontextfrei.

Das heißt, ich interessiere mich auch für andere Techniken als das Pumplemma, wenn es welche gibt.

EDIT: Hier ist ein Beispiel für das Pump-Lemma: Angenommen, die Sprache ist kontextfrei ( ist die Menge der Primzahlen). Das Lemma hat eine Menge von Quantifizierern, also mache ich das ein bisschen wie ein Spiel:L={akkP}P/

  1. Das pumpfähige Lemma gibt Ihnen einep
  2. Sie geben ein Wort der Sprache der Länge mindestenssp
  3. Das Lemma schreibt es folgendermaßen um: mit einigen Bedingungen ( und )s=uvxyz|vxy|p|vy|1
  4. Sie geben eine ganze Zahln0
  5. Wenn nicht in , gewinnt man, ist nicht kontextfrei.uvnxynzLL

Für diese Sprache ist für jedes (mit und ist eine Primzahl) der Trick. Dann liefert das Lemma mit . Sie die Kontextfreiheit, Sie müssen so finden, dassist keine Primzahl.sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

Und dann tun: ist nicht prim so . Das Pumplemma kann nicht angewendet werden, daher ist nicht kontextfrei.n=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Ein zweites Beispiel ist die Sprache . Wir müssen (natürlich) eine Zeichenfolge auswählen und zeigen, dass es keine Möglichkeit gibt, sie in diese fünf Teile zu zerlegen, und dass jede abgeleitete gepumpte Zeichenfolge in der Sprache verbleibt.{www{a,b}}

Die Zeichenfolge ist eine geeignete Wahl für diesen Beweis. Jetzt müssen wir uns nur noch ansehen, wo und können. Die Schlüsselteile sind, dass oder etwas enthalten müssen (vielleicht beides) und dass sowohl als auch (und ) in einer Länge Teilzeichenfolge enthalten sind - so dass sie nicht zu weit voneinander entfernt sein dürfen.s=apbpapbpvyvyvyxp

Diese Zeichenfolge hat eine Reihe von Möglichkeiten, wo und sein können, aber es stellt sich heraus, dass einige der Fälle tatsächlich ziemlich ähnlich aussehen.vy

  1. vya oder . Dann sind sie beide in einem der Abschnitte zusammenhängender s oder s enthalten. Dies ist der relativ einfach zu argumentierende Fall, da es irgendwie egal ist, in welchem ​​sie sich befinden. Nehmen wir an, dass . vybab|vy|=kp
    • Wenn sie sich im ersten Abschnitt von s befinden, ist beim Pumpen die erste Hälfte der neuen Zeichenfolge und die zweite ist . Offensichtlich ist dies nicht von der Form .aap+kbpk/2bk/2apbpww
    • Das Argument für einen der drei anderen Abschnitte ist fast dasselbe: Hier landen und in den Indizes.kk/2
  2. vxy überspannt zwei der Abschnitte. In diesem Fall wird das Pumpen nach unten ist dein Freund. Wieder gibt es mehrere Stellen, an denen dies passieren kann (3 um genau zu sein), aber ich mache nur eine illustrative, und der Rest sollte sich von dort aus leicht herausfinden lassen.
    • Es sei angenommen , daß über die Grenze zwischen dem ersten spreizen Abschnitt und die ersten - Seite. Sei (es ist egal, wo die s und s in und , aber wir wissen, dass sie in Ordnung sind). Wenn wir dann abpumpen (dh der Fall ), erhalten wir die neue Zeichenfolge , aber wenn in , muss der Mittelpunkt irgendwo in der zweiten Sektion liegen, also ist die erste Hälftevxyabvy=ak1bk2abvyi=0s=apk1bpk2apbpswwaapk1bpk2a(k1+k2)/2und die zweite Hälfte istap(k1+k2)/2bp . Es ist klar, dass dies nicht dieselbe Zeichenfolge ist, daher können wir und y nicht dort platzieren.vy

Die restlichen Fälle sollten von dort aus ziemlich transparent sein - sie sind die gleichen Ideen, setzen nur und y in den anderen 3 Stellen in der ersten Instanz und 2 Stellen in der zweiten Instanz. In jedem Fall können Sie es aber so aufpumpen, dass die Reihenfolge deutlich durcheinander kommt, wenn Sie die Saite in zwei Hälften teilen.vy


In der Tat ist Kozens Spiel der richtige Weg, dies zu tun.
Sokrates

45

Ogdens Lemma

Lemma (Ogden). Sei eine kontextfreie Sprache. Dann gibt es eine Konstante N, so dass für jedes z L und jede Art der Markierung von N oder mehr Positionen (Symbolen) von z als "unterscheidbare Positionen" z geschrieben werden kann als z = u v w x y , so dassLNzL Nzzz=uvwxy

  1. hat mindestens eine definierte Position.vx
  2. hat höchstens N verschiedene Positionen.vwxN
  3. Für alle , u v i w x i y L .i0uviwxiyL

Beispiel. Es sei . Angenommen, L ist kontextfrei und N sei die Konstante, die durch Ogdens Lemma gegeben ist. Sei z = a N b N + N ! c N + 2 N ! (was zu L gehört ), und nehmen wir an, wir markierenL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!Lwie unterschieden alle Positionen des Symbols (dh die ersten N Positionen von z ). Sei z = u v w x y eine Zerlegung von z, die die Bedingungen von Ogdens Lemma erfüllt.aNzz=uvwxyz

  • Wenn oder x verschiedene Symbole enthalten, dann ist u v 2 w x 2 y L , weil es Symbole in der falschen Reihenfolge gibt.vxuv2wx2yL
  • Mindestens eines von und x muss nur die Symbole a enthalten , da nur die a unterschieden wurden. Wenn also x L ( b ) oder x L ( c ) ist , dann ist v L ( A + ) . Sei p = | v | . Dann ist 1 p N , was bedeutet, dass p N teilt ! . Lass qvxaaxL(b)xL(c)vL(A+)p=|v|1pNpN! . Dann sollte z ' = u v 2 q + 1 w x 2 q + 1 y zu L gehören. Jedoch v 2 q + 1 = ein 2 p q + p = a 2 N ! + p . Da u w y genau N - p Symbole a hat , ist zq=N!/pz=uv2q+1wx2q+1yLv2q+1=a2pq+p=a2N!+puwyNpa Hat 2 N ! + N Symbole a . Aber sowohl v als auch x haben kein c , also hat z ' auch 2 N ! + N Symbole c , was z L bedeutet , und dies widerspricht Ogdens Lemma. Ein ähnlicher Widerspruch tritt auf, wenn x L ( A + ) oder x L ( c ) ist . Wir schließen Lz2N!+Navxcz2N!+NczLxL(A+)xL(c)L ist nicht kontextfrei.

Übung. Zeigen Sie mit Ogdens Lemma, dass nicht kontextfrei ist.L={aibjckd:i=0 or j=k=}

Pumpendes Lemma

Dies ist ein besonderer Fall von Ogdens Lemma, in dem alle Positionen unterschieden werden.

Lemma. Sei eine kontextfreie Sprache. Dann gibt es eine Konstante N , so daß für jedes z L , z geschrieben werden kann als z = u v w x y , so dassLNzLzz=uvwxy

  1. .|vx|>0
  2. .|vwx|N
  3. Für alle , u v i w x i y L .i0uviwxiyL

Satz von Parikh

Dies ist noch technischer als Ogdens Lemma.

Definition. Sei . Wir definieren & PSgr; Σ : Σ *N n durch & PSgr; Σ ( w ) = ( m 1 , ... , m n ) , wobei m i die Anzahl der Erscheinungen ist eine i in w .Σ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

SNn

LΣL

ΨΣ[L]={ΨΣ(w):wL}

L={0m1n:m>n or (m is prime and mn)}

Übung. Zeigen Sie anhand des Satzes von Parikh, dass jede kontextfreie Sprache über ein unäres Alphabet auch regelmäßig ist.


1
Ich habe die Antwort von jmad akzeptiert, weil in der Frage Pumping Lemma ausdrücklich erwähnt wird. Ich weiß Ihre Antwort jedoch sehr zu schätzen. Es ist eine großartige Sache, alle wichtigen Methoden hier sammeln zu lassen.
Raphael

1
Das ist in Ordnung, aber beachten Sie, dass das
pumpfähige

Na sicher. Trotzdem werden die meisten Leute zuerst PL ausprobieren. viele kennen OL nicht einmal.
Raphael

1
Ein Satz von Ginsburg und Spanier, der auf dem Satz von Parikh aufbaut, liefert eine notwendige und ausreichende Bedingung für die Kontextfreiheit im begrenzten Fall. math.stackexchange.com/a/122472
sdcvvc

Können Sie bitte "ausgezeichnete Positionen" in Bezug auf andere Operationen definieren? Oder zumindest informell? Ich finde die Definition von OL wörtlich kopiert an vielen verschiedenen Stellen, aber keiner von ihnen hat sich bisher darum gekümmert zu erklären, was das bedeutet.
wvxvw

34

Verschlusseigenschaften

CFL

LCFLLCFLLCFLLCFL

Dies ist häufig kürzer (und häufig weniger fehleranfällig) als die Verwendung eines der anderen Ergebnisse, die weniger Vorkenntnisse erfordern. Es ist auch ein allgemeines Konzept, das auf alle Arten von Objektklassen angewendet werden kann.

Beispiel 1: Schnittmenge mit regulären Sprachen

L(e)e

L={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

CFLLCFL

Beispiel 2: (Inverse) Homomorphismus

L={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

ϕ(L)={a2nb2na2nnN}.

Jetzt mit

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

L1=ψ1(ϕ(L)))

L1L2=L(abc)L3={anbncnnN}

L3=L2ψ1(ϕ(L))

LCFLL3L3LCFL


Lemma austauschen

Das Interchange Lemma [1] schlägt eine notwendige Bedingung für die Kontextfreiheit vor, die noch stärker ist als Ogdens Lemma . Zum Beispiel kann es verwendet werden, um dies zu zeigen

{xyyzx,y,z{a,b,c}+}CFL

das widersteht vielen anderen Methoden. Dies ist das Lemma:

LCFLcLn2QnLn=LΣnmnm2k|Qn|cLn2ziQn

  1. zi=wixiyii=1,,k
  2. |w1|=|w2|==|wk|
  3. |y1|=|y2|==|yk|
  4. m|x1|=|x2|==|xk|>m2
  5. wixjyiLn(i,j)[1..k]2

n,mQn

Derzeit habe ich keine frei verfügbare Referenz und die obige Formulierung stammt aus einem Vorabdruck von [1] aus dem Jahr 1981. Ich bin dankbar, wenn es darum geht, bessere Referenzen aufzuspüren. Es scheint, dass die gleiche Eigenschaft vor kurzem (wieder) entdeckt wurde [2].


Andere notwendige Bedingungen

Boonyavatana und Slutzki [3] untersuchen mehrere Bedingungen, die Pumping and Interchange Lemma ähneln.


  1. Ein "Interchange Lemma" für kontextfreie Sprachen von W. Ogden, RJ Ross und K. Winklmann (1985)
  2. Austausch von Lemmas gegen reguläre und kontextfreie Sprachen von T. Yamakami (2008)
  3. Die Austausch- oder Pump (DI) -Lemmas für kontextfreie Sprachen von R. Boonyavatana und G. Slutzki (1988)


19

Es gibt keine allgemeine Methode, da die Menge der nicht kontextfreien Sprachen nicht halbentscheidbar ist (akare). Wenn es eine allgemeine Methode gäbe, könnten wir sie verwenden, um diese Menge halb zu entscheiden.

Die Situation ist noch schlimmer, da bei zwei CFLs nicht entschieden werden kann, ob ihre Kreuzung auch eine CFL ist.

Literaturhinweis: Hopcroft und Ullman, "Introduction to Automata Theory, Languages ​​and Computation", 1979.


2
Eine interessante (aber wahrscheinlich fortgeschrittenere und offenere) Frage wäre die Kategorisierung der Unterklasse von Nicht-CFLs, deren Nicht-CFL mit einer bestimmten Methode nachgewiesen werden kann.
Kaveh,

Ich bin nicht auf der Suche nach einer berechenbaren Methode, sondern nach Proof-Techniken für Stift und Papier. Letzteres impliziert nicht notwendigerweise das erstere.
Raphael

13

Eine stärkere Version des Ogden-Zustands ( OC ) ist der

Bader-Mouras Zustand (BMC)

LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. d(vx)1e(vx)=0
  2. d(vwx)ne(vwx)+1
  3. i0uviwxiyL

LBMC(Σ)L

CFL(Σ)BMC(Σ)OC(Σ)

Referenz: Bader, C., Moura, A., Eine Verallgemeinerung von Ogdens Lemma. JACM 29, No. 2 (1982), 404–407


2
Warum gehen Sie nicht einfach den ganzen Weg zu Dömösis und Kudleks Verallgemeinerung ? Dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: Ich wusste es nicht! :-) ... vielleicht kannst du es als neue Antwort posten, die besagt, dass OC, BMC, PC Sonderfälle davon sind (alle unterschiedenen oder keine ausgeschlossenen Positionen).
Vor

Sie können es gerne posten, haben gerade keine Zeit.
András Salamon

Diese Antwort würde von einem Beispiel profitieren.
Raphael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.