Hm. Dienstagmorgen. Ja, grob noch 70, 80. Mal gucken.
Das ist doch schon ein Unterschied zum Montag. Ich kann
das ja verstehen. So, was wir heute machen.
Ich flitze einmal relativ schnell durch die Folien von gestern.
Bleibt an zwei Stellen stehen, wo wir was ähnliches wie gestern dann nochmal machen.
Einmal konstruieren wir nochmal einen anderen PDA und zeigen,
dass der auch dann eben seine Sprache akzeptiert.
Da müssen wir bei dem Beweis ein bisschen, der Beweis wird kniffliger.
Deswegen wollte ich das ganz gerne nochmal zeigen.
Und dann kommen wir nochmal zum Pumping-Lämmer und gucken uns da
auch nochmal ein zweites Beispiel an
Ja, und dann, nach einer halben Stunde hoffentlich ungefähr,
da machen wir noch mal ganz was Neues.
Also, was haben wir gestern gemacht? Wir haben uns damit,
wir haben uns erst mal diese Frage gestellt,
irgendwie bei regulären Sprachen, die konnten wir ja mit Automaten akzeptieren.
Und dann wussten wir, man kann da mit allerlei Sachen machen. Aber wir haben eben auch festgestellt,
so, wenn wir jetzt so eine, für so eine Sprache,
wie eben diese mit denen korrekt geklammerten Ausdrücken,
oder wenn man da so den Kern herausschielt für so eine Sprache wie A hoch NB hoch N,
dann haben wir festgestellt,
okay,
da scheitern wir irgendwie mit unseren Techniken zum Automaten konstruieren
Also für endliche Automaten, weil wir irgendwie diese Anzahl der As
nicht zählen können. Was jetzt noch kein Beweis ist,
dass das nicht mit endlichen Automaten geht,
aber es deutet schon mal darauf hin, so irgendwie,
oh, das wird wohl nicht klappen.
Dann haben wir uns überlegt, wie können wir das Automatenmodell erweitern?
Dann sind wir zu diesen Kellerautomaten gekommen,
wo man eben auf der rechten Seite noch so ein Stack hat,
wo man sich irgendwie Infos merken kann.
Und in dem Beispiel merkt man sich eben die Anzahl der gelesenen Kleinas,
speichert sich dann immer so ein Groß-A auf den Keller und
arbeitet die nachher mit den Bs wieder ab.
Aber die Kernidee ist eben,
dass man nicht nur wie bisher irgendwie auf dem Eingewand nach links und rechts geht,
sondern man hat jetzt eben auch noch diesen Stack,
wo man Daten ablegen kann und immer auf
das oberste Element im Stack kann man zugreifen
Ja, hatten wir die formale Definition,
irgendwie die Anzahl der Zustände, das kannten wir schon,
Eingabealphabet, Sigma kannten wir schon, dann kam neu hinzu,
dieses endliche Alphabet-Gummer mit den Zeichen,
die man auf dem Keller ablegen kann.
Dann die Überführungsfunktion, wo eben wichtig war,
dass der Automat bei diesem Sigma vereinigt mit Lamda,
eben vom Eingabeband auch nichts lesen kann,
aber er muss wegen dem Kreuz Gammer hier auf jedem Fall ein Symbol vom Keller lesen.
Und wenn er das dann tut,
dann macht er eben Zustandswechsel,
das ist das Z hier oben und schreibt irgendwie was Neues
auf den Keller,
das ist das Gammerstern
Und da darf er auch mehr als ein Symbol schreiben. Menge von Startzuständen,
Mengen von Endzuständen kannten wir auch schon vom NFA und dann eben,
um es besonders zu betonen, das Kellerboden-Symbol-Bottom. Ja,
dann konnte man diese Überführungsfunktion auch ins Kantenrelation aufschreiben,
was im Grunde genommen die Kante von dem ersten Zustand aus Zeit
zu dem Zielzustand aus Z ist und das in der Mitte ist die Kantenbeschriftung.
Symbol, was da liest von eingebüllbaren Symbolen,
was da liest vom Keller und Symbole, die er schreiben will auf den Keller. Konfiguration bestand aus Zustand, Wort, das er noch lesen muss und Kellerinhalt Und dann konnte man die Überführungsrelation,
also die Relation von einer Konfiguration,
in eine andere eben so definieren, dass man gesagt hat,
wenn ich in der Konfiguration ZXU, YW bin,
und ich habe dann eben irgendwie die Möglichkeit,
den Übergang tatsächlich zu machen,
wenn ich in Z bin,
das X lese vom Eingeband und das Y lese vom Keller und der Übergang dann eben gegeben ist durch Wechsel ins Z-Strich und schreibe in den Keller Y-Strich,
dann ist das hier eben die Nachfolgekonfiguration und man kann eben sehen,
dass das Y weg ist,
dass anstelle des Y-Styles das Y-Strich steht und dass man auf dem Eingebabelband einfällt,
weiter nach rechts gegangen ist,
zumindest wenn denn das X
nicht Lamm da ist
Was ja eben auch erlaubt ist. Dann haben wir uns zwei Bedingungen definiert, wie dieser PDA-Wörter akzeptieren kann. Das eine ist sehr akzeptiert mit Leam Keller,
da fängt er irgendwie im Staatszustand an,
kriegt ein Eingabewort weh und am Anfang ist das Bottom im Keller,
so sieht die Startkonfigurtion immer aus und wenn er dann eben,
nachdem er gerechnet hat,
das Wort bis zum Ende gelesen hat,
das Eingabewort weh und auf dem Keller nichts mehr ist,
dann würde man sagen,
er akzeptiert dieses Wort weh mit Lea im Keller,
dann ist das in dieser Menge El Lamda A
drin oder wie es im Skript geschrieben wird,
in dieser Menge NA
Und die mit Endzustand akzeptierte Sprache, das sind eben all
die Wörter, wo ich auch in der Startkonfroktion anfange.
Und ich komme dann durch die Rechnung irgendwie dahin,
dass ich das eigene Wort zu Ende gelesen habe und eben
im Endzustand bin, in einem Endzustand bin.
Und der Kellerinhalt durch dieses V symbolisierte Kellerinhalt ist in dem Fall
dann egal. Hatten wir da noch mal bei den,
wenn ich mit Leam Keller akzeptiere,
sind die Endzustände egal, wenn ich mit Endzustand akzeptiere,
dann ist mir der Kellerinhalt am Ende egal.
Und da das Modell nicht deterministisch ist,
reicht es eben immer,
wenn es eine Rechnung gibt,
die irgendwie
diesen Zustand herstellt
Genau, dann einmal kurz als Exkurs, man kann zeigen,
dass beide Akzeptanzbedingungen gleich sind. Könnt ihr euch einfach nur so merken,
dass man das machen kann, wenn wir nochmal Zeit haben,
dann behandeln wir nochmal den deterministischen Kellerautomaten, da werden wir dann feststellen,
dass die beiden Akzeptanzbedingungen tatsächlich unterschiedlich sind. Ja,
dann die informale Funktionsweise, ich fange in diesem Zustand Z-Nuel an,
habe das Bottom im Keller und jetzt kann ich eben immer so wie vorhin beschrieben so einen Übergang machen,
wenn ich im Zustand Z bin, das A lese,
vom eingebewandeltes X vom Keller,
dann kann ich mir eben ein so ein Tubel aus der Menge,
die durch Delta Z-A-X gegeben ist,
auswählen und dann würde ich eben in diesen Zustand Z-Strich wechseln,
das X vom Keller löschen und das W auf
den Keller schreiben
Genau. Dann hatten wir uns angeguckt für A hoch NB hoch Ende,
also die Sprache, die uns am Anfang umgetrieben hat,
wo wir irgendwie vermutet haben,
die können wir wahrscheinlich nicht mit einem DFA berechnen,
dann sind wir eben zu dem Kellerautomaten gekommen und dann hatten wir eben ein,
zwei Beispielrechnungen, wenn wir mit A, A,
B, B, wenn man ihm A, B,
B als Eingabe vorlegt,
das soll ja ein Wort sein,
das er hoffentlich akzeptiert,
dann kann man eben am Anfang zweimal eine Schleife bei Z0
nehmen mit den beiden unterschiedlichen,
mit den beiden unterschiedlichen Übergängen da
Einmal ist eben nur das Bottom noch im Keller,
so zu Anfang ist das Bottom im Keller und dann schreibt man Großad dazu.
Und danach ist ein Großad im Keller ganz oben und dann
schreibt man da eben auch noch ein Großad dazu.
Das heißt, wenn man hier die beiden kleinen As gelesen hat,
dann hat man zwei große As im Keller stehen.
Dann kann man den Übergang nach Z1 machen,
indem man das B liest und ein großes A löschen und
dann kann man in Z1 noch das andere große A löschen und
zu guter Letzt macht man diesen Übergang von Z1 zu Z2 und löscht eben das Kellerbodenzeichen und würde jetzt akzeptieren, weil der Keller dir ist.
Genau. So, dann haben wir uns ja noch ein paar andere Beispiele angeguckt.
Bei A, B, B wird er nicht akzeptieren,
weil er das Wort nicht zu Ende lesen kann.
Da hat er zwar den Keller gelehrt,
aber hat das Wort nicht zu Ende gelesen
Und bei dem Wort AA, da hat er das Wort zwar zu Ende gelesen,
aber der Keller ist nicht leer, wird er auch nicht akzeptieren.
So, dann haben wir uns einmal schnell überlegt,
dass man alles, was man mit dem DFA machen kann,
auch mit dem PDA machen kann, ohne da jetzt ins Detailnummer gehen zu wollen,
die Idee ist, ich benutze den Keller einfach gar nicht.
Dann, zu dem Automaten kommen wir gleich nochmal,
da wollen wir uns nämlich angucken,
was der für eine Sprache akzeptiert und das dann auch beweisen,
dass man die Fragen von gestern, das sind die richtigen Antworten fürs Nachbereiten,
Und dann haben wir uns diesen Automaten auch in Bio-Rennen angeguckt und haben uns da eben im Detail überlegt,
warum der denn jetzt diese Sprache wirklich akzeptiert,
wo dann eben wieder zwei Richtungen zu zeigen,
sind einmal,
dass diese Menge auch in Bio-Rennen tatsächlich von dem Automaten mit ihrem Keller akzeptiert wird.
Die Richtung ist meistens relativ einfach. Man nimmt ein Wort aus
der Sprache M und guckt, dass er das akzeptiert.
Also, dass man irgendwie eine Rechnung angeben kann,
sodass man von der Startkonfiguration zu so einer akzeptierenden Konfiguration kommt.
Und die Rückrichtung war dann eben dementsprechend schwieriger. Da musste man
irgendwie argumentieren, dass der Automat tatsächlich so konstruiert ist,
dass er nur Wörter aus A hoch NB hoch N
akzeptieren kann
Und die Idee hier war eben,
dass man irgendwie anfängt zu argumentieren,
das in Z-0 eben nur kleine As gelesen werden können und dass sich Z-0 danach nie wieder erreiche,
dass ich in Z1 irgendwie nur kleine Bs lesen kann,
aber eben nur so viele wie vorher große As auf den Keller geschrieben habe.
Und dann kann man das alles zusammenmengen und dann hat man
den recht länglichen Beweis
Genau, dann hatten wir kurz drüber geredet,
dass man diese unterschiedlichen Zieltechnik oder diese Zieltechnik eben in unterschiedlichen Kontexten benutzen kann,
wenn man jetzt nicht A, auch in Biochen lesen will,
sondern A, hoch NB hoch 2N oder irgendwie A,
hoch NB, hoch M,
wobei N und M irgendwie zueinander in Beziehung stehen,
also entweder im ersten Fall,
ich will mir As lesen als Bs und im zweiten Fall,
ich will mir Bs lesen als As,
dann kann ich da eben auch mit solchen Zieltechniken arbeiten,
muss eben unter Umständen ein bisschen darauf achten,
irgendwie darf ich am Ende noch Symbole im Keller haben oder
muss am Ende auf jeden Fall das Kellerbodenzeichen da sein,
solche Sachen muss ich dann
irgendwie achten
Und dann die Zähltechniken für Präsenzaufgabe und Übungsaufgabe,
hatte ich dann nochmal so ein bisschen versucht,
einen Tipp zu geben,
die Präsenzaufgabe gucken wir uns ja heute schon in den Übungsgruppen an.
Und die Übungs, da sahen wir dann auch nochmal was zu den Übungsaufgaben.
Da kann man halt auch mit solchen Zählern arbeiten,
muss aber ein bisschen mehr tricksen.
So. Da nochmal die Definition von Prefix. Und soweit,
also da habe ich das erste Mal gestern was übersprungen.
Fragen bis dahin.
Frankfurt mag man
Dann, jetzt wollen wir einen Automaten gleich konstruieren,
der eine bestimmte Sprache wieder akzeptiert.
Dafür brauchen wir diese Definition vom Spiegelwort. Intuitiv ist das
Spiegelwort einfach das Wort W von rechts nach links gelesen.
Oder wenn man das formal definieren will, dann sagt man eben,
die Umkehrung des leeren Wortes ist das leere Wort selbst.
Und dann, wenn ich ein Wort habe,
das irgendwie ein bisschen länger ist, also das Wort UX,
dann schreibe ich jetzt eben das X nach vorne und wende auf dieses U,
rekursiv diese Reverse-Funktion an.
Und dann hat man definiert, dass man Wörter eben umdrehen will.
Und als Beispiel ist sie halt gegeben für W1011 ist eben das umgekehrte Wort,
die Symbole gerade von rechts nach links gelesen, also 1101.
Und dann kann man das
auch auf Mengen verallgemeinern
So, und die Sprache, die wir jetzt akzeptieren wollen,
das ist die hier, also die Sprache,
die aus Wörtern derart besteht, dass zuerst das Wort W kommt.
Und danach kommt das Wort W nochmal, nur eben genau andersrum.
Und die Behauptung ist, dass dieser Automat hier,
den wir in den Hit-Fragen von gestern hatten,
dass der gerade diese Sprache akzeptiert.
So, jetzt hatten wir ja gestern bei den Hit-Fragen gesehen,
dass das irgendwie gar nicht so einfach ist,
überhaupt sich zu überlegen,
welche Worte der dann jetzt nun akzeptiert und welche nicht
Also gegeben ein eigenes Wort, sich überhaupt zu überlegen,
als die Twitter genau dieses eigene Wort,
das macht es dann für die Sprache noch schwieriger.
Das heißt, da müssen wir jetzt wirklich mal versuchen,
gut zu argumentieren. Und von der Konstruktion her ist die Idee,
dass hier oben bei dem Z0,
da wird quasi ein Wort Weh gelesen und ich schreibe das genauso,
wie ich es lese, auf den Keller.
Nur dadurch, dass ich dann ja das erste Symbol,
was ich lese, das wird dann ja ganz unten sein auf dem Keller,
das zweite Symbol, das ich lese,
ist an der zweituntersten Stelle im Keller und so weiter.
Das heißt, das letzte Symbol,
was ich lese, ist ganz oben im Keller.
Das bedeutet, das Wort, das ich gelesen habe,
ist genau andersrum im Keller
Komm, dann, wenn ich mir das erste Symbol im Keller angucke,
komme ich genau an das letzte gelesene Symbol von eben ran.
Das mache ich in Z0 und irgendwann rate ich mir quasi,
dass ich in diesem,
wenn ich hier bei diesem V gleich WWREF gucke,
irgendwo gibt es ja ja diese Grenze zwischen W und WREF.
Irgendwann rate ich mir, dass ich die jetzt erreicht habe
und gehe ohne irgendwie ein Symbol vom Eingabeband zu lesen und
auch ohne irgendwas auf dem Keller zu ändern nach Z1.
So, jetzt bin ich in Z1 und in Z1 kann ich jetzt
das Wort WREF, was ja gerade auf dem Keller ist, abarbeiten
Und das gleiche Wort vom Eingemüllband lesen, das passiert hier
mit diesen Übergängen an Z1. Wenn ich eine Null vom Eingemüllband lese,
dann muss auch eine Null auf dem Keller stehen,
wenn ich eine Eins vom Eingemüllband lese,
muss auch eine Eins im Keller stehen.
Deswegen wird da das Wort VREF gelesen, weil das eben gerade im Keller ist. Und dann,
wenn ich das Wort zu Ende gelesen habe,
dann muss ich gerade wieder in das Kellerbodenzeichen rankommen,
da habe ich alles abgearbeitet und dann mache ich diesen Übergang nach Z2. Das ist die Idee beim Automaten,
jetzt muss man noch beweisen,
dass er das wirklich tut
Genau, und jetzt sind wieder zwei Richtungen zu zeigen.
Erstmal geht man von irgendwie einem Wort aus dieser Menge aus und zeigt,
dass die dann auch von A mit Leam Keller akzeptiert wird.
Nehmen wir uns also so ein Wort V raus,
dass irgendwie diese Form WWRF hat und legen das diesem Automaten vor.
Jetzt kann man sich überlegen, okay,
in Set 0 wird für jede vom Eingabeband gelesene Null eine
Null auf den Keller geschrieben und genauso für die Eins.
Das liegt halt daran, dass hier auf der linken Seite,
immer wenn ich eine Null lese, ignoriere ich quasi,
was auf dem Keller steht,
ich schreibe einfach die Null noch davor.
Das, was im Keller schreibe ich auch wieder rein,
plus noch die Null.
Und bei der Eins mache ich das genauso
Und im Z1 kann man eben nur 0 oder 1 vom Eingewöhnband lesen, wenn das auch im Keller so steht. Ja,
und dann kann man eben sagen, na gut,
nach Konstruktion sehen die Übergänge dann jetzt so aus,
wenn ich eben so ein Wort WWR vorlege,
dann kann ich erstmal das Wort W komplett in Set 0 lesen und da ist ja genau andersrum auf den Keller schreibe,
lande ich in dieser Konfiguration, dass ich jetzt noch,
ich bin immer noch in Z0,
ich habe noch das Wort WREF zu lesen,
das W habe ich also gerade komplett gelesen und ich habe auch das Wort WREF im Keller und dann eben noch das Spottom.
Jetzt könnte ich in Set 0 weiterlesen,
kann auch das ganze Wort in Set 0 lesen,
aber dann würde ich den Keller nicht leer kriegen,
ich kriege den Keller ja nur in Set 2 leer
Also mache ich jetzt den Übergang nach Z1,
ohne irgendwas zu lesen, weder vom Eingabelband,
da stehen ja überall die Lamdas, noch vom Keller,
also streng genommen würde ich im Keller jetzt die Null,
also bei dem ersten Beispiel würde ich die Null vom Keller lesen,
sie löschen und die Null wieder hinschreiben.
Das führt aber dazu, dass ich nichts auf dem Keller
gemacht habe. Wenn ich jetzt in Z1 gelandet bin,
dann kann ich eben auf dem Eingabelband steht noch das Wort VRF und auf dem Keller auch,
das heißt, da steht genau das gleiche Wort,
also kann ich mit den Übergängen hier null vom Eingabelband lesen
und null vom Keller beziehungsweise eins vom Eingabelband lesen und eins vom Keller,
kann ich beide Wörter abtragen.
Also auf dem Eingabelband gehe ich immer weiter nach rechts
und beim Keller lösche ich gleichzeitig immer irgendwie
ein Symbol
Dann muss ich in dieser Konfiguration Z1 Landerbottom landen. Ja,
und wenn ich da bin, kann ich eben zuletzt den Übergang nach Z2 machen,
dann bin ich in Z2 Lander Lander, Wort zu Ende gelesen,
Keller ist leer, also akzeptiere ich das Wort.
Jetzt weiß ich, dass ich ausgegangen von einem Wort,
was in dieser Menge L ist,
ich bin von so einem V aus L ausgegangen,
habe ich jetzt gerade gezeigt,
dass das Wort auch von dem Automaten mit leerem Keller akzeptiert wird,
habe ich die Teilmengenbeziehung schon mal gezeigt.
Was ich jetzt noch machen muss, ist auch zeigen,
dass der Automat tatsächlich nur solche Wörter akzeptiert,
also gegeben irgendein Wort,
das der Automat mit leerem Keller akzeptiert,
zeigen,
dass das
genau diese Form hat
Ja. So, und das wird jetzt schon relativ schwierig,
weil üblicherweise möchte man jetzt irgendwie so Sachen sagen wie,
ja, das sieht man doch.
So, ich habe es doch so konstruiert. Aber wenn man
jetzt hier vielleicht irgendwie eine Kante vergessen hat oder eine zu
viel dran ist oder so, dann klappt das wieder alles nicht.
Deswegen muss man sich genau überlegen, wie man das jetzt beweist.
Und was da hilft, sind meistens so Induktionen über die Wortlänge,
weil man dann immer viel über die Induktionsannahme geschenkt kriegt.
Man kann dann quasi so in die Induktionsbehauptung das reinstecken,
von dem man eigentlich gerade so sagen will, ja,
das sieht man doch. Also beispielsweise sowas wie,
dass wenn ich in Z0 ein Wort gelesen habe,
dass dann genau das umgekehrte Wort auf jeden Fall auf dem Speicher stehen muss.
Das kann man halt mit so Induktionsbeweisen relativ gut machen.
Erstmal, was wir jetzt machen wollen, die Rückrichtung ist schwieriger, wir beobachten zunächst.
Z2 kann nur von Z1 aus erreicht werden und eben nur,
wenn auf dem Keller nur noch das Boardtimm ist.
Kann man da sehen,
Z2 kann irgendwie nur von Z1 aus erreicht werden,
das kriege ich nur hin, wenn ich auf dem Keller
gerade an das Bottom rankomme und das ist auch die einzige Möglichkeit,
das Kellerboden-Zeichen zu löschen.
Das heißt, das muss die Konfiguration oder dass wir unten Z2,
Lamda Lamda, das muss die Konfiguration sein,
in der ich ende, wenn ich mit Lea im Keller akzeptieren will.
Anders geht das gar nicht. Dann kann ich,
in Z2 kann ich es nur gelesen werden. Das heißt,
das Eingebewort muss ich schon im Z1 zu Ende gelesen haben.
Das heißt, es geht auch gar nicht anders,
als so aufzuhören. Ich muss irgendwie in Z1,
Lamda Bottom landen und von da muss ich nach Z2 Lamda Lamda gehen.
Das kann das nicht sein. Ups, falsche Richtung
Und dann kann ich mir noch überlegen,
dass jede akzeptierende Rechnung ins Z0 starten muss.
Das ist ja klar, ist ja der einzige Startzustand,
dass sie dann irgendwie nach Z1 kommen muss und dass sie
von da nie wieder nach Z0 zurückgeht.
Das heißt, ich kann irgendwas in Z0 machen.
Irgendwann gehe ich nach Z1. Und da muss ich dafür sorgen,
dass ich das eingebewortet komplett zu Ende lese oder spätestens da.
Das alles zusammengenommen, heißt es genügt, das hier zu zeigen,
dass ich irgendwie von der Startkonfiguration irgendwie zu der Konfiguration Z1 Lambda What him komme.
Das werden dann genau die Wes sein, die ich akzeptiere.
Und unsere Aufgabe ist jetzt zu zeigen,
dass diese Wes genau die Form VVRF haben
So, was wir machen wollen, wir zeigen ein bisschen was Allgemeineres.
Wir zeigen das nämlich hier für beliebige V. Stört nicht weiter,
wenn das für beliebige V gilt, dann gilt das auch für Bottom.
Damit haben wir dann das gezeigt, was wir zeigen wollen. Und die Aussage,
die wir jetzt zeigen wollen, über die Wortlänge von X ist,
dass, wenn ich X vorlege und es ist möglich,
von hier nach da zu kommen,
dann hat X auf jeden Fall diese Form.
Und wichtig hier ist, wenn das geht,
also ich gehe davon aus, dass das so aussieht,
Dann will ich zeigen, dass X jetzt die Form WWRF hat.
Den Wendteil kann ich jetzt nämlich gleich auch benutzen.
Ihr müsst nicht zeigen, dass diese Übergänge funktionieren,
sondern wir müssten nur sagen, naja, wenn der gilt,
dann hat X auch tatsächlich diese Form.
So, Induktion über die Wortlänge. Da nochmal das,
was wir zeigen wollen, in Kurzform.
Induktionsanfang, Induktion über die Wortlänge zu machen, heißt,
wir fangen mit einem Wort der Länge Null an.
Danach nehmen wir an, dass das Ganze irgendwie für Wörter
der Länge bis zu N-minus 1 gilt und zeigen,
dass es dann auch für Wörter der Länge
enden gilt
Oder wir nehmen an, dass es für Wörter,
bis es der Länge ent gilt und zeigen,
dass es dann für Wörter der Länge entplus 1 gilt.
Also im Grunde genommen,
genauso wie ein Induktionsbeweis für natürliche Zahlen, nur eben,
dass ihr jetzt nicht irgendwie mit 0-1,
2, 3, 4 und so weiter arbeitet,
sondern eben mit der Wortlänge.
Wenn X Lamda ist, dann ist X schon von der gewünschten Form,
dann sieht X nämlich so aus, wie WWRF mit WLAmda.
Dann steht links, X ist gleich Lamda und rechts
steht irgendwie Lamda, Lamda Reff. Das ist auch irgendwie
Lamda. Das heißt, X hat schon diese Form.
Und dann ist es unerheblich, ob der Wendteil gilt oder nicht.
Wenn der Teil hier gilt, dann gilt ja auch das.
Und wenn der Wendteil nicht gilt, gilt das trotzdem.
Das heißt, die ganze Aussage gilt auf jeden Fall
Tatsächlich gilt da auch der Van-Teil, aber braucht man eigentlich gar nicht zeigen.
Man weiß einfach, wenn das Land da ist,
dann ist das schon von der gewünschten Form und ich bin sofort fertig.
Wer sich darin jetzt sehr stört, der zeigt einfach,
dass das für Wörter der Länge 2 gilt,
dann hat er das als Induktionsanfang und dann kann man da drauf aufbauen.
Induktionsannahme, man könnte einfach nur schreiben, gelte die Behauptung für Wörter
der Länge bis zu N-minus 1. Ich mache das meistens so,
dass ich da noch hinschreibe, was das denn jetzt überhaupt bedeutet,
weil man dann weiß, womit man gleich arbeiten möchte.
Also gelte die Behauptung für Wörter der Länge bis zu N-minus 1. Das heißt,
für jedes Wort der Länge bis zu N-minus 1 gilt Wenn
ich bei Vorlage von X in diese Konfiguration Z1 Lander V komme,
dann hat X tatsächlich diese Form WWRF.
Das ist die Induktionsannahme. Und jetzt gehen wir über zu Worten der Länge N. Nuktionsschritt. So,
sei x mal so ein Wort, 1 bis AN,
der Länge N, mit dieser Eigenschaft, dass ich,
wenn ich das dem Automaten vorlege, im Staatszustand Z0,
dass ich dann zu Z1 Lander komme für irgendeinen Keller in halt V. Wichtig hier jetzt,
um das nochmal zu betonen, wir wollen zeigen,
wenn das hier gilt, Dann hat X diese gewünschte Form.
Dann sind wir nämlich fertig, weil wir wissen schon,
wenn der Automat akzeptiert, das haben wir nämlich eben schon gemacht,
wenn der Automat akzeptiert,
dann gibt es gar keine andere Möglichkeit als irgendwie von Z0X,
Bottom zu Z1, Lamberbottom zu kommend nach Konstruktion.
So, genau, das wissen wir, das wollen wir zeigen.
Jetzt kann man sich überlegen, wie diese Rechnung denn hier
aussehen kann. Das kann man sich zuerst überlegen,
dass der erste Schritt nicht gewesen sein kann,
nach Z1
zu gehen
Also ich kann nicht gleich zu Anfang irgendwie eine dieser drei
Kanten benutzt haben und von Z0 nach Z1 gegangen sein.
Warum nicht? Weil ich in Z1 ja nur noch den
Kellerinhalt löschen kann. Wenn ich aber den Kellerinhalt lösche,
dann wird dieses V hier, der Kellerinhalt, wird ja weniger.
Das heißt, ich werde nicht bei dieser Konfiguration gelandet sein.
Nach Voraussetzungen bin ich aber von Z0X eben zu diesem Z1
Lander gekommen und habe immer noch V auf dem Keller.
Also kann das hier nicht der erste Schritt sein,
weil ich in Z1 nur noch Buchstaben vom Keller löschen würde,
müsste mindestens einen Buchstaben löschen oder habe ich nicht mehr V auf dem Keller,
weil ich nie wieder was auf dem Keller schreibe,
wenn ich schon bei in Z1 bin
Kann also nicht der erste Schritt sein. Das heißt,
der erste Schritt muss irgendwas hier oben gewesen sein.
Ich muss irgendwie ins Z-0 geblieben sein. So,
jetzt wird es ein bisschen wild. Der erste Schritt wird
also, X war ja das Wort A1 bis AN.
Der erste Schritt wird also gewesen sein, dieses A1 zu
lesen in Z-0 und ist auf den Keller zu schreiben.
Jetzt weiß ich ja aber, weil ich auch wieder
nach Voraussetzung irgendwann nur noch V auf dem Keller habe.
Also ich komme ja von dieser Konfiguration zu der Konfiguration.
Das heißt, ich habe nur eine V auf dem Keller.
Das heißt, ich muss ganz zum Schluss dieses A1 auch
irgendwie löschen
So, das kann aber nur in Z1 geschehen.
Das heißt, der letzte Schritt muss so aussehen,
dass ich, wenn ich noch das letzte Eingabesymbol lese,
ich dann dieses letzte Eingabesymbol eben lese und A1 vom Keller lösche.
Das muss der letzte Schritt irgendwie sein. Sonst kriege ich
das A1 dann nicht weg. Jetzt kann man sich wieder
die Kanten an Z1 ansehen und dann weiß man,
dann muss ja AN das Gleiche sein wie A1,
weil das die einzigen Übergänge in Z1 sind.
Dann wissen wir weiterhin, dass ihr ja nach Voraussetzung,
da sind wir davon ausgegangen, wir haben ja gesagt,
wenn das gilt, dann düdüdüm. Und wenn man das jetzt alles zusammenbröselt,
dann weiß man, ich bin ja hier angefangen,
Z0XV, das ist das Gleiche wie das hier oben,
Z0A1A2 bis ANV, dann weiß ich,
der erste Schritt war dahin, dann weiß ich,
ich bin von hier irgendwie dahin gekommen,
zu diesem Z1ANA1 und von da zu diesem Z1 Lambda.
Also so sieht das Ganze aus. Der Konfiguration startet,
das A1 gelesen und auf den Keller geschrieben,
irgendwelche anderen Schritte gemacht,
sodass ich bei der Konfiguration gelandet bin und als letztes
dann zu Z1
Insbesondere, das hier in der Mitte. Und jetzt kann man das AN vom Eingebeband,
das habe ich ja gar nicht benutzt,
ich gehe ja auf dem Eingebeband immer nur von links bis rechts,
wenn ich hier bis dato das AN noch gar nicht benutzt habe,
um da hinzukommen, dann kann ich das auch gleich weglassen.
Das wird sich an der Rechnung nichts ändern. Das heißt,
die Rechnung da oben ist gleichbedeutend mit der Rechnung ganz unten,
dass sich nur das Eingebebewort A2 bis AN minus 1 vorlege
und eben zu Lamda komme auf der Eingabe.
So, und das ist jetzt schön, weil das Wort
A2 bis AN minus 1 hat ja die Länge N minus zwei.
Also insbesondere weniger als N. Und weniger als N ist toll,
weil jetzt kann ich die Induktionsannahme anwenden. Jetzt weiß ich,
wenn das hier gilt, was halt gilt,
dann muss dieses Wort A2 bis AN minus 1 die Form
UURF haben für irgendein Wort U.
Nach Reduktionsannahme. Das ist ein Wort der Länge,
das war kleiner als N, sodass die Eduktionsannahme anwendbar ist.
Es gibt also ein V derart, dass ich dieses A2
bis 1 minus 1 schreiben kann als VVRF.
Und jetzt weiß ich ja noch von vorher
von dem Schritt hier oben
Von dem hier, das musste ja der letzte Schritt sein und das muss ein Schritt sein,
den ich in Z1 gemacht habe und in Z1 kann ich nur gleiche Symbole vom Eingabeband lesen, wie sie gerade im Keller sind. Das heißt,
hier war AN gleich A1. Jetzt wissen wir also schon A2 bis 1,
minus 1 hat diese Form und wir wissen,
eins ist das gleiche wie AN,
wenn wir uns jetzt also vorne und hinten noch das A1 und das AN hinschreiben,
dann haben wir wieder unser ganzes ursprüngliches Wort X,
eins bis AN, dann hat das diese Form A1,
V, dann VRF AN, was das gleiche ist,
VA1,
VVF A1 und dann ist eben A1V,
das eine Wort und VRF A1 ist das Wort
genau umgekehrt
Das heißt, wir sind angekommen bei so einem Wort WWF.
Und sind fertig. Der, der die Aufgabe auf
den Präsenzaufgaben, die ist noch ein bisschen trickyer.
Da kommt man relativ gut auf den Automaten und dann halt zu beweisen,
dass er das tut, was er tun soll.
Da muss man auch wieder mit so einer Induktion ran
Wenn ihr das ein paar Mal gemacht habt, entwickelt ihr dafür ein Gefühl.
Im Grunde genommen baut ihr das, was ihr so intuitiv,
ihr baut irgendwie einen Automaten und ihr habt ja eine gewisse Vorstellung,
was in den einzelnen Zuständen passiert.
Also bei dem Automaten eben hatte man irgendwie die Vorstellung,
wenn man den konstruiert, dass man in Z0 eben dieses
erste Wort W lesen will und in Z1 dann dieses Wort WRF abtragen will.
Und die Idee bei all diesen Beweisen ist immer,
dass man genau diese Konstruktionsideen irgendwie versucht, in die Induktion reinzubauen.
Und mit ein bisschen Übung kriegt ihr da auch ein Gefühl für.
Und das ist halt nachher genauer, als wenn ihr sagt,
ja,
das müsste so sein
Müsste so sein, das ist immer so ein bisschen kritisch. Das heißt,
man muss irgendwie schon versuchen zu argumentieren und diese Induktionen sind eben
ein wunderbares Hilfsmittel, weil man relativ viel dann benutzen kann.
Also hier zum Beispiel kann man dann die Induktionsannahme benutzen.
Meistens läuft es darauf hinaus, dass man dann sagt,
ja, nach Induktionsannahme gilt das und das und jetzt braucht
man sich nur noch einmal alle Kantenübergänge angucken und weiß,
ja, ist genauso, wie ich mir das vorgestellt habe.
Ja, dann funktioniert das nicht. Ja,
man konnte auch eben sehen,
dass wir sind von dem Wort der Länge N
zurückgegangen auf ein Wort der Länge N
minus zwei
Das heißt, streng genommen funktioniert dieser ganze Induktionsbeweis für 0,
2, 4, 6, 8 und so weiter.
Und die Worte dazwischen, die machen nichts,
weil die werden weder in der Sprache M sein,
noch von dem Automaten akzeptiert werden, weil diese Worte WWF,
die müssen ja gerade Länge haben.
Das heißt, die Ungraden brauchst du ja eigentlich
gar nicht angucken. Also man kann sich vorher überlegen,
dass ungrade Worte weder in der Menge M drin sind,
noch von dem Automaten akzeptiert werden können. Schade,
bei dem Beweis aber nichts, weil der Beweis halt sagt,
wenn ich von Z0 eben zu diesem Z1 komme,
dann hat das Wort eben den Aufbau WWF.
Fertig. Und daraus ergibt sich eigentlich,
dass es dann gerade länger haben muss
Dann nachfragen. Ja, die Frage, die euch
alle umtreibt, müssen wir sowas in der Klausur machen?
Nein. Also bei der Klausur gibt es so möglicherweise so
Fragen wie irgendwie gegeben die Sprache konstruieren sie im PDA.
Aber wenn man dann eben begründen soll,
dass der die Sprache akzeptiert, werden das meistens Konstruktionen sein,
wo das eben schneller geht.
Also wo man eher so argumentieren kann,
wie bei den einfachen Beispielen vom DFA,
die wir so hatten
Sag mal stopp. Sonst nochmal,
ich habe noch nicht gehört,
wo soll ich hingehen
Das hier ist ja die Annahme, ne? Und wir nehmen an,
dass diese Aussage jetzt für Worte der Länge bis zu N minus 1 gilt.
Also für Worte der Länge 1, 2, 3,
4, 5 bis zu N minus 1. Das ist als Induktionserlame ja auch immer okay.
Also du kannst ja auch,
wenn du eine Aussage für alle natürlichen Zahlen zeigen willst,
dann ist der Standardweg zu sagen,
gelte das für null und dann nehme ich an,
Quatsch, der Standardweg zu zeigen,
dass es für null gilt und dann nehme ich an,
dass es für N gilt und zeige das Fan plus 1 gilt.
Man kann aber auch, was Qualent ist, zeigen,
dass es für null geht und jetzt annehmen,
dass es für alle Zahlen bis zu Ende gilt und dann
eben das noch für N plus 1 gilt
Er macht ja nichts, das ist ja nur die Annahme.
Ja, wir nehmen an,
dass es für alle Worte der Länge bis zu N-minus 1 gilt,
unter anderem für N-minus 2 wird es auch gelten.
Das ist jetzt für N-minus 1 dann gar nicht gilt,
so, macht nichts. Also Fan-minus 1 gilt halt dieser Van-Teil
gar nicht, ich kann das da gar nicht machen.
Damit gilt die ganze Aussage immer noch.
Gelte für alle natürlichen Zahlen gilt, wenn die Zahl,
also für alle natürlichen Zahlen N gilt,
wenn N gerade ist,
ist sie durch zweiteilbar
Dass es jetzt auch ungerade Zahlen gilt,
die eben nicht durch zwei Teile sind.
Es macht nichts. Die ganze Aussage ist ja,
wenn N gerade ist, dann ist sie durch zweiteilbar.
Und das ist hier so ähnlich, dass das irgendwie für un,
für ungerade N minus eins nicht gegeben ist,
macht nichts, weil dann dieser Van-Teil nicht gilt.
Damit gilt die ganze Aussage immer noch.
Ich spiele das mittlerweile. So. Genau. Guckt euch das
zu Hause nochmal an und guckt euch dann insbesondere auch
die Musterlösung zur Präsenzaufgabe an
Da kann man auch schön sehen irgendwie,
wie man diese Induktionsbehauptung aufstellt und wie man die dann benutzen kann,
um eben zu zeigen, dass der Automat tatsächlich korrekt arbeitet.
Gut. Von dem Beweis ein bisschen weg, allgemein diese Technik,
dass ich irgendwie ein Wort oder ein Teilwort lese und genauso
auf dem Keller schreibe, führt eben immer dazu,
dass dieses gelesene Teilwort jetzt gerade umgekehrt auf dem Keller liegt.
Und es gibt halt unterschiedliche Fälle, wo man damit
irgendwie arbeiten kann. Das sind so die zwei Techniken,
die ihr euch irgendwie nochmal merken solltet.
Das eine ist irgendwie mit so einem Zähler zu arbeiten und
das andere ist eben,
dass ich irgendwie Teilwort auf den Keller schreiben kann und dass
die dann eben
genau in umgekehrter Reihenfolge auf dem Keller liegen
So, dann, das war die Zusammenfassung,
was wir halt alles bis zu diesem Zeitpunkt gemacht hatten.
Jetzt stimmt das auch hier unten, das haben wir jetzt auch gemacht.
Und dann haben wir gesagt, okay, jetzt wissen wir also,
dass A hoch NB hoch N oder eben auch WWEF,
dass das mit dem PDA geht und wir haben irgendwie die Vermutung,
dass das mit dem DFA nicht geht,
aber wir hatten irgendwie noch kein Tool,
um das zu zeigen.
Und dann haben wir uns überlegt, naja,
vielleicht können wir irgendwie eine Eigenschaft X formulieren, die für alle regulären Sprachen gilt.
Und wenn wir so eine Eigenschaft X hätten und zeigen könnten,
dass die Sprache A auch NB hoch Endy nicht hat,
dann wissen wir, die Sprache ist nicht regulär.
Und dann haben wir uns überlegt, okay,
was könnten wir für Eigenschaften ausnutzen, die für alle regulären Sprachen gelten?
Und dann haben wir uns überlegt, okay,
reguläre Sprachen zeichnet insbesondere aus,
dass sie von einem endlichen Automaten akzeptiert werden,
endliche Automaten zeichnet insbesondere aus,
dass sie endlich
viele Zustände haben
So. So, und genau, jetzt, dann war die Überlegung,
wenn ich also einen Automaten mit endlich vielen Zuständen habe,
nehmen wir mal an, der hat zehn Zustände.
Wenn ich dem jetzt ein Wort vorlege, der Länge,
also streng genommen, reicht die Länge zehn,
aber nehmen wir einfach ein Wort der Länge 20.
Wenn ich in Wortelänge 20 lese,
was von dem Automaten akzeptiert wird,
dann muss er halt beim ersten Buchstaben einen Zustandsübergang machen,
beim zweiten Buchstaben, zweiten Zustandsübergang und so weiter.
Also insgesamt muss er
20 Zustandsübergänge machen
Und er hat 20 Zustandsübergänge gemacht und ich habe nur zehn Zustände,
müssen irgendwie Zustände doppelt auftreten. Und dann ist die Idee,
jetzt nehme ich mir halt irgendwie den Zustand,
der das erste Mal ein zweites Mal auftritt.
Und der muss ja spätestens, um in dem Beispiel mit
dem zehn Zuständen zu bleiben, dass man spätestens der elfte Zustand sein.
Ich habe die Möglichkeit, zehnmal unterschiedliche Zustände zu besuchen.
Der elfte muss spätestens einer sein, den ich schon mal besucht habe.
Jetzt kann ich, nehmen wir mal an,
der tritt tatsächlich erst an elfter Stelle auf und von mir aus an dritter Stelle.
Jetzt kann ich dieses Wort so zerlegen, dass ich sage,
vom ersten bis zum zweiten Zustand, das ist irgendwie ein Teilstück,
vom dritten bis zum elften, das ist eine Schleife,
weil da bin ich ja von diesem Zustand Z,
was auch immer, Z3, losgegangen,
bin irgendwie durch die Gegend gelaufen und bin,
der elfte Zustand war wieder Z3. Das heißt,
ich bin da irgendwie nur Schleife durch den Automaten gelaufen.
Und dann bin ich von diesem Z11 eben zu meinem Endzustand gegangen,
irgendwie der 20. Zustand, den ich besucht habe.
Und die Idee ist jetzt, wenn ich dieses Wort also akzeptiere,
dann muss es ja egal sein,
ob ich diese Schleife jetzt einmal entlang gegangen bin,
weil wenn ich von irgendwie Z3 wieder zu Z3 gehe,
das kann ich auch sein lassen und diesen Exkurs halt nicht machen,
sondern direkt zum Endzustand gehen.
Oder ich kann die Schleife einmal entlang gehen oder irgendwie zweimal
, dreimal und so weiter.
Und alle diese Wörter müssen ja akzeptiert werden.
Das ist die Idee beim Pumping-Lemmer
Und das war dann die Formulierung, wenn ich eine reguläre Sprache L habe,
dann gibt es so eine natürliche Zahl N im Beweis eben die Anzahl der Zustände des Automaten,
der L akzeptiert, sodass sich jetzt jedes Wort, was in L ist,
was also vom Automaten akzeptiert wird und das eine gewisse Länge hat,
nämlich so viele, wie ich Zustände habe.
Dieses Wort kann ich zerlegen in eben so einen vorderen Teil UV,
der kleiner sein muss als N,
das ist der Teil, bis der erste Zustand auftritt,
der gerade das zweite Mal kommt, die Schleife muss die Länge haben,
mindestens eins und dann weiß ich eben,
ich kann die Schleife beliebig oft entlang gehen und alle diese Wörter,
die dabei entstehen, also UV-Hoch 0W,
also das Wort UW und UV-Hoch-1-W-UV-W-U-V-V-V-V-W und immer so weiter,
die müssen alle auch von dem Automaten akzeptiert werden.
Beweis, wollen wir nicht nochmal Detail machen?
Wie gesagt, guckt euch den auch nochmal zu Hause an.
Man kann eine Menge über die endlichen Automaten lernen,
wenn man eben diesen Beweis verstanden hat
So, wenn man das jetzt benutzen will, das Schöne ist ja,
das hier ist gerade so eine Wenn-Dann-Beziehung. Hier steht,
wenn eine Sprache regulär ist, also da steht sei,
aber kann man auch lesen, als wenn eine Sprache regulierst,
dann... So, und wenn man jetzt zeigen kann,
dass irgendeine Sprache diesen Dannteil nicht erfüllt,
dann kann sie auch nicht regulär sein.
Wenn sie regulär wäre, dann würde sie ja gerade diesen
ganzen Danteil erfüllen. Und das wollen wir jetzt ausnutzen.
Wenn wir jetzt eine Sprache kriegen und wir wollen zeigen,
dass die nicht regulär ist, dann werden wir annehmen,
die wäre regulär. Und dann sagen, okay,
dann muss es ja nach diesem Pumpinglammer,
wenn die nämlich regulär ist,
dann muss es ja eine natürliche Zahl N geben
Sagen wir, okay, die benennen wir jetzt irgendwie,
nennen wir die halt N,
sodass jetzt jedes Wort mit diesen zwei Eigenschaften,
dass es in L ist und größer gleich Ende ist,
eben so zerlegt werden kann, dass die Zerlegung drei Eigenschaften erfüllt.
Das heißt, was wir machen müssen, ist, wir zeigen,
dass es ein Wort gibt, dass diese beiden Eigenschaften hat,
in L zu sein und größer gleich End zu sein.
Derart, dass jede Zerlegung in UVW im Widerspruch zu einer
der drei Eigenschaften steht. Und dann ist man fertig.
Dann hat man Widerspruch hergestellt. Also an dem L wäre regulär,
die Zahl aus dem Pumping-Lämmer benennen, ein Wort-Z finden,
das eben diese beiden Eigenschaften hat,
dass es in L ist und von der Länge her
mindestens klar ist
Dann für alle Zerlegungen in UVW zeigen,
dass ich einen Widerspruch machen kann und üblicherweise macht man das eben so,
dass man nur Zerlegungen betrachtet,
die die ersten beiden Bedingungen erfüllen und zeigt,
dass die dann auch die dritte Bedingung,
dann zeigt das die dann der dritten Bedingungen widersprechen.
Genau, also alle Zerlegungen von Z in UVW mit UV-Kleiner
gleich K&V-Größe gleich eins betrachten und zeigen,
dass man dann ein I findet, derart,
dass dieses UV-IW nicht in Älteren ist.
Und da auch nochmal als Anmerkung, ich glaube,
ich habe das irgendwie auf drei oder vier Folien,
dieses I kann eben auch null sein.
Manchmal ist das eine gute Möglichkeit zu zeigen,
dass irgendwas nicht klappt
Ja, und dann hatten wir einmal als Beispiel AhochNB
hochN. Gehen wir das nochmal durch. Angenommen, die Sprache wäre regulär.
Dann gilt das Pumpinglemmer, sei klar die Zahl aus dem Pumpinglemmer.
Das kann man immer so hinschreiben, alles.
Da tut sich noch nichts. Und jetzt muss man sich
eben überlegen, welches Wort man wählt.
Wählen wir mal, wir betrachten das Wort AhochKB hochK.
Dann wissen wir, dass es in Älteren,
und das ist von der Länge her mindestens Ka,
es hat die Länge
Dann muss es nach dem Pumpinglam mal so eine Zerlegung geben,
die die drei Eigenschaften erfüllt. Und jetzt kommt eben das,
wir betrachten nur jene Zerlegung, die die erste,
zweite Eigenschaft erfüllen und zeigen, dass diese Widerspruch zur dritten stehen.
Dann hat man gezeigt, dass jede Zerlegung irgendwie eine der drei Bedingungen verletzt.
Wie kann man das machen? Sei das also eine Zerlegung
mit erstens UV-Kleidergleich K und zweitens V größer gleich eins.
Wenn ihr euch das anguckt,
ihr habt jetzt also KAs vorne stehen, gefolgt von KBs.
Und das wollte jetzt aufteilen in UVW,
wobei UV eben vorne in dem Wort drin ist.
Wenn UV von der Länge kleiner gleich K ist,
dann kann das nur in den ersten As
drin sein
Es gibt KAs, UV soll die Länge Kleider gleich K haben.
Es muss mit dem ersten Symbol anfangen. Ich kann K-Symbole
auswählen. Das muss in den ersten KAs drin sein.
Und weil ich ferner weiß, dass V mindestens die Länge eins hat,
weiß ich, V besteht irgendwie nur aus As.
Ist irgendwie ein A-Plus drin. Mindestens ein A und eben
genau genommen bis zu K-Fiele. Jetzt kann man das
so parametrisieren. Es gibt irgendwie ein J,
das zwischen 1 und K ist,
der hat das V eben diese Form A hoch
J hat
Und auch wichtig hier oben, sagen wir, sei also zgleich UVW,
eine Zerlegung, die diese ersten beiden Bedingungen erfüllt.
Dadurch, dass du die da nicht genau spezifizieren,
betrachten wir alle Zerlegungen, die den ersten beiden Bedingungen widersprechen,
die die ersten beiden Bedingungen erfüllen.
Und da ist eben auch diese Parametrisierung. Für jedes J
zwischen 1 und K haben wir genau eine Zerlegung gerade.
Und bei all diesen Zerlegungen führt,
geht aber der Widerspruch auf die gleiche Art und Weise.
Man betrachtet das Volt-UV-Quadrat-W. Da hätte man jetzt ja dieses A-Hoch-KB
hochkam und das V, was irgendwie in den Ars drinsteckt,
da schreibt man da jetzt zweimal hin.
Das heißt, es kommen genau J-Fila As hinzu
Müsste nach der dritten Bedingung NL sein, aber auch
Caplos JB hoch K ist dann eben nicht mehr NL.
Ursprünglich Anna muss falsch sein, ähnlich regulär.
Wir hatten nur eine Annahme, nämlich dass er regulär wäre.
So, und an der Stelle wussten wir, okay,
der PDA kann tatsächlich mehr als der DFA.
Vorher war das eine Vermutung, jetzt haben wir es bewiesen.
PDA kann tatsächlich mehr als der DFA
Da nochmal die Fragen aus dem, mit dem Hit.
Wovon muss das gewählte Wort Z abhängen? Richtige Antwort war
die dritte, von der Zahl aus dem Pumpingglammer,
die nicht mehr genauer spezifiziert werden muss.
Ja, ich sage einfach Saika,
die Zahl aus dem Pumpingglammer und dann arbeite ich irgendwie damit.
Wie viel Zerlegungen müssen betrachtet werden? Ganz wichtig,
das erste und das vierte kann nicht sein.
Da steht nämlich irgendwie so ein Wort eine.
Eine Zerlegung musste Widerspruch gebracht werden. Nee, man muss
eine Zerlegung mit bestimmten Eigenschaften auch nie. Das zweite,
alle Zerlegung von Z müssen zum Widerspruch gebracht werden,
beziehungsweise alle Zerlegungen mit bestimmten Eigenschaften,
wenn man jetzt sagt, okay,
ich betrachte nur die Zerlegung,
die erstens und zweitens erfüllen
Und zuletzt kann mit dem Pumping immer gezeigt werden,
dass seine Sprache regulär ist, nein,
weil die Aussage geben ist, wenn eine Sprache regulierst,
dann gilt das und nicht andersrum.
Das auch zur Nachbereitung. Dann nochmal,
weil wir die Sprache eben mit dem Automatenjahr hatten,
wenn wir diese Sprache WWRF uns angucken.
Jetzt wollen wir auch da zeigen, dass die nicht regulär ist.
Erstmal wieder das Gleiche, angenommen Elvia regulär,
dann gilt das Pumpinglemmer, sei Kar die Zahl aus dem Pumpinglemmer.
So, und jetzt kommt dieser Punkt,
wo man sich jetzt irgendwie ein Wort überlegen muss,
das eben in der Sprache L drin ist und das von der Länge her mindestens K ist.
Und das Wort muss man sich so überlegen,
dass das irgendwie zum Widerspruch geführt werden kann
Wenn ich jetzt so, wie eben versuche,
sowas wie 0 hoch K1 hoch K zu nehmen,
dann wird das nicht funktionieren, weil das nicht in Älteren ist.
Wenn ich sowas nehme wie 0 hoch K,
0 hoch K, dann ist das zwar in Älteren,
erstmal das Wort 0 hoch K und das Wort rückwärts gelesen,
das ist wieder 0 hoch
Karls, habe ich also 0 hoch 2 K. Das ist
zwar in Älteren, hat auch die richtige Länge,
das werde ich mit Pumpen aber nicht zum Widerspruch führen können.
Weil ich bei der Zerlegung,
wo V genau 2 Nullen sind,
kann ich da beliebig oft dran pumpen und ich kriege immer wieder ein Wort,
das aus gerade vielen Nullen besteht und das weswegen eben die gewünschte Form hat.
Das wird also auch
nicht funktionieren
Brauchen wir also irgendwie ein längeres Wort? Nehmen wir uns irgendwie sowas.
0 hoch K, 1 hoch K, 1 hoch K, 0 hoch
K. Das ist in El drin und halt ist eben auch länger als K,
die Länge 4K. Und mit ein bisschen Übung sieht man relativ schnell,
dass das nicht funktionieren wird,
weil irgendwie das V ist vorne in den Nullen drin,
wenn ich da dran pumpe,
habe ich irgendwie vorne mir Nullen als hinten,
wird nicht mehr in Älteren sein.
Ausgeführt,
seit Setgleich UVW eine Zerlegung,
die die ersten beiden Eigenschaften erfüllt,
dann genau wie eben folgt das V gleich 0 hoch J
ist für irgend so ein J zwischen 1 und K. Sprich
das V muss hier vorne in den ersten Kanullen
drin sein
Und dann kann man das aber auch wegfallen lassen, also das Wort UV hoch 0W betrachten,
dass sie dann so aus, dass ich hier vorne K-Minus-J-Nullen habe,
das ist nicht mehr ein L. Sprich, die dritte Eigenschaft des Pumping-Lämmers gilt nicht,
Annahme muss falsch sein, L ist nicht regulär. Bei den Beispielen,
die wir üblicherweise erstmal so haben, am Anfang,
da muss man meistens nur sich diese Sprache hier irgendwie angucken,
also beispielsweise über sowas wie A hoch NB hoch N,
guckt man sich die Sprache an und sagt einfach,
okay, ich ersetze dieses N durch die Zeit Chaos,
den Pumping-Lämmer, bei relativ vielen Sprachen funktioniert das schon,
bei der hier musste man ein bisschen mehr überlegen
Meinen auch komplizierteren Sprach muss man eben nochmal überlegen,
aber üblicherweise sieht man das Wort relativ schnell,
mit dem das funktioniert, einfach indem man irgendwie Variablen ersetzt.
Ja, was kommt da noch? Das nochmal,
der Ablauf von dem Pumping-Lämmer, die Anmerkung,
dass man sich eben bei dieser Zerlegung,
wir müssen uns ja alle Zerlegungen ansehen und meistens klappt das aber ziemlich gut mit so einer Parametrisierung.
Wir hatten jetzt eben in beiden Fällen,
dass wir entweder gesagt haben,
V ist null hoch J im letzten Beispiel oder im Beispiel
davor VSA hoch J und dass das J dann eben irgendwie gewandert ist,
dann hat man die Zerlegung parametrisiert und betrachtet eben dadurch
alle Zerlegungen
So. Und das hatten wir dann gestern alles gemacht.
Fragen bis dahin. Dann Mal anfragen. Mal gucken. Also,
was ihr mitnehmen solltet, PDA und wie der funktioniert,
dass der PDA tatsächlich mächtiger ist als der DFA,
also dass der alles kann,
was der DFA kann und eben noch mehr,
illustriert an dem Beispiel A hoch
NB hoch N. Dass man das Pumping dabei benutzen kann,
um eben zu zeigen, dass eine Sprache nicht regulär ist.
Was ihr üben sollt in den Präsenzaufgaben,
wie man so ein Automaten konstruiert und eben,
wie man dann beweisen kann, dass er das Richtige tut.
Das solltet ihr in einem relativ schwierigen,
also der Beweis wird an etwas relativ Schwierigem geübt,
damit ihr nachher, wenn dann die Klausur kommt und da
das Niveau dann irgendwie unter den Präsenzaufgaben ist und sagt,
oh,
das ist aber einfach.
Und beim Pumping, dann sollt ihr noch das Pumpinglemmer üben.
Das Pumpinglemmer ist so ein typisches Ding,
was eigentlich immer in den Klausuren drankommt,
aber das kommt dann an so Sachen, weiß ich nicht.
Also vielleicht kommt da genau A hoch in B
hoch N oder irgendwie was sehr, sehr ähnliches.
Das reicht meistens schon. Also man kann sich ja überlegen,
dass man den quasi gleichen Beweis auch für die Sprache A
hoch NB hoch 2 N machen kann.
Dann Kontextfreisprache. Wir verlassen mal für einen Moment dieses Gebiet
der Automaten
Und machen wir mal was ganz was anderes. Bisher haben wir
uns Automaten angeguckt und die Automaten konnten Wörter akzeptieren. Das heißt,
wir haben denen irgendwie ein Wort vorgelegt und da hat der Automat
irgendwie gearbeitet und entweder hat er am Ende ja oder nein gesagt.
Jetzt wollen wir uns Grammatiken angucken, die Wörter generieren. Ja,
also SE1 und sowas, vielleicht wahrscheinlich, könnte ich mir vorstellen,
habt ihr schon mal bei Programmiersprachen so was Grammatikartiges gesehen,
wenn man beispielsweise definieren will, wie so ein Identifier in der Programmiersprache aussieht.
Dann will man üblicherweise sagen,
dass das irgendwie eine Zeichenkette aus Buchstaben und Zahlen sein kann,
die aber nicht mit einer Zahl beginnen soll
Also üblicherweise hat man sowas wie Foo 1, Foo 2,
Foo 3 oder so, aber eben nicht 1,
Foo 2, Foo oder sowas, das ist das üblicherweise verboten.
Kann man jetzt so definieren, dass man sagt,
so ein Identifier ist entweder ein Buchstabe.
Oder eben ein Identifier gefolgt von einem Buchstaben oder eben ein Identifier gefolgt von einer Zahl.
Und ein Buchstabe ist eben ABC, DEFG und so weiter.
Und eine Zahl ist eben 0, 1, 2,
3, 4 bis hin zu 9. Und hier kann man halt erkennen,
wenn ich das jetzt irgendwie aufdrösel mit diesem Identifier-Letter oder diesem Identifier-Digit,
dieser Identifier wird immer ganz vorne stehen und den muss ich irgendwann zu diesem Buchstaben ableiten,
sprich,
ich kann nicht mit einer Zahl beginnen.
Hinten können Zahlen kommen, aber vorne muss ein Buchstabe stehen
Etwas kompaktere Schreibweise für das da oben E für Identifier,
L für Letter, D für Digit. Ich kann von I nach L gehen,
ich kann von I nach EL gehen,
ich kann von I nach ID gehen,
ich kann von I nach A,
B oder C gehen und von D zu 0, 1,
2, 3, 4. Was ist das denn ein bisschen kompakter?
Und jetzt kann man sich eben so eine mögliche Ableitung eines Ventifiers angucken.
Das Ziel soll sein, irgendwie zu A, B,
C 1 zu kommen. Jetzt weiß ich also,
ganz hinten muss die Zahl stehen und wenn man sich die Regeln
hier anguckt von diesem Identifier, das E wandert quasi nach vorne.
Das heißt, ich werde irgendwie anfangen mit der Zahl hinten,
also ist meine erste Ableitung,
die ich benutzen möchte von E zu dem Idee
zu gehen
Als nächstes will ich da irgendwie Buchstaben haben.
Das heißt, jetzt ersetze ich das I durch EL.
Ich brauche noch mehr Buchstaben, also setze ich das I nochmal durch EL.
Und als letztes ersetze ich das I direkt durch L.
Dann bin ich da angekommen. Und jetzt ersetze ich die Dinger irgendwie durch die Buchstaben,
dass ich jetzt sage,
irgendwie zuerst das vorderste El vielleicht durch A ersetzen,
das zweite durch B. Jetzt damit man nicht denkt,
dass das von links nach rechts gehen muss,
das hinterste durch eins ersetzen und dann das El in der Mitte durch C.
Und das ist im Grunde genommen genau das,
was bei Grammatiken abläuft
Die Großbuchstaben, das nennen wir gleich, die Non-Terminale,
die kleinen Buchstaben nennen wir die Terminale. Hatte ich einen kleinen Sturm.
Ja. Und diese Dinger nennt man Regeln oder Produktionen. Ja,
und die Idee ist dann immer,
wie komme ich von einem sogenannten Staatssymbol, also dem ersten Non-Terminal,
mit dem ich anfange, wie komme ich damit zu Worten,
die nur aus Terminalen bestehen und welche sind das?
So, was wir zuerst machen, wir definieren diese Grammatik
ganz allgemein und dann schränken wir die später ein bisschen ein,
weil diese ganz allgemeine Definition, die ist ziemlich unhandlich,
die kann auch viel zu viel.
Also, aber ganz allgemein eine Grammatik,
wieder so ein Tupel,
VN-VTP und
Endliches Alphabet von Non-Terminalen, das waren die Großbuchstaben, also die Dinger,
die man irgendwie mit den Regeln wieder irgendwo hin ableiten kann.
Dann dieses endliche Alphabet von Terminalen, das sind sozusagen die Buchstaben,
aus denen nachher generierter Wörter bestehen. Also genau das,
was wir beim Automaten irgendwie als Eingabe vorgelegt haben.
Die beiden Alphabete sollen das jung sein, das ist immer ganz praktisch,
und das Gesamtalphabet wird eben einfach im V bezeichnet.
So, bis dahin ist das ganz einfach,
dass sie jetzt nämlich einfach nur zwei Ephabete gewesen.
Jetzt kommt das mit den Produktionen. Das definiert man sich so,
dass man sagt, jede Produktion soll ein Tuppel sein,
bestehend auf der linken Seite steht irgendwie ein Element aus V-Stern ohne VT-Stern.
Kommen wir gleich nochmal zu. Und auf der rechten Seite
steht irgendwie was aus V-Stern
Das Tier, dieses V-Stern ohne VT-Stern, das sagt eigentlich nichts anderes,
als das auf der linken Seite oder im ersten Element,
das du willst, eine Zeichenkette steht,
bestehend irgendwie aus non-terminalen und Terminalen.
Aber diese Zeichenkette ist derart, dass da mindestens ein Non-Terminal auftritt.
Weil ihr Zeichenketten, die nur aus Terminalen bestehen,
also eine Zeichenkette aus VT-Stern, die schließt ihr explizit aus.
Und in V-Sternen sind irgendwelche Zeichenketten bestehend aus Symbolen aus VT,
aus VT und VN. Und wenn ihr die ausschließt,
die nur aus Terminalen bestehen,
dann bedeutet das auf der linken Seite,
steht auf jeden Fall,
sind Wörter,
die auf jeden Fall
einen Non-Terminal enthalten
Ja, und rechts steht irgendwas völlig Beliebiges, ne?
Und dann läuft auch das Staatssymbol, mit dem fängt man immer an.
Dann noch kurze Notationsgeschichten, so eine Regel,
hier UVP, die wird meistens eben so notiert,
hatten wir eben auch schon mehrere Regeln, wenn ich sage,
von du geht's nach V und von U geht's nach W,
die werden üblicherweise mit so einem Balken notiert, zu lesen
wie so ein Oder in der Programmiersprache und da nochmal,
was ich eben gesagt habe,
auf der linken Seite einer Regel steht mindestens ein Nonterminal.
Und die Idee ist jetzt,
dass ich bin bei irgendeinem Wort angekommen mit der Ableitung und
wenn ich jetzt die linke Seite einer Regel irgendwie finde in dem Wort,
dann kann ich die rausnehmen und durch die rechte Seite
der Regel ersetzen
Formalisiert durch die einschrittige Ableitung,
die einschrittige Ableitung eines Wortes V aus einem Wort U geschrieben,
so, ich komme von U durch die Regeln der Grammatik G eben zu V.
Und das wird jetzt definiert durch, UNAV gilt genau dann, wenn. So,
und das, was da jetzt ein bisschen krüger aussieht,
hier steht, das U hat die Form U1,
U2 und in der Mitte ist das WL.
WL ist gerade die linke Seite einer Regel.
Das wird da jetzt rausgebrochen und durch WR ersetzt und
WR ist gerade die rechte Seite einer Regel
Mehr passiert da nicht. Also linke Seite von der Regel
irgendwie in dem Wort finden, rausbrechen oder durch die rechte Seite ersetzen.
Und bei den Regeln haben wir so einen einfachen Pfeil benutzt,
so einen hier. Und bei den Ableitungen benutzen wir so
einen Doppelpfeil. Das ist einfach nur eine Notation,
damit man so ein bisschen weiß, in welchem Kontext man gerade arbeitet.
Okay, bis dahin klar. Gleich kommt das Beispiel.
Da nochmal, wie das funktioniert. Man betrachtet das aktuelle
Wort weh, guckt, ob in weh irgendwie linke Seiten
von Regeln auftreten
Falls ja, wählt man eine von denen aus,
kann man beliebig machen, kann irgendeine nehmen und ersetzt dann
die in weh auftretende linke Seite der Regel durch die rechte Seite dieser Regel.
Also die linke Seite rausbrechen, rechte Seite hinschreiben. Beispiel,
wenn ich die Regeln hier oben habe, also von S,
kann ich nach ASB gehen oder nach AB,
von AB kann ich nach C gehen und von ACB kann ich nach C gehen.
Die Grammatik hat keinen tieferen Sinn,
das soll jetzt gerade nur illustrieren, wie das funktioniert.
Man fängt mit dem Staatssymbol an. Es ist immer das,
oder es ist normalerweise so der Staatsymbol,
also wenn es nicht genauer angegeben wird,
dann ist erst immer
das Staatssymbol
Und jetzt kann man beispielsweise so eine Ableitung machen.
Ich nehme zuerst diese Regel von S nach ASB,
dann habe ich so abgeleitet. Dann nehme ich die Regel,
dass es von S nach AB geht. Also ich finde,
in diesem Wort, man sagt ja auch Satzform zu,
ich finde in diesem Satz vom ASB,
finde ich eben die linke Seite der Regel, das S,
brecht das raus und schreibt genau an die Stelle die rechte Seite der Regel,
also das AB.
Ich hätte da auch nochmal dieses ASB hinschreiben können und nochmal und nochmal,
dann habe ich halt eine längere Kette von Großas und Großbs.
Ich wollte da halt schon abbrechen, kann man halt machen.
Dann kann ich mir das AB in der Mitte nehmen
Also den zweiten und den dritten Buchstaben,
das ist genau die linke Seite dieser Regeln von AB nach C
und kann dann eben das AB in der Mitte durch das C ersetzen,
habe ich den Schritt gemacht.
Und zuletzt kann ich dann eben sagen, okay,
das ACB möchte ich noch durch den C ersetzen und dann habe ich
ein Wort, das nur aus Terminalzeichen besteht, abgeleitet.
Da sagt man dann, das ist in der von der
Grammatik generierten Sprache enthalten. Klar, wie das funktioniert?
Linke Seite der Regel finden, ersetzen durch die rechte Seite
der Regel
Formal, die von je generierte oder erzeugte Sprache ist eben
gerade die Wörter, die nur aus Terminalen bestehen,
sodass ich eben bei S beginnend irgendwie zu diesem Wort weh komme,
indem ich die Regeln benutze.
Wichtig dabei, die von Gegenerierte Sprache, also die Wörter
da drin, die bestehen nur aus diesen Terminalzeichen.
Also dieser Zwischenschritt hier zum Beispiel, dieses ACB,
da tritt ja noch das große A und das große B auf,
soll Non-Terminale sein.
Das ist noch kein generiertes Wort. Das ist erstmal nur
eine Satzform, die da drin auftritt in der Ableitung.
Das Ziel ist immer zu Wörtern zu kommen,
die nur aus Terminalzeichen bestehen
Fragen. Wenn man zwei Regeln mit gleicher linker Seite hat,
wie wird ausgewählt, welche Regel benutzt wird?
Wie haben wir denn hier noch?
Ihr dürft mal klickern
Musik Ich glaube, ich bin die drei Prozent bei viertens.
Es werden alle benutzt. Stimmt natürlich nicht, aber
ich wollte auch mal drücken. Darf man frei wählen,
genau, ist richtig. Die anderen Sachen,
das darf es nicht geben, doch darf es geben,
man hat diese Produktion ja nicht weiter eingeschränkt,
man hat nur gesagt, es soll eine Teilmenge von irgendeinem Kreuzprodukt sein.
Und die anderen beiden Sachen sind Unsinn. Also bei viertens kann man noch sagen,
wenn man zwei Regeln hatte, man kann beide benutzen,
dann kann man natürlich beide insofern benutzen,
als man kriegt eine Ableitung für die eine Regel und irgendwie eine andere Ableitung für die andere Regeln.
Das kann man machen. Aber das sind dann eben
unterschiedliche Ableitungen und man kommt möglicherweise auch zu unterschiedlichen Worten
So, heute machen wir das mal so.
Kann man zwei Regeln mit der gleichen rechten Seite haben
Die Mehrheit siegt, ja, kann man, wird ja
nicht eingeschränkt. Und es ist durchaus auch manchmal nötig,
dass man irgendwie sowohl, nehmen wir mal,
man hat ein Non-Terminal, ein großes A und ein großes B.
Manchmal ist es nötig, dass man das große A irgendwann
zum kleinen A ableiten kann und das große B auch.
Und dann sind die rechten Seiten eben gleich.
Das ist okay
Kann es mehrere Möglichkeiten geben, um das gleiche Wort abzuleiten.
Hatten wir zumindest eben gerade nicht, oder?
Nee. Also wohlgemerkt in der gleichen Grammatik,
dass ihr unterschiedliche Grammatiken konstruieren könnt,
um damit irgendwie die gleichen Worte abzuleiten,
das glaube ich euch sofort,
aber...
Genau, auch da ist die Antwort ja,
so ähnlich wie bei dem Beispiel eben,
wenn ja irgendwie einmal von S zu groß A gehen könnt und
von S zu groß B und ihr könnt dann sowohl von Groß A als auch von Groß B zu dem Terminalzeichen Klein A gehen,
dann könnt ihr eben auf zwei Arten das Wort Klein A ableiten.
Von S zu A zu Klein A oder von S zu B
zu Klein A. Man kann es mehrere Möglichkeiten geben, das gleiche Wort abzuleiten. So,
jetzt bei der bisher eingeführten Grammatik,
die war ziemlich mächtig und werde auch ziemlich unübersichtlich,
weil man irgendwie auf der linken Seite kann man jetzt ja beispielsweise sowas haben bei einer Regel,
wie irgendwie Groß-S,
Groß A. Und dann gibt es vielleicht noch eine Regel,
wo nur das große A ist und nur das große S oder noch irgendwie Groß-S,
Groß A und ein kleines B und dann tritt das vielleicht alles
in einer bisher abgeleiteten Satzform auf und dann kann man irgendwie alles ersetzen oder auch nicht.
Das wird irgendwie unübersichtlich
Das ist ziemlich mächtig, aber es ist irgendwie unübersichtlich.
Und das wollen wir jetzt erst mal so einschränken,
dass man irgendwie mit diesen Grammatiken ein bisschen schicker arbeiten kann.
Und das sind die sogenannten Kontext freien Grammatiken. Kontext frei klingt schon
mal gut. Die ersten zwei Sachen genauso wie eben,
Non-Terminale und Terminale. Und jetzt sind die Produktionen hierauf eingeschränkt.
Das sieht schon viel, viel leichter aus als eben.
Jede Regel hat also auf der linken Seite genau ein Non-Terminal.
Und dieses Non-Terminal wird durch irgendwas ersetzt.
Da kommt auch der Name Kontext frei her,
weil er dieses eine Non-Terminal unabhängig von dem Kontext,
in dem es steht,
also unabhängig von den Symbolen links und rechts
davon ersetzen könnt
Und wieder das Staatssymbol und die nennt man
entweder kontextfrei oder in der historischen Klassifizierung Typ 2 Grammatiken.
Da nochmal der wichtige Unterschied bei allgemeinen Grammatiken,
hatte man eben das als Menge für die Produktion oder als Übermenge
für die Produktion und bei kontextfreien hat man jetzt nur noch diese Menge und daraus folgt eben,
dass bei einer kontextfreien Grammatik stets genau ein Non-Terminal auf der
linken Seite steht,
dass man dann ersetzen kann
Dann noch zwei Begriffe kurz. Man kann auch solche Produktionen
machen von A zu Lamda. Also wenn ihr euch das hier anguckt,
ihr könnt ja hier das Non-Terminal A rausnehmen und aus dieser
Menge V-Stern in der Sternenbildung war ja auch immer das leere Wort Lamda drin.
Also man kann auch so eine Produktion machen,
die werden als Landerproduktion bezeichnet und wenn man keine Lamda-Produktion hat,
dann nennt man die kontextfreie Grammatik Lamda frei.
Heute brauchen wir das gar nicht mehr, aber für nächstes Mal,
dass ihr das schon mal gesehen habt,
dass das so ein bisschen beieinander ist,
die ganzen Definitionen da
Und dann kann man jetzt Ableitung und akzeptierte Sprache und so
, das kann man alles genauso definieren wie bei Grammatiken.
Das heißt, ich fange beim Startsymbol an und will irgendwie so ableiten,
dass ich zu einem Wort komme, das nur aus Terminalzeichen besteht.
All die Wörter zusammengenommen sind die von der Grammatik generierte Sprache.
Und wenn ich jetzt all diese Sprachen wieder nehme und die in eine Familie packe,
so ähnlich wie ich das bei regulären Sprachen auch gemacht habe.
Also alle Sprachen, die von endlichen Automaten akzeptiert wurden,
habe ich an diese Familie der regulären Sprachen gepackt.
Dann habe ich die Familie der kontextfreien Sprachen.
Und die kürzt man ab mit CF für Kontext 3.
Warum wir das brauchen, wird nachher noch klar,
da können wir irgendwie so Zusammenhänge zu Reck herstellen und so.
Also wird das jetzt wirklich mächtiger als Reck oder nicht
und solche Geschichten
Da ist, gucken wir uns nochmal an.
Beispiele, zwei Stück. Für A-Stern-B-Stern, also das ist
jetzt der rationale Ausdruck, der die Menge A-Stern-B-Stern beschreibt.
Das ist die Menge A-Hoch-NB-Hoch-M mit N&M sind irgendwelchen natürlichen Zahlen.
Eine Grammatik dafür könnte, gibt mehrere Möglichkeiten,
das zu machen, aber eine Grammatik könnte so aussehen.
Die eine Regel sagt,
also ich fange wieder mit S an und die sagt,
ich gehe zu A-B und aus dem A kann ich jetzt so
eine beliebig lange Kette von kleinen As erzeugen und aus dem
B kann ich eine beliebig lange Kette von kleinen Bs erzeugen
Das wird gleich so die Idee sein. Und hier jetzt einmal der Vollständigkeit halber,
die Non-Terminale, die Menge der Non-Terminale ist gerade Gruß,
S-Gruß, A, Gruß,
B und die Menge der Terminale ist klein A, Kleinb und das Staatssymbol ist S.
Üblicherweise lässt man das nachher weg und definiert die Grammatik nur über ihre Produktion,
weil man sich an Konventionen hält, dass man sagt,
es ist immer das Staatssymbol, große Symbole sind Non-Terminale,
kleine Symbole sind Terminale.
Dann braucht man das ja immer nicht mehr extra aufschreiben und
dann schreibt einmal die Produktionsmenge auf und kann das darunter,
wenn man es denn braucht,
direkt ablesen
So, das wäre, das ist jetzt ja wieder
eine Behauptung, dass das irgendwie die Grammatik dafür ist.
Und das muss man jetzt wieder beweisen.
Jetzt muss man wieder irgendwie rangehen und sagen, okay,
L von G ist also die von dieser Grammatik generierte Sprache.
Ich vermute, dass das M ist, also muss ich
irgendwie wieder zeigen, dass M gleich LG ist.
Also habe ich wieder zwei Richtungen zu zeigen. M Timing von LG,
da muss ich zeigen, dass jedes Wort aus dieser Menge M
tatsächlich mit den Regeln der Grammatik generiert werden kann.
Das geht wieder relativ einfach, weil man die Grammatik ja
extra darauf geeicht hat, dass das funktioniert.
Man fängt also an mit so einem Wort, ah,
auch in BOM und jetzt kann man in G wie folgt ableiten.
Man geht von S zu A,
Jetzt kann man das große A nehmen und durch Klein A
Groß A ersetzen, also die Produktion hier.
Die Produktion kann man jetzt insgesamt en-mal anwenden. Also auch für das,
ah, hier kann man ja,
das kann man ja wieder durch ein kleines A großes A ersetzen,
das kann man wieder durch ein kleines A großes A setzen und so weiter.
Dann kommt man irgendwie zu dieser, nicht irgendwie,
sondern dann kommt man eben über diese enmalige Anwendung der Regel,
zu der Satzform A HochN,
Groß A Groß B. Und jetzt entschließt man sich,
okay, jetzt habe ich genug As,
ich will ja genau en-viele haben.
Jetzt nimmt man die Produktion das große A durch Lander
zu ersetzen und dann hat man die Satzform A
auch in
Und jetzt machen wir das Gleiche für das große B nochmal,
ersetzt das irgendwie durch Klein-B-Groß-B, macht das insgesamt M-Mahl.
Und dann löscht man das große B durch die Landerproduktion von B nach Lamda.
Und dann hat man das Wort abgeleitet und dann weiß man,
es gilt also auch, dass dieses Wort in der von G-Generierten Sprache ist.
Rückrichtung, wieder ein bisschen schwieriger. LG-Teilmenge von M.
Jetzt kann man zunächst erkennen, dass man aus GroßA,
also wir fangen jetzt gar nicht mit dem Startsymbol an,
sondern wir fangen mal mit GroßA an und gucken,
wo kommen wir da überall hin
Kann man halt relativ schnell an den Regeln hier ablesen,
dass man von GroßA aus jedes Wort aus A Stern ableiten kann.
0As kriege ich durch die Landerproduktion, 1A kriege ich dadurch,
dass ich diese Regel von GroßA,
nach KleinagrosA einmal benutze und dann die Landerproduktion,
2As kriege ich nämlich die zweimal benutze und dann die Landerproduktion und so weiter.
ehemalige Anwendung führt zu dieser Satz vom A auch IA und dann
kann ich das löschen. Gleiches kann man für das B machen,
dass man von dem großen B eben zu irgendwie einem Wort aus B Stern kommt.
Naja und jetzt kann man sagen, wenn ich eben ein Wort aus LG nehme,
dann muss diese Ableitung ja irgendwie mit S nach A.B. beginnen,
weil das die einzige Regel ist, die mit dem Staatssymbol beginnt.
Und dann habe ich eben argumentiert,
dass sich das Groß-A nur nach A hoch I ableiten kann und das Groß-B nur nach B hoch J. Das heißt,
das abgeleitete Wort U muss diese Form Aho-IB hoch J haben und das zeigt dann eben auch,
dass das in der Sprache M drin ist,
in der Menge M drin ist.
Da haben wir wieder zwei Richtungen gezeigt, ist wieder fertig.
Und auch da,
das sind jetzt wieder so die kleinen Beispiele für den Anfang,
dass man einmal sehen kann, okay,
ich muss zwei Richtungen zeigen und so muss ich
irgendwie argumentieren
Wenn die Sprachen nachher oder die Grammatiken nachher umfangreicher werden,
dann braucht man wieder irgendwie Induktionsbeweise. Was sich da dann anbietet,
entweder wieder Induktionsbeweise über die Wortlänge oder Induktionsbeweise über die Länge der Ableitung.
Also über die Anzahl der Ableitungsschritte, die man gemacht hat.
Das hilft auch oft. Zweites Beispiel, Auch NBU-N,
hatten wir heute ja schon dreimal, einmal mit dem PDA dafür konstruiert,
dann haben wir gezeigt, dass das nicht regulär ist.
Und jetzt zeigen wir, dass wir diese Sprache mit
der Grammatik generieren können. Woraus sofort folgt,
dass ich mit den Grammatiken zumindest Dinge machen kann,
die ich mit regulären Sprachen nicht machen kann
Ob ich alles damit machen kann, was ich mit regulären Sprachen
machen kann und so, das muss man nochmal sehen.
Aber ich kann zumindest dann gleich schon mal was,
was ich mit einer regulären Sprache nicht machen kann.
Ja, auch in Beoren geht relativ einfach. Also wenn
ihr euch die Satzform hier anguckt, die Produktion, Entschuldigung,
dann erkennt man, dass dieses Non-Terminal irgendwie immer nach rechts wandert.
Ich konstruiere mir irgendwie ein Wort und das Non-Terminal läuft irgendwie
nach rechts weg. Bei einer Grammatik für diese Wörter,
da muss man ja irgendwie quasi den linken Teil des Wortes,
also das A-Huch-N und den rechten Teil des Wortes,
das B hoch-N,
die muss man irgendwie miteinander in Beziehung setzen
Das macht man üblicherweise dadurch, dass man das Non-Terminal in
der Mitte wandern, in die Mitte wandern lässt.
Das sind die einzigen zwei Produktionen. Kann man wieder sagen,
okay, jetzt würde ich wieder zeigen, dass M. Timing von LG ist,
sei wie also ein Wort aus dieser Menge M.
Und dann kann man eben relativ schnell das Wort ableiten,
indem man endmal die Produktion von S nach ASB benutzt und
dann eben einmal das S zum leeren Wort ableitet,
dann ist man fertig.
Und andersrum, andersrum ist jetzt ein bisschen blöd,
weil die Grammatik tatsächlich so einfach ist,
dass da kaum mehr
zu zeigen ist
Darf ich nur zwei Regeln haben, ist die Argumentation relativ einfach.
Die einzige Möglichkeit, zu einem Wort zu kommen,
ist irgendwann mal diese Produktion zu benutzen.
Von erst nach Lamda, weil man ansonsten ja immer
das Essen mit sich rumschleppt. Die einzige andere Produktion,
die man hat von S nach ASB, da wird auf der,
nachdem ich die Produktion angewendet habe, weiterhin S dabei sein.
Das heißt, die muss ich irgendwann mal benutzt haben und ich weiß auch,
dann kann ich nichts anderes mehr gemacht haben,
weil ich eben in jeder Satzform nur genau ein S habe.
Und vorher kann man dann eben ihm mal diese Produktion benutzen.
Das heißt, wer kann nur diese Form haben und
damit ist es eben
auch in
Der Ebbe weiß es ein bisschen doof. Wir gucken uns nächstes Mal einen an für,
wir hatten ja eben noch diesen PDA für WWRF.
Dafür kann man auch eine Grammatik angeben und da wird der Beweis ein bisschen kniffliger.
Hier noch nicht so da ist es eben relativ einfach. Nur,
dass ihr schon mal zwei solche Beweise gesehen habt und insbesondere diese beiden Techniken einmal,
wenn ihr eben so einen linken und einen rechten Teil
des Wortes irgendwie miteinander in Beziehung setzen wollt,
so wie bei diesem auch NBON,
dann muss meistens das Non-Terminal irgendwie nach innen wandern,
so wie hier
Hat den Nachteil, dass man es nachher nicht mehr irgendwie da nicht mehr rauskriegt.
Also ihr könnt euch ja schon mal überlegen,
dass die Technik irgendwie bei A hoch N, B hoch N,
C hoch N, wohl nicht mehr so gut funktionieren wird,
weil ja irgendwie einmal in die Mitte wandern müsste,
um diese As und Bs gleich zu haben.
Und dann kommt der mit dem Non-Terminal da aber nicht mehr
raus, um auch gleich viele Cs aufzubauen.
Das wird irgendwie nicht funktionieren. So,
wenn man die Zeichenkette sequenziell aufbauen will,
dann kann man eben einfach das neuen Terminal immer an den
Rand setzen und sukzessive die ganzen As aufbauen.
Das als Konstruktionstipps
Dazu gibt es keine Präsenzaufgabe, aber eine Übungsaufgabe,
die ist nicht wirklich schwer. Das ist, oh,
ist das, ja, es ist eine Kombination aus den beiden Techniken.
Muss man einmal erst in die Mitte wandern und dann nochmal sequenziell was dazu tun. Dann zum Abschluss,
wenn man das jetzt noch weiter einschränken will,
also wenn man bei den kontextfreien Grammatiken sagt, so,
ja, okay, das ist schon schön einfacher,
weil ich irgendwie auf der linken Seite immer nur einen Non-Terminal habe,
das ich ersetze, aber ich will es noch einfacher haben,
dann kann man sich drei weitere Grammatiken definieren,
schränken wir uns mal kurz auf diese Rechtslinealen ein
Die anderen beiden sind so ähnlich, aber nehmen wir mal
das Rechtslinijahr ganz unten. Da wird gesagt,
die Menge der Produktion soll jetzt so aussehen,
dass links immer ein Non-Terminal steht und auf der rechten Seite steht entweder ein Wort,
das nur aus Terminalzeichen besteht, also aus VT-Stern oder ein Wort,
das zuerst die ganzen Terminalzeichen hat und ganz rechts steht nochmal Non-Terminal.
Also die Regeln dürfen jetzt nur noch so aussehen, großes A,
wird abgeleitet nach und jetzt kommt irgendwie was aus Terminalzeichen,
also Klein-B, Klein-C und dann kommt noch ein Non-Terminal.
Was nicht mehr geht,
ist irgendwie zwei Non-Terminale auf der rechten Seite zu haben oder
das Non-Terminal irgendwie dazwischen oder sowas,
sondern eben nur noch auf die Art und Weise Non-Terminal
links und rechts dann eben wortgefolgt von Non-Terminal
Nennt man auch Typ 3 Grammatiken oder reguläre Grammatiken.
Und der Name reguläre Grammatiken kommt eben daher,
dass man zeigen kann, wenn eine Sprache regulär ist,
sprich, wenn es ein DFA gibt, der sie akzeptiert,
dann kann ich auch so eine rechtslineare Grammatik angeben, die die Sprache generiert.
Das heißt, diese beiden Modelle, die wir jetzt hatten,
einmal das Automatenmodell, das Wörter irgendwie akzeptiert und einmal das Grammatikmodell,
das irgendwie Wörter generiert, die werden da quasi verheiratet.
Die sind dann doch irgendwie doch wieder das Gleiche.
Das kann man einmal für die regulären Grammatiken machen und man kann für kontextfreie Grammatiken,
also für Die Sprachen, die eben über kontextfreie Grammatiken generiert werden,
für die kann man zeigen, dass es dann immer ein PDA gibt,
der die Sprache mit Lea im Keller akzeptiert.
Das heißt, wir haben einmal gleich diese regulären Grammatiken,
die sind genauso wie die DFAs und wir haben die PDAs,
die sind das Gleiche wie die kontextfreien Grammatiken.
Dann haben wir also für unsere beiden bisherigen Sprachfamilien sowohl ein Automatenmodell als auch ein Grammatikmodell.
Also stelle ich den Zusammenhang hier zwischen diesen beiden Sachen,
DFA ist ein Rechtsindia-Grammatiken und PDAs und kontextfreie Grammatiken.
Und nächstes Mal werden wir das für die DFAs einmal machen,
dass ihr einmal so einen Beweis gesehen habt,
bei den DFAs geht es nämlich relativ einfach und intuitiv.
Bei den PDAs werde ich das, wenn überhaupt,
dann nur kurz anskizzieren. Und dann wollen wir nächstes Mal
nochmal uns mit ein paar Abschlusseigenschaften von kontextfreien Grammatiken beschäftigen.
Und dann können wir uns schon mal so eine schöne Tabelle machen,
wo man irgendwie sehen kann,
die ganzen Automatenmodelle für Reck und die Abschlusseigenschaften für Reck und
die Grammatiken für Reck und das Ganze eben auch noch für kontextfrei.
Und im zweiten Teil der nächsten Vorlesung werden wir uns mit
noch zwei Problemen für kontextfreie Grammatiken beschäftigen, die da wichtig sind.
Das Wichtigste ist dann so das Wortproblem gegeben.
Ein Wort wird das von der Grammatik generiert oder nicht.
Das alles machen wir nächstes Mal.
Und dann sind wir fertig und ich wünsche schöne Ostern