Stoff für heute. Wir haben ja letztes Mal,
also wir haben jetzt diese ganzen DFAs kennengelernt und auch
noch so ein paar andere Automaten, irgendwie DFAs,
NFAs und NFAs mit Landerkanten und wir haben die rationalen Ausdrücke kennengelernt.
Und dann haben wir letztes Mal noch Abschlusseigenschaften kennengelernt,
also wenn wir irgendwie zwei reguläre Sprachen haben,
dann ist auch irgendwie die Vereinigung und die Sternbildung,
die Plusbildung, die Konkretenation, das Kompliment und das Produkt,
das sind auch alles reguläre Sprachen.
Und damit kann man jetzt ja schon basteln. Und das Problem ist aber,
also das,
was wir alles kennengelernt haben und die zwei Anwendungsfälle,
die wir mal so kurz angetatscht haben,
war ja zum einen,
dass man irgendwie eine Worterkennung in Texten machen können möchte und
eben als Spezialfall im Compilerbau irgendwie
Und wenn man jetzt so an Compilerbau denkt, sowas wie Schlüsselwörter erkennen,
also wenn man jetzt ein If erkennen will oder ein Four oder ein Wile oder so,
das geht alles schon, das können wir alles damit machen.
Und es gibt aber irgendwie Sachen,
selbst im Compilerbau jetzt bei der speziellen Worterkennung im Compilerbau,
die irgendwie nicht, zumindest nicht offensichtlich, mit einem endlichen Automaten funktionieren.
Und ein Beispiel ist eben die Sprache aller korrekt geklammerten Ausdrücke,
dass man sowas erkennen können möchte im Compiler,
wisst ihr ja von Programmieren irgendwie,
ihr klammert irgendwie und wenn ihr jetzt irgendwie zwei öffnende Klammern habt,
aber nur eine schließende, dann wirft der Compiler hoffentlich irgendwie einen Fehler.
Das heißt, sowas muss man auch irgendwie erkennen können.
Und jetzt wäre die Frage, wie macht man das
mit dem DFA
Hätte ich auch mit dem rationalen Ausdruck oder irgendwie sowas.
Problem da ist ja auch, man müsste irgendwie diese öffnenden Klammern zählen können.
Man weiß nicht genau, wie viele das sind.
Deswegen wird das irgendwie wahrscheinlich ein Problem geben,
sich das in dem endlichen Speicher zu merken. So,
wenn man jetzt irgendwie versucht, das zu lösen,
dann wird man wahrscheinlich erstmal irgendwie gegen Wände laufen und das nicht lösen können.
Was mir jetzt typischerweise macht, ist, okay,
wenn ich das Problem nicht lösen kann,
suche ich mir erstmal ein einfacheres und probiere das zu lösen.
Also eins in dem nach möglich Kasistenz dieses Problems weiterhin drin ist,
aber eben was nicht ganz so umfangreich ist.
Und ein typisches Problem, Da scheitern wir ein typisches Problem,
wäre jetzt diese Sprache A hoch NB hoch N. Das müssen wir auf jeden Fall ja auch irgendwie akzeptieren können,
weil irgendwie entöffnende Klammern gehen auf, das sollen mal die As sein,
schließende Klammern gehen wieder zu, das sind die Bs,
also das müssen wir auch irgendwie erkennen können,
aber wir sparen uns jetzt mal sowas wie öffnende Klammer,
schließende Klammer, zwei öffnende Klammern, zwei schließende Klammern,
dann vielleicht nochmal eröffnen und dann schließende Klammer und sowas.
Das üben wir erstmal, sondern wir konzentrieren uns auf diesen Kern,
dieses A hoch NB hochenden. Also wir wollen die Sprache akzeptieren,
die irgendwie A, B und dann A, A,
B, B und dann Dreiers, 3 Bs,
4 A, 4 Bs und so weiter.
Und die Frage ist dann wieder, ist das eine
reguläre Sprache
Wenn ihr an die Konstruktionsmethoden von letzten Montag denkt,
was man ja machen könnte, ist,
man fängt im Staatszustand an und sagt, okay,
jetzt habe ich ein A gelesen, gehe ich in einen Zustand,
wo ich mir merke, ich habe ein A gelesen.
Jetzt kommt vielleicht noch ein zweites A, den gehe ich
in einen Zustand, wo ich mir das zweite A merke.
Wenn jetzt das B kommt,
dann gehe ich einen nach unten, wo ich mir merke,
oh, jetzt muss noch ein B kommen,
jetzt kommt noch das eine B und dann bin ich irgendwie fertig.
So, und sowas kann ich auch irgendwie mit drei As machen,
dann kommen die drei Bs irgendwie mit vier As und so weiter.
Aber wenn ich das halt für beliebige natürliche Zahlen machen können möchte,
dann habe ich irgendwie so eine unendlich lange Kette von Zuständen,
denen ich mir potenziell merke,
wie viel As ich gelesen habe.
Der Ansatz wird also
irgendwie nicht funktionieren
Was noch nicht bedeutet, dass das gar nicht mit endlichen Automaten geht.
Das heißt nur, dass der Ansatz von eben irgendwie nicht funktioniert.
Und das, was wir jetzt machen wollen, wir wollen jetzt
ein Automatenmodell einführen, mit dem wir das eben machen können.
Wir wollen den DFA um den Keller erweitern. Wir haben ja
letztes Mal so ein bisschen geraten, was man sich alles vorstellen könnte.
Da waren auch jede Menge gute Ideen dabei.
Man kann auch mit zwei Köpfen arbeiten oder man kann,
also mit zwei Leseköpfen auf dem Eingabeband arbeiten.
Man kann einen Zähler einführen, mit dem man sich irgendwie
nur um viele Buchstaben man gelesen hat oder sowas.
Und das, was historisch aber kam, war eben,
dass man sich gesagt hat, okay,
ich nehme diesen DFA und älter den um eine bekannte Datenstruktur,
nämlich diesen Keller oder Stack.
Und das, was dann rauskommt,
den Automaten,
den nennen wir Kellerautomaten
Denn grafisch sieht das dann irgendwie so aus, dass in der Mitte,
das kommt dann schon irgendwie, was ist das eigentlich?
Das ist in der Mitte, das kommt uns schon irgendwie
bekannt vor, das ist so ein Zustandsübergangsdiagramm vom Automaten.
Oben kommt uns auch schon bekannt vor, das ist das Eingabeband und das ist hier rechts, das soll jetzt eben der Keller sein. Und lesen tun wir das jetzt so,
dass wir beispielsweise sagen, okay,
ich fange wieder in Z0 an und mit der unteren Kante hier,
A, dann das Symbol liest man als Bottom,
dann irgendwie so ein Strich und dann A, Bottom,
das soll bedeuten,
wenn ich das kleine A lese auf dem Eingabeband und auf dem Keller das Bottom lese,
dann kann ich eben auf dem Eingabe,
weil so wie bisher auch, ein Feld weiter nach rechts gehen,
bleib in dem Zustand Z0,
weil eben von Z0 zu Z0 geht und auf dem Stack schmeiße ich dieses Bottom weg und schreibe dafür ein A-Bottom hin.
Und wenn ich dann weiter kleine As lese,
dann ersetze ich immer ein großes A,
durch zwei große As, sprich das, was da passiert,
durch jedes Lesen eines kleinen As schreibe ich mir ein großes A auf dem Keller.
Dann kann man sich schon überlegen,
wenn ich irgendwie zehn kleine As gelesen habe,
dann sind zehn große As auf dem Keller und dann kann ich die nachher immer löschen,
wenn ein B kommt.
Das passiert dann hier, wenn B gelesen wird,
ein Übergang von Z0 nach Z1, wenn B gelesen wird,
dann muss auf dem Keller ganz oben A liegen und das lösche ich.
Das Lammender soll bedeuten, ich ersetze das A durch das leere Wort,
Spriche schreibt nichts auf den Keller, dann wird das große A gelöscht.
Hier kann ich dann so viele kleine,
in Z1 gerechnet, so viele kleine Bs lesen,
wie vorher große As auf den Keller geschrieben habe, dann wird das leer gemacht.
Und mit der letzten Kante kann ich dann noch das Kellerbodenzeichen löschen.
Wie das im Detail funktioniert, gucken wir uns jetzt an.
Erstmal die Format-Finition davon. Man sieht schon,
wir brauchen wieder irgendwie eine Zustandsmenge,
wir brauchen eine Menge von Eingabesymbolen, wir brauchen irgendwie einen Startzustand,
Endzustände sieht man da jetzt zunächst noch nicht,
aber kann man sich ja auch vorstellen,
dass man die auch irgendwie haben will
Und dann brauchen wir doch irgendwie was für das Alphabet,
was die auf den Keller geschrieben werden kann.
Also brauchen wir noch ein zweites Alphabet und ja,
irgendwas müssen wir mit den Kanten machen.
Werde jetzt ein größeres Tubel als vorher,
wird jetzt ein Siebentubel, statt vorher ein Fünftu.
Also nicht die terministischer Kellerautomat. Hier,
wir führen das gar nicht erst deterministisch ein,
wir führen das Gleiche nicht deterministisch ein.
Endliche Menge von Zuständen wollen wir haben, endliches Alphabet von Eingabesymbolen.
Das sind die Dinger,
die eben auf dem Eingabeband stehen können.
Endliches Alphabet von Kellersymbolen
Das sind die Symbole, die wir irgendwie auf den Keller
schreiben können. Und jetzt kommt eben diese Überführungsfunktion,
bei der eben gesagt wird, zu jedem Triebel aus Zustand,
Eingabesymbol, das gelesen wird und Kellersymbol, das gelesen wird,
gibt es eben eine Menge aus Tupeln,
bestehend aus Zustand und was auf den Keller geschrieben werden soll.
Also wenn irgendwie für ein Pärchen aus Zustand Eingabesymbol und Kellersymbol
hier jetzt irgendwie das Tupel ZW drin ist,
dann soll das eben bedeuten,
ich kann dir den Zustand Z wechseln und auf den Keller
schreibe ich das weh
Ja, und den Rest kennen wir schon von NFAs.
Ich habe eine Menge von Staat, eine Menge von Endzuständen
und hier noch speziell, um das herauszuheben.
Ich habe dieses Kellerboden-Symbol drin, was eben zu dem Alphabet
von Kellersymbolen gehört. Und man hebt das deswegen hervor,
weil das eben die Startkonfiguration dieses Kellerautomaten ist.
Vorher bin ich irgendwie im Staatszustand gestartet und hatte das Eingabewort auf dem Eingabeband.
Und jetzt sage ich, ich starte im Staatszustand,
habe das eingebewortet auf dem Eingabeband und eben noch,
muss noch sagen, wie der Keller aussieht.
Und der soll am Anfang eben so aussehen,
dass nur dieses Kellerboohl im Keller ist
Ja. Da auch noch mal kurz zur Info. Beim NFA
hatten wir das auch mal kurz, statt dieser Überführungsfunktion,
kann man auch irgendwie eine Relation von Kanten angeben.
Das ist dann in der grafischen Darstellung, hier ist der Zustand,
also das erste Z ist der Zustand, wo die Kante startet.
Das letzte Z ist der Zustand,
wo die Kante endet und das dazwischen ist eben zuerst das Symbol,
das vom Eingabeband gelesen werden soll, dann das Symbol,
was vom Keller gelesen werden soll und dann die Zeichenkette,
die auf den Keller geschrieben werden soll.
Das kann man alternativ auch machen. So,
jetzt müssen wir wieder diesen ganzen Kram einführen mit irgendwie Konfiguration,
Übergangsrelation,
akzeptierte Sprache
Konfiguration kann man sich schnell vorstellen. Irgendwie vorher hatten wir
Zustand und Restwort, das noch auf dem Eingebeband ist.
Jetzt haben wir eben den Zustand Z, das Restwort W,
was noch auf dem Eingabeband ist und den aktuellen Kellerinhalt
V. Das A ist mit der Bedeutung,
dass der Automat A im Zustand Z ist,
wie noch auf dem Band und der aktuelle Kellerinhalt V ist.
Und das ist so zu lesen mit dem V,
das erste Symbol von dem V ist ganz oben auf dem Stack.
Und das letzte Symbol von V ist ganz unten.
Also üblicherweise haben wir nachher so Zeichenketten auf dem Stack
wie A, B, Bottom.
Das soll dann bedeuten, ganz oben ist das A,
darunter kommt das B und dann kommt eben
dieses Bottom
Ja, und jetzt die Überführungsrelation,
die soll wieder eine Konfiguration in die nächste überführen,
die es dann eben so definiert, dass man sagt,
wenn ich eine Konfiguration habe, gestellt, Z,
der Zustand, in dem ich bin, XU,
was ich gerade lese, auf dem eingebannt, YW,
was gerade im Keller ist,
und ich kann eben in der Übergangsrelation Delta zu Z X und Y irgendwie ein Element finden,
hier notiert als Z-Y-Strich, dann wechsle ich eben in den Zustand Z-Strich,
gehe auf dem Eingebelband ein, fällt weiter nach rechts,
also das X ist dann ja hier weg,
ich habe jetzt nur noch das U zu lesen,
das Y wird gelöscht und wird durch Y-Strich ab
Und was da auch drin steckt, ist, dass,
weiß ich nicht, ob das eben aufgefallen ist bei dieser Überführungsrelation,
die war ja so definiert,
dass ich vom Eingabeband ein Element aus Siegma lesen muss oder Landa.
Also hier bei dieser Überführungsfunktion, in dem Zustand Z,
aus Z und eben entweder ein Eingabesymbol oder auch Landa.
Also ich kann auch, was wir bei NFAs einmal
so kurz angetatscht hatten, solche Landauübergänge machen.
Ich muss auf jeden Fall ein Symbol vom Keller lesen.
Und das steckt hier auch mit drin,
weil dieses X kann eben auch Landa sein
Dann hat sich an dem noch zu lesen im Eingabewort nichts geändert,
weil X verknüpft mit U, wenn X eben lande,
ist es gerade U. Ja,
und wenn ich jetzt eine Folge von solchen Übergängen habe,
dann nenne ich das wieder eine Rechnung.
Und jetzt müssen wir uns nochmal angucken, wann ich das
Erfolgsrechnung nenne, sprich, was die akzeptierte Sprache ist.
Und da gibt es jetzt beim Keller zwei mögen, das zu definieren.
Beim PDA zwei Möglichkeiten, das zu definieren.
Das eine ist mit Liam Keller. Da sagen wir,
wenn ich im Startzustand Z0 starte, das Eingabewort W auf
dem Eingabeband ist und am Anfang eben Bottom im Keller ist,
das ist immer die Startkonfiguration.
Wenn es jetzt irgendwie eine Folge von Übergängen gibt,
sodass ich in irgendeinem Zustand Z lande,
das Eingabewort bis zum Ende gelesen habe,
sprich es steht nichts mehr auf dem Eingabeband und der Keller
komplett leer ist
Da aber dem letzten Lambda, das bedeutet,
dass der Keller komplett leer ist, da steht drin.
Solche Wörter will ich akzeptieren. Sprich, wenn ich das Wort irgendwie so lesen kann,
dass ich das Wort bis zum Ende gelesen habe und dann der Keller komplett leer ist, dann will ich akzeptieren. Oder das,
was wir schon kannten, ich kann auch mit Endzustand akzeptieren,
also das, was wir schon von NFAs kannten,
ich kann auch mit Endzustand akzeptieren,
ich starte wieder in der Startkonfiguration Z0W Bottom und muss jetzt irgendwie in eine Konfiguration ZE-Lammnder V kommen,
wobei das Lamda in der Mitte eben bedeutet,
wieder das eingebewortet ist,
bis zum Ende gelesen,
muss ein Endzustand sein und der Keller in halt V
ist mir egal
Anmerkung dazu, da oben sind die beiden Definitionen.
Wenn ihr mit leerem Keller akzeptiert, also diese Notation,
L und unten so ein Lamda, dann werden die Endzustände gar nicht benutzt.
Wenn ihr mit Endzustand akzeptiert, dann ist der Kellerinhalt am Ende egal.
Und ihr müsst euch halt auf irgendwas davon festlegen. Also es geht nicht darum,
dass ihr einige Worte mit Endzustand akzeptiert und einige andere mit leer,
sondern ihr kriegt ein PDA und dann gibt es eine Sprache,
die ihr mit Endzustand akzeptiert und eine andere Sprache,
die ihr mit leerem Keller akzeptiert.
Oder eine möglicherweise andere Sprache,
vielleicht ist es auch identisch
Und für den Notationswirrwart im Skript wird diese Menge L-Lamda A
auch irgendwie mit N-A bezeichnet und die Menge L-Z-A auch mit
L-A. Ich mache das üblicherweise jetzt so, dass ich immer beides aufschreibe.
Beziehungsweise auch immer sage, mit leerem Keller oder mit Endzustand.
Also es sollte nur bewusst sein, dass es diese beiden unterschiedlichen Akzeptierungsbedingungen gibt.
Da steht jetzt halt nicht einfach irgendwo L-A und ihr müsst dann rumrätseln,
was damit gemeint ist oder so.
Da steht ja da schon noch explizit. Oder so in
der Vorlesung kann ich es ja ständig sagen. Wenn ihr Bücher lest,
müsst ihr ein bisschen aufpassen, weil es gibt Bücher,
die definieren beispielsweise nur das mit Leam Keller akzeptiert wird und
nennen das dann L-A. Und da gibt es andere Bücher,
die definieren sich das nur so,
dass mit Endzustand akzeptiert wird und denn das L-A müsst ihr
also vorher gucken,
was da gemeint ist
Ja, und da nochmal, um das zu betonen,
das Modell ist ja nicht deterministisch,
auch wenn das jetzt bei dem ersten Beispiel vorher nicht auftrat,
und auch dann genügt es wie beim NFA wieder,
wenn es irgendwie eine Rechnung gibt,
bei der ich eben den Keller leere,
beziehungsweise wenn ich die andere Akzeptierungsbedingung habe,
über die ich in einen Endzustand gelange.
Ja, so,
jetzt haben wir schon alle wichtigen Begriffe zusammen,
also wir haben den formal definiert, wir haben definiert,
was eine Rechnung ist, wir haben definiert,
was der akzeptiert,
jetzt können wir quasi anfangen zu schauen,
irgendwie Automaten zu konstruieren
Vorher noch als Bemerkung zu diesen beiden Akzeptanzbedingungen.
Man kann zeigen, dass die beide Äquivalent sind. Bedeutet,
wenn ich euch ein PDA gebe und sage, hier,
der akzeptiert jetzt irgendeine Sprache mit Endzustand, dann könnt ihr einen anderen PDA konstruieren,
der die gleiche Sprache mit Leam Keller akzeptiert.
Und wenn ich euch ein PDA gebe und sage irgendwie,
hier, der akzeptiert was mit Leam Keller,
dann könnt ihr ein PDA konstruieren, der die gleiche Sprache mit Endzustand akzeptiert.
Beine ministischen Modellen. Und wir wollen jetzt eben meistens auf
diese Akzeptanz mit Leam Keller konzentrieren. Wer sich dafür interessiert,
kann das wieder im Skript nachlesen oder auch in diesem Buch von Hauptcraft Ulmen,
mehrere Idee dabei ist,
dass man am Anfang der Rechnung quasi unter das eigentliche Kellerboom-Zeichen ein neues Kellersymbol runterschiebt.
Und dann kann man immer feststellen,
wann in dem einen Automaten vielleicht der Keller gerade leer ist.
So, das nur so als Exkurs. Funktionsweise einmal informal
. Wir beginnen im Staatszustand Z.0. Bottom ist auf dem Keller
und wir haben das eingabe Wort W vorgelegen.
Wenn der Automat jetzt ein Zustand Z ist,
vom eingebührtes A liest und vom Keller das X. Wobei,
um das nochmal zu betonen, dass hier dieses Lesen vom Eingabewand,
das A,
das kann auch Lamda sein.
Vom Keller muss ich lesen,
vom Eingabewand nicht
Jetzt kann ich mir ein Element aussuchen aus dieser Menge Delta ZAX.
Und dann, wenn es so ein Element gibt,
dann wechsle ich in den Zustand, zatsch,
bewege den Lesekopf auf dem Eingeband ein, fällt nach rechts,
lösche das X vom Keller und schreibe das weh wieder hin.
Also das X wird auf jeden Fall vom Keller gelöscht.
Wenn ihr das nicht wollt,
also wenn ihr quasi das X behalten wollt auf dem Keller,
dann muss das Wort weh auf X enden.
Dann würdet ihr X löschen,
weh raufschreiben und weil weh mit X endet,
ist das X wieder auf dem Keller,
sehen wir auch gleich als Beispiel
Fragen. Botten. Einfach bottom. Also die Frage war,
wie das Symbol heißt, was den Kellerboden symbolisiert, Bottom?
Ja. Ach, Gamma. Das Symbol für
das Kellerbodenalphabe, für das Kelleralphabet. Das ist Gamma.
Also Siegmar für das Eingabealphabet Gamma für das Kelleralphabet.
Aber kannst du auch Siegmar 1 und 7x2 nehmen?
Schalte ja nichts
Die Frage war, ob wir gar nicht den Automaten behandeln,
wo beide Bedingungen erfüllt sein müssen.
Die gibt es gar nicht. Also ich gebe dir
ein PDA und entweder interessiere ich mich für die Sprache,
die er mit Endzustand akzeptiert oder für die Sprache,
die er mit Lea im Keller akzeptiert.
Also nicht, man mischt das nicht. Es gibt sozusagen nicht,
dass so ein paar Wörter mit Endzuziptier so ein paar Wörter
mit Lea im Keller und die dann zusammenschmeißt.
Kann man auch da, wenn man bei diesem L-Lamda A guckt,
das sind eben genau die Wörter,
die irgendwie mit Lea im Keller akzeptiert werden und dem L-ZA sind genau die Wörter,
die mich in einen Endzustand überführen.
Da wird nicht gemischt oder so
Was sollst du noch fragen? Dann nochmal zu der Sprache
, A hoch NB hoch N. Das war der Automat,
der vorhin ungefähr so auch auf dem größeren Bild war.
Das, was vorhin nicht da war, war diese Kante
hier unten von Z0 nach Z2. Die führt nur dazu,
dass ich auch den Sonderfall mit dem Sonderfall,
dass ich das leere Wort auch akzeptieren möchte.
Also wenn N oben 0 ist, dann steht da A hoch 0
B hoch 0, das ist das leere Wort.
Das möchte ich auch akzeptieren können. Das kann ich
mit der Kante
hier machen
So, wenn man sich den jetzt anguckt,
jetzt starten wir den mal auf dem Wort A,
A, B, B, dann ist die Anfangskonfiguration,
ich bin in Z0, habe das Wort A,
A, B, B,
auf dem Eingebelband und aktuell auf dem Keller ist das Bottim.
So, jetzt gibt es da gerade nicht so viel,
was ich machen kann. Ich kann die oberste Kante hier nehmen,
dieses A-Bottom-Groß-A-Bottom. Da würde ich jetzt von Z0 gehen,
also in Zustand 2.0 bleiben, auf dem Eingebelband einfällt,
nach rechts gehen und das Bottom im Keller durch A-Bottom ersetzen.
Das heißt, der Übergang sieht so aus
Ja. Und Großa ist jetzt ganz oben auf dem Keller. Jetzt kann ich als nächstes,
die gleiche Kante kann ich nicht mehr nehmen,
weil ich jetzt gerade, also die Kante A,
Bottom,
Großabottom kann ich jetzt nicht nehmen,
weil ich gerade auf dem Keller nicht das Bottom lesen kann,
gerade das große A. Ich kann aber die Kante da drunter nehmen,
da bleibe ich wieder in Z-0 und ersetzt das große A durch eben zwei große As,
das heißt,
es kommt eins hinzu,
sieht das so aus
Jetzt kommt irgendwie das B. Jetzt kann ich mit der Kante
von Z0 nach Z1, kann ich das B lesen?
Und das große A wird gelöscht und wird durch Lamda ersetzt.
Sprich, es kommt nichts Neues dazu,
es kommt nur das große A weg.
Dann sieht der Übergang so aus. Von Z0 nach Z1
fällt weiter auf dem Eingabeband und das große A wird gelöscht.
Dann nimmt man die Kante hier an dem Z1,
löscht nochmal ein großes A, jetzt sieht das so aus.
Und jetzt würde man noch nicht akzeptieren,
weil der Keller noch nicht leer ist.
Im Moment ist noch das Kellerbodensymbol im Keller,
das bedeutet,
es ist noch
ein Symbol im Keller
Und das kriegt man aber jetzt mit der Kante von Z1
nach Z2 weg. Ich lese nichts auf dem Eingabeband,
ist auch nichts mehr, was ich lesen könnte.
Und ich lese das Bottom vom Ki. Und lösche das.
Und dann bin ich da. Und dann akzeptiere ich,
weil ich das Wort zu Ende gelesen habe und der Keller leer ist.
Wo in der Rechnung habe ich eine nicht deterministische Wahlmöglichkeit
gehabt?
Ja. Da, da konnte ich entweder das,
was wir gemacht haben,
diese Kante hier oben nehmen mit dem A-Bot im Großabottim.
Ich hätte aber auch die Kante von dem Z0 nach Z2 nehmen können.
Nichts auf dem Eingibelband lesen und Bottom löschen.
Dann wäre ich in dem Zustand Z2 gewesen. Hab noch
das A-A-B-B auf dem Eingabelband und im Keller steht das leere Wort.
Also nix. Problem ist, ich kann da nicht mehr
weitermachen. Und dann würde ich nicht akzeptieren,
weil ich das Eingabewort nicht zu Ende gelesen habe.
Der Keller ist zwar leer,
aber ich habe das Eingewort nicht zu Ende gelesen
Zweites Beispiel, wenn ich ABB habe,
am Anfang mache ich wieder die Kante oben,
wo ich das Bottom durch Groß-Abotom ersetze,
dann kann ich mit einer B-Kante,
also mit dieser Kante von Z0 nach Z1 gehen,
das B lesen und das Groß-A löschen.
Ja, und jetzt kann ich, wenn ich möchte,
noch von Z1 nach Z2 gehen,
über diese Kante an dem Z1 das B lesen,
weil dafür ein großes A auf dem Keller sein müsste.
Ich kann also von Z1 nach Z2 gehen und dann würde ich aber nicht akzeptieren,
weil ich das Wort nicht zu Ende gelesen habe.
Kellers Lehrwort nicht zu Ende gelesen,
nicht akzeptieren
Drittes und letztes Beispiel, wenn ich mit AA anfange,
dann kann ich eben zuerst das eine erlesen,
großes Haufen Keller schreiben und dann das kleine A auch nochmal lesen,
dann stehen da zwei große As auf dem Keller und da würde ich jetzt auch nicht akzeptieren,
weil der Keller ist,
da habe ich zwar das Eingehörwort zu Ende gelesen,
aber den Keller nicht gelehrt.
Wir interessieren uns gerade nur dafür, mit Lea im Keller zu akzeptieren.
Also da können wir auch gar nicht anders akzeptieren,
weil wir gar keine Endzustände haben.
Ja. Genau. Also Bemerkung war,
wenn man aus Z2 jetzt einen Endzustand macht,
dann würde der Automaten mit Endzustand die gleiche Sprache akzeptieren wie
mit leerem Keller, ja.
Noch Fragen? Doch, wenn wir mit Leam Keller
akzeptieren wollen,
Es wurde ja auch nicht akzeptiert, weil der Keller nicht leer ist.
Es gibt bei dieser Akzeptanzbedingung mit Kellerautomat akzeptiert mit Endzustand.
Da muss der Keller nicht leer sein.
Da will ich ja nur, dass er im Endzustand landet.
Ist aber eine andere Akzeptanzbedingung. Und nochmal, die beiden
Sachen nicht mischen. Also nicht irgendwie sagen, oh,
ich habe diesen PDA, die fünf Wörter akzeptiert haben mit Endzustand,
die fünf Wörter akzeptiert haben mit Leam Keller.
Also kommt das alles in seine akzeptierte Sprache oder so.
Wir nehmen ein PDA und betrachten dann entweder die Sprache,
die mit Leam Keller akzeptiert oder die,
die er mit Endzustand akzeptiert.
Oder auch beides,
aber das sind halt zwei unterschiedliche Mengen
Sonst noch Fragen. Ah, danke. Wann es sinnvoll ist,
welchen Automaten zu benutzen? Kommen wir gleich zu? Also,
bisher von der Idee her haben wir ja gemerkt,
irgendwie mit dem einen Kampf DFA nicht weiter.
Also haben wir uns gedacht, erweitern wir mal
das Modell und gucken, ob das geht.
Und wir stellen jetzt so gerade so fest, damit geht
A hoch NBO entscheinbar. Haben wir noch nicht bewiesen,
aber so von der Idee her scheint das irgendwie zu funktionieren.
Und nachher werden wir noch zeigen, dass es tatsächlich mit
DFAs nicht geht. Und dann wäre die Antwort eben,
du benutzt einen DFA, wenn das reicht und wir benutzen PDA,
wenn du merkst, oh,
muss mächtiger sein
Sonst eine Frage. Dann als kleiner Exkurs, passt auch zu der Frage eben.
Alles, was in dir kann, kann auch ein PDA.
Von der informalen Idee her, ich benutze den Keller einfach gar nicht.
Dann ist jeder DFA quasi auch ein PDA.
Wenn man das formal komplett ausführen will,
dann muss man irgendwie jede so eine Kante im DFA eben durch eine Kante ersetzen,
bei der ich das Bottom lese und wieder schreibe,
dann mache ich halt die ganze Zeit nichts auf dem Keller.
Und wenn ich dann mit Endzustand akzeptieren möchte,
dann wäre ich schon fertig und wenn ich jetzt mal mit leerem Keller akzeptieren will,
dann mache ich mir an jeden Endzustand noch so eine Kante,
wo ich von dem Endzustand zum Endzustand gehe,
nichts auf dem Eingewöhnband lese und eben das Bottom lösche,
ich auch mit leerem Keller akzeptieren
Daraus folgt sofort, dass dieser PDA mindestens so mächtig ist wie der DFA.
Das haben wir später noch öfter, dass irgendwie,
ich habe ein Modell und ich erlaube dem Modell mehr,
also ich gebe noch irgendwie ein Feature ran,
dann kann ich ja sagen, naja gut,
wenn ich das Feature jetzt gar nicht benutze,
dann habe ich das vorherige Automatenmodell sofort.
Das war beim Übergang von DFA zu NFA auch schon so.
Jeder DFA ist auch ein NFA, wenn er
gar keinen Nicht-Determinismus ausnutzt. So, wir wissen also,
der kann mindestens so viel wie der DFA.
Die Frage ist immer noch, ob er tatsächlich mehr kann.
Also wir sehen schon der KA auch in BuchN oder zumindest
haben wir da schon die Idee, dass er das wohl kann.
Müssen wir gleich nochmal zeigen. Und dann müssen wir eben noch zeigen,
dass der DFA tatsächlich das Der DFA tatsächlich, das nicht kann.
So, Fragen für euch. Dieser etwas wüst-aussehende PDA.
In welchen Zuständen kann der das Lesen von 0-0
-1 zu sein?
Oh, das wird nicht funktionieren.
Sehr gut.
Ihr dürft klickern
Muss ich selbst nachdenken,
will man sagen.
Ich kann
Musik Ja. Wie kommt ihr denn nach Z0? Genau. Ja,
also als erstes kann man die Kante hier links oben nehmen.
Genau, die zweite von Genau, der da.
Der da, ne? Genau. Steht jetzt auf dem Keller?
Genau, das Wort, andersrum. Also in Z0 können
wir schon mal, da gelangen wir schon mal hin.
Kann man sich auch schnell überlegen, die kannten hier oben,
die decken quasi alle Fälle ab. Wenn ich eine Null lese,
also die linke, linke Spalte sagt,
wenn ich eine Null lese, ist mir eigentlich egal,
was im Keller ist, ob dann Bottom 0 oder eine 1,
ich schreibe da einfach noch die Null dazu
Und die zweite sagt, die zweite Spalte,
wenn ich eine Eins lese, ist mir auch egal,
was im Keller, spotte 0 oder Eins,
ich schreibe einfach noch die Eins dazu.
Und weil eben das zuerst gelesene Symbol das unterste Stack ist,
ist das Wort nachher genau andersherum im Keller.
Wie kommt ihr nach Z1? Auch relativ einfach.
Oder was heißt relativ einfach, es geht,
so ähnlich wie das eben.
Ja, fast. Jetzt hättest du das Wort 0-
0-1-1 nicht bis zum Ende gelesen.
Wir wollen das Wort ja auch bis zum Ende lesen.
Ja. Oh ja. Ja, so kann man das auch mal, ja.
Die Antwort war, ich lese die ersten drei Symbole in Set0.
Jetzt gehe ich mit einer Kante rüber nach Z1 und da
lese ich dann noch mit der Einser-Kante die Eins,
habe ich richtig verstanden, ne?
Genau, das kann man machen.
Oder man liest so wie eben alle vier Symbole in Set0
und geht dann mit irgendeiner Kante
hier von darüber
Muss man da ja auch drüben. Also Z1 ist auch zu erreichen,
Z0 in Z1 sind zu erreichen,
Z2 ist nicht zu erreichen, es sei denn,
ihr interpretiert die Frage so, welche Zustände kann alle erreichen,
dann habt ihr natürlich recht,
weil ich dann einmal hier mit dem Lamberbottom Bottom nach Z1 komme und dann nochmal mit dem Lamberbottom Lamb danach zetze.
Ey, aber dann habe ich das Wort nicht zu Ende gelesen.
Also die etwas missverständlich formulierte Frage, in welchen Zuständen
kann man nachlesen von 00111 sein?
Ich will das Wort auch bis zum Ende gelesen haben.
Und dann kann ich nicht in Z2 sein.
Also das zweite ist richtig,
Z0 und
In den Zuständen kann man nachlesen von 0-0
ins 1 sein. Also das ganze Wort gelesen haben,
dann kann man ins Z0 oder Z1 sein.
Dann... Ja. Habe ich nicht gesagt,
dass er akzeptiert wird.
Wird auch nicht
Jetzt kommt die Frage mit dem Lea im Keller,
wenn, also unabhängig vom Eingabebewort soll jetzt nicht bedeuten,
dass es egal ist,
was ihr für ein Eingebewort habt, aber die Eingabeworte,
die einen irgendwie in den leeren Keller überführen,
in welchem Zustand oder in welchen Zuständen muss man dann sein?
Sprich, in welchen Zuständen kann der Keller leer sein,
gelehrt werden?
Untertitel von Stephanie Geiges Dafür müsst ihr euch angucken,
wo überhaupt was vom Keller gelöscht wird.
Es gibt nur so ein paar Kanten,
wo wirklich was
vom Keller gelöscht wird
Wieder nicht die Mehrheit. Drittens ist richtig.
In Z1 kann der Keller nicht leer werden,
weil das Kellerbudensymbol bleibt ja auf jeden Fall erstmal im Keller.
Also in Z0 lösche ich ja gar nichts vom Keller,
sondern ich schreibe nur dazu. Bei dem Übergang von Z0
nach Z1 lösche ich auch nichts vom Keller,
sondern ich lasse alles so, wie es ist.
Und in Z1 kann ich nur Nullen und Einsen vom Keller löschen.
Das heißt, das Spottom bleibt da.
Die einzige Möglichkeit, wirklich mal zu löschen,
ist bei diesem Übergang von Z1
Das heißt, der 2 ist der einzige Zustand,
wo der Keller wirklich mal leer sein kann.
Oh ja. Anderes Eingabewort, 01110,
wo kann er jetzt sein
Also auch da wieder, wo kann ich überall sein,
wenn ich das Wort zu Ende gebracht habe?
Wie der Keller dann aussieht, ist mir erstmal egal.
Nur wo kann ich überall sein, damit ich dieses Wort
gelesen habe? Man könnte die Frage auch so formulieren,
was es alles für Rechnungen gibt
Zwei und drei. Drei ist richtig, ist widerlich die Mehrheit.
Ich kann ja, was wir eben schon hatten,
das einige Wort komplett in Set nur lesen.
Null die ganze Zeit dabei bleiben. Dann bin ich
in Set 0. Ich kann danach, wenn ich möchte,
noch mit dieser Lambda-Kante nach Z1 gehen. Dann bin ich
in Z0 und Z1. Was ich aber auch machen kann,
ist, ich kann die Null und die 1 in Z0 lesen.
Dann steht sie andersrum auf dem Keller. Also 0 in
1 habe ich gelesen und auf dem Keller steht 1-
0 mit 1 ganz oben.
Jetzt gehe ich mit einer dieser Kanten von Z0 nach Z1.
Da gehe ich ja wieder auf dem Eingabewort vor,
noch ändere ich was im Keller
Und in Z1 lösche ich 1 und 0. Jetzt sind die weg.
Jetzt habe ich das Wort bis zum Ende gelesen und
im Keller steht nur noch Bottom.
Und jetzt mache ich den Übergang von Z1 zu Z2.
Dann bin ich in Z2 angekommen. Also da sind alle drei möglich,
wobei die dritte eben auch schwer zu sehen ist.
So, habe ich da noch eine Frage?
Oh ja
Also bei dem Automaten können wir mit Lea im Keller nicht mehr
lesen, weil es eben keine Kante aus Z2 herausgibt.
Und wir hatten ja bei der zweiten Frage diskutiert,
dass das der einzige Zustand ist, wo ich mit Lea im Keller sein kann.
Und jetzt ist die Frage, ob es im Allgemeinen
möglich ist, bei Lea im Keller weitere Aktionen auszuführen.
Kann man zum Beispiel so eine Lamda-Landa-Landa-Kante von Z2 nach Z0 einfügen?
Das könnte man benutzen, um beispielsweise zu zeigen,
dass diese Sprachen, die von dem Auto akzeptiert werden,
irgendwie gegenüber Sternbildung abgeschlossen sind,
weil man dann immer wieder von vorne anfangen kann
Musik Eins, ja, nein, wieder nicht die Mehrheit.
Nein, ist die richtige Antwort. Das war ja so definiert.
Ich ignoriere doch so ein Viertens. Das war ja so definiert,
dass wir auf jeden Fall ein Symbol vom Keller lesen müssen.
Vom Eingabewort, da können wir auch so ein Lander lesen,
das tritt da ja auch auf bei diesen Kanten von Z0 nach Z1 zum Beispiel.
Also beim Eingabewort müssen wir nicht lesen, aber beim Keller müssen wir immer lesen.
Und wenn ihr euch die Übergänge da anseht,
irgendwie das zweite Symbol in so einem, in dieser Dreierfolge,
da steht immer irgendwas, da steht nie Lamm da.
Also mindestens Bottom steht da noch. Also wenn der Keller
leer ist, dann kann ich auch keine Aktion mehr ausführen
Gut, dann... Achso,
was man ja jetzt eben hier schon gesehen hat,
es ist also scheinbar sehr viel komplizierter bei PDAs zu sehen,
welche Sprache die akzeptieren.
Den gucken wir uns nächstes Mal an. Jetzt wollte ich
nochmal, also nächstes Mal gucken wir uns an,
welche Sprache der akzeptiert und beweisen das auch.
Heute nochmal für diese A-Hoch-NB-Hoch-N, also wirklich beweisen,
dass dieser Automat jetzt diese Sprache tiert
Von der Idee her, man kann jetzt erstmal,
wenn man das jetzt beweisen soll,
dann skizziert man üblicherweise erstmal die Idee,
dass man sagt, naja,
die Idee ist irgendwie in Z0,
so viele Großas auf den Keller zu schreiben,
wie ich Kleinas vom Eingebeband lese und die dann eben in Z1 wieder zu löschen und dann eben den Übergang nach Z2 zu machen.
Aber formal muss man eben jetzt auch wieder zeigen,
dass irgendwie die mit Leam Keller von A akzeptierte Sprache,
gerade gleich dieser Menge A hoch NB-Huchende ist.
Jetzt kann man erstmal, weil das praktisch ist,
diesen blöden Fall mit dem leeren Wort
irgendwie vorneweg behandeln,
dann stört er nachher nicht so
Ah, hier kann man sich ganz schnell überlegen,
dass Lamda sowohl in M drin sein muss, mit dieser Endgleich-Null-Sache.
Und man kann eben auch zeigen,
dass man ja von Z0 nach Z2 kommt mit dieser Kante
und dann also auch das leere Wort akzeptiert mit leerem Keller.
Da wird der Keller gelöscht. Ich habe das ganze eingebewortet
gelesen und gut ist. Dann kann man nachfolgend sagen,
okay, das Wort mindestens die Länge eins haben.
In dem Fall hier braucht man das noch nicht so dringend
bei einigen anderen Beispielen, das war schön, das zu haben.
So, die Richtung. Zuerst wollen wir zeigen,
dass jedes Wort der Form A hoch NB hoch N von
dem Keller mit leerem,
von dem Automaten mit leerem Keller akzeptiert wird
Sei also Wese und Wort, auch in Buchent für irgendeinen Endgrößer
gleich eins. Und dann kann man sich überlegen,
gibt es jetzt eine akzeptierende Rechnung in dem Automaten?
Und falls es so eine gibt, gibt man die eben einfach.
Und hier kann man eben, man fängt in Z0 an,
das erste A kann man mit dieser A-Bottom-Groß-Arbotom-Kante lesen,
dann hat man ein großes A auf dem Keller und das Bottom
noch und hat schon ein kleines A von der Eingabe gelesen.
Jetzt kann man eben N-minus eins mal diese zweite Z0-Kante nehmen,
die, wo man das eine große A durch zwei
große As ersetzt.
Kommt also immer eins dazu
Dann bin ich irgendwie in der Konfiguration Z 0,
Klein-B hoch, N, GoSA hochenden.
Jetzt mache ich den Übergang zu Z1. Dann habe ich
wieder 1B gelesen und eigentlich ist das A gelöscht.
Und jetzt lösche ich all die anderen kleinen Bs in dem Zustand Z1,
lese all die anderen kleinen Bs und lösche dabei die großen As.
Dann bin ich in der Konfiguration Z1, Lamnder Bottom.
Und dann kann ich eben mit dieser letzten Lamder-Kante von Z1
nach Z2 das Bottom löschen und bin in einer Konfiguration,
wo ich das Eingabewort bis zum Ende gelesen habe und der Keller leer ist.
Das heißt, ich will akzeptieren. Die Richtung ist meistens
relativ einfach, weil man ja den Automaten so konstruiert hat,
dass er das tun soll
Fraglich ist immer, ob er nicht plötzlich zu viel kann.
Also die Richtung ist meistens relativ einfach. Jetzt die andere Richtung,
jetzt gucke ich mir ein Wort an,
das von dem Automaten akzeptiert wird und muss akzeptieren,
dass es dann, muss argumentieren,
dass es dann immer die Form A hoch NB hochändert.
Also ich fange wieder an mit dem Wort,
dass er mit Lea im Keller akzeptiert und das länger ist als eins.
Das kann ich zuerst sagen, dieser Kantenübergang von Z0 nach Z2,
den haben wir ja gebraucht,
um das leere Wort zu akzeptieren.
Die Kante werde ich
hier nicht weiter benutzen
Genau, weil sonst eben in Set 0 nie vom Keller
gelöscht wird und ich Z0 auch nie wieder erreiche.
Das heißt, die Kante kann ich entweder ganz am Anfang benutzen,
dann aber nur, um das leere Wort zu akzeptieren oder
halt später kann ich die nie wieder benutzen.
Das heißt, die kann ich für alles Nachfolgende ignorieren.
Alles Nachfolges ist nicht voll Bedeutung. So,
jetzt kann man sich überlegen, was kann ich denn an diesen Kantenübergängen,
die ich da so gebastelt habe, was kann ich denn da erkennen?
Ich erkenne, dass ich nur in Set 0 As lesen kann.
Dann weiß ich, für jedes gelesene A wird ein
großes A auf dem Keller geschrieben. Dann weiß ich,
wem muss mit einem A beginnen, weil sonst kein Übergang möglich ist.
Wenn W mit B beginnt, dann kann ich diesen Übergang
hier nicht machen, weil ja das Kellerbodensymbol im Keller ist.
Und ich sah, also W muss auf jeden Fall mit A beginnen.
Und insgesamt heißt das, dass W eben mit diesem Prefix A
hoch I beginnen muss, also mit beliebig vielen As.
Sieht also irgendwie so aus, V ist das Restwort.
Und dann wissen wir auch, V muss mit B beginnen,
weil wir sonst den Zustand Z0 nicht verlassen.
So, jetzt kann man sich überlegen, nach Lesen vor
diesem A-Hoch I sind wir dann irgendwie in dieser Konfurration.
V ist noch zu lesen und auf dem Keller ist A-Hoch
Und jetzt kann man wieder an den Kantenübergängen ablesen,
dass man genau ihm mal das B lesen kann,
muss, um an dieses Bottom heranzukommen.
Ja, das Bottom wollen wir ja löschen,
weil wir wollen mit Leam Keller akzeptieren. Also vielmehr,
wir wissen schon, dass das Wort mit Leam Keller akzeptiert wird.
Das bedeutet, das Bottom muss irgendwann mal gelöscht worden sein.
Das kann aber nur über diese Kante passieren.
Und das heißt, insbesondere, dass wir diese EARs,
die wir vorher gelesen haben, die müssen alle weg.
Und die EARs kriegen wir aber nur weg, IBs lesen.
Weil das die einzige Möglichkeit ist,
die Ars zu löschen
Das geschieht beim Übergang nach Z1 und dann eben Inside 1
bei jedem Lesen eines Bs wird ein A gelöscht und
dann kommen wir eben an dieses Bottom heran.
Wenige, ja genau, weder möglich, mehr, noch weniger East.
Dann wissen wir, V muss gerade die VMB hoch I
haben und dann ist eben dieses Bottom im Keller reichbar.
Wir können den Übergang nach Z2 machen und insgesamt wissen wir
dann, das Wort muss auch IB-Hui haben.
Und wenn es eben diese Form hat, dann ist es auch in M drin.
Und damit haben wir dann, dass jedes Wort,
das von dem Automat mit Liam Keller akzeptiert wird,
tatsächlich von der Form A hoch IB-Hui ist
Damit haben wir gezeigt, dass der PDA diese Sprache akzeptieren kann.
Fragen. Das, was da benutzt wurde,
ist so eine typische Technik, also man hält sich da
im großen Ader ja auch irgendein anderes Symbol reinschreiben können.
Man hat quasi unnäher gezählt. Wir haben nicht Bienennäher gezählt oder irgendwie sowas,
sondern wir haben unnäher so mit der Strichliste irgendwie gezählt,
wie viele As wir da haben.
In dem Fall wollten wir das so machen,
dass wir auf dem Stack mir erzählen, wie viele As wir haben.
Und danach zählen wir runter, um genauso viele Bs zu haben.
Und wir wissen, wenn wir hier an Bottom rankommen,
dann haben wir genauso viele Bs gelesen
wie As
Die Technik kann man auch für andere Sachen benutzen,
wenn man eben die Anzahl von dem Aioul,
mit der Anzahl von dem anderen Symbol irgendwie miteinander in Beziehung setzen will. Beispiel,
wenn ihr lesen wollt, A hoch NB hoch 2N,
dann macht ihr das entweder so, dass ihr immer,
wenn ihr ein kleines A liest,
zwei große As auf den Keller schreibt oder ihr macht das so,
dass immer, wenn ihr nachher so ein großes A löscht,
dass das nur geht, wenn ihr zwei Bs lest.
Andere Geschichte, wenn ihr A hoch NB hoch
M habt und ihr wollt mir As lesen als Bs,
dann schreibt ihr euch das auch wieder auf den Keller.
Wenn die Bs kommen,
löscht ihr den Keller und dann akzeptiert ihr schon dann,
wenn quasi noch Symbole auf dem Keller sind und das Wort zu Ende gelesen ist.
Müsst ihr nur darauf aufpassen,
dass ihr jetzt noch irgendwie in Zustand geht,
wo ihr den Keller komplett leer machen könnt,
ohne noch vom Eingabewort
zu lesen
Dritte Geschichte, wenn ihr das genau andersrum haben wollt,
weniger Ass als Bs, wieder erstmal für die Ass,
was auf den Keller schreiben, für die Bs löschen.
Und jetzt wisst ihr, wenn ihr das Kellerbodensymbol erreicht habt,
okay, ich habe jetzt mindestens so viele Bs VRs gelesen,
jetzt dürfen noch beliebig viele weitere Bs kommen.
Dann kriegt man das auch hin. Das ist so
fürs Zielen. Jetzt noch zwei Sachen mit dem Zähler,
die ihr dann auch bei den Präsenz- und Übungsaufgaben braucht.
Wenn man Wut akzeptieren will, bei denen jedes Briefix mir
Nullen als Einsen hat. Also ein Prefix ist der Vorderteil
des Wortes. Also wenn ihr das Wort 0011 habt,
dann ist Nullen Prefix 00 ein Prefix 001
ein Prefix und auch das leere Wort und das Wort selbst
sind Prefixe
Also sozusagen vom ersten Symbol an irgendwie beliebig viele Symbole
des Wortes lesen, das ist ein Prefix.
Jetzt irgendwie mehr Nullen als Einsen lesen will,
dann kann das ja durchaus sein, was wollte ich sagen?
Achso, genau. Da kann es halt sein,
dass der Zähler für die Nullen,
der wächst mit den Nullen und wird mit den Einsen kleiner.
Jetzt kommen aber vielleicht wieder Nullen,
da muss er wieder ein bisschen wachsen und wieder Einsen kommen,
muss er wieder ein bisschen fallen.
Der wird also so ein bisschen dynamisch bei dem Rechnen angepasst,
aber muss halt darauf achten, wenn der Bottom ist,
dann darf keine Eins kommen,
weil dann hätte ich plötzlich mal mehr Einsen
als Nullen gelesen und das soll nicht passieren
Das sollt ihr bei der Präsenzaufgabe mal machen. Der ist,
wenn man das gut bastelt, ist der Automat relativ klein.
Aber es wird schon ziemlich schwer, das zu beweisen,
dass der auch wirklich korrekt ist.
Macht ihr denn den Übungsaufgaben? Er macht ja den Übungsgruppen.
Und für die Übungsaufgaben, da wollen wir Worte akzeptieren,
die gleich viele Nullen wie Einsen haben.
Und da ist jetzt aber das Problem,
ihr wollt ja nicht sowas lesen wie 0 hoch N1 hoch,
sondern ein Wort, das gleich viele Nullen wie Einsen hat.
Das kann ja auch sowas sein wie Null,
jetzt kommen drei Einsen und dann kommen nochmal
2 Nullen
Und da muss man jetzt so was machen wie den Zähler quasi,
in Anführungsstrichen, flippen, dass man einmal den Zähler benutzt,
um irgendwie die Nullen zu lesen,
die sich zu merken, wie viele Nullen man hat.
Jetzt kommen irgendwie Einsen,
jetzt wird er vielleicht leer und wenn jetzt wieder Einsen kommt,
dann ist das ja keine Abbruchbedingung, sondern jetzt benutzt man den Keller,
um die Einsen zu zählen und dann bei Nullen wieder zu verringern.
Das heißt, die Eigenschaft dieses Kellers ändert sich. Einmal zählt man da mit Nullen,
dass man mehr Nullen hat als Einsen und on the flight tauscht es so,
dass man sagt, oh, jetzt benutze ich den,
um zu zählen, dass ich mir Einsen als Nullen habe.
Und dann muss man eben erst am Ende des Wortes entscheidet
man dann, ist der Keller wirklich leer,
also es ist nur noch das Bottom im Keller,
dann hatte ich gleich viele Nullen wie Einsen und sonst
eben nicht
Da nochmal formal die Definition von Prefix. Das ist,
wenn ihr so ein Wort weh habt, dann ist ein Prefix V eben
irgendwie so ein Start von W. Und danach kommt noch das U.
Hier ist das Beispiel, wenn ihr irgendwie 1.001 habt,
dann ist eben einzeln Prefix, 1.0 in Prefix,
1.00 in Prefix und eben als Spezialfälle auch das leere Wort und das Wort selbst.
Ja, die Definition brauchen wir das nächstes Mal.
Das ist die Definition für das Wort umdrehen,
also aus dem Wort 1.00.
Was hatte ich da?
1.01.1 wird das Wort
Brauchen wir das nächstes Mal und dann wollen wir uns da angucken,
dass der Automat, den wir vorhin als Beispiel,
also in der Fragerunde, der akzeptiert genau die Wörter,
die sich aufbauen aus einem Weh, gefolgt von W-Reverse.
Und wir hatten ja vorhin auch dieses Wort 0-1
-1-0, was er irgendwie akzeptiert,
das ist halt gerade 0-1 und dann das nochmal umgedreht 1-0.
Das wollen wir nächstes Mal machen. Jetzt springen wir einmal
hier in die Zusammenfassung, was wir bei diesen PDAs jetzt gemacht haben.
Wir haben PDAs und Kim Martin kennengelernt,
wieder diese ganzen Begriffe eingeführt und haben dann eben diese,
ach so, genau, das haben wir noch gemacht,
dass die PDAs mit Liam Keller oder mit Endzustand akzeptieren und dass die beiden Aktiepanzbedingungen äquivalent sind.
Das brauchen wir ja mit Nachfolgen nicht so.
Und dann haben wir eben IPDA für A, auch NB
hoch N gebaut und dafür den Keller eben als Zähler benutzt.
Und nächstes Mal machen wir noch diese Sprache wie Refter.
Das machen wir erst nächstes Mal. So, das zu
den PDAs erstmal. Also wir haben noch gar nicht großartig viel jetzt bewiesen für die PDAs,
dass sie irgendwelche tollen Eigenschaften hätten oder so,
sondern erstmal wissen wir, okay,
so und so funktionieren die und wir können damit A auch in B hoch N akzeptieren.
Was wir aber noch nicht mit Sicherheit wissen, ist,
dass wir das nicht mit dem DFA machen können
Und das wollen wir jetzt zeigen, sodass das tatsächlich nicht mit dem DFA geht.
Da kommt jetzt gleich das ominöse Pumping-Lämmer um die Ecke,
was erfahrungsgemäß immer total viele Probleme macht. Die Idee ist,
wir wollen in der Eigenschaft haben für reguläre Sprachen,
sodass wir sagen können, wenn eine Sprache regulär ist,
dann hat sie die Eigenschaft X,
was immer das jetzt ist, wollen wir uns gleich überlegen.
Und wenn wir dann für die Sprache A
hoch in B hoch in zum Beispiel zeigen können,
dass sie diese Eigenschaft X nicht hat,
dann kann die Sprache auch nicht regulär sein,
weil wenn sie regulär wäre,
hätte sie ja
diese Eigenschaft
Das ist erstmal die Idee,
dass man irgendwie so eine Eigenschaft haben will,
mit der man ja nicht die regulären Sprachen charakterisieren kann,
aber zumindest so eine Bedingung hat, wo man weiß,
wenn eine Sprache regulär ist, dann gilt diese Eigenschaft.
Also können wir vielleicht so eine Eigenschaft X finden,
die alle diese regulären Sprachen haben müssen und dann könnten wir die eben vielleicht benutzen.
L hat dann irgendwie die Eigenschaft X nicht und dann kann er
auch nicht regulär sein. Das ist so die Idee.
So, wenn man da so forschungsmäßig drauf guckt,
dann würde man jetzt so denken, okay,
welche Eigenschaften könnten denn reguläre Sprachen haben?
Stellt man sich als nächstes die Frage,
was zeichnet denn
alle regulären Sprachen aus
Und bisher wissen wir, reguläre Sprachen werden dadurch ausgezeichnet,
dass es einen endlichen Automaten gibt, der die Sprache akzeptiert.
Okay, damit können wir jetzt irgendwie noch nicht so viel machen,
aber ist schon mal gut, das wissen wir schon mal.
Dann wissen wir, Automaten haben immer endlich viele Zustände.
Auch schon mal gut, vielleicht können wir das ausnutzen.
Jetzt kann man sich überlegen, wenn es also eine,
ich gebe euch irgendeine reguläre Sprache, dann wisst ihr,
es gibt auf jeden Fall einen Automaten, der diese Sprache akzeptiert.
So, und jetzt könnt ihr erst mal annehmen,
naja gut, sagen wir einfach mal für die,
der muss ja, er hat ja endlich viele Zustände,
nennen wir die Anzahl dieser Zustände mal K,
ohne genau zu wissen,
wie viele das sind.
Aber sagen wir mal,
der hat K
viele Zustände
Wenn ich jetzt ein Wort dieser Sprache nehme,
das länger ist als K. Nehmen wir mal an,
das ist 2K lang. Dann muss ich ja,
weil ich das Wort zu Ende lesen kann,
also ich gehe mal vom vollständigen DFA aus und dachte so,
ich gehe auch davon aus, dass der das Wort akzeptiert.
Wenn dieses Wort jetzt die Länge 2K hat,
dann finden ja 2K Zustandswechsel statt.
Bei jedem Buchstaben, den ich lese, findet ja ein Zustandswechsel statt.
So, wenn ich aber nur ka viele Zustände habe und es finden 2K
Zustandswechsel statt, Muss ich ja mindestens einen Zustand mal doppelt besucht haben.
Also bei dem Verhältnis K zu 2 kann man sich eine Menge Zustände doppelt besucht haben,
aber zumindest ein Zuständen werde ich mal irgendwie doppelt besucht haben.
Und das kann man dann ausnutzen. Dann kann man nämlich sagen,
wenn ich, ich bin also irgendwie vom Staatszustand losgegangen,
bin zu einem Zustand gekommen, den besuche ich jetzt später nochmal.
Und jetzt gehe ich von da zum Endzustand. Dieses Will,
das ich hier nochmal besucht habe, also diesen Kreis,
den ich sozusagen dem DFA entlang gelaufen bin,
den könnte ich ja immer wieder entlang gehen.
Den kann ich nullmal entlang gehen, den kann ich einmal
entlang gehen, den kann ich fünfmal entlang gehen,
zehnmal entlang gehen.
Und all diese Wörter würde ich akzeptieren
Das ist eine charakteristische Eigenschaft von regulären Sprachen. Und jetzt kann man sich überlegen,
dass das wahrscheinlich bei A auch NBON irgendwie nicht funktionieren wird,
weil welches, nehmen wir mal,
es gäbe einen Automaten mit K-Zustände,
dieses A auch NBON akzeptiert.
So, jetzt nehme ich mir irgendwie so ein Wort A
hoch KB hoch K. Mein Automat hat K viele Zustände.
Jetzt muss ich also irgendwie einen Zustand doppelt besucht haben.
Es müsste also irgendein Teilwort in A hoch KBA geben,
das ihr mehrmals hinschreiben könnt.
Und da soll trotzdem Wort rauskommen, der Form A hoch
IB hoch I. Und so ein Thai-Wort werdet ihr nicht finden
Wenn ihr sagt irgendwie, naja, A hoch K.B. hoch
K. Und ich nehme jetzt dieses A.B. genau in der Mitte.
Ja, nehme man da ist die Schleife und ich schreibe
das mehrmals hin. Dann habt ihr A hoch K,
A.B., A.B., A.B., A.B., A.B., B hoch
K. Das ist nicht von dieser Form A hoch I.B. Hori.
Also das wird gleich die Idee sein. Also wir wissen,
irgendwie weiter akzeptieren, die haben mehr Buchstaben als da automat Zustände,
dann muss ich schleifen in diesem Automatenumt durchlaufen und die Schleifen kann ich öfter entlang gehen.
Und dabei muss ich Worte erzeugen, die wieder in der Sprache
drin sind. Die wird der Automat ja wieder akzeptieren.
Und dann kann man sich überlegen,
dass das bei Auch N.B. Hoch N
nicht gehen wird
Und das ist schon die ganze Idee von diesem Pumping-Lemmer,
das ist die ganze Idee der Eigenschaft und die ganze Idee von dem Pumping-Lemmer,
der Beweis wird gleich auch mich ähnlich aussehen.
Ja, fast so. Genau,
jetzt formulieren wir das Pumping-Lemmer und dann werden das benutzen,
um tatsächlich zu zeigen, dass A auch in Büchern nicht regulär ist.
Das ist das Pumping-Lemmer, sieht erstmal fies aus,
Aussage ist, wenn Ellen eine reguläre Sprache ist,
dann gibt es irgendeine natürliche Zahl,
das wird im Beweis gleich die Anzahl der Zustände sein,
von dem Automaten der L akzeptiert
Sodass sich jetzt jedes Wort, das mindestens die Länge N hat,
wenn ich das nämlich dem Automaten vorlege,
das ist ja in L, also muss der Automat das akzeptieren.
Und wenn ich so ein Wort dem Automaten, der UN-Zustände hat,
vorlege, dann besuche ich N plus eins viele Zustände.
Also muss einer doppelt auftreten. Die Aussage ist also,
es gibt dann so eine natürliche Zahl,
sodass jedes Wort das in L ist und das mindestens die Länge N hat,
in so eine Form UVW zerlegt werden kann, wobei UV-Kleider gleich N ist.
Das ist nämlich,
wo ich noch keinen Zustand doppelt besucht habe oder wo ich das erste Mal in Zustand doppelt besuche,
V wird die Länge mehr als eins haben,
das wird die Schleife sein und ich kann an dem V beliebig aufpumpen,
deswegen der Name Pumping Lammer,
ich kann das V da nullmal hinschreiben oder eben auch beliebig oft und jedes dieser Worte muss wieder in L sein.
Und nochmal als Anmerkung fürs Nachbereiten später,
dieses I hier kann eben auch null sein,
also auch das Wort UW muss in der Sprache L sein.
Eis, wir gehen davon aus,
L ist regulär und dann wollen wir irgendwie beweisen,
dass es dann so eine natürliche Zahl gibt mit all diesen ganzen Eigenschaften.
Angenommen, L ist regulär,
dann gibt es dann vollständigen Automaten, jetzt kommt das alles,
was ich eben erzählt habe,
nochmal,
nur ein bisschen formaler
Gibt es ein vollständiges Automat, der diese Sprache akzeptiert.
Jetzt nehmen wir mal an, der hat Endzustände.
Also wir nennen einfach die Anzahl seiner Zustände,
die nennen wir einfach N. Und jetzt betrachten wir ein Wort,
das in dieser Sprache El drin ist.
Das wird also vom Automaten akzeptiert und das mindestens diese Länge endet.
Und wenn es kein solches Z gibt,
also wenn es kein Wort gibt, das mindestens die Länge hat,
dann ist gar nichts zu zeigen,
weil dann gilt das Ganze hier bedingungslos.
Hier wird ja gesagt, dann gibt es ein N,
so das, jedes Wort und damit passiert irgendwas,
wenn es gar keine solche Worte gibt, bin ich sofort fertig.
Dann lassen sich nämlich alle Worte mit der Eigenschaft,
dass sie länger als N sind,
so und so zerlegen,
weil es gibt da keins
Also wir betrachten jetzt so ein Wort,
das mindestens diese Länge hat, wem das eben zu paradox erschien,
der denkt, sie merkt sich einfach, okay,
es gibt irgendwie so ein Wort.
Das Wort legen wir dem Automaten vor, der beginnt im
Staatszustand Z0 und weil A ja vollständig ist und Z akzeptiert,
kann Z gelesen werden.
Das ist vollständig, braucht man gar nicht, aber ja.
So. Und weil Z jetzt ja aus mindestens in Buchstaben besteht,
finden mindestens eng Zustandsübergänge statt.
Für jeden Buchstaben findet ein Zustandsübergang statt. Wenn ich eine Schleife habe,
findet auch ein Zustandsübergang statt und dann habe ich sofort meinen Zustand,
den ich gerade doppelt besuche
Es werden mindestens endplus eins Zustände besucht. Wir fangen in Z0 an,
ich lese das erste Symbol, ich bin in Z1,
ich lese das zweite Symbol, ich bin in Z2,
ich lese das dritte Symbol, ich bin in Z3,
ich lese irgendwann das Ente-Symbol, ich bin in Z1,
von Z0 bis ZN sind endplus eins Zustände.
Dass in dieser Folge jetzt möglicherweise ein Zustand doppelt auftritt? Ja,
wenn ich endplus eins Zustände habe, die ich besuche,
in verschiedene, dann muss in dieser Folge ein Zustand doppelt auftreten.
Da es nur in Zustände gibt,
ich aber in plus eins besuche,
muss ein Zustand
doppelt auftreten
So, jetzt gucken wir uns diese Zustandsfolge an vom Startzustand,
Z0 an bis zu einem Endzustand ZE,
also wir akzeptieren ja,
die so besucht wird und wir nennen diese Zustandsfolge Z0,
Z1, Z2 oder irgendwann kommt ZN,
also der N plus einste besuchte Zustand und dann kommen vielleicht noch weitere Zustände,
bis wir irgendwann im Endzustand sind.
Nochmal, von Z0 bis ZN sind das N plus
ein Zustände, da muss ein Zustand doppelt auftreten.
Nennen wir die mal ZI und ZJ?
Das sollen jetzt die beiden Zustände sein
Dö-dö-dö-dö, die gleich sind und derart das ZJ eben der
erste Zustand ist, der jetzt schon mal vorher aufgetreten ist.
Im Extremfall sind die Zustände von Z0 bis ZN minus 1 alle verschieben,
die enden verschiedenen Zustände und dann muss der letzte Zustand,
ein Zustand sein, der schon mal da war.
Was wir wissen ist, J ist Kleine gleich N mit der Argumentation von eben.
Von Z0 bis ZN ist Bereich N plus ein Zustände,
einer muss doppelt auftreten und wir wissen auch,
weil wir hier ja gesagt haben,
I soll ungleich J sein und J soll größer sein als I,
wissen wir auch,
dass J-I größer
gleich eins ist
Null könnte das nur sein, wenn sie gleich sind,
sind sie aber nicht. Und J ist größer als ihr,
also muss das Größte gleich eins. Und jetzt nennen wir das Wort,
das wir von Z0 bis ZI lesen, das nennen wir U,
das Wort, das wir von ZI bis ZJ lesen,
das nennen wir V, das ist jetzt die Schleife.
ZI ist ja der gleiche Zustand wie ZJ,
das heißt, ich bin von ZI gestartet,
bin irgendwo am Automaten lang gewandert und bin wieder bei ZJ,
was der gleiche Zustand ist, angekommen.
Und wie ist jetzt einfach der Schluss von ZJ bis ZE?
Da steht es nochmal. Ja, und jetzt gelten alle
die Eigenschaften, die wir uns gewünscht haben.
UV ist klar, der gleiche J,
weil ja das J kleiner ist als
Hatten wir uns ja so ausgesucht. V ist größer gleich eins
wegen diesem J-Minus, oh, da muss ein I stehen,
wegen dem J-Minus Ego ist ja gleich eins.
Und diese Schleife von ZE bis ZJ,
die kann ich eben beliebig oft durchlaufen.
Und dann kann ich trotzdem von diesem ZJ aus mit W
den Endzustand Z ändern. Und daraus folgt eben,
dass dieses UV-IV immer akzeptiert werden muss.
Und fertig
Schön, oder? Finde ich den nicht? Ist eigentlich schön. Ihr könnt,
also den Beweis kann man schon dann intuitiv nachvollziehen,
wenn er irgendwie eine bildliche Vorstellung von diesem Automaten habt und er irgendwie sagt,
okay, das sind also zehn Zustände, 100 Zustände, irgendwas.
Und jetzt malt er da einen Weg rein,
wo ihr irgendwie 200 Kanten entlang geht.
Wenn ihr 200 Kanten entlang geht, müsst ihr irgendwie einen Zustand mehrfach besuchen.
Bei 100 Zuständen. Und dann könnt ihr sagen, naja gut,
ich nehme jetzt den, den ich das erste Mal,
irgendeinen Zustand, du suche ich ja das erste Mal,
ein zweites Mal.
Und dann nehmt ihr einfach diese Schleife und sagt,
okay, die kann ich ja immer wieder
entlang gehen
So, das haben wir damit bewiesen.
Und jetzt wollen wir das benutzen, um zu eigen,
dass die Sprache auch in Biochend tatsächlich nicht regulär ist.
Das, was man da immer macht, ist,
man nimmt jetzt an, auch in Biochend wäre regulär,
dann weiß man, dieses Pumping-Lämmer gilt.
Und dann weiß man eben,
jetzt müsste es so eine natürliche Zahl geben,
sodass jedes Wort, das in L drin ist,
das länger ist, als diese Zahl eben zerlegt werden kann mit diesen Eigenschaften.
Und das führt man zum Widerspruch. Üblicherweise macht man das
so, dass man sagt, okay,
sei also auch in Biochend regulär
Dann gilt das Pumping-Lämmer, sei paar die Zahl aus dem Pumping-Lämmer.
Jetzt kommt der kreative Akt, jetzt muss man irgendwie ein
Wort finden, dass man das zum Widerspruch führen kann.
Das muss irgendwie von der gewählten Zahl N- oder K
abhängen, damit das lang genug ist.
Und es muss in der Sprache drin sein.
Und dann nimmt man auch das Wort so an,
dass die ersten beiden Bedingungen erfüllt und führt das im Widerspruch zu dritten.
So, hier einmal der Ablauf, annehmen LWR regulär,
die Zahl aus dem Pumping-Lämmer benennen, ein Wort finden,
das länger ist als K und eben in Älteren ist.
Muss gut gewählt sein
Und dann für alle Zerlegungen, also wir wählen ein Wort
und zeigen dann für alle Zerlegungen von Z in UVW,
dass sie im Widerspruch zur ersten, zweiten oder dritten Bedingung stehen.
Und was man üblicherweise macht, ist,
man betrachtet nur die Zerlegung,
die die erste und zweite Bedingung erfüllen und zeigt,
dass die dann im Widerspruch zur dritten Bedingung steht.
Warum genügt das, wenn es eine Zerlegung ist,
die die erste oder zweite Bedingung nicht erfüllt,
dann ist es ja bereits eine Zerlegung, die Reihbedingungen nicht erfüllt.
Das heißt, es genügt sich auf die einzuschränken,
wo man sagt, erfüllt die erste und zweite Bedingung,
dann gilt nicht die dritte.
Das heißt, man betrachtet alle Zerlegungen derart,
dass UV kleiner als K ist und V-Größer
gleich 1 und dann zeigt man immer,
dass man ein IFA Tschüss
Wie lange war das Mikrofon denn schon aus?
Aufgehört zu reden, Schlag. Wir sind auch gleich fertig
, glaube ich. Ah, ja, ja, wir
sind gleich fertig. Einmal am Beispiel. Mal gucken,
ob ich das so hinschieben kann,
dass man
das sehen kann
5, 5, 5, 6, 7, 8. Ja.
Jetzt bist du ja ein bisschen eure Auge.
Geht das? Geht das? Okay. Links,
das Pumping-Lemmer
Und rechts eben jetzt der Beweis, dass auch ein Biochendig
regulär ist. Wir wollten ja jetzt dieses... Also,
ich finde ja immer noch die Aussage, wenn die Sprache
regulär ist, dann gilt... Jetzt wollen wir zeigen,
dass diese Sprache auch in Beochend nicht regulär ist.
Angenommen, El wäre regulär, dann gilt ja dieses Pumping-Lämmer.
Das Pumping-Lämmer sagt, es existiert irgendwie eine natürliche Zahl mit bestimmten Eigenschaften.
Hier oben, dann gibt es eine natürliche Zahl,
so das blablabla. Nennen wir die Zahl aus dem
Pumping-Lämmer mal
Nur um nicht mit den ganzen Ends durcheinander zu kommen.
Ihr könnt ja auch enden nennen, aber um jetzt mal
über den ganzen Ends durcheinander zu kommen, nenn mir die Haar.
Jetzt müssen wir ein Wort finden. Hier steht so,
dass jedes Wort mit bestimmten Eigenschaften zerlegt werden kann.
Das heißt, um das zu Widerspruch zu führen,
reicht es ein Wort zu finden, dass ich nicht zerlegen kann.
Das heißt, ich muss ein Wort finden,
das in Älteren ist und das länger ist als,
wir haben gesagt, die Zahl aus dem Pumpeningamm soll K sein,
also das länger ist als K. Wir betrachten dieses Wort A hoch K, B hoch K.
Da gilt erstmal, dass das in L drin ist,
gleich viele As wie Bs.
Und es ist auch Let's K, seid ihr
die Länge
So, jetzt sagt das Pumping-Lemmer,
es müsste eine Zerlegung dieses Wortes geben, in UVW,
die eben diese drei Eigenschaften 1, 2,
3 des Pumping-Lemmers erfüllt, also UV-Kleider, gleich KV,
größer, gleich 1 und UV-IW immer in Älteren.
Wir betrachten jetzt nur die Zerlegung, die erstens und zweitens
erfüllen und zeigen, dass die im Widerspruch zu dritten stehen.
Dann hat man gezeigt, dass alle Zerlegungen im Widerspruch zu
einer dieser drei Eigenschaften sind.
So, sei das also jetzt UVW da,
eine Zerlegung mit erstens UV,
kleiner K und zweitens V
größer gleich
Jetzt wissen wir bestimmte Eigenschaften,
das Wort A hoch KB hochkam, zerlegen wir in UVW.
Das heißt, dass U muss vorne in den Ars
drin sein und das V auch vorne in den Ars.
Von UV wissen wir, es ist kleiner gleich K.
Denn kann das bei dem Wort A hoch KB hoch K,
kann das Nils reingehen? Ja,
weil das erste B ist an der K plus einsten Stelle,
UV kann aber maximal die Stellen von eins bis K umfassen.
Also muss das UV irgendwie in den Ars drin sein.
Und genauer kann man sogar sagen,
dass das V aus mindestens einem A bestehen muss,
weil hier ja gesagt wird,
V soll Größe gleich
eins sein
Ja. Also es muss in den Ars drin sein,
weil UV-Kleiner gleich K ist und das Wort aber mit KAs
beginnt und es muss mindestens die Länge eins haben,
weil es eben von der Länge mindestens eins sein muss.
Können wir auch sagen, das ist schöner. Wir können sagen,
es gibt ein J, das irgendwo zwischen 1 und K ist,
derart das V gerade die Form A hoch J hat.
Und hier jetzt ein ganz wichtiger Punkt,
wenn wir das jetzt gleich zum Widerspruch führen,
dann führen wir nicht nur eine Zerlegung von A hoch KB,
Hochkarz und Widerspruch, sondern sehr, sehr viele Zerlegungen,
nämlich die Zerlegung, wo A hoch 1 ist, die Zerlegung,
wo V gleich A hoch 2 ist, die Zerlegung,
wo V gleich A hoch 3 ist und so weiter.
Nur dadurch, dass wir das parametrisieren, dass wir sagen,
V hat also die Form A hoch J, erlegen wir all die Zerlegung auf einmal.
So, jetzt gucken wir jetzt das Wort UV-Quadrat W an. Naja,
wenn V die Form A hoch J hat und wir schreiben dieses,
ah, Hochjotta jetzt zweimal hin,
dann hat das Wort plötzlich die Form A hoch K,
die KAs, die wir vorher schon hatten,
jetzt kommt das V aber nochmal, das heißt,
es kommt nochmal JAs dazu, das heißt,
wir haben A hoch K,
A hoch J und dann B hoch
Nach der dritten Bedingung müsste das in L sein,
nach der Bedingung hier. UV-Hoch-IW muss in L sein.
Das Wort hat aber die Form A hoch K plus J B hoch
K. Und ist dann nicht in L. Wir haben nur eine Annahme gemacht am Anfang,
nämlich die, dass die Sprache regulär wäre.
Die gilt also nicht, oder die war falsch,
darum ist die Sprache nicht regulär.
Ein Großteil des Beweises läuft immer genauso. Die beiden Schwierigkeiten sind,
erstens man muss ein Wort finden,
bei dem man wirklich durchpumpen nachher einen Widerspruch erzeugt.
Und zweitens, man muss unter Umständen
richtig pumpen
Bei den Beispielen, die wir jetzt hier so machen,
ist das meistens relativ einfach. Bei komplizierteren Beispielen muss man
eben unter Umständen die Zahl, wie oft man pumpen muss,
um zum Widerspruch zu gelangen, ziemlich ehen.
Hier ist es meistens einfach so, entweder V zweimal hinschreiben
oder eben nullmal und dann hat man den Widerspruch.
Fragen dazu. Guckt euch das nochmal zu Hause an.
Das ist so ein Kernding, was, glaube ich,
auch sehr zum Verständnis beiträgt.
Also wenn ihr den Beweis vom Pumping nochmal verstanden habt,
dann habt ihr, oder die intuitive Idee dahinter,
dann habt ihr eine Menge über reguläre Automaten verstanden
Dann ergibt sich das Pumping-Lämmer quasi auch von selbst und man kann
das eigentlich hinschreiben, ohne das jetzt auswendig zu lernen,
können wir es eigentlich hinschreiben nachher.
So, was wir jetzt hier gemacht haben, ist,
wir haben tatsächlich bewiesen, dass der PDA mehr kann als der DFA heute.
Wir hatten einmal... Wir haben ja einmal gezeigt,
dass der PDA-A hoch NB hoch N mit Liam Keller akzeptieren kann.
Und jetzt haben wir gezeigt, dass ein DFA das nicht...
Damit wissen wir die Sprache auch. NB hoch N ist
nicht regulär und der PDA kann neben all den regulären Sprachen irgendwie noch mehr erkennen.
Und die nächsten Male wollen wir uns angucken,
was der denn so alles erkennen kann
Oh, noch mal ein paar Fragen. Wovon muss das
gewählte Wort Z abhängen? Das will ich nicht mehr.
Wenn ihr in diesem... Ihr fangt an,
sagt irgendwie, sei die Sprache El nicht regulär,
dann gibt es irgendwie so ein Wort Z mit.
Und die Frage ist jetzt, wovon muss das abhängen?
Hängt das ab von der Anzahl der Zustände des ersten DFAs?
Hängt das ab von dieser Zahl des Pumping-Lämmers,
die man dann noch genauer spezifizieren muss?
Hängt das ab von der Zahl des Pumping,
was man nicht mehr genauer spezifizieren muss?
Oder muss das Wort einfach nur in der Sprache
drin sein
So viel Zeit.
Relativ ausgeglichen
Und schon wieder nicht die Mehrheit. Drittens ist es richtig
. Von der Anzahl der Zustände des DFA,
der Beweis läuft ja so, dass ich sage,
angenommen L wäre regulär, dann gilt das Pumpinglemmer,
sei Kar die Zahl aus dem Pumpinglemmer.
Da ist nichts mehr mit DFAs,
da steckt im Beweis, steckt da ein DFA hinter.
Aber hier sage ich jetzt einfach nur,
ich weiß ja, dass Pumpinglemmer ums Geld nicht weiß,
es gibt irgendwie so eine natürliche Zahl K, bin ich mir.
Und damit arbeite ich. Die muss ich auch nicht mehr genauer spezifizieren.
Das ist einfach nur diese Zahl K aus dem Pumpinglemmer und mit der,
abhängig von der, wähle ich mein Wort Z. Abhängig deswegen,
weil das Wort Z muss ja mindestens die Länge K haben,
also mindestens die Länge dieser Zahl aus dem Pumping-Lämmer.
Ja, genau. Und das ist der einzige Zusammenhang.
Man wählt diese Zahl aus dem Pumping-Lämmer und dann wird man ein Wort,
das eben mindestens diese Länge K hat und dafür braucht man
eben die Zahl K. Und viertens gilt auch,
das Wort muss in der Sprache sein,
aber eben nicht nur
Wie viele Zerlegungen von Set müssen betrachtet werden?
Eine muss zum Widerspruch gebracht werden, alle Zerlegungen,
Cerego mit bestimmten Eigenschaften oder eine mit bestimmten Eigenschaften und diese
zum Widerspruch führen.
Man muss eine Zerlegung, also alle Zerlegungen mit bestimmten Eigen
oder eine Zerlegung mit bestimmten Eigenschaften
Du musst eindringen. Uh. Also, ganz... Nee,
halt, das Gegenteil. Zwei und drei ist richtig.
Zwei und drei so mit Eintränkung. Also, nicht eine Zerlegung.
Die Aussage im Pumpinglämmer ist, wenn die Sprache regulär ist,
dann gibt es so eine natürliche Zahl.
Mit der Eigenschaft, das zu jedem Wort,
das länger ist als N, eine Zerlegung existiert mit bla
bla bla bla bla. Wenn ihr dann einen Widerspruch erzeugen
wollt, müsst ihr zeigen, dass alle Zerlegungen dem widersprechen
Wenn ihr nur zeigt, dass eine Zerlegung dem widerspricht,
könnte es ja sein, dass es eine andere gibt, die das erfüllt.
Das wollt ihr ja gerade ausschließen. Das heißt, die müssen zeigen,
dass alle Zerlegungen im Widerspruch zu ein, zwei oder drei stehen.
Und jetzt könnt ihr entweder so wie bei zweitens sagen,
okay, ich betrachte alle Zerlegungen für die alle zum Widerspruch oder das,
was man üblicherweise macht.
Man betrachtet alle Zerlegungen, die erstens und zweitens erfüllen,
also die ersten beiden Bedingungen und zeigt,
dass sie dann die dritte Bedingung nicht erfüllen.
Ich frage morgen einfach die gleichen Fragen nochmal.
Letzte Frage
Kann mit dem Pumpinglamer gezeigt werden, dass eine Sprache regulär ist?
Ja, aus purem Asochismus habe ich drittens und viertens
wieder erlaubt. Mal gucken. Das wird wieder
die Mehrheit sein
Hm. Das ist eine Sprache. Kein mit dem Beginn, nein.
Sehr gut. Mit der letzten Frage endlich mal die Mehrheit.
Sehr gut. Kann mit dem Pampleum gezeichnet werden,
dass eine Sprache regulär ist. Nein, kann nicht
gezeigt werden. Mit dem Pamplemer kann man nur zeigen,
dass eine Sprache nicht regulär ist. Die Aussage des Pumping-Nemmers ist,
wenn eine Sprache regulär ist, dann gilt irgendwas.
Die Aussage des Pumping-Nemmers ist nicht, wenn irgendwas gilt,
dann ist die Sprache regulär. Das heißt, es gibt Sprachen,
die alle Eigenschaften des Pumping dann was erfüllen können.
Also alle Eigenschaften dieses Dann-Teils und die trotzdem nicht regulär sind.
Aber wenn ihr eben zeigen könnt,
dass eine Sprache diese Eigenschaften nicht hat,
dann kann sie auch nicht
regulär sein
Also kann man mit dem Pummeling eine Zeichnungsansprache gelesen?
Nein, kann man nicht. Genau. So,
noch ganz viel Zeit, nein. Nein. Definitiv nicht
. Da nochmal der Ablauf für das beim Pumping-Lemmer.
Könnt ihr euch zu Hause nochmal zu Gemüte führen. Das,
was ich morgen mit euch machen werde, ist,
ich werde quasi die Vorlieben heute nochmal schnell durchgehen und an
zwei Stellen dann eben einen längeren Einschub machen.
Einmal will ich nochmal einen anderen PDA konstruieren und einmal will
ich noch für eine andere Sprache mit dem Pumping-Lemmer zeigen,
dass sie nicht regulär ist,
dass sie das sozusagen beides
einfach nochmal sehen könnt
Und dann werde ich morgen ein neues Modell einführen.
Wir haben uns ja bisher so mit Automatenmodellen beschäftigt und
morgen führen wir dann mal Grammatiken ein,
mit denen man eben auch schön Sprachen beschreiben kann.
Die akzeptieren dann keine Wörter, sondern generieren die,
wer ja noch Zeit findet, kann sich den dritten Lesestoff
dann nochmal für angucken.
Das ist so das, was wir morgen grob machen werden.
Hier ist noch eine Bemerkung zu dieser Parametrisierung.
Das könnt ihr euch auch irgendwie zu Hause angucken.
Und zusammenfassend, ich kann nach Hause.
Oder seid ihr
alle schon hungrig
Also, Kellerautomaten, zwei Konstruktionsmethoden, Pumping Lammer und damit bewiesen,
dass die Kellerautomaten wirklich mächtiger sind,
endlich Automaten,
Feierabend.
Bis morgen