Dann, zweite Veranstaltung, haben sich irgendwie organisatorische Fragen noch ergeben bei euch.
Ist noch irgendwas eins, nein, doch. Genau,
muss ich nochmal, also spreche heute noch mit dem Studienbüro.
Die Gruppen sind gerade alle voll. Und jetzt gucken wir entweder,
machen wir noch zwei neue oder so oder wir machen überall zwei Leute dazu.
Also irgendwie, dass wir euch dann alle noch drunter kriegen.
Schreibe ich dann irgendwann heute Mittag,
wenn ich das mit dem Studienbüro besprochen habe,
nochmal eine Stinemail rum,
dass ihr euch
dann wieder anmelden könnt irgendwie
Sonst noch? Was denn? Okay. Gut, dann
heutige Veranstaltung. Erstmal so ein bisschen wiederholen von dem,
was wir gestern gemacht haben und dann.
Und dann vor allem darauf eingehen,
wie man so ein Automaten konstruiert zu einer Sprache und wie
man dann eben diesen Beweis L von A gleich M irgendwie führt,
wie man da so rangeht.
Das ist so Thema der heutigen Veranstaltung.
Und das ist dann auch das, was ihr heute,
also ab heute in den Übungsgruppen
so ein bisschen üben sollt
Erstmal die ganzen Notationen zu Alphabeten und Worten, die wir gestern so hatten.
Siegmar für eine Menge von Symbolen, das ist unser Alphabet,
da ist irgendwie ABC drin oder 0-1 oder
irgendwie irgendwie so Symbole, die man haben will.
Könnte auch ganze Wörter sein,
da kann auch irgendwie betätigen drin sein oder irgendwie sowas,
aber wichtig ist, dass dann eben diese Zeichenkette betätigen,
ein einzelnes Symbol ist.
Das ist dann nur für einen selbst irgendwie,
dass man weiß, okay, betätigen ist ein einzelnes Symbol.
Dann können Lamba oder Epsilon, die benutzt man für das
leere Wort
Das sind insbesondere welche, die nie in diesem Alphabet drin sind,
weil das ja gerade Wörter der Länge null sein sollen.
Und die Symbole im Alphabet sind dann eben,
wenn man als Wort sich die betrachtet, Wörter der Länge 1.
Dann haben wir diese Konkertenationsoperation eingeführt. Damit können wir eben
einzelne Symbole oder eben auch einzelne Wörter hintereinander schreiben,
geschrieben immer einfach mit diesem Punkt in der Mitte,
den man dann üblicherweise auch irgendwie weglässt.
Lässt sich dann erweitern auf Wortmengen,
jedes Symbol, jedes Wort der Einmenge,
mit jedem Wort der anderen Menge konkertinieren,
also hintereinander schreiben und dann kommt wieder eine Menge von
Worten raus
Mit diesen Balken, so wie du das auch schon bei Kardinalität der Menge kennen,
irgendwie Länge des Wortes oder mit einem Symbol unten noch eben
die Anzahl dieses Symbols in W. Exponentenschreibweise für,
ich schreibe das Wort E-Mail hintereinander oder eben,
ich mache diese Konkordination von Wortmengen-Operationen ihm mal hintereinander.
Mit dem Sonderfall, wenn ich das eben nullmal mache,
wenn ich null Wörter aus R rausnehme,
dann habe ich eben nur das leere Wort und wenn ich
irgendwie das Wort W-0 mal hinschreibe, dann habe ich eben Lamda.
R Plus als Vereinigung von R hoch 1,
R hoch 2, R hoch 3,
R hoch 4 und so weiter, also beliebiges,
beliebig häufiges Aneinanderreihen von Worten aus R. Endlich
oft,
aber ansonsten belieb ich häufig
Und er Stern im Grunde genommen wie Air Plus,
aber das Lander kommt eben noch hinzu.
Also er auch null kommt noch hinzu. Genau,
und wenn man dann eben jetzt diese ganze Operation hat und man hat so ein Alphabet Siegmar,
dann ist für uns eben insbesondere diese Menge Siegmar Stern interessant.
Das ist die Menge aller endlichen Wörter,
die wir aus Symbolen von Sigmar bilden können.
Und was uns dann interessiert, sind eben Teilmengen von Sigmar Stern,
weil Sigmar Stern selbst ist relativ langweilig, da sind eben alle Wörter drin.
Wenn man dafür einen Automaten konstruieren will,
dann macht man sich einen,
wo der Staatszustand auch der Endzustand ist und man hat einen Zustand,
der Staatszustand ist Endzustand und dann macht man für jedes Symbol
eine Kante genau zu diesem Zustand
Und dann hat man einen Automaten, der jedes Wort lesen kann oder
auch jedes Wort akzeptiert, also akzeptiert der Sigmar Stern.
Deswegen ist die Sprache irgendwie langweilig. Und interessanter ist es dann,
sich zu überlegen, für andere Sprachen,
wie konstruiert man da für einen Automaten und für welche Sprachen
kann man eben vielleicht gar keinen endlichen Automaten konstruieren.
Das ist jetzt also das Ziel, einen Automaten irgendwie zu haben,
der bestimmte Wörter akzeptiert und andere eben nicht.
Und hier bei dem zweiten Punkt, das steht das,
was man normalerweise hat.
Normalerweise hat man eine Sprache gegeben oder hat eine Vorstellung davon,
welche Sprache man jetzt akzeptieren möchte und möchte eben
Automaten konstruieren,
der genau diese Sprache akzeptiert
Also als Beispiel, wenn man im Compilerbau irgendwie Floating-Zahlen rauslesen möchte,
aus dem Text. Und dann möchte man vielleicht irgendwie spezifizieren,
vorne darf irgendwie eine Ziffer stehen, vielleicht alles außer null,
null, null, auch zu lassen.
Irgendeine Zahl da vorne stehen,
aber sie darf nicht mit null anfangen, es sei denn,
das nächste Symbol ist gleich ein Komma oder sowas.
Sowas wie 0,1,5 will man nicht haben,
sondern das soll dann 1,5 heißen oder irgendwie sowas.
Und dann sagt man halt irgendwie,
am Anfang soll irgendwie eine bestimmte Zahl kommen,
dann muss ein Komma kommen und dann dürfen wieder Zahlen kommen
Und dann kann man halt dafür versuchen,
Automaten zu konstruieren und das ist dann eben gerade die Sprache
der Floating-Zahlen irgendwie und dann kann man den Sprach,
den Automaten einen Code gießen und kann damit eben Worterkennung machen.
Kommen wir nächste Woche nochmal dazu,
aber dass ihr schon mal so die Idee kriegt,
warum das relevant ist, solche Sprachen irgendwie akzeptieren zu können.
Da ist er nochmal grafisch als Beispiel, die Kreise,
das waren die Zustände, die Pfeile waren die Kanten,
die Kantenbeschriftung waren die Symbole,
die wir lesen wollen bei diesem Übergang,
Staatszustand gekennzeichnet durch den Pfeil,
der keinen Ursprung hat und Endzustände gekennzeichnet durch doppelte Kreise
Dann war das die Definition davon, endliche Menge von Zuständen,
endliches Eingabealphabet, eine Überführungsfunktion, das deterministische Automat.
Deswegen gibt es hier zu jedem Zustand und jedem Eingabesymbol
nur genau ein Nachfolgezustand oder maximal die Funktion,
das finde ich total sein.
Ein Startzustand, mehrere Endzustände. War nochmal die Beispielrechnung,
die wir gestern auch hatten, hier oben geschrieben als Konfiguration,
da unten geschrieben mit dieser erweiterten Überführungsfunktion.
Wir sind also Anfang und Zustand Z0,
wollen noch das ganze Wort lesen.
Beim Arm machen wir
diesen Zustandswechsel nach
Und dann haben wir nur noch das Restwort BBA zu lesen
und dann bleiben wir beim Lesen von B im Zustand Z1.
Nochmal das B-Lesen, bleiben weiterhin in Z1.
Und mit dem letzten A machen wir dann
diesen Übergang nach Z2. Und dann würden wir eben akzeptieren,
weil wir im Endzustand sind und das Wort zu Ende gelesen haben.
Und dann kann man sagen, die von einem DFA akzeptierte Sprache,
das sollen dann eben all die Wörter aus Siegmar Stern sein mit der Eigenschaft ist,
die uns vom Staatszustand Z0 in irgendeinen Endzustand überführen.
Und dabei ist eben wichtig, dass ich das Wort zu Ende lese.
In der Konfiguration hier unten sieht man das auch ganz deutlich,
von dem V darf eben nichts mehr übrig sein.
Ich habe das bis zum Ende gelesen und ich muss
vom Staatszustand in einen Endzustand gekommen sein
Genau. Und so eine Familie nenne ich dann auch
reguläre Menge. Warum? Kommt später nochmal,
aber die nennt man halt die regulären Mengen und alle regulieren Mengen zusammengenommen,
die bauen eben diese Familie der regulären Mengen oder regulären Sprachen auf.
Fragen ist ein. So, dann,
was man üblicherweise tut, ist eben,
ihr kriegt irgendwie eine Sprache oder habt ihr eine Idee für irgendeine Sprache,
wo ihr sagt,
okay,
dafür will ich jetzt einen Automaten haben und dann konstruiert ihr
irgendwie einen Automaten
So, und jetzt ist das ja erst mal nur eine Behauptung,
dass ihr sagt, naja, dieser Automat soll tatsächlich die Sprache akzeptieren,
die ich da irgendwie mir überlegt habe. Das heißt,
wenn ihr so eine Sprache M gegeben habt oder euch selbst
ausgedacht habt und ihr konstruiert dann so ein DFA A,
dann ist eure Intention,
dass dieser Automat A genau die Sprache M akzeptiert,
sprich eure Intention, ist das hier zu erreichen?
LA gleich M. Und das ist dann aber erst mal
eine Behauptung, die ihr dann noch zeigen müsst.
Und üblicherweise Mengengleichheit zeigen wir zwei Richtungen, dass wir einmal zeigen,
L von A ist eine Teilmenge von M,
sprich jedes Wort,
das der Automat akzeptiert,
ist tatsächlich in der Menge M drin
Da geht man dann so vor, dass man sagt,
okay, sei weh aus L.A., dann ist alles,
was man weiß, dass der Automat diese Sprache akzeptiert.
Sprich, man weiß, wenn ich dem Automaten das Wort vorlege,
dann startet er im Startzustand, er kann das Wort bis
zum Ende lesen und er ist dann in irgendeinem der Endzustände.
Und das muss man dann benutzen,
man sieht ja auch die Konfigurationsübergänge und sowas,
das muss man dann benutzen, um nachzuweisen, okay,
dieses Wort ist dann tatsächlich auch ein M drin.
Dann weiß man alles, was der Automat akzeptiert,
ist wirklich in M. Es könnte jetzt ja aber noch sein,
dass in M viel mehr drin ist,
dass der Automat also weniger tut, als ich eigentlich beabsichtige.
Das ist irgendwie doof, deswegen will ich die andere Richtung
auch noch beweisen
Und zeigt auch noch, dass jedes Wort,
was in Ämteren ist, auch tatsächlich vom Automaten akzeptiert wird.
Da gehe ich dann davon aus, sei wie in M,
dann weiß ich nur, ja, okay,
wie habe ich mir diese Sprache M definiert?
Diese Eigenschaften des Wortes kann ich benutzen und muss dann irgendwie argumentieren,
dass der Automat, wenn er in einem Staatszustand startet und mit diesem Wort als Eingabe loslegt,
dass er das Wort zu Ende lesen kann und dass er in einem Endzustand landet.
Und wenn ich das gemacht habe, dann weiß ich eben auch,
ah, okay, er akzeptiert auch wirklich alles,
was in M drin ist und mit dem vorherigen Punkt,
dass L.A. eine Timing von Emmis, weiß ich dann,
die Mengen sind gleich.
Wenn ich nur das Untere gezeigt hätte, dann habe ich wieder das Problem,
dann könnte der Automat theoretisch auch mehr können als diese Sprache M.
Das will ich vielleicht auch nicht
Man kann sich auch ganz schnell Gegenbeispiele überlegen,
warum es Unsinn wäre, nur eins davon zeigen zu müssen,
wenn ich hier oben für M-Sigma Stern nehme, dann gilt das immer.
Und wenn ich unten für M die leere Menge nehmen würde,
dann gilt das auch immer. Ja, und genauso kann man auch sagen,
naja, wenn ich eine Sprache M habe,
dann nehme ich einfach einen Automaten, der gar nichts akzeptiert.
Dann habe ich den ersten Punkt immer gezeigt, das kann also irgendwie nicht reichen.
Oder ich nehme einen Automaten, der alles akzeptiert,
dieses Beispiel von eben, ein Zustand, Start- und Endzustand,
alle Kanten dran, dann gilt das Untere immer.
Also nur eins davon zu zeigen, wäre irgendwie doof,
das kann ich immer trivialerweise machen.
Ich will es also schon so machen, gegeben,
gegeben, eine Sprache M,
dass ich einen Automaten konstruiere,
der genau diese Sprache akzeptiert
Gut, und damit wollen wir uns heute beschäftigen. Einmal wollen wir das jetzt exemplarisch,
also einmal wollen wir es ja ein kleines Beispiel machen und
dann will ich euch noch zwei Möglichkeiten zeigen,
wie man gegebene Sprache vorgehen kann, um Automaten zu konstruieren.
Das geht nicht algorithmisch so,
also man kann nicht sagen, gegebene Sprache M,
ich gehe immer genau so und so vor und habe dann mein Ergebnis,
sondern da muss man eben irgendwie ein bisschen konstruieren,
ein bisschen Kreativität reinstecken.
Und da gibt es aber so ein paar Techniken,
die einem eben helfen können, auf die richtigen Ideen zu kommen.
Erstes Beispiel, der DFA,
und jetzt überlegt man sich, okay,
welche Sprache akzeptiert er wohl
Das ist ein Setting, was eher selten vorkommt,
schon mal vorneweg gesagt. Das kommt vielleicht mal so am
Anfang vor, um das irgendwie so ein bisschen einzuüben.
Aber sonst kommt das eigentlich nicht vorher. Das wäre äquivalent dazu,
irgendwie nicht kommentierten Source-Code zu lesen und rauszufinden, was der tut.
Ich weiß, das tritt in der Praxis auf,
aber eigentlich will man das nicht.
Und das sind wir so ähnlich. Da kriegt ihr irgendwie
etwas fertig konstruiertes und ihr kriegt die Frage irgendwie,
ja, was passiert da? Das ist irgendwie blöd,
da würde man zu dem Typen gehen,
der das aufgemalt hat und sagen, ja,
was hast du denn dabei gedacht?
Das macht es irgendwie einfacher. Aber zum einen Üben ist
das eine ganz gute Sache. Was meint ihr denn,
was akzeptiert ihr
Genau. Null Sterne 1 zu, du meinst,
also die Menge, die null enthält,
hochsterren und dann die Menge, die einzeln hält oder so,
nachher, wenn wir die regulären Ausdrücke haben,
kürzen wir es genauso ab und dann sagt man 0 Stern 1. Genau,
würde man jetzt so irgendwie sagen, 0 Stern 1,
ne, jetzt, wie das manchmal so ist,
ne, Übungsgruppenbetrieb, einer prescht vor und sagt,
hier, das ist 0-1 Stern,
1-0-1 Stern.
Der hat gesagt, naja,
ich muss auf jeden Fall eine 1 lesen, Was danach kommt,
ist ja egal, weil ich bleibe ja im Endzustand,
also kann ich was Beliebiges lesen,
vielleicht die Definition von Akzeptieren noch nicht so ganz verstanden,
aber könnte man ja erstmal so denken.
Und vorneweg denkt er sich, ja,
ist auch egal, Hauptsache ich lese irgendwie die Eins.
Kann man ja so behaupten, nochmal zur Betonung,
ist eine Behauptung, wir wollen es beweisen.
Also legen wir los und zeigen irgendwie diese zwei Richtungen,
wollen zeigen, dass alles, was der Automat akzeptiert,
tatsächlich in M ist, alles,
was in M ist, vom Automaten akzeptiert wird.
Also, erster Schritt, das hier wollen wir beweisen
Dann legen wir los und sagen, okay,
sei weh aus L.A. Alles, was wir jetzt wissen,
ist, dass dieses Wort vom Automaten akzeptiert werden kann.
Wir kennen den Automaten und wir wissen, dass das Wort
akzeptiert werden soll. Damit können wir irgendwie arbeiten,
so wenn man sich jetzt den Automaten anguckt,
dann weiß man, okay, der hat einen Startzustand,
also wissen wir, da müssen wir anfangen.
Und der hat da eine Nullkante raus und eine Eins-Kante.
Das hilft einem noch nicht so richtig, um zu sagen,
das erste Symbol sieht auf jeden Fall so und so aus.
Also wenn ich sowieso nur null oder eins zur Auswahl habe und ich weiß,
als erstes muss ich null oder eins lesen,
damit kann ich nicht
so richtig gut arbeiten
Aber vielleicht andersrum, ich kann mir den Endzustand angucken.
Beim Endzustand sehe ich, der hat keine Kanten, die rausführen.
Und der hat nur Kanten, die mit eins beschriftet sind,
die reinführen. Das heißt, wenn ich ein Wort akzeptiere,
muss es auf eins enden. Daran kann ich irgendwie arbeiten
. Ja, ist klar. Also ich weiß,
wenn ich ein Wort akzeptiere, muss ich im Endzustand enden.
Es gibt nur einen Endzustand, da führen keine Kanten mehr raus.
Also wenn ich ein Wort akzeptiere, muss ich in Z1 enden.
Das kann ich aber nur, wenn ich über diese Eins-Kante
dahin gegangen bin
Die wird von A akzeptiert. DaZED1, der einzige Endzustand ist,
muss wie auf eins enden. Das ist die einzige Kante
in Z1 hinein. Dann überlegt man sich, naja,
wie viele Möglichkeiten gibt es überhaupt nach Z1 zu kommen?
Es gibt nur die eine von Z0 zu kommen. Das heißt,
ich weiß, auch vorher muss ein Z0 gewesen sein.
Und ich weiß, in Z0 kann ich nur Nullen gelesen haben,
wenn ich mir die Kante da angucke. Und dann weiß ich,
wenn der Automat dieses Wort akzeptiert, also sei wie in LA,
wenn wir vom Automaten akzeptiert wird, dann weiß ich,
wem muss die folgende Form haben,
vorher war der Automat in Z.0,
wir konnten nur Nullen gelesen werden oder also 0 Nullen gelesen,
dann hat er diesen Wechsel mit der 1 auf Z1 gemacht.
Das heißt, das Wort hat diese Form W gleich U1
mit U aus 0 Sternen, beliebig viele Nullen gelesen und dann eine 1.
Dann wissen wir, okay, dieses Wort null,
also beliebig viele Nullen und eine 1, das ist auch hier ein M drin.
Das ist okay. Also weiß ich, wie,
ist tatsächlich auch ein M und bin fertig mit der Richtung
Jetzt würde man üblicherweise sagen, naja,
wenn ich den Beweis da so gerade mir so angucke,
dann merke ich schon, dass hier irgendwas nicht richtig ist.
Also das könnte man an der Stelle schon merken und die
Idee verwerfen, aber streng formal würde man sagen, okay
, so ich mache diese Richtung, Domi Domi Dom,
das funktioniert auch alles super, die Richtung ist fertig.
Und es stimmt ja auch, alles, was der Automat akzeptiert,
ist tatsächlich in dieser Menge M drin.
Nur leider halt noch sehr viel mehr. Jetzt geht man
los mit der anderen Richtung und sagt, okay,
jetzt will ich das zeigen und dann fange ich an mit SIWNM.
Jetzt darf ich nur benutzen, was ich eben da über Worte weiß,
die in M sind und muss dann irgendwie argumentieren,
dass dieses Wort auch vom Automaten akzeptiert wird
Das kann man sich überlegen, hier ist das ja schon
so mit dieser Konkertenationsgeschichte aufgeschrieben. 0-1-Stern konkertiniert mit 1
konkordiniert mit 0-1-Stern. Dann kann ich sagen,
wenn ein Wort in M ist, dann lässt es sich zerlegen,
in diese Drei-Teil-Komponenten ein Wort aus der ersten Menge 0-1-Stern,
dann kommt die 1 und dann noch mal ein Wort aus dieser zweiten Menge 0-1-Stern.
Und das sagt ja gerade diese Konkertenationsoperation, die Konkretenationsoperation sagt,
ein Wort der ersten Mengen Wort der zweiten Menge Wort der dritten Menge nehmen.
Ich weiß also, wie lässt sich zerlegen in X-162X3 mit
X-1 und X-3 sind aus 0-1 Stern und X-2
ist gerade die
Oh, das, mhm. Das ist alleine irgendwie,
vielleicht, das hilft noch nicht so richtig,
aber man kann jetzt so einen Trick benutzen,
dass man sagt, naja, wenn da eine Eins auftritt,
ich weiß ja hier, wenn das Wort weh,
wenn ich das so zerlege und ich weiß,
X2 ist auf jeden Fall eine Eins.
Dann weiß ich, in wehtritt auf jeden Fall eine Eins auf.
Jetzt kann ich benutzen, dass, wenn ich weiß,
dass da eine Eins auftritt, dann weiß ich auch,
es muss einen Moment geben, wo sie das allererste Mal auftritt.
Kann man an ganz vielen Stellen wunderbar benutzen,
da an wie eine Eins auftritt, muss es eine Stelle geben,
an der sie das erste Mal auftritt.
Dann kann ich wie nämlich so zerlegen, dass ich weiß, vorneweg, alles nullen.
Dann die erste Eins und dann passieren wieder Dinge.
Und in dem Fall werden wir gleich sehen, dass das,
was dann passiert, irgendwie doof für uns ist.
Aber Kernidee, die man hier mitnehmen soll,
diese Idee zu sagen, irgendwas passiert zuerst. Das heißt,
wie lässt sich sogar zerlegen, nicht nur dieses X1,
X2, X3, sondern wie lässt sich auch anders zerlegen?
Das ist das gleiche Wort, aber eine andere Zerlegung,
X1, X2, X3, mit vorneweg nur Nullen,
dann diese erste Eins und dann eben nochmal irgendwas auf Nullen und Einsen,
was wir noch nicht genauer wissen,
wie das aussieht
Das ist schon mal schöner. Jetzt kann ich nämlich
mit dem Automaten arbeiten. Wenn ich dieses Wort jetzt
dem Automaten als Eingabe vorlege, was passiert denn dann?
Denn starte ich ja an dieser Konfiguration Z0 und habe als Wort
noch x-1 Strich-1 x-3 Strich. Also die 1 hier,
das ist das x-2 Strich. Wenn ich das mache,
dann macht er jetzt für die ganzen Nullen in x-1
Strich, da macht er nur diese Konfigurationsübergänge von Z0 nach Z0.
Das heißt, er landet irgendwann in der Konfiguration,
dass er immer noch im Zustand Z0 ist und alle Nullen gelesen hat.
Dann macht er den Übergang mit der 1-Kante von Z0
Liest die, also die Eins hier vorne und macht den
Übergang von Z0 nach Z1. Und an der Stelle merkt man jetzt,
dass das gar keine Erfolgsrechnung, weil das hier keine Konfiguration ist,
wo ich nichts mehr lesen muss.
Also klappt das da nicht, jetzt blockiere ich in diesem
Zustand Z1 und spätestens an dieser Stelle merke ich jetzt,
irgendwas ist blöd gelaufen, meine Behauptung kann nicht stimmen.
Merke ich wahrscheinlich schon irgendwie vorher bei dem kleinen Beispiel,
aber um das mal komplett im Detail durchzuexerzieren,
an den anderen Stellen merkt man es vielleicht schon,
aber an den anderen Stellen gibt es eigentlich noch kein Problem.
Da tritt erst
das Problem auf
Und auch nur, weil wir sagen,
X-3-Strich ist aus 0-1 Stern, aber beliebig.
Es gibt ja ein Element für X-3-Strich aus
0-1 Stern, sodass das alles klappt.
Wenn ich für X-3-Strich Lamda nehme, klappt das.
Aber wir sagen ja hier, Saive-Element M, beliebig. Das heißt,
W lässt sich irgendwie so zerlegen mit eben X-1 X-3 beliebig
aus 0-1 Stern oder eben so das X-1-Strich und X-3-Strich beliebig aus 0-1 Stern ist.
Das heißt, ich müsste alle diese Wörter akzeptieren können.
Ich könnte aber höchstens das eine akzeptieren,
wo hier X-3-Strich das leere Wort ist und die anderen,
die kriege ich alle nicht hin,
weil der Automat da blockiert
Da habe ich also irgendwie ein Problem. Klar. Ja
, ist sie auch. Also die Frage war gerade,
wie man da drauf gekommen ist. Die Aussage hier ist ja gerade,
dass du kriegst einen Automaten oder du kriegst eine Menge und
sollst einen Automaten konstruieren, ist das Gleiche.
Aber irgendwann landest du bei diesem Punkt,
wo du einen Automaten hast und eine Menge dazu.
So. Und jetzt musst du halt beweisen,
dass das tatsächlich das tut, was du damit beabsichtigst.
Das tatsächlich gilt, dass 11 von A
gleich M ist
Hat Menge. Nein, nein, pass auf.
Jemand gibt also entweder du oder ich oder irgendjemand gibt dir
eine Menge und sagt, dafür will ich einen Automaten haben.
So, und dann konstruierst du einen. So,
aber nur weil du ihn konstruiert hast,
heißt das ja nicht, dass der das tatsächlich tut.
Also musst du noch beweisen, dass der da tatsächlich
auch wirklich tut oder dir irgendwie überlegen oder argumentieren oder wie
auch immer man das jetzt sagen möchte.
Also musst du zeigen, dass L von A gleich M ist.
Jetzt hätte ich auch irgendwie ein größeres Beispiel nehmen können,
wo man euch irgendwie mit dem gewählten M in die Irre
führen kann und vielleicht zuerst denkt, ja, ja,
das tut das.
Aber da hast du irgendwie so einen 20-seitigen Beweis,
bis man dann irgendwo den Fehler findet.
Das war nur, damit ihr sehen könnt,
dass ihr erst da tatsächlich ein Problem auftritt.
Man kann zwar vorher schon sehen, dass man sagt,
das kann ja gar nicht klappen, die Menge M ist ja doof.
Also würde man vielleicht gar nicht erst losgehen und
das beweisen wollen
Aber damit man mal im kleinen Beispiel sehen kann,
worum es nicht funktioniert. Sonst noch? Fragen, Fragen.
Gut. Zum Was bitte? Ja. Hier meinst du
? Oder was meinst du das? 01 Sterne vorne.
Naja, was heißt Problem? Das Problem ist halt,
dass nicht gilt, dass M eine Teilmenge von LA ist
Also gibt es Wörter da drin,
die nicht in L.A. sind? Und diese Menge hier,
die lässt sich halt auf unterschiedliche Art und Weise schreiben.
Dieses 0-1-Stern, dann kommt ein 1 dann 0-1-Stern.
Das sind all die Wörter, in denen eine 1 auftritt.
Mehr wird da ja nicht gesagt. Da steht,
vor uns steht irgendwie was, nicht genau definiert,
dann kommt mindestens eine 1 und dann kommt irgendwas.
Das heißt, wenn du es schreiben würdest als Aldi,
wie auch Sigmar Stern mit der Eigenschaft, Alken,
W1, größer gleich 1, so könntest du sie auch schreiben oder sowas.
Das heißt, du könntest es auch schreiben als 0-Stern,
1-0
-1-Stern
Das ist die gleiche Menge. Nur hier ist sie halt
irgendwie anders notiert und es ist ja nicht so,
dass es vorne ein Problem gibt oder hinten ein Problem oder so.
Es ist einfach so, dass in der Menge noch Wörter
drin sind, die der Automat gar nicht akzeptieren kann.
Und das fällt halt an der Stelle auf,
wenn man das versucht zu weisen. Ansonsten ja,
wenn man jetzt sagen würde,
das ist die Menge 0-1-Sterne-1 zum Beispiel,
wenn man das behaupten würde,
dann kriegst du auch ein Problem.
Sonst noch erstens
Genau, reicht es nicht einfach, ein Wort anzugeben, für das es nicht funktioniert.
Ja, denn wenn die Behauptung ist, ich glaube,
L von A ist gleich M und du sagst, nee,
das kann nicht sein, dieses Wort akzeptiert er nicht, dann bist du fertig.
Aber an diesem Fall war es jetzt vielleicht so,
dass du dir sicher warst,
dass das richtig ist und dann liegst du halt los mit dem Beweis,
wenn du dir sicher bist,
dass es stimmt, was du konstruierst,
gehst ja normalerweise nicht erst mal auf die Suche nach Gegenbeispielen oder vielleicht denkst du dir jede Menge Beispiele aus,
wo du merkst, ja, funktioniert, sieht gut aus.
Und der formale Beweis soll euch gerade darauf schulen, dann zu merken,
oh, an irgendwelchen Stellen kann es trotzdem noch nicht funktionieren.
Und hier hast du auch wieder,
genauso wie auch schon mal, dann hast du recht,
da gucke ich drauf und denke irgendwie, Naja,
in M ist das Wort 1-1-1 drin oder so,
das wird da automatisch nicht akzeptieren, bin ich fertig.
Oder auch das Wort 1-1 oder irgendwas.
Sonst doch. Wir sagen es möglich. Ich beweise,
dass früher vernimmt das Kompliment, der bringende Worte,
die akzeptiert werden. Du kannst ganz viele unterschiedliche Arten von
Beweisen führen, aber einer reicht erstmal.
Puh, ist das mal so.
Sonst noch
Ja. So schreiben wir dann am Ende. Die Frage war,
ob man das so machen kann und dann am Ende hier,
wie ich hier hängen schreibe, irgendwie, oh nein,
das funktioniert doch nicht so.
Normalerweise wird eine Aufgabe ja sowas sein wie gegeben diese Menge M,
konstruieren sie einen Automaten, der das akzeptiert.
Und jetzt wäre das vielleicht deine erste Klatte,
wo du feststellst, oh, funktioniert nicht.
Dann schmeißt du sie weg und machst den nächsten Ansatz.
Also die richtige Abgabe wäre dann die Interessante. Oder ich meine,
wenn du das so hinkriegst und irgendwie an irgendeiner Stelle feststellst, oh,
das funktioniert nicht, das kann natürlich auch interessant sein.
Dann sagt man irgendwie, bis dahin bin ich gekommen,
aber an der Stelle bin ich nicht mehr weitergekommen,
aber ich sehe zumindest irgendwie, warum es nicht funktioniert oder was nicht funktioniert oder so.
Das wäre auch schon dufte. Sonst noch, okay,
dann, dann noch einmal die, jetzt kommt genau das mit dem Gegenbeispiel.
Jetzt merkt man aus dem Beweis hier,
ergibt sich sofort ein Gegenbeispiel, weil man merkt,
ich kann irgendwie beliebig viele Nullen lesen, dann die Eins.
Und wenn dann noch irgendwas kommt, dann akzeptiere ich
schon nicht mehr
Also kann ich sagen, Gegenbeispiel ist das hier 0-1
-0, kann von dem Automaten nicht akzeptiert werden,
ist aber in der Sprache M enthalten. Jetzt verwirft man die Idee,
hat aber vielleicht aus diesem Beweis was gelernt und merkt irgendwie,
naja, was nicht funktionieren kann und zumindest eben in dem Schritt hat man ja irgendwie gemerkt,
Klappen tun wohl so Sachen, beliebig viele Nullen,
dann eine Eins, kann man einen neuen Versuch starten und sagen,
jetzt behaupte ich mal eine Menge M ist 0 Stern 1 und dass die von dem Automaten akzeptiert wird,
dass das die von dem Automaten akzeptierte Menge ist.
Können wir
wieder loslegen
Erste Richtung, dass jedes von dem Automaten akzeptierte Wort tatsächlich
in der Menge ist, funktioniert genau wie eben.
Da kann man ja nochmal zurückgehen. Dass da,
wenn hier jetzt nicht 0-1 Stern,
1-0-1 Stern stehen würde,
sondern 0 Stern 1, dann geht der Beweis ganz genauso.
Dann steht da halt 0 Stern 1 und dann sagt man wieder,
wenn W aus LA ist, dann wird W von L akzeptiert,
Z1 ist der einzige Endzustand und so weiter und so weiter.
Und dann landet man halt hier, dass W die Form
haben muss, U1 mit U aus 0 Stern.
Naja, das ist gerade, was wir mit M
auch ausdrücken wollen, also geht auch WNM.
Dann hat man die Richtung gleich. Also die geht
ganz genauso
Und bei der anderen Richtung will man dann zeigen, M ist eine Timing von L.R.
Also jedes Wort, was in M ist,
ist auch in Adrien wird auch vom Automaten akzeptiert.
Dann fangen wir an, wenn WNM ist, kann ich Wege zerlegen.
So ähnlich wie wir es eben auch zerlegt haben,
nur dass ich es jetzt einfacher zerlegen kann,
weil ich hier irgendwie nur zwei Mengen habe,
zweite Menge ist sowieso einfach, da kann nur die Eins rauskommen,
also weiß ich,
wie lässt sich zerlegen in U1 mit US-Element aus null Sternen.
Also beliebig viele Nullen, dann eine Eins.
Und dann mache ich das wieder so wie eben und sage
, wie sehen jetzt die Konfliktionsübergänge aus
Starte in Z0, U besteht nur aus Nullen.
Es gibt nur die eine Null-Kante an Z0, das heißt,
ich bleibe die ganze Zeit in Z0. Komme also von Z0,
U1 in die Konfiguration Z01. Eins Übergang zu Lamda,
Eins Übergang zu Z1 und das Wort ist zu Ende gelesen.
Und jetzt sieht man hier, ich habe eine Erfolgsrechnung.
Ich starte mit dem Wort in Zustand Z0. Ich ende in
einem Endzustand und habe das Wort zu Ende gelesen.
Z1 ist Endzustand, Wort zu Ende gelesen,
also gilt, dass ich das Wort auch akzeptiere.
Dann habe ich für jedes W aus M,
von dem ich losgegangen bin, gezeigt,
dass es auch vom Automaten akzeptiert wird.
Und dann bin ich fertig
Wie gesagt, das sollte euch darauf schulen,
dass ihr, dass das eine halt eine Behauptung ist,
die auch falsch sein kann und dass ihr dann eben beim Beweis möglicherweise merkt,
oh, irgendwas funktioniert noch nicht.
Und bei dem Beispiel kam ja auch so durch die Nachfragen so ein bisschen raus.
Bei dem Beispiel ist es so ein bisschen so,
da wäre man vielleicht gleich auf das richtige M gekommen oder man hätte,
wäre auf dieses spezielle falsche M gar nicht erst gekommen oder sowas.
Aber einfach, damit ihr mal ein Beispiel sehen könnt,
wo man ein bisschen einüben kann,
dass das nicht immer gleich funktionieren muss
Nee, das hier meinst du, ne? Die Stelle. Weil
diese Konfigurationsübergang der Relation ist, von Z-Kreuz-Sigmar Sternen, auf Z-Kreuz-Sigmar
Sternen, also eigentlich Z-Kreuz-Sigmar Stern und das gekreuzt mit Z-Kreuz-Sigmar Sternen,
also diese zwei Tupel werden immer in Relation gesetzt.
Und wenn ich jetzt eben nicht zwei Elemente in Relation setze,
sondern diese Relation öfter hintereinander ausführe sozusagen, in Anführungsstrichen jetzt.
Das war jetzt gerade nicht formal korrekt ausgedrückt,
aber weißt du, was ich meine?
So. Ja
Ja. Da, das U. Das kann man nicht.
Du kannst nicht hier sagen, also Z0,
0 Stern 1, meintest du das?
Das wäre ja keine Konfiguration. Die Konfiguration ist ja der Zustand,
den du bist und das Wort, was du noch lesen willst.
Und 0 Stern 1 ist kein einzelnes Wort, sondern eine ganze Menge.
Und damit diese Argumentation gut klappt, zu sagen,
wo du jeweils bist nach dem Lesen eines Symbols,
brauchst du irgendwie eine Beschreibung des Wortes mit den einzelnen Symbolen.
Das heißt, du nimmst den Wort aus der Menge raus,
dann hast du ein bisschen mehr, womit du arbeiten kannst.
Und diese Unterteilung hier mit dem U,
man hätte auch sowas schreiben können, wie weh gleich null hoch Ende 1,
mit N größer gleich null, ist die gleiche Aussage.
So, dann hast du da gleich die Nullen stehen.
Also hier ist es einfach so mit U benannt.
Null hoch enden wäre auch ein Wort. Ja,
wir hatten ja diese diese Notation mit irgendwie W hoch 3,
weh irgendein Wort und dann ist wie hoch 3er,
www und null hoch ende ist halt 0-0,
0-
0 N mal
Nur, weil wir vorher ja auch diese Geschichte hatten mit,
dass wir ein X1 aus 01 Stern nehmen.
Und da lässt es sich halt nicht mehr so einfach schreiben.
Dabei ist halt nur X1 besteht irgendwie aus Nullen und Einsen
und damit passiert irgendwie was.
Wären wir gleich bei den anderen beiden Beispielen auch sehen,
dass das an ein, zwei Stellen irgendwie ein bisschen praktischer ist,
dann damit zuzuarbeiten.
Sonst noch Fragen.
Ja. Ach so
Du meinst, den hier könnte man weglassen? Ja,
könntest du, dass die nur dazu, also ihr müsst,
ihr müsst so ein bisschen jetzt unterscheiden zwischen,
das Beispiel ist zu Illustrationen einfach gewählt und möglichst ausführlich, so.
An der Stelle könnte man abkürzen und jeder würde trotzdem sehen, was du meinst.
Also wenn du gleich hinschreibst, Z0 U1, Dachstern,
Z1 Lambda, dann glaubt dir das auch jeder.
Aber bei komplizierteren Automaten würdest du vielleicht sagen können,
mit diesem Teilwort gelange ich erstmal in den Bereich da oben,
jetzt lese ich weiter und jetzt komme ich in diesem Bereich
oder irgendwie sowas und um sowas dann für den Leser einfacher zu machen,
kann man ihm zwischendurch sagen,
wo die Zwischenschritte gerade sind
Ansonsten ist es die gleiche Aussage, dass es so,
wie wenn da stehen würde, irgendwie zweimal vier ist das Gleiche
wie vier plus vier, ist das Gleiche wie acht.
Kannst auch hinschreiben, zweimal vier ist gleich acht oder sowas.
Da glaubt einem das jeder, aber wenn es kompliziertere Rechnungen sind,
machst du halt Zwischenschritte, damit es einfach nachzuvollziehen ist. Noch Fragen. Gut,
dann da nochmal als Zusammenfassung nochmal um es zu betonen,
dieses LA gleich M ist eben irgendwie eine Behauptung,
müssen wir beweisen, begründen und um euch drauf zu schulen,
eine Teilmengenbeziehung reicht nicht,
auch wenn man manchmal bei der Einteilmengung und Beziehung schon meint irgendwie,
naja, dann bin ich nicht eigentlich schon fertig oder so.
Das trifft meistens bei etwas kleineren Beispielen auf, weil man irgendwie
das Gefühl hat, man wiederholt sich so ein bisschen.
Ist aber eigentlich nicht so, versucht man bei den Präsenzaufgaben und
den Übungsaufgaben darauf zu achten. Diese Argumentation sauber zu trennen,
dass sie im ersten Fall hier eben von so einem W
aus LA ausgeht und wirklich nur die Eigenschaften benutzt, die ein Wort hat,
wenn es von A a akzeptiert wird und dann begründet,
dass es auch in M ist.
Und andersrum genauso, dass sie hier von einem Wort aus
M ausgeht und was jetzt irgendwie dann doch anders ist.
Jetzt benutzt ihr nämlich die Eigenschaften,
die Wörter aus M haben und zeigt,
dass Wörter aus LA
auch diese Eigenschaft haben
Genau, da also noch mal sauber die Behauptung aufstellen,
sauber die zwei Richtungen trennen.
Und dann ist das auch einfacher, das zu erlernen.
So. Da noch mal die ganzen Begriffe, die wir bisher hatten.
Und jetzt kommen, glaube ich, die Fragen.
Ja. Erste Frage. Wenn er gleich AB ist,
die ist schon so ein bisschen tricky.
Wenn er gleich AB ist und S wird jetzt definiert als er,
er Stern, konkatiniert mit der Menge,
die A enthält,
konkatiniert mit R-Sternen
Und dann ist die Frage, was ist jetzt die Menge,
wenn ich Erster nehme und alles aus S rausschmeiße,
was bleibt dann quasi über?
Bleibt da weiterhin eher Stern über? Habe ich die leere Menge?
Habe ich B-Stern? Und da habe ich dieses etwas komplizierte Vierte,
wo ich sage, all die Wörter aus A,
B, Stern mit der Eigenschaft,
dass in dem Wort mindestens zweimal das A auftritt,
vereinigt noch mit dem Lamda.
Also, ja,
zwei oder mehr As und vereinigt mit dem Lamda
Musik A-B-C-D. Wie würdet ihr die Menge S beschreiben?
Ja genau, ein A in der Mitte und sonst
ist es egal,
kann man nochmal
anders formulieren
Enthält immer ein A, genau,
er kommt irgendwie das Gleiche hinaus, aber enthält ein A,
all die Wörter, die irgendwie ein A enthalten,
ich weiß jetzt gerade gar nicht ganz genau,
wie du das formuliert hast, das Problem immer kurz so,
dass wir sagen, die Wörter,
die ein A enthalten, jetzt kann man nochmal überlegen,
dieses Ein-A, genau, all die Wörter,
die mindestens ein A enthalten,
weil es wird ja hier bei dem R-Stern und hier bei dem R-Stern nicht ausgeschlossen,
dass wir da Wörter rausnehmen, die auch Ars enthalten.
Also können auch Wörter drin sein wie dreimal das A oder
irgendwie sowas. All die Wörter schmeißen wir raus,
also Wörter,
die mindestens ein A enthalten
In R-Stern sind Wörter drin, die irgendwie aus As und Bs bestehen.
Schmeißen wir also das Wort B raus. Nee, ne?
B enthält keinen Arsch, schmeißen wir also nicht raus.
B bleibt also drin. Das killt schon mal
die Mehrheitsmeinung, dass da die leere Menge rauskäme.
Das Wort B ist in R-Stern enthalten,
ist aber nicht in S enthalten, muss also übrig bleiben.
Das heißt, B muss zumindest schon mal in R-Stern S
drin sein.
Gekräuselte Stirn
Skeptisch? Nee, ich weiß nicht, skeptisch.
Skeptisch. Wer glaubt es? Wer glaubt es noch nicht?
Ich glaub's noch nicht. Sehr gut, mutig. Okay,
pass auf. Also, Erststerne. In Erststernen sind doch
alle Wörter drin, die aus As und Bs bestehen.
Also, insbesondere auch das Wort BBB. Da ist ja
eine Erststern drin. In S sind aber nur Wörter drin,
die mindestens ein A enthalten.
Also, das sind S,
das Wort BBB
nicht drin
Ja. Da ist vielleicht BBBA drin oder sowas,
aber nicht das Wort BBB. Also BBB ist in R Stern
drin. BBB ist aber nicht in Ästerin. Das heißt,
wenn ich aus R-Stern jetzt nur die Wörter rausschmeiße, die in S sind,
dann schmeiße ich unter anderem dieses Wort BBB nicht raus.
Das muss also übrig bleiben. Dann kann also in dieser
Menge R-Stern ohne S, die kann nicht leer sein.
Da muss mindestens dieses Wort aus 3Bs besteht drin sein.
Also der funktioniert schon mal nicht
der zweite
Der erste hier, R-Stern, wir schmeißen ja irgendwas raus.
Also wir haben am Anfang beliebige Wörter, die aus As
und Bs bestehen. Und wir schmeißen ja zum Beispiel,
wenn wir jetzt für S aus der ersten Menge eher stern,
das leere Wort nehmen und aus der hinteren Menge eher stern,
auch das leere Wort, dann haben wir leeres Wort konkadiniert mit A,
konkadiniert mit leeres Wort.
Also insgesamt das Wort A, das schmeißen wir raus.
Also kann die Menge R-Stern ohne S nicht wieder eher Stern sein.
Wir schmeißen ja zumindest schon mal das Symbol A raus.
Also das erste kann es auch nicht sein,
eins und zwei beides
nicht gut
Drittens sieht super aus, warum? Weil wir schmeißen all
die Wörter raus, die aus mindestens einem A bestehen.
Jetzt kann man sich mal umgekehrt überlegen,
was kann da eigentlich noch übrig bleiben?
Es können also keine Wörter drin sein, die As enthalten.
Wenn ich jetzt nur A und B im Alphabet habe,
da können nur noch Wörter übrig bleiben, die Bs enthalten.
Jedes andere Wort kann da nicht drin sein.
Ja, genau. Spezialfall, Lamda bleibt auch drin,
weil Lamda nicht in Es
drin ist
B bleibt drin, weil B enthält kein A,
B, B bleibt drin, enthält auch kein A,
3Bs bleibt drin, enthält auch kein A und so weiter.
Also das komplette B-Stern bleibt drin. Jetzt kann man sich überlegen,
jedes andere Wort, also jedes Wort,
das nicht in B-Stern ist, ist ja deswegen nicht in B-Stern,
weil es noch ein A irgendwo enthält, mindestens eins.
Und jedes dieser Wörter ist aber in S. Fliegt also raus.
Also bleibt nur diese dritte mögliche, also dieses B-Stern,
das ist auf jeden Fall schon mal richtig.
Also R-Stern ohne S ist auf jeden Fall B-Stern.
Jetzt kann man sich noch überlegen, ob das zweite hier vielleicht
die gleiche Aussage ist. Also das vierte, Entschuldigung,
ob das vierte auch gerade die Menge B-Stern ist,
ist es aber nicht.
Das sind ja gerade die Wörter, die mindestens zwei As enthalten.
Also weit davon ab, nur Bs zu sein
Da könnte man irgendwie drauf kommen,
wenn man das hier oben so liest, als dass dann
den R-Sterns keine Ars drin sein dürfen oder irgendwie sowas.
Dann könnte man so diesem Vierten verfallen.
Aber drittens ist der richtige B-Stern. Klar. Also ihr
überlegt euch, was ist in Erstern drin? Alles,
was aus As und B ist, ist,
ihr überlegt euch, was ist in S drin?
Alle Wörter, die mindestens ein A enthalten. Und wenn
ihr die eben rausschmeißt, dann bleibt genau das Gegenteil übrig.
Nämlich alle Wörter, die weniger als ein A enthalten oder
das sind nur 0As,
also die Menge B-Stern
Sei ein Automat in eine Wortmenge. Wenn man LA-Teilmenge von M zeigt,
dann, welches von den Vieren hat man dann gezeigt?
Also erstens, zweitens, drittens oder vielleicht
ganz was anderes
Musik Wer will bei D sagen, was er findet,
was dahin müsste? Zum 21 Leute gedrückt. Ich erwarte
21 Meldungen. Ja, das kann ich lange warten.
Ich möchte das schon. Na, das wäre sowas wie,
man weiß, dass da Automat teilweise stimmt oder irgendwie sowas.
Was weiß man? Ja, genau, das macht keinen Sinn.
Man weiß, also richtig wäre gewesen zu sagen,
ich weiß, jedes Wort, was der Automat akzeptiert,
ist auch in M.
Das wollen wir zeigen mit 11 von ASM
Man fertig, wenn man M. nicht zu groß gewählt hat,
könnte man sagen. Also der eine,
der ja gedrückt hat, passt eigentlich schon ganz gut.
Nur hilft einem das nicht so sonderlich. Man ist fertig,
wenn man A nicht zu groß gewählt hat. Naja,
also ist man fertig, wenn man jetzt auch noch die Rückrichtung zeigt sozusagen.
Also es hilft noch nicht so wirklich. Weiß man,
dass jedes Wort, das in M ist, vom Automaten akzeptiert wird?
Das gerade nicht. Man weiß, dass jedes Wort,
das vom Automaten akzeptiert wird, in M ist.
Aber nicht, dass hier jedes Wort, das in M ist,
vom Automaten akzeptiert wird, das ist das andere.
Das ist M-Timing von LA. Drittens, man weiß,
dass der Automat teilweise stimmt
Was er schon meinte, ein Automat kann nicht teilweise stimmen.
Ihr wolltet ein Automaten konstruieren, der die Menge M akzeptiert.
Und dass er mehr oder weniger kann, das wäre total dämlich.
Da kann man sich mal beim HVV-Kartenautomaten überlegen,
was es bedeuten würde, wenn er wahlweise mehr Eingaben akzeptiert,
als man vielleicht mal intendiert hatte oder deutlich weniger.
Dann ist der nicht so richtig gut benutzbar.
Also teilweise stimmten es irgendwie doof, das will man nicht.
Und das, was man wirklich weiß, ist jedes Wort,
das der Automat akzeptiert, ist in der Menge M enthalten.
Aber das war mehr so eine Diskussionsaufgabe. Also man kann
auch sagen, dass alle vier Antworten richtig sind,
wenn man möchte,
außer die zweite
Ja, die zweite, die gerade nicht.
Bei drittens, und erstens kann man fröhlich drüber diskutieren.
Vokabelfrage. Mal gucken, wer noch weiß,
was initial zusammenhängt bedeutet
Die Mehrheit plus statistisches Rauschen, hat recht,
initial zusammenhängt sollte bedeuten, ich kann jeden Zustand vom Staatszustand aus erreichen.
Hier ist der Staatszustand seit Null und ich komme irgendwie nicht nach
Z2. Ich kann nur in Z0 sein und nach Z1 kommen,
aber da komme ich irgendwie nicht mehr raus.
Das heißt, diesen Zustand Z2 erreiche ich gar nicht,
der ist überflüssig, den könnte ich wegschmeißen und dann wäre ich fertig.
Variante Ist dieser DFA-Initial zusammenhängend? Ja, nein.
C&D hat zugenommen
Wir haben sich wohl ein paar vom Chaos verführen lassen oder so.
Ist dieser DFI eine EZ zusammenhängen? Wer hat Nein gemacht?
Warum nicht? Genau, es ist kein DFA, ne?
Also ein Automat wird es nachher noch sein, aber ein anderer,
aber genau, es ist kein deterministischer, endlicher Automat,
weil wir da gesagt haben, der soll nur einen Startzustand haben.
Das ist eine etwas dusselige Fangfrage hier.
Der hier hat mit Z0 und Z2 zwei Startzustände,
ist also kein deterministischer, endlicher Automat mehr.
Begründung vielleicht beim deterministischen Automaten möchte ich ja,
dass der Zustand immer determiniert ist. Das ist eindeutig bestimmt
, wird bestimmt durch Zustände, indem ich gerade bin.
Und Symbol, das ich lese,
wenn ich jetzt am Anfang schon nicht deterministisch in zwei Zuständen bin,
widerspricht irgendwie diesem Determinismus, ne?
Blöde Sachen will ich nicht. Also der ist nicht
initial zusammenhängt, weil das gar kein DFA ist.
Sonst, wer Initial zusammenhängt. Und zu guter Letzt,
welche Sprache akzeptiert der
Musik Die, kann man sagen, die Mehrheit, Moment,
sie nur, oh, ganz knappe Mehrheit, 37 zu 36.
Also was C und nicht C angeht, Mehrheit siegt.
Erstens kann ich es nicht sein. Erstens sind ja
alle Wörter, die aus Nullen und Einsen bestehen.
Der Automat akzeptiert aber zum Beispiel das Wort 0-0 nicht.
Damit bleibt er irgendwie in Z0 und würde das Wort nicht akzeptieren.
Das ist aber 0-1 Stern drin.
Also erstens kann es nicht sein, da sind Wörter drin,
die der Automat nicht akzeptiert.
Zweitens kann es auch nicht sein, da würde man sagen,
nachdem ich das erste Mal eine Eins gelesen habe, kommen keine Nullen mehr.
Also in Nullstern 1-1 Stern. Wenn ich das erste Mal
eine Eins gelesen habe, kommen danach keine Nullen mehr.
In dem Automaten kann ich aber zum Beispiel 1-0
-1 lesen oder auch 1-0,
1-0, 1 oder irgendwie sowas.
Das kann ich lesen und akzeptieren und das für in dieser Sprache nicht drin.
Zweitens ist es also auch doof. Viertens,
es ist etwas schwieriger zu begründen, wenn man da genau hinguckt,
dann sieht man hier beliebig viele Nullen, gefolgt von einer 1,
gefolgt von beliebig vielen Einsen, gefolgt von einer Null.
Und das beliebig oft. Das heißt,
jedes Wort in dieser Menge endet auf welchen Buchstaben?
Also in der ganzen Menge jetzt, auf welchen Buchstaben
endet das auf jeden Fall? Auf Null, ne?
Wegen der Null hier
ganz hinten
Weil für das äußere Stern nehme ich quasi immer Worte aus
der inneren Menge und schreibe die hintereinander.
Und jedes Wort dieser inneren Menge muss aber auf null enden,
wegen dieser Null hier.
Und dann endet auch das ganze Wort irgendwie auf null.
Und wenn ihr euch jetzt den Automaten hier anguckt,
der hat genau einen Endzustand, Z2, oder führen überhaupt keine Nullkanten rein.
Das heißt, wenn ich als letztes eine Null lese,
dann werde ich die nicht akzeptieren.
Dann werde ich das Wort nicht akzeptieren können.
Das kann ich nicht in Endzustand überführen. Viertens kann es
also auch nicht sein. Das könnte man argumentieren mit Ausschlussverfahren
muss es drittens sein. Drittens ist tatsächlich auch richtig.
Und wir sehen nachher noch bei den zwei Konstruktionsmethoden,
warum drittens funktioniert
Zur Nachbereitung und genau jetzt kommen wir zum Konstruieren von Automaten.
Also üblicherweise Sprache gegeben oder eben man weiß,
was man haben will und bastelt sich dann die Sprache selbst.
Also dann ist die Sprache quasi von euch selbst gegeben.
Und dazu zu dieser Sprache wollte jetzt ein Automaten konstruieren. Ihr kennt irgendwie die Sprache,
keine Ahnung, alle Worte, die auf Null enden,
alle Worte, die mit eins beginnen, alle Worte,
die in der Mitte in der Eins haben, alle Worte,
bei denen nach einer Eins sofort eine Null kommt, irgendwie solche Sprachen.
Und ihr wollt dazu einen Automaten konstruieren und die Frage,
mit der wir uns jetzt die letzten Die letzten 30 Minuten
und die letzten 26 Folien, irgendwas ist nicht gut.
Beschäftigen wollen ist, wie kann man das machen?
Zwei Konstruktionssachen wollen wir uns angucken. Zwei Techniken. Und
zwar, die erste? Technik zum Konstrukieren. Da merke
ich mir, oder mache ich mir Gedanken darüber,
was ich eigentlich speichern will und wie dann die Zustände aussehen.
Wie meint man das mit diesem Speichern?
Der endliche Automat heißt deswegen endlicher Automat,
weil ihr in dieser Zustandsmenge endlich viele Zustände habt.
Das heißt, ihr könnt euch endlich viele Informationen speichern.
Ihr könnt jeden Zustand dafür nehmen,
euch irgendwie eine Information zu speichern
Zum Beispiel könntet ihr Zustände machen, indem ihr euch das zuletzt gelesene Symbol speichert.
Wenn ihr als Symbole A und B habt,
dann nehmt ihr euch als Zustände so was wie ZAZB und ihr
seht halt ein indizedes Zustands.
Merkt ihr euch, was habe ich als letztes gelesen?
Oder ihr merkt euch, die letzten zwei Buchstaben.
Dann habt ihr irgendwie Z-A-A, Z-B-B, Z-A-B,
Z-B-A oder irgendwie sowas, ne?
Solche Konstruktionen kann man machen. Wichtig ist aber,
ihr müsst euch Gedanken machen, was wollt ihr euch überhaupt merken?
Also was wollt ihr speichern? Wie sehen da die Zustände
aus? Und ihr müsst im Hinterkopf behalten,
ihr könnt euch nur endlich viele Sachen merken.
Unendlich viele Sachen gehen nicht. Also ihr könnt euch zum Beispiel
nicht merken, wie viele As ihr insgesamt schon gelesen habt.
Weil das werden unendlich viele Informationen. Ihr könnt euch merken,
wie viele As ihr gelesen habt bis zu einer bestimmten Grenze,
dass ihr zum Beispiel sagt, ich mache mir Zustände,
da kann ich mir bis zu 1000 As merken, dass ich bis zu 1000 komme.
Und dann habe ich noch einen Zustand, wo ich weiß,
ich habe mehr als 1000 gelesen.
Sowas kann man machen. Aber eben nicht beliebig viele.
Sowas kann man nicht machen. Beispiel. Wir wollen,
wir haben diese Menge M mit all den Wörtern aus 01 Sternen,
mit der Eigenschaft wie 0 Grade, W1 Ungrade.
Also Anzahl der Nullen, gerade Anzahl der Einsen Ungrade
Unten steht nur nochmal die Definition für diese Balken-Geschichte.
Anzahl nullen. Gerade Anzahl 1 sind ungerade. Und wir
sagen mal, die Zahl null selbst ist auch gerade.
Also wenn ich 0-0 gelesen habe,
dann soll das auch okay sein.
Aufgabe für uns, wie konstruieren wir dafür ein DFA?
Und als Hinweis kann man sich Gedanken darüber machen,
was will man sich jetzt eigentlich merken? Hat einer eine Idee,
wie viel, was will ich mir merken,
wie viele Informationen will ich mir merken,
wie viele Zustände werde ich brauchen?
Wir raten nochmal kurz und dann
Ja, was meint ihr? Genau, man kann irgendwie,
man kann hier sehen, ich brauche diese Info,
Venull ist gerade, Da kann man sich schon merken,
naja, dann brauche ich vielleicht auch die Info wie null,
das ist ungerade, damit ich quasi weiß,
diese Eigenschaft ist gerade nicht erfüllt.
Also ich will mir merken,
die Eigenschaft ist erfüllt oder die Eigenschaft ist nicht erfüllt.
Also zwei Informationen, das brauche ich einmal für die Null
und hier auch nochmal für die Eins.
Dann habe ich irgendwie vier Informationen, weil mir vier Zustände machen,
dann muss ich mir gleich noch Gedanken über die Kantenübergänge machen,
aber so mit den vier Zuständen sollte das eigentlich irgendwie funktionieren.
Also wir merken uns im Zustand, ob die Anzahl der
bisher gelesenen Nullen gerade ist oder ungerade, ebenso für die Eins.
Und dann habe ich zwei Informationen,
also gerade für 0 und Eins,
die jeweils genau einen von zwei Werten annehmen können,
nämlich stimmt oder nicht
und das führt zu vier Zuständen
Und das Wichtige ist jetzt auch, dass ihr diese vier Zustände mit,
immer mit einem gelesenen Symbol sofort aktualisieren können.
Also ich habe diese vier Zustände und immer, wenn ich jetzt eine Kante,
so ein Symbol lese, kann ich einen Zustandswechsel machen.
Ansonsten, wenn ich jetzt in irgendeinem Zustand wäre,
wo ich mir vielleicht gemerkt habe,
na wo ich mir irgendwas gemerkt habe und es kommt ein Symbol und ich weiß nicht,
wie ich quasi meinen Speicher aktualisieren soll,
dann ist das ein Hinweis darauf,
dass ich wohl noch einen Zustand irgendwie brauche.
In diesem Fall kann ich das aber machen,
weil ich ja weiß, keine Ahnung,
wenn ich gerade in dem Zustand bin, wo ich weiß,
ich habe gerade viele Nullen und gerade viele Einsen gelesen Na,
dann kommt jetzt entweder eine Null oder eine Eins.
Und je nachdem, was da kommt, ändert sich eben,
ob ich jetzt gerade viele Nullen habe,
dann wären es ungerade viele oder gerade viele Einsen,
dann wären das ungerade viele.
Das kriege ich dann also hin. So. Notieren wir
hier mal somit, gerade gerade, gerade ungerade,
ungerade, ungerade und gerade, ungerade.
Wobei vorne das immer für die Nullen steht und hinten für die Einsen.
Gehe für gerade, Uwe Ungerade vorne für die Nullen hinten
für die Einsen. Dann habe ich die vier Zustände.
Jetzt macht man sich noch Gedanken darüber,
der Startzustand, da habe ich ja noch nichts gelesen
Wo bin ich dann da? Naja, dann habe ich gerade viele Nullen und
gerade viele Einsen gelesen, nämlich bei beiden null viele.
Und jetzt lege ich einfach los. Ich weiß ja,
hier starte ich und jetzt gehe ich einfach immer alle Symbole
durch und überlege mir, wo ich dann hinkomme.
Wenn ich ins ZG geben und ich lese eine Null,
naja, dann flippt dieses Speicherbit, wo ich mir gemerkt habe,
gerade viele Nullen, das flippt dann auf Ungrade,
weil ich habe gerade eine Eins gelesen.
Oh, sorry, Endzustand überlege ich mir noch.
Genau, das mache ich vielleicht zuerst. Wo soll der
sein? Wenn ich gerade viele Nullen gelesen habe und gerade
viele Einsen, also ist der da unten.
Wenn ich da Ende und das Wort zu Ende gelesen habe,
dann weiß ich
Mein Wort stimmt mit dieser Eigenschaft da oben überein und ich will akzeptieren.
So, jetzt kommt das mit der Null und der Eins,
wenn ich eine Null lese und ich habe mir bisher gemerkt,
ich habe gerade viele Nullen gelesen.
Nein, da habe ich jetzt ungerade viele Nullen gelesen.
Und mit der Eins genauso, nur dass ich halt das hintere Fleck irgendwie flippe.
Gerade viele Einsen hier, das zweite G flippt dann auf ungerade.
Dann kann man jetzt irgendwo an einer anderen Stelle,
jetzt kann man irgendwie mit dem Zustand weitermachen oder man macht erstmal,
in dem Fall sieht man relativ schnell,
dass die Rückkanten genauso beschriftet sein müssen.
Also wenn ich hier von ZGG nach ZUG gegangen bin mit
einer Null, wenn ich jetzt wieder eine Null lese,
dann muss ich wieder
gerade zurückgehen
Gerade viele Nullen gelesen, weil wieder einer kommt,
da habe ich wieder gerade viele Nullen gelesen.
Was geht das mit der Null dahin zurück und mit der Eins auch?
Und jetzt nehme ich mir entweder den Zustand da oben oder
den hier und mache damit einfach weiter. Und ich glaube,
die Idee ist schon klar,
wenn ich hier in ZGU bin und ich lese eine Null,
dann habe ich jetzt auch wieder ungerade viele Nullen gelesen,
komme mit einer Null,
also nach rechts oder wieder zurück und mit der Eins komme ich von hier nach unten.
Sieht das so aus. So. Und jetzt muss der Automat
auch fertig sein, weil ich irgendwie alle Zustände benutzt habe
Und aus jedem Zustand eine Nullkante und eine Eins kannte, rausführt.
Also mehr konstruieren würde jetzt auch gar keinen Sinn machen.
Alles andere kann nicht erreichbar sein und so.
Das heißt, da bin ich fertig. Genau,
da steht es nochmal, bisweilen kann man irgendwie so einen
nicht erreichbaren Teil mitkonstruieren, den kann man dann weglassen.
Also es passiert halt, wenn ihr euch vor ihr überlegt,
wie der Speicher so aussehen soll. Und dann denkt ihr vielleicht,
ja, dann habe ich acht Zustände,
dann schreibt ihr die Zustände auf und dann stellt ihr vielleicht irgendwann fest,
einige davon sind gar nicht erreichbar vom Staatszustand.
Dann braucht ihr die auch nicht. Dann habt ihr vielleicht
von der ersten Idee irgendwie noch einen Spezialfall nicht beachtet oder
irgendwie sowas und dann schmeißt man das halt wieder weg.
Das nur so als Info manchmal hat man noch so einen Teil,
den man gar nicht braucht, mitkonstruiert, aber das ist auch nicht schlimm dann.
Wichtig jetzt, egal wie ihr den konstruiert habt,
also wir sind jetzt ja so auf die Idee gekommen,
mit dem wir uns überlegt haben,
wie sieht das so im Speicher aus, was kann da passieren?
Egal wie ihr das gemacht habt,
danach ist halt dieser Beweis von L.A. gleich M nötig.
Und wenn die Konstruktion gut ist, dann ist der Beweis meistens recht einfach.
Das soll bedeuten, wenn die Konstruktion gut ist und ihr sie gut beschrieben habt. Also üblicherweise macht man dann sowas,
dass man irgendwie sagt, naja, für diese Menge M,
die da gegeben ist und jetzt sagt man genau das,
was der Studie eben gesagt hat, dass man irgendwie sagt,
Da brauche ich mir nur vier Informationen merken,
nämlich diese, diese, diese,
diese Informationen,
der schreibe ich mir in die Zustände und dann mache ich so und so und so die Kantenübergänge.
Da hat man die Idee gut beschrieben und kann nachher solche Formulierungen benutzen wie nach Konstruktion,
weil dann halt ein Großteil schon in der Konstruktionsbeschreibung mit drinsteht.
Sehen wir auch jetzt hier. Beweis der Korrektheit,
also ich will zeigen, 11 von A ist gleich M,
jetzt fange ich hier an mit der Richtung,
wenn wir in M ist, dann wird es auch vom Automaten akzeptiert.
Also wie es in M, ich weiß also,
wie ist ein Wort, das aus Nullen und Einsen besteht,
weiß ich das? Ja, wie ist ein Wort,
das aus Nullen und Einsen besteht,
Anzahl der Nullen ist gerade,
Anzahl der Einsen ist ungerade,
das weiß ich
Und jetzt will ich zeigen, dass dieses Wort auch vom Automaten akzeptiert wird.
Jetzt kann ich in dem Fall gleich diese schöne Formulierung
nach Konstruktion benutzen und ich kann aber noch was benutzen,
was total praktisch ist, wenn ich mir den Automaten angucke,
alle Zustände haben für jedes Symbol eine Kante raus.
Das heißt, der Automat ist vollständig. Vollständig Automat bedeutet,
das Wort kann auf jeden Fall zu Ende gelesen werden.
Also nach Konstruktion, aus jedem Zustand geht für jedes Symbol
eine Kante raus, ist der Automat vollständig,
das Wort kann zu Ende gelesen werden.
Naja, und jetzt hat das Wort ja die Eigenschaft,
gerade viele Nullen zu haben und ungerade viele Einsen
Und wenn ich jetzt eben vorher die Idee schön beschrieben habe,
dann kann ich jetzt sagen, nach Konstruktion dieser Zustandsübergänge müssen wir dann in diesem Zustand enden.
Wenn wir die Konstruktion vorher nicht so schön beschrieben hat,
dann müsste man sie da jetzt beschreiben. Da müsste man sagen,
nach Konstruktion ist das ja so, dass ich diese Nullkanten,
oder wenn ich eine Nullkante entlang gehe,
dass ich dann gerade im Speicher umsetze,
von gerade viele Nullen gelesen, auf ungerade viele Nullen gelesen und andersrum.
Und für die einzelnen analog. Und deswegen ist es eben so,
dass sich tatsächlich, da ich das Wort ja zu Ende
lesen kann und das Wort eben diese und diese Eigenschaften hat,
nämlich gerade gerade viele Nullen und gerade viele einsen,
dass ich dann in diesem ZGU lande
Naja, ZGU ist ein Endzustand, also akzeptiere ich.
Also Bord zu Ende gelesen und ich akzeptiere.
Fertig. Aber nochmal, diese ganze,
diese Formulierung nach Konstruktion, das macht nur dann Sinn,
wenn die Konstruktion eben auch gut beschreibt.
Also wenn ihr irgendwie beschreibt, was denkt ihr euch beim Startzustand?
Was denkt ihr euch beim Endzustand? Was denkt ihr euch
bei den Kantenübergängen? Und was vor allem habt ihr euch
beim Speicher gedacht? Und bei der Speicheraktualisierung. Rückrichtung,
wenn WNLA ist, müssen wir der Automat akzeptiert ist.
Also müssen wir
in ZGU enden
Da auch, wenn man vorher die Konstruktion gut beschrieben hat,
kann man jetzt gleich sagen, naja,
wenn ich in dem Zustand ende,
die ganze Intention bei der Konstruktion war ja, dass ich dann weiß,
ich habe gerade viele Nullen gelesen und ungerade viele Einsen.
Also bin ich fertig. Das ist nach Konstruktion gleichbedeutend damit,
dass wir gerade viele Nullen hatten und gerade viele Einsen.
Also es will gerade in M drin.
Da steht es nochmal, was ich jetzt eben drei,
vier, fünf Mal gesagt habe,
dass ihr dann eben die Konstruktion gut beschreiben müsst
Ja, du, du,
diese übliche Verwirrung habe ich jetzt gerade überhaupt irgendwas damit bewiesen habe,
ein Beweis soll ja den Leser von der Korrektheit deiner Idee, deiner Konstruktion oder so überzeugen.
Und was ich gerade versuche zu betonen, ist,
dass ihr die Konstruktion dann gut beschreiben müsst,
damit dann für den Leser nachvollziehbar ist, ja,
das ist tatsächlich in der Konstruktion so.
Oder, wenn ihr das jetzt erstmal nur so hinmalt,
dann müsst ihr halt im Beweis sagen,
Wenn ich ungerade viele Nullen habe in diesem Wort und gerade viele Einsen,
so, dann weiß ich erst mal nur von dem Wort,
sind Nullen und Einsen drin.
Und dann beschreibst du halt, was passiert.
Du sagst, ich fange im Staatszustand an. Wenn jetzt
eine Null kommt, aktualisiere ich richtig diesen Speicher im Zustand.
Wenn der Eins kommt, aktualisiere ich das auch richtig.
Das mache ich auch die ganze Zeit immer richtig.
Da argumentierst du quasi über alle Zustände. Da sagst du,
egal in welchem Zustand ich bin, es gibt eine Nullkante raus,
es gibt eine Eins-Kante raus, mit der der Inhalt richtig aktualisiert wird.
Also die Info, die ich mir merken will.
Und dass der Automat vollständig ist und du deswegen das Wort
bis zum Ende lesen kannst.
Und dann gibt es halt keine andere Möglichkeit,
als diesem ZGU zu landen
Ist halt eine saubere Begründung dann. Genau, deswegen steht es
hier auch nochmal aus der Konstruktion, müssen sich Dinge ableiten lassen.
Wenn ich da jetzt als Zustände genommen hätte, Z1,
Z, 2, Z, 13,
Z4 und ich mache dann 0-1-Kanten und dann behaupte ich irgendwie,
ja, ist doch so, dann hilft das ja dem Leser irgendwie nicht.
Also irgendwie müsst ihr schon die Konstruktion gut beschreiben und auch so,
dass man Schlussfolgerungen damit treffen kann, die dem Leser helfen,
das nachzuvollziehen
Fragen noch. Fragen, Fragen, Fragen, okay. Macht das erstmal ein paar Mal,
insbesondere bei schwierigeren Sprachen oder schwierigeren Automaten, wird klar,
warum wir das hier versuchen so einzuüben,
auch wenn man bei diesen kleineren Beispielen oft denkt,
ja, ist das nicht irgendwie klar?
Also ich habe es jetzt so konstruiert,
was soll da anderes passieren oder so.
Aber gerade hier sollt ihr es halt einüben,
damit ihr später bei den schwierigeren Beispielen,
damit ihr da schon die Übung habt und das dann da
auch gut machen zu können.
On the Fly-Konstruktion,
zweite Technik
Dabei überlegt man sich im Grunde genommen, dass man sagt,
ich fange ja im Staatszustand auf jeden Fall an und lese irgendwie das Wort.
Und jetzt überlegt man sich immer, was für Symbole
kann ich eigentlich lesen und helfen die mir irgendwie?
Also wenn ich in dem Beispiel von eben,
hätte man auch mit so einer On the Fly-Methode,
hätte man gesagt, na gut, ich starte im Staatszustand,
will ich da schon akzeptieren?
Dann denkt man sich so, nee, will ich nicht.
So, da habe ich ja nicht ungerade viele Nullen gelesen.
Und dann überlegt man sich immer, was passiert,
wenn eine Null kommt, wenn eine Eins kommt.
Und dann kommt man auch so auf die Idee,
dass man irgendwie die Speicherinhalte aktualisieren muss. Dieses Beispiel,
0-1 Stern 1, wer sich noch erinnert,
das war die eine Clicker-Aufgabe eben,
wo wir gesagt haben,
das ist die dritte Lösung
Das sind also all die Wörter, die auf eins enden.
Und vorher kommt irgendwie was ganz Beliebiges. Wir fangen mit
dem Staatszustand an, den muss es ja immer geben.
Und jetzt gehen wir halt Schritt für Schritt durch und überlegen uns,
was passiert, wenn wir eine Null lesen,
was passiert, wenn wir eine eins lesen.
Wenn wir eine Null lesen. Dann wissen wir,
null wollen wir auf jeden Fall lesen können.
Also eigentlich wollen wir alles lesen können,
weil wir meistens kurz irgendwelche vollständige Automaten.
Aber wenn wir eine Null lesen, hilft uns das bei irgendwas.
Also hilft uns das dem Endzustand näher zu kommen
oder hilft uns das irgendwie,
Informationen zu sammeln oder sowas
Genau. Also irgendwie hilft uns die Null gar nicht.
Also könnten wir jetzt eine Kante machen von Z0 zu eng 9 Zustand,
da auch die Null hinführen und uns bei dem Zustand merken,
okay, da wissen wir eigentlich nichts.
Wir wussten aber auch schon bei Z0 nichts,
deswegen reicht es da eine Schleife zu machen.
Also wir bleiben einfach in Z0,
sagen wir sind genauso klug wie vorher.
Wenn ich eine 1 lese,
was weiß ich jetzt
Genau, er meinte jetzt gerade, wenn ich eine Eins lese,
weiß ich im Grunde genommen genauso wie eben nichts,
da widerspreche ich jetzt, ich weiß was.
Genau, wir können in den Enzlstand gehen, weil es könnte ja die letzte Eins sein.
Also du hast jetzt quasi diese Info gewonnen, oh,
ich habe eine Eins gelesen und wenn es die letzte ist,
ist ja super, dann will ich akzeptieren,
wenn es nicht die letzte ist,
dann haben wir gleich ein Problem so.
Aber erstmal ist ja gut, wir haben die Eins gelesen
und sagen, cool, wir wollen mal akzeptieren.
Also wechseln wir in neuen Zustand, warum in neun,
weil wir uns einmal merken wollen,
wir haben jetzt die Eins gesehen und weil wir da ja
auch wirklich akzeptieren wollen,
also brauchen wir auf jeden Fall einen neuen Zustand
Jetzt kann man erst mal gucken, ah,
das ist ja super mit der Z0,
hier mit dem Z0 sind wir fertig,
da gibt es die Nullkante und die Eins-Kante.
Leider ist ein neuer Zuschnitt dazugekommen, also gehen wir jetzt
zu dem und gucken uns da auch an.
Was passiert bei einer Null, was passiert bei einer Eins?
Wenn jetzt eine Null kommt, dann haben wir genau das Problem,
was er eben schon meinte, dann war die Eins nämlich gar nicht das letzte Symbol.
Was machen wir also, wenn eine Null kommt? Wieder zurück zu Z0. Genau,
erst mal, wenn wir eine Null lesen würden,
auf jeden Fall da erst mal raus, weil wir nicht mehr akzeptieren wollen.
Jetzt könnte man sich fragen, vielleicht weiß ich jetzt ja irgendwie mehr,
tue ich aber nicht, ich weiß wieder nur,
ich will nicht akzeptieren, Und diese Info,
dass ich schon mal eine Eins gesehen habe,
die brauche ich hier bei dem M ja gar nicht.
Also macht es keinen Sinn, sich einen neuen Zustand einzuführen.
Wenn M so eine Sprache wäre wie eine oder zwei Einsen,
würde ich gelesen haben oder so was, dann wird es Sinn machen,
mit der Null hier vielleicht irgendwie einen neuen Zustand zu gehen,
weil man sich irgendwie merken will,
dass man jetzt schon eine Eins gesehen hat.
Oder man bleibt da vielleicht oder irgendwie sowas. Aber so
hilft uns die Null nicht, also gehen wir wieder zurück.
Wir könnten einen neuen Zustand einführen, haben ja genauso viele Infos,
also gehen wir einfach wieder nach Z0 zurück.
Und das ist auch ganz wichtig,
dass man sich bewusst macht bei dieser Art der Konstruktion,
Muss ich mir einen neuen Zustand anlegen oder reicht es wieder in einen zurückzugehen, den ich schon habe?
Weil wenn ich mir immer neue Zustände anlegen würde,
dann konstruiere ich ganz schnell was, was unendlich viele Zustände hat.
Und das will ich ja nicht. Ich will ja endlich
viele Zustände haben. Also gehen wir da alle einfach wieder zurück.
Und was passiert bei einer Eins? Genau, schleife hier
ans Z1 ran. Wenn jetzt wieder eine Eins kommt,
dann habe ich weiterhin die Info, oh,
das letzte gelesene Symbol war eine Eins, das ist gut.
Will ich weiterhin akzeptieren. Und wenn ich jetzt drauf gucke,
stelle ich fest, oh,
für alle Zustände habe ich null und Einskanten eingeführt,
also bin ich fertig
Zumindest fertig mit meiner Konstruktion und auch so,
dass ich vielleicht während der Konstruktion schon die Idee habe,
wie ich das gleich beweisen will.
Aber vor allem bin ich fertig mit der Konstruktion und muss sie jetzt eben wieder beweisen,
dass der Automat da tatsächlich die Sprache M akzeptiert.
Genau, da nochmal der Automat mit dem Allgemeinen vollständig und initial zusammenhängt sein,
weil man ja vom Staatszustand auch startet und von da
dann eben irgendwie alle Symbole immer durchgeht.
Kritisch ist, ihr müsst auf jeden Fall irgendwann mal
zu Zuständen zurückgehen, die ihr schon mal gelesen habt,
sonst konstruiert ihr halt
unendlich viele
Und nochmal, LA gleich M muss bewiesen werden.
Machen wir das mal. Wenn ich so ein Wort aus M nehme,
wie gleich V1 Element M, also ich weiß,
in M sollen all die Worte aus Sigmar Stern sein,
die sich so schreiben lassen.
Also nehme ich mal das Wort W aus M,
wobei V jetzt eben aus Sigmar Stern ist,
habe ich da nicht mehr explizit hingeschrieben.
V ist aus 01 Stern. Jetzt kann ich
mir wieder angucken,
der Automat ist vollständig
Null Kante, eins Kante, Null Kante, eins Kante.
Das heißt, KW auf jeden Fall bis zum Ende lesen.
Dann weiß ich, wenn ich mir wie hier so angucke,
wie endet auf eins. Wie endet auf eins? Und
mit dieser letzten eins muss ich nach Konstruktion in den Zustand Z1 wechseln.
Jetzt kann man noch mal dabei dazu sagen,
nach Konstruktion beim Automaten mit zwei Zuständen würde das vielleicht reichen,
wenn man das genau ausdrücken will, würde man sagen,
wenn ich diese letzte eins lese,
Jeder Zustand in diesem Automaten gibt zugegebenermaßen nur zwei,
aber jeder Zustand aus diesem Automaten hat eine Eins-Kante und die führt bei jedem Zustand in den Zustand Z1 und das ist ein Endzustand.
Und diese zwei Infos reichen, um mich davon zu überzeugen,
dass ich dieses Wort akzeptieren muss. Diese zwei Infos.
Einerseits, ich weiß, der Automat ist vollständig. Ich weiß,
also ich kann das Wort bis zum Ende lesen und ich weiß,
das letzte Symbol ist eine Eins und dieses letzte Symbol
muss mich von jedem Zustand, egal wo ich bin,
in einen Endzustand überführt haben.
Und dann habe ich das
Also ich kann das Wort auf jeden Fall zu Ende
lesen und entweder bin ich beim vorletzten Symbol hier gelandet,
bei Z0 oder bei Z1 und egal wo ich bin,
mit der letzten 1 komme ich dann in den Zustand.
Z1. Und mit dieser Eigenschaft, das Z1 ein Endzustand ist und ich
das Wort zu Ende gelesen habe, weiß ich dann eben, ich akzeptiere.
Andersrum, wenn ich das Wort, wenn ich sage,
ich habe ein Wort, das der Automat akzeptiert,
kann ich wieder sagen, nach Konstruktion kann das Wort auf,
er muss das Wort auf 1 enden,
da auch nochmal die Beschreibung, warum nach Konstruktion.
Ich akzeptiere das Wort ja. Das heißt,
ich muss im Endzustand enden, also ich muss in Z1 enden,
wenn ich das Wort akzeptiere,
aber um in Z1 zu enden muss das letzte gelesene Symbol eine Eins sein,
weil es nur Eins kannten nach Z1 reingibt, gleiche Argumentation gegeben.
Genau, dann ist aber sofort auch wie in M,
wenn ich weiß, das letzte Symbol ist eine Eins,
egal was ich da vorgelesen habe.
Hier wird übrigens nicht benutzt, dass der Automat vollständig ist,
brauche ich auch nicht benutzen. Alles,
was ich hier benutzen muss, ist, dass ich sage,
ja, das Wort endet auf jeden Fall auf Eins und egal,
was davor gewesen ist,
das wird eben durch dieses V aus Sigmar Stern auf jeden Fall wird damit mit abgedeckt.
Auch wenn der Automat vielleicht gar nicht vollständig wäre.
Hier zeige ich ja nur, dass LA eine Timing von
M ist, aber beides zusammengenommen zeigt dann LA gleich
Fragen. Ja, ob du die Frage war,
ob man zwei Kanten haben kann von einem Zustand,
Z0 in ein Zustand, Z1 und die eine kannte das
mit null Beschrift und die andere kannte es mit eins beschriftet.
Das geht. Das würde dann nicht bedeuten,
wenn ich im Zustand Z0 bin und eine Null lese,
gehe ich zum Zustand Z1 und wenn ich im Z00
bin und eine 1 lese,
gehe ich da auch hin
Macht man meistens, also ich glaube, an irgendwelchen Schleifen
haben wir das schon gesehen. Meistens machst du nur eine
Kante und die Symbole trennst du dann einfach mit Komma.
Also 0,1 kommt dann an die eine Kante.
Gibt auch eine Fülle von Anwendungen dafür. Es ist jetzt
nicht so, dass das ein super Spezialfeld wäre,
das braucht man ziemlich häufig, dass man das eben macht.
Sonst noch fragen. Zum ersten, zum zweiten, zum Notten,
okay. Dann noch einmal kurz auf der letzten Folie,
das sind die ganzen Begriffe, übt die,
übt die auch jetzt in den Präsenz,
in der Präsenzzeit,
in den Übungsgruppen
Oder wenn ihr irgendwo Probleme habt, schreibt das in das digitale Skript,
dass wir euch da irgendwie helfen können,
weil wir die jetzt gut brauchen,
damit wir halt in der nächsten Woche damit dann gut arbeiten können.
Und auf der letzten Folie nochmal,
wie dieses Vorgehen eben ist, wie man immer beweist,
dass L von A gleich M ist.
Und dann sind wir fertig.
Danke fürs Erscheinen trotz früher Stunde und bis nächsten Montag