Ich habe die folgende Sprache
Ich versuche herauszufinden, in welchen Chomsky-Sprachkurs es passt. Ich kann sehen, wie es mit einer kontextsensitiven Grammatik gemacht werden kann, also weiß ich, dass es zumindest kontextsensitiv ist. Es scheint, als wäre es nicht möglich, mit einer kontextfreien Grammatik zu arbeiten, aber ich habe ein Problem damit, dies zu beweisen.
Es scheint das Gabelpumpen-Lemma zu bestehen, denn wenn alle im dritten Teil eines Wortes (dem Abschnitt mit allen 2 s) steht. Es könnte das v und x so oft pumpen, wie Sie möchten, und es würde in der Sprache bleiben. Wenn ich falsch liege, können Sie mir sagen, warum diese Sprache, wenn ich recht habe, immer noch nicht kontextfrei ist. Wie kann ich das beweisen?
Antworten:
Mit Ogdens Lemma können Sie das Pumpen an einigen Stellen erzwingen , indem Sie beispielsweise alle markieren.
Angenommen, es ist kontextfrei, dann gibt Ogdens Lemma Ihnen ein , Sie geben es w = 0 p 1 p 2 p, was in der Sprache ist, und Sie "markieren" alle Nullen. Dann muss jede Faktorisierung w = u x y z v so sein, dass es in x oder z eine 0 gibt . Sie können auch x = a k und z = b m annehmen, da x x und z zp>0 w=0p1p2p w=uxyzv 0 x z x=ak z=bm xx zz muss Teilzeichenfolgen Ihrer Sprache sein.
Wenn dann hat w = u x 2 y z 2 v mehr Nullen als Einsenz=0...0 w=ux2yz2v
Wenn und z = 1..1, dann hat w = u x 2 y z 2 v mehr Einsen als Zweien .x=0..0 z=1..1 w=ux2yz2v
Wenn und z = 2..2, dann hat w = u x 2 y z 2 v mehr Nullen als Einsen .x=0..0 z=2..2 w=ux2yz2v
So ist kein Wort der Sprache. Daher ist es nicht kontextfrei.ux2yz2v
Weitere Techniken finden Sie in der Diskussion: Wie kann man beweisen, dass eine Sprache nicht kontextfrei ist?
quelle
Das Pump-Lemma sollte Ihr Problem in Bezug auf den dritten Teil des Wortes lösen. Beachten Sie, dass beim Teilen von jede Kombination von u v n w x n y auch in der Sprache vorkommt, auch wenn n = 0 istz=uvwxy uvnwxny n=0 . Versuch das.
EDIT: Wie jmad feststellt , ist das Pumping Lemma wie ein Spiel:
So what you have to do is state a word, break down 3 into cases, and show that for each case you can find ann such that the resulting word isn't in the language.
When you splits=uvxyz , think of all the cases that vxy can fall into. You note that if vxy does not fall into the 2's, then it is easy to pump the 0's and 1's until they outnumber the 2's, and then you have a word that's not in the language. My suggestion is that, if vxy falls into 2 territory, you can also make v and y disappear by setting n=0 , so uvnxynz=uxz . Then by eliminating a 2 you could arrive at a word that doesn't fall in the language.
quelle