So, könnt ihr mich hören? Hallo. Alles klar.
Könnt ihr die Folien sehen oder soll ich das dunkel machen?
Nein. Ja, wir machen nur das dazu,
das wird dann funktionieren,
glaube ich
Tschüss. Okay, habt ihr noch Organ,
bevor wir anfangen, habt ihr noch organisatorische Fragen?
Irgendwas, was sich letzte Woche noch ergeben hat,
was wir noch schnell klären müssen
Ja. Habe ich per Mehl rumgeschickt.
Ansonsten TGI-Script und Kneißel aus uralten historischen Gründen.
Sonst noch Fragen? Nochmal? Die Frage war,
ob die null Bestandteile in den natürlichen Zahlen ist, ja.
Boah, nee, dann will ich jetzt gehen,
dann habe ich
keine Lust mehr
Ja, ich schließe mich am Schluss normalerweise. Das ist
ein schlechter Ball. Ja. Wir hatten ja irgendwo mal,
also es war immer noch die gleiche Frage,
wenn ihr in der Aufgabe so löst, als wäre endet,
als wäre die Null da nicht drin,
wird euch ja auch keiner irgendwie ein Bein verstellen.
Also es gibt manchmal so Fälle, wo man explizit darauf
hinweisen will, dass da Null drin ist oder nicht,
weil dann irgendwas Spannendes passiert.
Aber ansonsten sind das normalerweise irgendwelche Grenzfälle. Als Beispiel A
hoch N und N soll eine natürliche Zahl sein,
entweder es ist halt A hoch Null,
also das leere Wort noch mit drin oder nicht
Wie beim Programmieren auch einzelne Sonderfälle kann man ja immer ganz
schnell abfangen. Das kann man hier dann auch machen.
Funktioniert das. Aber normalerweise sollte die Null mit drin sein.
Noch eine Frage. Das war übrigens keine organisatorische Frage in
dem Sinne. Ich weiß. Ich habe extra, also
die Frage wegen des Ala-Tutoriums. Ich habe extra versucht,
einen Termin zu finden, der nach Möglichkeit irgendwie so
ein Randtermin ist
Bedingungen sind ja keine Überschneidung mit irgendwelchen Pflichtveranstaltungen,
keine Überschneidung mit, Quatsch, keine wahrscheinliche Pflichtveranstaltung.
Raum muss zur Verfügung stehen,
der groß genug ist und ich muss jemanden haben,
der das machen kann und der um die Zeit auch noch Zeit hat.
Da kam halt irgendwie Freitag 16 bis 18 Uhr raus,
wenn da auch noch das Adler-Tutorium jetzt parallel läuft,
tut es mir leid.
Ich kann mal gucken, ob Niklas noch am anderen Tag
Zeit hat. Erstmal würde ich das da liegen lassen.
Aber ich gucke noch mal, ob das da,
aber das wann anders machen kann.
Und ob wir wann anders auch noch einen Raum haben und
so weiter. Noch Fragen. Ja,
so eine Handout-Version von den Folien mache ich auch noch
Ja. Noch Fragen. Zum ersten, zum zweiten,
zum dritten. Alles klar. Dann fangen wir an.
Erstmal wiederhole ich fünf Minuten, was wir letztes Mal gemacht haben.
Wir haben ja angefangen mit endlichen Automaten und vorneweg brauchten wir
diesen ganzen Kram mit Alphabet, Worten, Sprachen, sowas.
Und auf den Punkt gebracht hatten wir eben Siegma für so
eine Menge von Symbolen,
also irgendwie ein Alphabet nennt man das dann auch
Was wir typischerweise haben, ist das Alphabet 0 und 1,
weil das in der Informatik irgendwie relativ häufig auftritt oder eben,
dass du mit irgendwelchen Buchstaben am Anfang des Alphabets herumspielen,
A, B, C, D oder sowas.
Dann hatten wir als spezielles Symbol Lamda oder Y für das
leere Wort. Das ist das Wort der Länge Null.
Und das leere Wort soll nie in einem Alphabet drin sein.
Im Alphabet sollen ja wirklich Buchstaben drin sein und eben nicht dieses spezielle leere Wort.
Dann haben wir uns Konkertinationen definiert, einmal für Symbole. Wenn ich zwei Symbole habe,
A und B und ich konkurdiniere die,
dann kommt da eben das Wort A, B raus,
kann ich dann erweitern und sagen irgendwie,
okay, wenn ich zwei Worte habe und die konkretiniere,
dann kommt da A, B,
C,
D raus
Dann kann ich das für Wortmengen machen. Habt ihr
auf dem ersten Aufgabenzept ja in den Präsenzaufgaben auch gemacht.
Da ist dann die Idee, jedes Element der ersten Wortmenge
mit jedem Element der zweiten Wortmengen konkretinieren. Und zwar genau so rum,
wenn ihr jetzt irgendwie zuerst eins der zweiten nehmt und dann eins der ersten,
dann kommt da irgendwie das Wort falsch herum raus.
Also hier beispielsweise,
wenn ihr das A aus der ersten Menge nehmt und das C aus der zweiten Menge,
dann kommt da das Wort AC raus,
was ihr eben nicht machen solltet,
ist das C aus der zweiten Menge nehmen und das A aus der ersten,
dann kommt der CA raus,
das ist irgendwie
ein anderes Wort
Und dann tritt hier eben noch der Fall auf mit dem Lamda,
wenn ihr irgendein Wort oder euren Buchstaben mit Lamda konkretiniert,
dann kommt da eben genau dieses Wort auch wieder raus.
Also AC verknüpft mit Lamda ist das Wort AC.
Dann hatten wir diese Hochschreibweise, R hoch 2,
R hoch 3 oder Sigmahoch 2, Sigmahoch 3,
wie hoch 2, wie hoch 3.
Das ist einfach für mehrfaches hintereinander ausführend von der Konkretination.
Wenn ihr ein Wort habt, weh und ihr sagt,
wie hoch 3, dann schreibt mir dieses Wort halt dreimal hintereinander.
Also wenn das Wort irgendwie Haus ist,
dann kommt da jetzt Haus,
Haus,
Haus raus
Bei dem Sigmar, da sind ja Symbole drin,
also einfache Buchstaben, da kann man sich das auch so merken,
dass in Sigmar Hoch 3 dann eben alle drei buchstabigen Worte drin sind,
die man aus diesen Buchstaben eben bilden kann.
Also wenn er als Alphabet A und B habt,
dann ist in Sigmar Hoch 3 eben von dreimal dem A,
also A-A-A bis zu dreimal dem B, B,
B, B, alles drin,
was man noch so dazwischen finden kann.
Also A, B, A, B, A,
B, B, B, A, solche Sachen.
Und wenn ihr ganze Wortmengen habt, dann so wie eben,
dann wird eben bei R hoch 3 jedes Wort aus R,
mit jedem Wort aus R verknüpft und das,
was da rauskommt,
wird nochmal mit jedem Wort
aus R verknüpft
Dann gab es noch die Sonderfälle mit dem Hochnull.
Hochnull kommt eben das neutrale Element raus. Das heißt,
wenn ihr eine Menge habt und ihr nehmt die,
also wenn ihr eine Wortmenge habt und ihr nehmt die Hochnull,
dann kommt da die Menge raus,
wo nur das Lamm da drin ist.
Und wenn ihr ein einzelnes Wort habt und ihr nehmt das Hochnull,
dann soll das eben das Wort Lamm da sein.
Dann als weitere Notation dieses R-Hoch-Plus,
das ist dann die Vereinigung über R-Hoch 1, R-Hoch 2,
R-Hoch 3, R hoch 4, R-Hoch 5 und so weiter.
Das heißt, da kommen all die Worte raus,
die man durch beliebig häufiges Aneinanderreihen von Worten aus R konstruieren kann.
Oder noch eher Stern, das ist VR-Plus,
aber da kommt eben noch das Lamm da dazu
Also da kommt sozusagen noch, dass er hoch null auch noch mit dazu.
Dann zwei Notationen, die wir letztes Mal nicht hatten,
weil wir sie da nicht brauchten.
Heute brauchen wir die. Sind auch nicht so schwer,
die Notation, wenn ihr ein Alphabet-Siegma habt und ein
einzelnes Symbol X und wie ist jetzt irgendwie ein Wort,
dann bezeichnen wir eben mit W und den Balken links und rechts die Länge dieses Wortes weh.
Wenn ihr eine Menge M habt und ihr macht da die Balken dran,
ist das die Kardinalität von M, die Anzahl der Elemente in M,
hier zählen wir jetzt eben die Buchstaben in W.
Das heißt, so geschrieben ist das die Anzahl der Buchstaben
von W. mit dem Spezialfall noch,
wenn ihr das leere Wort eben nehmt,
die Länge ist eben null
Zu das Symbol länger 1, drei Symbole ineinander gereiht,
Länge 3 und so weiter. Und was man jetzt relativ häufig braucht,
ist eben, dass man sagt, okay,
ich will nicht die Länge von dem Wort haben,
sondern ich will die Anzahl eines bestimmten Buchstabens haben, der da drin auftritt.
Wenn ich jetzt beispielsweise das Wort 2-2-0
-2 habe und ich interessiere mich für die Anzahl der 2 in da drin,
dann mache ich das eben so als Notation,
die Balken dran, die 2 und dran geschrieben,
in dem Wort tritt dreimal die 2 auf,
kommt das raus.
Die 1 tritt da drin gar nicht auf, das heißt,
da kommen null raus und die null tritt einmal auf,
das heißt, da kommt eins raus.
Das ist nur eine Notation, um nachher nicht ständig sagen zu müssen,
sowas wie irgendwie Die Anzahl der Nullen in W ist gerade oder so.
Den kann ich auch einfach sagen, irgendwie W,
zack, Null, Modulu 2 ist Null oder irgendwie sowas.
Dann kann ich Sachen schneller formulieren. So, Sigmar Stern.
Wir hatten ja eben diese Notation mit dem Plus und dem Stern.
In Sigmar Stern ist jetzt die Menge aller endlichen Wörter,
die ich über diesem Alphabet bilden kann. Ich hatte ja gesagt,
irgendwie in Sigmar 3 sind die drei buchstabigen Wörter,
dann sieht man zwei, ja, die zwei buchstabigen,
Sigmar 4, all die vier Buchstabinge und so weiter,
Sigmar Stern, die Vereinigung davon.
Also kommen da alle Wörter rein,
die ich irgendwie mit Symbolen aus diesem Alphabet bilden kann
Und jede Teilmenge davon, also irgendwie eine Wortmenge aus Elementen,
aus Sicht mal Stern, das nennt man eine formale Sprache.
Und das Ziel, was wir in der Vorlesung oft verfolgen,
ist dann eben für bestimmte Sprachenautomaten konstruieren zu können.
Wir hatten ja letztes Mal so ein,
zwei Beispiele gesehen und auf dem Übungszettel war auch,
waren auch ein, zwei drauf. Wichtig ist dann eben,
ich gebe euch irgendwie eine Sprache vor und wenn ihr jetzt
einen Automaten dafür konstruieren wollt, dass ihr eben genau die Worte,
die in dieser Sprache drin sind, akzeptiert und all die anderen ablehnt.
Es muss also genau passen. Deswegen auch immer diese Geschichte,
elf von A, also die Sprache von dem Automaten A,
soll gleich M sein,
da habe ich zwei Timing-Beziehungen zu zeigen,
dann weiß ich,
dass er genau die Worte da drin akzeptiert und auch
keine weiteren
Und dann hatten wir das Beispiel von dem endlichen Automaten mit den Zuständen,
irgendwie in den Kreisen drin,
seit 0 zu 1 der 2 und den Buchstaben A und B,
die in dem Fall lesen kann,
dann konnte man sich noch vorstellen, dass ein Eingabeband hat,
auf dem man eben dieses Eingabewort ablegt und wie das gleich dynamisch arbeitet,
gucken wir uns gleich nochmal an.
Erstmal die Definition von der Struktur, da haben wir gesagt,
das ist so ein Fünf-Tupel, bestehend aus der Zustandsmenge Z,
dem Eingabealphabet Sigma Startzustand, Z-0-Menge von Endzuständen, Z-End.
Und dann gab es eben noch diese Überführungsfunktion,
die jedem Element aus Zustand und Eingabesymbol einen Nachfolgezustand zuweist.
Die Idee ist, wenn ich im Zustand Z bin und das Symbol X lese,
dann ist der Nachfolgezustand eben Delta Z-X. Beispiel,
nochmal der Automat mit diesem eingebaut, ABIBA.
Das hier haben wir Konfigurationen genannt, besteht aus dem Zustand,
in dem wir gerade sind und dem Restwort,
das wir noch lesen wollen, am Anfang wollen wir das ganz eingebewort lesen.
Und da drunter eine sehr ähnliche Notation,
da drunter eben die Notation mit dieser erweiterten Überführungsfunktion
Und jetzt kann man eben gucken,
wenn ich gerade im Zustand Z 0 bin und das A lese,
dann kann ich diesen Kantenübergang machen.
Das heißt, ich wechsle in den Zustand Z1 und auf
dem Eingabeband gehe ich ein Feld weiter nach rechts.
Dann bin ich da. Hier ist auch der Konfigurationsübergang beziehungsweise
eben mit der erweiterten Überführungsfunktion sieht das faktisch genauso aus,
nur dass da irgendwie noch dieses Delta-Dach dran ist.
Jetzt kann man wieder gucken, wenn ich in Z1 bin und
das B lese, kann ich das mit dieser Kante machen.
Also bleibe ich in Z1 und das noch zu lesende Wort
wird aber kürzer. Kann ich nochmal machen,
nochmal ein B lesen
Und jetzt kann ich mit der letzten Kante hier in den Zustand, Z2 wechseln.
Habe das Eingabewort bis zum Ende gelesen. Und weil das
hier in Endzustand ist, angedeutet durch die zwei Kringel,
wird das Eingabewort jetzt akzeptiert. Und das nochmal auf die Gefahr,
in euch zu langweilen, akzeptiert wird es eben genau dann,
wenn das Wort bis zum Ende gelesen werden kann und ich dann in einem Endzustand bin.
Die Gegenbeispiele, die wir da so hatten,
war dann eben irgendwie zu nehmen,
A, B, B zum Beispiel,
dann lande ich nur in Z1 oder sowas wie,
wenn jetzt noch ein weiteres A käme,
dann würde ich auch nicht akzeptieren,
dann bin ich zwar in einem Endzustand,
kann das Wort damit nicht zu Ende lesen,
dann würde ich in diesem Endzustand
eben blockieren
Ja. Dann hatten wir noch die akzeptierte Sprache formal gefasst,
eben habe ich es ja erzählt was, das ist formal gefasst,
kann man sagen, ich muss im Z0 starten,
das eigene Wort W lesen und wenn ich da drauf eben diese Übergang,
diese erweiterte Überführungsfunktion anwende,
du musst eben Endzustand rauskommen oder eine äquivalente Definition,
ich starte in der Konfiguration Z0W und ich muss in der Konfiguration landen,
wo ich in einem Endzustand bin und eben das Wort zu Ende gelesen habe,
angedeutet durch das Lamda, es kommt nichts mehr.
Die Dinger nennt man dann auch reguläre Mengen und alle
regulieren Mengen zusammen, ist die Familie der regulären Mengen oder
regulären Sprachen
Ja, insgesamt die Begriffe, die wir so hatten,
oh nee, das Vorgehen nochmal,
wenn ihr einen DFA habt und eine Sprache M und ihr wollt zeigen,
dass LA gleich M ist,
dann müsst ihr eben zwei Richtungen zeigen, einmal die Richtung,
dass LA eine Timing von M ist und einmal die Richtung das M eine Timing von LA ist.
Und für die erste zeigt ihr eben, dass jedes Wort,
das der Automat akzeptiert, tatsächlich in M ist.
Da könnt ihr irgendwie anfangen mit Saiwe in LA,
dann wisst ihr halt, dass das Wort akzeptiert wird.
Das heißt, ihr könnt meistens mit irgendwie sowas arbeiten wie,
wenn er das Wort akzeptiert, muss er ja in einem Endzustand geendet sein.
Wenn er in einem Endzustand geendet ist,
jetzt könnt ihr euch vielleicht die Endzustände ansehen und stellt fest,
alle kannten in den Endzustand, sind mit eins beschriftet.
Dann wisst ihr zum Beispiel, das Wort muss auf jeden
Fall mit eins enden, wenn der Automat das akzeptiert.
Und dann könnt ihr irgendwie gucken, folgt da jetzt irgendwann draus,
dass das Wort dann auch wirklich in M ist.
Und andersrum, wenn ihr zeigen wollt,
dass M the Timing von LA ist,
dann geht ihr eben von einem Wort aus M aus,
probiert irgendwie die Eigenschaften dieser Worte auszunutzen und zu zeigen,
dass der Automat das dann wirklich akzeptiert.
Und insbesondere am Anfang beide Richtungen immer klar trennen und dann eben versuchen so zu argumentieren,
dass er wirklich von dem einem ausgeht und zu dem,
bei dem anderen landet.
Ihr seht so aus, als wolltet ihr was.
Na, was gibt es denn
Der Vollversammlung der aktuellen Auseinandersetzungsverluste. Jetzt fliege ich das Ding mit.
Wie lange braucht ihr denn? Uh, die habe ich
nicht. Könnt ihr, uh. Ja, mach mal
. Mach mal. Und gib ihnen nochmal deinen Namen,
dann wissen sie, bei wem sie sich beschweren müssen,
wenn sie den Übungszeller nicht schaffen.
Das liegt dann nicht an mir
So, ich glaube, das nimmt nicht eure ganze Aufmerksamkeit in Anspruch, oder?
Doch. Machen wir mal weiter. Die Begriffe,
die wir also bisher hatten, bezüglich endlich Automaten,
DFA-Zustände, Staatszustand, Endzustand, die Überführungsfunktion dieses Automaten,
das war alles so das,
was bei dem Automaten drin war.
Noch das Eingabealphabet. Dann darauf definiert die erweiterte Überführungsfunktion. Oder eben,
wenn man nicht mit der erweiterten Überführungsfunktion arbeiten möchte,
kann man auch mit Konfiration und Konfirmationsübergängen arbeiten.
Das ist ganz praktisch, weil wir das nachher bei den
späteren Automatenmodellen ausschließlich machen
Dann den Begriff der Rechnung, mehrere Konfigurationsübergänge hintereinander, Erfolgsrechnung,
akzeptierte Sprache, all die Wörter zusammen für diesen Erfolgsrechnung gibt,
reguläre Menge, beziehungsweise reguläre Sprache und all die Dinger zusammen,
die Familie Reck.
Vollständig und die Zeit zusammenhängt noch. Und das ist alles
wichtig. Wenn euch einer dieser Begriffe nicht klar ist,
ist jetzt eine gute Möglichkeit zu fragen.
Ja, noch einer, mache ich gleich.
Vollständig noch was
Ja. Die anderen Begriffe alle, klar. Okay.
Dann können wir darauf aufbauen. Für vollständig in die Zahl zusammenhängt,
habe ich das nochmal mit den Definitionen auch drin. Vollständig ist,
wenn ihr zu jedem Pärchen aus Zustand und Eingabesymbol,
wenn für jedes dieser Pärchen eben die Überführungsfunktion definiert ist,
sprich es gibt irgendeinen Z-Strich, sodass diese Gleichung gilt.
Das bedeutet, für jedes Eingabesymbol gibt es in jedem Zustand
eine Kante raus. Das ist vollständig. Bedeutet,
man kann jede Eingabe zu Ende lesen
Weil egal, wie das Wort anfängt,
den ersten Buchstaben kann ich lesen, weil aus dem Zustand
Set 0 geht ja für jedes Symbol eine Kante raus.
Jetzt bin ich in irgendeinem anderen Zustand, soll das nächste Symbol lesen,
da geht aber auch für jeden das Symbol eine Kante raus.
Also kann ich das Wort irgendwann bis zum Ende lesen.
Vollständig ist meistens sehr praktisch. Initial zusammenhängt, wenn ich
jeden Zustand auch irgendwie durch irgendein Wort erreichen kann.
Sprich, ihr habt nicht so Sachen wie irgendwie,
hier ist der Staatszustand,
hier habt ihr irgendwie einen anderen Zustand und jetzt geht eine Kante von hier nach da.
Da ist der Zustand irgendwie gar nicht zu erreichen,
den könnt ihr auch
genauso gut weglassen
So. Das dazu, das mit vollständig werden wir auch brauchen,
das mit Initial zusammenhängt, tritt nachher an einer Stelle mal auf,
aber nicht so deutlich.
Was ich heute mit euch machen will, zwei Sachen.
Erstmal will ich euch zwei Techniken vorstellen zum Konstruieren von endlichen Automaten.
Und später will ich dann noch diese nicht-diterministischen Automaten einführen.
So, Techniken zum Konstruieren von DFAs. Sprich,
ich gebe euch irgendwie eine Sprache und sage so,
jetzt konstruieren wir mal einen DFA, der die akzeptiert.
Jetzt muss man zuerst sagen, die Sprache, mit denen
wir hier üben, die sind meistens so ein bisschen künstlich.
Man kann dann aber eben, wenn man die Systematik an
so recht künstlichen und dadurch auch etwas einfacheren Sprachen verstanden hat,
dann kann man das eben für Sprachen anwenden,
die realistischer sind
Also die erste Methode ist, ich gebe euch irgendwie eine
Sprache und ihr überlegt euch vorher, was will ich eigentlich speichern?
Eure Speichermöglichkeit ist quasi in den Zuständen. Ihr habt endlich viele Zustände,
das heißt, ihr könnt endlich viele Informationen speichern.
Deswegen ist hier auch dieser Zusammenhang mit, was will ich
speichern und wie sehen dann eben die Zustände aus?
Ich überlege mir zuerst, was will ich speichern und dann
wie mappe ich das irgendwie auf die Zustände?
Beispiel die Sprache hier, irgendwelche Worte,
die aus Nullen und Einsen bestehen, mit eben der Eigenschaft,
dass die Anzahl der Nullen gerade ist und die Anzahl der Einsen ungerade.
Darunter steht nochmal die Definition für dieses W mit Balken
Beispielsweise soll da 0-1, Moment,
wie ist gerade eins und gerade,
0-1-0 soll drin sein,
2-0, eine 1, das soll akzeptiert werden,
0-0, 0-1 soll nicht akzeptiert werden,
da ist auch die Anzahl der Nullen und gerade.
Also wie konstruiert man dafür in DFA und als Tipp,
sich mal zu überlegen, was soll ich mir überhaupt merken?
Hat einer
eine Idee
Genau, ob ich, ich merke mir, ob die Anzahl der Nullen
gerade ungerade ist und die Anzahl der Einsen gerade ungerade.
Sowas kann ich mir merken. Was ich mir nicht merken kann,
ich kann zum Beispiel nicht die Nullen irgendwie zählen und mir dann immer merken,
hey, ich habe 3-0 gelesen, das ist ungerade,
hey, ich habe 5-0 gelesen, das ist ungerade oder irgendwie sowas.
Also wenn ich mir zusätzlich noch die Anzahl merken will,
dann kriege ich unendlich viele Informationen.
Das kann ich nicht machen. Also die Idee ist,
wir merken uns im Zustand, ob die Anzahl der
bisher gelesenen Nullen gerade ist oder ob die ungerade ist,
das Gleiche für die Einsen.
Das sind genau zwei Informationen und jede Info,
jede Information nimmt genau einen von zwei Werten ein.
Also ich merke mir eine Information für die Nullen,
eine Information für die Einsen,
für die Nullen merke ich mir gerade und gerade für die Einsen merke ich mir gerade ungerade,
das führt zu vier Zuständen und das Schöne ist,
kann leicht diesen Zustand mit jedem gelesenem Symbol aktualisieren.
Wenn ich irgendwie gerade viele Nullen gelesen habe,
und jetzt kommt eine Null, habe ich jetzt ungerade viele Nullen gelesen.
Wenn eine Eins kommt und ich habe mir gerade gemerkt,
irgendwie ungerade viele Einsende muss jetzt zu geraden vielen Einsen gehen.
Notieren wir als GGGU-U-U-U-U-U, wobei der erste Buchstabe eben für
die Nullen sein soll und der zweite für die Einsen.
Das heißt, GU steht für die Anzahl der Nullen
ist gerade und die Anzahl der Einsen ist ungerade.
So, dann gehen wir mal davon aus,
dass das leere Wort 0001, dass die Anzahl 0 sozusagen,
dass das auch eine gerade Zahl ist,
Dann kann man GG als Staatszustand nehmen.
Wenn ich noch nichts gelesen habe, ist die Anzahl der Nullen gerade,
die Anzahl der Einsen auch. Was nehmt ihr als Endzustand?
Oder als Endzustände? Keine Ahnung. Nochmal? Nee,
wenn du GG nimmst, dann ist ja die Anzahl der
Nullen gerade und die Anzahl der Einsen auch gerade.
Genau, GU. Dann passt das. Also denen da
unten eine Anzahl der Nullen gerade, Anzahl der Einsen ungerade.
So, jetzt haben wir den. Und jetzt kann man sich überlegen,
jetzt gibt man Stück für Stück alle Zustände durch und für jeden Zustand,
dass für jeden Zustand alle Eingabesymbole und guckt immer, Was muss ich aktualisieren?
Beispiel, wenn ihr in dem Zustand seid, bisher,
also in ZGG, bisher gerade viele Nullen gelesen und gerade viele Einsen,
wo geht ihr hin, wenn ihr eine Null lest?
Ja, zudem da, wo ich mir jetzt merke,
ich habe ungerade viele Nullen gelesen und wenn ich eine Eins lese, dann gehe ich eben dahin.
Null nach da, Eins nach da. Und jetzt kann man sich überlegen,
jetzt nimmt man den nächsten Zustand, den hier und überlegt sich,
wo komme ich da mit einer Null hin und wo komme ich da mit einer Einzelnen?
Wenn man halt wieder eine Null liest,
dann hat man nicht mehr ungerade viele Nullen gelesen,
sondern gerade viele Nullen,
das heißt, man geht wieder zurück und hier genauso,
wenn man eine Eins liest,
dann hat man nicht mehr ungerade viele Einsen gelesen,
sondern gerade wieder gerade,
so,
dann geht das da zurück
Und jetzt geht man halt alle Zustände so durch und landet dann da.
Klar, soweit? Das Schöne ist, dass der Automat auch vollständig ist.
Das heißt, ich kann nachher so Argumentationen machen,
wie irgendwie ein Wort wird auf jeden Fall gelesen. Ich muss irgendwo auf jeden Fall landen. Und wenn ich jetzt noch ein bisschen argumentieren würde,
dass, wenn ich jetzt noch ein bisschen diese Konstruktionsidee erklären würde,
wenn ich jetzt für jeden Zustand beispielsweise durchgehe und sagen würde,
wenn ich in GEG bin und eine Null lese,
dann komme ich nach UG, was ja auch sinnig ist,
weil ich da jetzt nicht mehr gerade viele Nullen gelesen habe,
sondern ungerade viele, weil ich das vorneweg noch ein bisschen mache,
dann kann ich nachher, wenn ich diese Mengengleichheit zeigen will,
ganz oft sagen,
gilt nach Konstruktion
Dazu gehört aber, dass die Konstruktion stichhaltig ist und dass ich die vorher auch erklärt habe.
Sehen wir gleich noch. Das noch kurz als Anmerkung,
wenn man diese Methode benutzt, dann kann es manchmal passieren,
dass man gar nicht erreichbare Teile mit konstruiert.
Bei dem Beispiel war das jetzt nicht so,
weil wenn ihr euch zum Beispiel vorher überlebt,
die und die Sachen will ich mir in den Zuständen merken und ihr stellt nachher fest,
ups, einige Sachen davon kann ich gar nicht erreichen durchlesen von Nullen und Einsen oder so.
Naja gut, dann habt ihr einen Teil als Zustände
noch mit konstruiert, der gar nicht erreichbar ist,
dann schmeißt ihr die nachher halt einfach wieder weg.
Und da nochmal Egal, wie er den konstruiert,
ihr müsst jetzt auf jeden Fall nochmal diesen Beweis nachliefern.
Also auch wenn ihr die Konstruktionsidee schön beschreibt und so und sagt so,
hier, mein Automat passt jetzt zu dieser Konstruktionsidee.
Ihr müsst ja noch nachweisen, dass das jetzt auch wirklich stimmt.
Und dafür müsst ihr eben diese Mengengleichheit nochmal nachweisen.
Machen wir das hier einmal. Wenn WNM ist,
das bedeutete ja, W hat gerade viele Nullen und ungerade viele Einsen.
Und ich will jetzt zeigen, dass dieses Wort tatsächlich von
dem Automaten akzeptiert wird. Dann kann ich sagen,
okay, nach Konstruktion, der Automat ist ja vollständig,
das kann man ganz schnell sehen.
Man sagt einfach, naja gut,
bei jedem Zustand geht eine Null und eine Eins-Kante raus,
wird das Wort auf jeden Fall
zu Ende gelesen
Und jetzt kommt dieser Teil mit Nachkonstruktion. Jetzt kann man
nicht einfach sagen, nach Konstruktion der Zustände und dieser Zustandsübergänge
müssen wir auf jeden Fall in diesem ZGU landen.
W hat eine gerade Anzahl von Nullen und eine ungerade Anzahl von Einsen.
Das ist genau das, was dieser Zustand eben symbolisiert.
Da müssen wir landen. Da akzeptieren wir, weil das
auch ein Endzustand ist, also ist das Wort in der Sprache drin.
Jetzt sind wir von W aus M ausgegangen und haben gezeigt,
dass das Wort dann eben auch in LA drin ist.
Andere Richtung, wenn das Wort in LA drin ist,
jetzt kommt das, was ich vorhin schon einmal erzählt habe,
jetzt müssen wir irgendwie über den Automaten argumentieren.
Das, was wir machen können, ist,
wir können sagen, wenn das Wort in LA drin ist,
dann müssen wir das ja
akzeptiert haben
Weil wir akzeptiert haben und wir haben nur einen Endzustand,
müssen wir in dem Endzustand auch geendet sein.
Das heißt, wir sind in diesem Zustand ZGU gelandet, nachdem wir w gelesen haben.
Und da auch wieder nach Konstruktion ist das aber gerade gleichbedeutend damit,
dass wir eine gerade Anzahl von Nullen gelesen haben und eine ungerade Anzahl von Einsen.
Was wiederum genau ein Wort erfüllen soll, das in M drin ist,
sprich, dieses Wort ist auch in M drin, fertig.
Sind wir auch von dem ausgegangen und haben gezeigt, dass das in M ist.
Problem dabei, diese Formulierung mit nach Konstruktion,
die kommt so ein bisschen, man irgendwie denkt,
naja, dann kann ich ja irgendwas konstruieren und immer sagen,
irgendwie, ja, ja, noch Konstruktion passt das.
Ihr müsst also schon vorneweg irgendwie sagen, wie diese Konstruktion
gedacht ist und gegebenenfalls auch vorneweg irgendwelche Sachen für diese Konstruktion eben beweisen.
Eben beispielsweise, dass ihr hier sagen würdet, das stimmt wirklich.
Wenn ich irgendwie in dem Zustand ZGU lande,
nachdem ich ein Teilwort vielleicht nur gelesen habe,
dann habe ich im Moment bis dahin wirklich gerade viele Nullen und gerade viele Einsen gelesen.
Das müsste man gegebenenfalls noch argumentieren. Bei so kleineren Beispielen
wie dem hier ist das meist relativ klar,
wenn die Konstruktion umfangreicher werden,
muss man eben genau an der Stelle nochmal ein bisschen argumentieren
Damit ihr das üben könnt, haben wir eine ähnliche Aufgabe
wie die hier als erste Präsenzaufgabe. Da solltet ihr auch
was konstruieren. Wenn ihr bei der Konstruktion eine gute Idee habt,
dann lässt sich der Beweis danach relativ schnell machen.
Das könnt ihr einmal den Übungsaufgaben üben und dann eben in der Präsenzlösung
nochmal nachlesen. Das dazu? Zweite Möglichkeit zu konstruieren,
so eine sogenannte On-the-Fly-Technik. Ich überlege mir quasi einfach immer,
ich fange mit dem Startzustand an und jetzt überlege ich mir On-the-Fly,
was passiert, wenn ich eine Null lese, was passiert,
wenn ich eine Eins lese?
Kann ich irgendwas machen mit diesen Infos
Beispiel dafür, die Menge 01 Stern verknüpft mit 1,
also genau die Worte aus Sigmar Stern mit der Eigenschaft,
dass die auf 1 enden.
Vorneweg kommt noch irgendwie ein anderes Wort und enden
tut das Wort, aber auf jeden Fall auf 1.
Die Sprache wollen wir akzeptieren. Jetzt kann man sich wieder überlegen,
okay, also wenn ich irgendwie einen Automaten basteln will,
ich brauche auf jeden Fall einen Startzustand, da fange ich schon mal ein.
So, und jetzt geht mal wieder alle Symbole durch.
Also wir haben ja die Symbole 0 und 1. Jetzt kann
man sich überlegen, was passiert bei einer Null?
Das könnt ihr euch überlegen. Im Moment habt ihr
zwei Möglichkeiten eigentlich nur. Ihr könnt entweder einen neuen Zustand
einführen und da eine Nullkante hinmachen oder ihr könnt sagen,
mit einer Null bleibe ich in
Was wollt ihr machen? Bitte? Genau, und Z-0-Line.
Warum? Ja, aber das ist jetzt die... Damit begründest du,
warum du mit der Eins nachher woanders hin willst,
oder nicht, warum du mit einer Null da bleibst.
Ja, genau so. Ja, ähm, wichtig wäre...
Also, stimmt alles, aber wichtig wäre zu sagen,
wenn ich eine Null lese, kriege ich eigentlich keine neuen Infos.
Ja, die Infos, die ich bisher in Z-0 hatte,
sind halt ein wahres Wort endet offensichtlich noch nicht mit eins.
Wenn ich jetzt eine null lese, weiß ich immer noch
höre, das Wort endet offensichtlich nicht mit eins.
Also kann ich 100 bleiben. Gibt keine neuen Infos.
Bei einer 1, hast du eben schon gesagt,
neuen Zustand aufmachen und da hingehen.
Weil wenn ich da jetzt auch in Set 0 bleibe,
dann merke ich mir in Set 0 quasi gar nichts mehr.
Das ist irgendwie doof. Und vor allem verliere ich
diese Info. Ich habe jetzt gerade eine 1 gelesen.
Also mache ich mir einen neuen Zustand auf. Gehe da
hin mit der 1 und mache daraus auch schon mal den Endzustand.
Weil ich weiß irgendwie, hey, wenn das Wort
jetzt endet, dann akzeptiere ich.
Dann ist ja gerade das zuletzt gelesene Symbol eine
Jetzt ist man aber noch nicht fertig. Jetzt hat man ja
gerade diesen Zustand Z1 aufgemacht. Jetzt kann man sich wieder überlegen,
was passiert bei einer Null, was passiert bei einer Eins?
Wenn ich eine Null lese, will ich da offensichtlich nicht bleiben,
weil wenn ich jetzt eine Null lese, würde ich nicht mehr akzeptieren wollen.
Das heißt, ich muss irgendwie raus aus dem Zustand.
Und der wichtige Knackpunkt, bei der Konstruktionsmethode ist jetzt,
dass man irgendwann dahin kommen muss, Zustände,
die man schon mal konstruiert hat, wieder zu benutzen.
Wenn ihr jetzt irgendwie sagt, Naja, mit einer Null
will ich also nicht akzeptieren. Also mache ich mir einen
neuen Zustand auf und gehe dann mit einer Null hin.
Und dann macht ihr da eine Nullschleife dran und sagt,
oh, wenn ich jetzt ein Eins lese,
dann will ich ja wieder akzeptieren.
Also mache ich einen neuen Zustand auf und gehe dann mit der Einzelnen.
Wenn ihr das immer so weitermacht, dann kriegt ihr einen
unendlich langen Automaten, also einen mit unendlich vielen Zuständen.
Also irgendwann müsst ihr merken, ich kann jetzt mit meinen Kanten
irgendwo zu Zuständen gehen, die ich schon mal konstruiert habe.
Und hier könnt ihr mit der Null eben einfach zu Z0 zurückgehen,
weil ihr jetzt quasi wieder die Info habt irgendwie,
okay, ich will das Wort noch nicht akzeptieren,
letztes gelesen, das Symbol ist ein Null.
Ja, und bei der Eins mache ich mir eben
eine Eins-Kante an
Bekommen, 13, 13. Hier? Also die Frage war,
wenn ich es richtig verstanden habe, die Frage war,
warum kann man in Z1 nicht eine 0-1-Kante ranmachen?
Also eine Kante von Z1 zu Z1 mit 0-1 dran.
Dann könnte ich ja das Wort lesen 0-1-
0. Würde ich akzeptieren, endet aber nicht auf eins.
Bis jetzt noch nicht, wir sind auch noch nicht,
also du meinst, die Frage,
weil wir nur 1-1 als Wort hätten,
dann wäre das nicht legitim.
Das Wort könnten wir im Moment noch nicht lesen, genau.
Aber wir sind ja auch noch nicht fertig.
Wir haben hier noch die 1-Kante
nicht gemacht
Und mit der würden wir jetzt in Z1 bleiben.
So. Und dann sind wir fertig. Und auch da wieder das Schöne,
wir können irgendwie in allen Zuständen alle Symbole lesen.
Das heißt, das Ding ist vollständig. Es ist automatisch auch initial zusammenhängt,
weil wir fangen ja vom Staatszustand an, überlegen uns,
wo kommen wir mit 0 und 1 hin.
Das heißt, die Zustände, die rauskommen,
sind auf jeden Fall erreichbar. Überlegen wir uns wieder,
wo kommen wir mit 0 und 1 hin.
Alle Zustände, die wir irgendwie konstruieren, sind immer erreichbar.
Also ein so konstruierter Automat wird vollständig sein und initial zusammenhängt.
Und jetzt kritisch, aber wie gesagt,
man muss irgendwann Zustände, die man schon eingeführt hat,
nochmal benutzen
Und im besten Fall wird man auch irgendwie verstehen,
wofür die Zustände da sind, in Anführungsstrichen.
Also man könnte zum Beispiel bei der Konstruktion eben sagen,
der Zustand ZX steht für X ist das letzte gelesene Symbol.
Wenn ihr euch das hier anguckt, da kommt ihr immer hin,
wenn ihr zuletzt eine Null gelesen habt und da kommt ihr immerhin,
wenn ihr zuletzt eine Eins gelesen habt.
Naja und jetzt nochmal, um es euch richtig ins Gehirn
zu würgen, ihr müsst immer dann zeigen irgendwie,
dass diese Mengen gleicher gilt.
Und üblicherweise eben damit, dass ihr irgendwie zwei Timing-Beziehungen zeigt.
Machen wir ja auch nochmal
ganz schnell
Wenn wir eben in M drin ist, endet also auf eine Eins.
Jetzt kann man sagen, da der Automat vollständig ist,
muss ich wie auf jeden Fall bis zum Ende lesen können.
Und jetzt könnte man auch wieder sagen, nach Konstruktion,
aber um das mal ein bisschen aufzufächern,
da weh auf Eins endet,
musste der Automat mit der letzten Eins nach Konstruktion in den Zustand Z1 wechseln,
weil das der einzige Zustand ist, wo Eins kannten,
hingehen und aus jedem Zustand herausgehen, auch Eins kannten dahin.
Das heißt, wenn ich irgendwie eine Eins lese,
muss ich in Z1 gewesen sein.
Das heißt, mit dieser letzten Eins lande ich auch im
Zustand Z1 auf jeden Fall und damit akzeptiere ich
das Wort
Andere Richtung, wenn wir in LA ist,
dann muss das Wort auf eine Eins enden, weil eben Z1,
der einzige Endzustand ist und alle kannten nach Z1 mit Eins beschriftet sind.
Naja, und wenn das Wort aber mit Eins endet,
das ist gerade die Definition dafür, wann ein Wort in M drin ist.
Also es ist dann auch in M und ich habe wieder
beide Richtungen gezeigt und damit die Mengengleichheit.
Das Beispiel hier ist so klein, dass beide Richtungen sehr,
sehr ähnlich aussehen. Wichtig ist aber trotzdem hier die Argumentation,
man geht von einem Wort in LA aus, dann weiß man,
man hat hier aufgehört mit der Rechnung in Z1 und dann kann man sich eben die Kanten ansehen und sagen,
okay, sind, so,
dass ich dann auf jeden Fall zuletzt eins gelesen haben muss,
weil gar keine anderen Kanten nach Z1 reingehen.
Und hier war die Argumentation eben, wenn ein Wort in M ist,
dann endet das auf eins, was passiert jetzt in dem Automaten?
Fragen. Die Frage war, ob das Staatszustand
auch ein Endzustand sein kann, ja, kann er.
Also allgemein, in dem Fall macht das keinen Sinn,
aber im Allgemeinen, also generell kannst du das machen, ja.
Braucht man zum Beispiel recht häufig, wenn du
das leere Wort akzeptieren möchtest?
Nach Fragen
Ich dachte, du. Dann ganz was Neues.
Stand auch schon in dem ersten Lesestoff drin.
Nicht die terministische Automaten. Also wir verlassen jetzt mal
dieses Gebiet mit endlichen und mit deterministischen, endlichen Automaten.
Und gucken uns mal was Neues an. Wenn ihr so
einen endlichen Automaten nehmt, der deterministisch ist und DFA,
dann gibt es ja zu jedem Zustand Z und jedem Eingabesymbol
X immer genau einen so einen Nachfolgezustand.
Delta ist ja eine Funktion. Das heißt, ihr könnt
nicht sowas machen wie Delta ZX ist, Z1 und Delta
ZX ist Z2. Das kann nicht funktionieren. Das ist
eine Funktion, das kann nur genau
ein Bild haben
Da sagt man dann auch, dass der Nachfolgezustand determiniert ist und genau diese Idee mit dem, dass das determiniert ist, die kann man aufweichen. Wenn ich den ansehe,
ihr fangt in Z0 an, wenn das Wort jetzt mit B anfängt,
würdet ihr sofort blockieren, aber wenn das Wort mit A anfängt,
könnt ihr nach Z1 gehen oder nach Z2. Wenn das Wort,
neben Manni, ihr habt das Wort A, B,
dann würdet ihr einmal in den Zustand Z1 gehen,
nach Lesen des As und einmal in den Zustand Z2. Jetzt kommt das B,
in Z2 würdet ihr blockieren und in Z1 sagt ihr,
oh, ich kann das B noch lesen,
habe ich fertig gelesen, würde dann ja aber auch nicht akzeptieren,
weil dass kein Endzustand ist.
Anders bei dem Wort AC, da würde die Rechnung in
dem Zustand Z1 blockieren, da kann ich das Z nicht lesen.
In dem Zustand Z2 kann ich aber zu Ende lesen.
Und die Idee ist dann nachher, dass man sagt,
der nicht-diterministische Automat akzeptiert schon dann, wenn es irgendwie eine Rechnung gibt,
die ihn in einen Endzustand führt.
Also irgendwie, wenn es eine Möglichkeit gibt,
den Endzustand zu landen, dann will ich schon akzeptieren.
Und was dieses gleichzeitig in zwei Zuständen angeht,
die Lesart ist, dass man sagt,
irgendwie der Automat ist nach Lesen von A,
nicht deterministisch,
sowohl in Z1 als auch in
Wem es leichter fällt, kann sich auch vorstellen,
dass jedes Mal, wenn er so eine nicht-iterministische Wahl hat,
man irgendwie einen neuen Prozess aufmacht und dann sagt man,
okay, mit dem Prozess bin ich jetzt irgendwie wieder woanders.
Eben in diesem dann Zustand. Und wichtig ist dann,
sobald irgendwas akzeptiert, will ich akzeptieren. Informal akzeptiert er,
wenn es irgendeine Rechnung gibt, in der ein Inzustand erreicht.
Ganz wichtiges Konzept in der Informatik,
kann man sich natürlich zuerst mal fragen, warum eigentlich?
Möchte man ja im Allgemeinen nicht haben. Also die Vorstellung
ist so irgendwie, ihr habt so ein HVV-Fahrkartenautomat,
ihr drückt einen Knopf und mal macht er das eine Mal,
macht er
das andere
Man denkt immer, dass wir technisch nicht möglich,
aber in der Praxis hat man immer das Gefühl,
das passiert ständig. Das, was man machen kann,
ist, man kann damit meistens richtig schnell Automaten entwerfen.
Denn wir irgendwie bei diesem Beispiel von eben bleiben mit irgendwie Wörtern,
die auf eins enden, nur um das einmal schnell und kompakt zu illustrieren.
Da war ja die Idee, wie man da an den DFA rankommt,
auch wenn der DFA nachher relativ klein war,
war ja schon so ein bisschen irgendwie, okay,
ich brauche zwar Zustimmung und so,
muss man sich schon ein bisschen Gedanken machen.
Beim NFA sagt man einfach, okay,
die Wörter sollen also auf eins enden, mache ich das so.
Ich kann hier irgendwie die ganzen Nullen und Einsen lesen und
irgendwann kommt ja der letzte Buchstabe,
dann gehe ich da hin
Dass es auch eine Rechnung gibt, in der er
die ganze Zeit in Z0 bleibt, ist egal.
Es muss ja nur eine geben, bei der er akzeptiert.
Und mit der geht er eben in diesen Endzustand und alles ist gut.
Das soll das nur in einem kleinen Beispiel illustrieren.
Ihr könnt ja zum Beispiel mal versuchen, kommt sogar nachher noch,
sowas zu konstruieren, wie irgendwie ein Automaten,
bei dem der drittletzte Buchstabe im Wort eine Eins ist.
Das ist mit dem NFA total einfach. Da macht ihr
irgendwie das hier. Und jetzt sagt ihr hinten dran,
0-1 führt zu Z2 und 0-1 führt zu Z3.
Und erst in Z3 wolltet ihr dann akzeptieren.
Dann ist der drittletzte gelesene Buchstabe auf jeden Fall eine Eins.
Wenn ihr dafür einen DFA machen wollt,
dann kommt was raus mit acht Zuständen
Und ziemlich wilden Kanten,
weil man sich immer so Sachen merken muss, wie irgendwie,
uh, das könnte jetzt der drittletzt gelesene Buchstabe gewesen sein und das war eine Eins und stellt ihr irgendwann fest,
ah, Mist, war doch nicht der drittletzte Buchstabe,
das Wort ist noch viel länger, also gehe ich wieder irgendwo anders hin.
Sehen wir auch nachher nochmal,
aber um das mal zu illustrieren,
man kann dann halt mit NFAs relativ schnell Automaten konstruieren und wir werden später noch sehen,
dass dieses Konzept ist nicht die Terminismus an etlichen Stellen sehr hilfreich ist,
nicht zuletzt in einer Bewertung von Laufzeiten,
von Algorithmen und Einschätzungen von Algorithmen,
da brauchen wir das noch ganz intensiv und hier
wollen wir das schon mal einführen
So, jetzt können wir mal diese Klicker benutzen.
Wie würdet ihr denn, wenn ihr das ausdrücken wollt,
dass ich von mit dem Zustand A, Quatsch,
im Zustand Z0 und mit dem Symbol A,
jetzt habe ich ja irgendwie mehrere Möglichkeiten, was ich tun kann.
Wie würdet ihr denn versuchen, die Überführungsfunktion zu definieren?
Noch nicht loslegen
Musik Ich bin ja echt mal gespannt, was da
gleich rauskommt. Wer hat denn alles noch nicht geklickt?
Das sieht noch so leer aus. Ich freue mich noch
eine sechste Möglichkeit für euch, wenig.
Drei,
zwei, eins
Oh. Ganz anders, finde ich spannend. Nehmen wir
die mal nacheinander. Ich bin geneigt zu sagen,
die Mehrzahl der Person hat recht. Die erste,
die hier, das war ja so,
wie es beim DFA akzeptiert war, äh, definiert war.
Gegeben einen Zustand und ein Eingabesymbol. Ich muss ganz eindeutig
die Nachfolgezustand definieren. Das kann ich hier nicht machen.
Ich müsste ja Z0a irgendwie auf Z1 abbilden und gleichzeitig Z0a
irgendwie auf Z2. Das kann ich hiermit nicht machen.
Das wird nicht funktionieren. Da müsste ich eindeutig sagen,
irgendwie Z0a ist eben entweder Z1 oder Z2,
beides geht nicht
Die vierte, oh Gott, die vierte sieht kompliziert aus.
Also fällt mir da eine sinnvolle Begründung ein, warum das nicht geht.
Ja, da müsstet ihr ja sowas sagen, wie vielleicht,
dass ihr Z-0, Z-0-A zweimal auf, das wird nicht funktionieren.
Ihr habt auch irgendwie nur einen Nachfolgezustand. Ja,
ich habe gerade überlegt, ob man irgendwie sowas reinbauen kann,
wie hier die beiden Kanten, die man hat,
aber man hat ja hier nur Z-0-A und Z-0-A,
das kriegt man also auch nicht in den Urbildbereich irgendwie
rein.
Also das wird auch
nicht funktionieren
Ganz anders ist schön, also ich kann mir bestimmt noch
irgendwie andere Sachen vorstellen, wie das funktioniert,
aber tatsächlich funktioniert es mit einer von zwei und drei.
Jetzt haben die Mehrzahl der Leute gesagt, Z Stern und zwei Hochzeit knapp dahinter.
Das, was man macht, ist tatsächlich,
man nimmt die dritte, weil man dann sagen kann,
Moment, ich bin noch nicht fertig.
Weil man dann sagen kann, ich bilde Z0A ab auf die Menge,
die Z1 und Z2 enthält. Dann weiß ich,
einer davon ist mein Nachfolgerzustand oder beide nicht deterministisch,
je nachdem, wie man es gerade sehen will.
Man kann natürlich auch sagen, für die Mehrheit der Leute,
Z0A geht nach und jetzt das Wort,
das aus Z1 Z2 besteht
Das kann man auch machen. Das Problem ist, das wird nachher unhandlich,
wenn ihr dann sowas wie eine erweiterte Überführungsfunktion definieren wollt.
Da müsst ihr nämlich irgendwie sowas sagen wie,
jetzt gehe ich über das ganze Wort rüber und irgendwie nehme
jedes einzelne Element aus dem Wort und mache damit irgendwie was.
Das ist nicht ganz so schön wie sagen zu können irgendwie,
ich nehme jedes Element aus der Menge,
mache damit was, da kommen wieder Mengen raus,
die Vereine gehe ich oder so.
Sprich, dafür haben wir schon irgendwie mathematische Werkzeuge,
mit denen sich das einfacher ausdrücken lässt.
Prinzipiell könnte man das aber auch so ausdrücken.
Aber schöner ist die dritte
Ganz formal sieht alles fast so ähnlich aus wie beim
endlichen Automaten, wie beim deternistischen, endlichen Automaten.
Ich habe eine endliche Menge von Zuständen. Ich habe ein
endliches Eingabealphabet. Ich habe eine Menge von Endzuständen und jetzt gibt es
eben zwei Sachen, wo sich das ein bisschen unterscheidet.
Das eine ist, es gibt jetzt eine Menge von Staatszuständen,
nicht nur einen Staatszustand,
sondern eine Menge von Staatszuständen und die Überführungsfunktion ist eben komplizierter,
weil die Bildmenge eben zwei Hochzeit ist.
Also alle Teilmengen über
Begründung übrigens hierfür, Begründung für mehrere Startzustände. Das ist im Grunde genommen,
wenn ihr ein A liest und ihr könnt dann in mehreren Zuständen sein,
dann könnt ihr auch von Anfang an sagen, naja,
man hat am Anfang eben eine nicht die terministische Wahl,
wo man anfangen möchte.
Deswegen da mehrere Startzustände. Alternative, fast die gleiche Definition
, hier mit einer Zustandsübergangsrelation. Das ist so ähnlich,
wie ihr das vielleicht aus gewichteten Grafen kennt. Da könnt ihr sagen,
ich packe mir jetzt da ganz viele Kanten rein mit,
ein Zustand, das Eingabesymbol und eine Nachfolgezustand.
Damit ist es eben auch möglich,
sowas zu sagen wie ZA, Z1 und ZA,
Z2. Dann habt ihr auch beide Kanten ausgedrückt.
Das kann man auch machen
Dann, da wird es jetzt ein bisschen, hm,
ähm, erweiterte Überführungsfunktion nimmt jetzt anders als beim DFA hier schon eine Menge.
Beim DFA stand hier nur Z und geht eben auch dann in die Potenzmenge.
Also nicht einfach nur nach Z und wird dann eben so definiert,
dass man sagt, wenn ich gar nichts mehr lese,
dann bleibt die Menge eben so, wie sie ist.
Also der spannende Fall ist,
wenn ich das Symbol X lese und was ich mache,
ist, ich gehe jedes Element aus Z-Strich durch,
gucke mir an,
was ist hier
die Menge an Nachfolgezuständen
Und von denen gucke ich mir dann eben wieder irgendwie die erweiterte Überführungsfunktion an und das mache ich eben für alle Elemente aus Z-Strich. Sprich,
das ist formal ausgedrückt, ich gehe immer in alle Zustände,
in die ich mit dem A kommen kann,
wenn jetzt als nächstes ein B kommt,
gucke ich mir bei all diesen Zuständen an,
wo kann ich mit dem B hinkommen,
dann gehe ich da hin und so weiter.
Wieder an dem Beispiel,
wenn ihr in dem bisher nur in Z0 seid,
also in der Menge die Z0 enthält und ihr lest 0-1-1,
dann kommt ihr mit der Null,
da passiert noch nicht viel,
da bleibt ihr irgendwie in dem Zustand Z0 hier,
also in der Menge
die Z0 enthält
Jetzt kommt irgendwie die Eins, jetzt guckt mal nach,
was passiert bei Z0 mit einer Eins.
Das wird die Menge Z0Z1 werden. Und jetzt kommt dieser Fall hier mit dieser Vereinigung,
dass man jetzt eben nacheinander alle Elemente,
die man hier hat, nimmt und immer guckt,
wo komme ich da mit diesem Delta hin und was passiert bei der Eins?
Und es ist beispielsweise Z01 ist eben gerade die Menge Z0Z1,
das ist das hier.
Und Z1 mit Eins ist eben gerade die Menge,
die leere Menge,
weil man aus Z1 sind mit einer Eins
nirgendwo hin kann
Und das ist dann das hier,
der hier wieder definiert ist, wieder die leere Menge.
Und das hier wegen dem Lamda ist dieses Abbruchkriterium da oben.
Das heißt, da kommt die Menge Z0Z1 raus.
Braucht man tatsächlich nicht so häufig,
weil man sich meistens immer nur eine mögliche Rechnung aufschreibt.
Sehen wir auch gleich nochmal ein Beispiel. Vorher nochmal die Definition für Konfiguration
. Im Grunde genommen genauso definiert wie beim DFA auch.
Eine Konfiguration ist ein Zustand und das Wort,
was noch zu lesen ist und ein Konfigurationsübergang,
auch fast genauso wie beim DFA,
ich komme von ZW in die Konfiguration Z-V,
wenn Z-Strich eben in der Menge, Z-X enthaltene,
sprich wenn Z-Strich ein möglicher Nachfolgezustand nicht deterministisch von Z ist.
So, und jetzt eine wichtige Sache bei den Konfigurationen hier,
da gehen ja irgendwie Infos verloren. Wenn ich beim DFA sage,
ich bin in der Konfiguration ZW, dann weiß ich,
ich bin im Zustand Z und ich muss noch das Wort weh lesen.
Wenn ich hier diese Konfiguration nehme, dann weiß ich,
nicht deterministisch bin ich bei irgendeiner Rechnung in dem Zustand Z
und muss noch das weh lesen,
aber es gibt vielleicht noch ganz viele andere Rechnungen,
die notiere ich mir nur gerade gar nicht,
weil ich mich nur explizit für diese
eine Rechnung interessiere
Da nochmal zum Nachbreiten zu Hause. Dann noch,
und gleich kommt noch ein Beispiel,
dann wird das klarer, eine Rechnung ist eben,
wenn ihr in der Konfiguration Z0W startet,
wobei Z01 Startzustand sein soll, also einer von den Startzuständen.
Und dann habt ihr eben eine Folge von erlaubten Konfigurationsübergängen,
also im Grunde genommen genauso wie beim DFA auch,
nur dass jetzt eben unter Umständen irgendwelche Wahlmöglichkeiten habt.
Wenn die Rechnung in einem Endzustand endet,
dann nennen wir das eine Erfolgsrechnung und jetzt ganz wichtig,
beim NFA wenn auf einem Eingabewort wie irgendeine Erfolgsrechnung existiert.
Das heißt, eine Rechnung, die in einem Staatszustand startet,
mit dem Eingabewort und in einem Endzustand endet und das Wort
dort zu Ende gelesen ist, dann wollen wir akzeptieren.
Ich muss also nicht auf allen Rechnungen akzeptieren oder so,
aber mindestens auf einer.
So, und dann ist eben das die akzeptierte Sprache formal.
Das hier ist im Grunde genommen das,
was da eben informal stand mit Erfolgsrechnung.
Ich starte hier in Z0W und ich lande irgendwie in ZE Lamda.
Und das hier ist genau das Gleiche,
nur eben ausgedrückt über diese erweiterte Überführungsfunktion.
Alle möglichen Rechnungen auf dem Wort 011. Ich kann anfangen oder
ich muss anfangen und lese erst mal,
also ich habe nur einen Staatszustand, Z0,
deswegen fange ich in dem immer an.
Wenn ich die null lese, dann muss ich in Z0 bleiben,
habe ich gar keine andere Möglichkeit.
Wenn ich jetzt die 1 lese, dann kann ich den Übergang zu Z1 machen.
Da kann ich die 1 nicht mehr lesen, das heißt, ich blockiere.
Bei der Rechnung würde ich also nicht akzeptieren. Andere Möglichkeit,
ich bleibe mit der zweiten 1 erstmal in dem Zustand,
mit der ersten 1
erstmal in dem Zustand
Jetzt habe ich 0-1 in dem Zustand Z.0 gelesen.
Jetzt kann ich, wenn ich möchte, nochmal in Z0 bleiben.
Also das ganze Wort irgendwie in Z0 lesen.
Dann lande ich in der Konfiguration und würde ablehnen,
weil ich das Wort zwar zu Ende gelesen habe,
aber nicht in einem Endzustand bin. Letzte Möglichkeit,
fast so ähnlich wie eben, bis hier ist es genauso,
aber mit der letzten 1 gehe ich jetzt eben dann in
diesen Endzustand Z1. Wort ist zu Ende gelesen,
ich bin in meinem Endzustand, also akzeptiere ich dieses Wort.
Da ist mindestens eine akzeptierende Rechnung gibt,
akzeptiert der Automat
die Eingabe
Ihr akzeptiert, also sobald es mindestens eine gibt,
es darf auch mehrere geben, aber sobald es eine gibt, akzeptiert ihr.
Klar. Es ist ein etwas schwer zu fassendes Konzept,
aber man gewöhnt sich dran. Das noch kurz,
weil wir das nachher in einem Beweis brauchen,
erwähne ich dann aber auch noch mal,
man kann die erweiterte Überführungsfunktion auch so definieren, dass man hier vereinigt.
Bei der Definition davor war das ja so, dass dieses Vereinigungszeichen vor
dem Delta-Dach stand. Man kann das auch so definieren,
kriegt im Grunde genommen die gleiche Semantik raus und das hat den Vorteil,
dass man immer im ersten Argument, also hier,
all die Zustände landet, in denen man potenziell sein kann.
Bei dem anderen ist es ja so ein bisschen so,
dass sich das nachher über die Delta Dachs verteilt.
Das ist so ein bisschen unglücklich. So, Fragerunde.
Was ist das da? Ihr habt diesen Automaten und ihr
fangt in Z0 an. Das ist ja auch der
einzige Staatszustand. Und ihr könnt jetzt
A-A-A lesen
Musik Musik Musik Hm
Sehr schön. Da soll ja die Menge all der Zustände
rauskommen, die ich irgendwie mit A-A-A erreichen kann.
Die Möglichkeiten, die ich habe, sind,
ich kann über diese Kante an Z03 mal das A lesen.
Dann bleibe ich in Z0. Ja, kommt also auf jeden
Fall schon mal rein. Ich kann hier zweimal das A
lesen und dann mit dem dritten A nach Z1 gehen.
Das heißt, Z1 ist auch dabei.
Oder ich kann einmal diese Kante nehmen und dann mit den
beiden letzten As nach Z1 und dann nach Z2 gehen.
Das heißt,
der ist auch dabei
Also kommt diese fünfte Menge tatsächlich raus. Die erste Menge,
die ist ganz doof, weil da müssen Mengen rauskommen,
nicht einzelne Zustände. Das heißt, das erste ist,
deswegen fällt sozusagen schon syntaktisch weg. Das zweite,
da könnte man sagen, naja gut,
wenn ich mich nur dafür interessiere, ob der akzeptiert oder nicht,
dann wäre das zweite halt eine gute Antwort.
Aber wir interessieren uns eben formal hier dafür,
welche Zustände alles erreichbar sind, durch AAA.
Naja, und drei und vier, die waren,
die kriegt man, wenn man eine Rechnung sozusagen übersieht.
Das kann auch
immer schnell
mal passieren
Gut, da war es die fünfte.
Achso. Habe ich selbst gerade nicht gemerkt.
Die Frage hat sich geändert. Was ist mit A,
B, A?
Wo kommt man da hin
Ja, sehr gut. Wenn ich A, B,
A lese, kann ich natürlich erstmal wieder komplett in Z0 bleiben,
wenn ich das möchte, lese ich da A,
B, A. Die ist also auf jeden Fall dabei.
Hey, die zwei Prozent, die die erste gedrückt haben,
ja, nochmal. Das macht Sinn, taktisch keinen Sinn.
Bei den anderen Antworten bin ich ja nicht böse,
aber bei der ersten... Okay, also Z0 ist drin,
weil ich komplett an dem Z0 das ABA lesen kann oder
ich kann den ersten Buchstaben lesen,
das A,
bleib in
Wenn ich ins Z0 geblieben bin, muss ich das B da auch lesen.
Ich habe keine andere Möglichkeit. Und dann kann ich mit dem A
zu Z1 gehen. Das heißt, ich habe schon mal Z0 und Z1. Die dritte Möglichkeit,
wo man vielleicht das denken könnte, oh,
so komme ich an das Z2 ran,
wäre hier das A zu lesen, dann hier das B zu lesen,
also mit dem A zu Z1 zu gehen,
mit dem B zu Z2. Und jetzt zu sagen, naja gut,
in den letzten Buchstaben kann ich zwar nicht lesen, aber macht ja nichts.
Ich bin ja in Z 2. Rechnung,
bei denen ich blockiere, fliegen aber weg.
Also hier sind nur die Zustände drin im Ergebnis,
die ich erreichen kann,
wenn ich das Wort A,
B,
A komplett lese
Deswegen eben die Menge Z0Z1 und nicht die Menge Z0Z1 Z2.
Gibt es eine Rechnung auf dem Wort 3 mal A,
bei der
dieser Automat blockiert
. So, mal gucken, ob jemand drei,
vier oder fünf geklückt hat. Ja, habe ich gedacht
. Ja, es gibt so eine Rechnung, ne?
Dreimal As. Ich kann mit dem ersten A-Phone Z0 nach Z1,
mit dem zweiten A-Phone Z1 nach Z2. Und jetzt kann ich
das dritte A nicht mehr lesen.
Also, es gibt eine Rechnung auf drei As,
bei denen der Automat blockieren würde
Letzte Frage.
Welche Sprache akzeptiert dieser NFA eigentlich
Mhm. 4, 3, 2, 1. Nein,
dritte. Steigen sind noch ein paar mehr ausgestiegen,
Die dritte ist richtig. Ich kann am Anfang,
man kann das hier quasi ablesen,
ich kann hier irgendwie A, B, Stern lesen,
jetzt muss ein A kommen und dann muss entweder noch A oder B kommen.
Das passt hier genau. A, B,
Stern gefolgt von einem A, gefolgt von A, B.
Die erste passt nicht, weil ich eben hinten dran nicht
beliebig viel lesen könnte. Hier wäre ja zum Beispiel auch
irgendwie möglich, A, B, B zu konstruieren.
Das kann ich aber nicht akzeptieren
Die zweite aus dem gleichen Grund, also bei der ersten und zweiten
, da wäre ABB drin. Achso, nee,
bei der zweiten kann man sowas machen wie A, A,
B, B, das wäre aber auch nicht drin.
Und die vierte klappt auch nicht, weil da eben nur drei buchstabige Wörter drin sind.
Ich nehme ein Symbol aus der ersten Menge,
ein Symbol aus der zweiten und ein Symbol aus der dritten.
Da kann ich nur irgendwie drei buchstabige Wörter mit konstruieren.
Da ist zwar in der Mitte das A,
aber mir entgehen ja ganz viele Worte, sowas wie B, B,
B und jetzt erst das A und dann noch ein B oder sowas.
Das geht mir dann. Und bei dem fünften,
weiß ich nicht, wie ich euch das erklären soll,
dass das die fünfte nicht ist.
Übrigens, bevor ich das vergesse nachher, Die Klicker,
leg die Klicker mal bitte ordentlich in den Koffer zurück.
Sonst braucht unser Assistentstudio ganz viel Zeit,
weil er das dann noch alles schön sauber einsortieren soll.
Also leg die mal irgendwie sorgsam da wieder rein. So,
jetzt haben wir das hier ja durchgetextet. Das Wichtige,
wie gesagt, ist, dass ihr euch merkt,
irgendwie, sobald es eine Erfolgsrechnung gibt, akzeptiere ich.
Jetzt kann man sich noch sagen, okay,
jeden DFA kann ich als einen speziellen NFA betrachten.
Wer es formal ausführen möchte,
ich definiere mir die Überführungsfunktion des NFAs so,
dass ich das, was in der Überführungsfunktion beim DFA rauskommt,
in eine Menge tue
Und als Staatszustandsmenge nehme ich mir eben die Menge,
die genau den einen Staatszustand von dem DFA enthält.
Informal, wenn man jetzt das Formale sich da sparen will,
informal, ist jeder DFA deswegen NFA,
weil ich diese zusätzliche Fähigkeit irgendwie nicht deterministisch aufzusplitten gar nicht benutze.
Und als Alternative kann man auch diese Kantenrelation eben so definieren,
wie es der DFA einem sagt, gegeben ein Zustand und ein Symbol,
das eben der Nachfolgezustand genau durch die Überführungsfunktion des DFA definiert.
Da könnte man noch ein D hinschreiben hier in das Delta.
So, und jetzt ist die spannende Frage,
ob das auch andersrum geht
Also, dass jeden DFA, als NFL interpretieren kann,
okay, kann ich machen.
Kann ich das aber auch anders machen? Oder ist vielleicht
der NFA insofern echt mächtiger, als dass es Mengen gibt,
die ich mit dem NFA akzeptieren kann, aber nicht mit dem DFA?
Nein. Ich höre diesen Kurs jetzt zum dritten Mal.
Ich weiß, dass das nicht stimmt.
Entschuldigung. Was man sich überlegen kann, ist,
Was hatten wir denn eben bei dieser Überführungsfunktion vom NFA?
Wir hatten ja irgendwie, ich lese ein Symbol und
ich kann jetzt in verschiedenen Zuständen sein.
Jetzt lese ich wieder ein Symbol und eventuell kann ich wieder
in verschiedenen Zuständen sein und so.
Werden das endlich viele oder unendlich viele Informationen?
Was meint ihr? Oder anders ausgedrückt, man kann da schon
viel zu viel sehen. Was würdet ihr euch merken wollen,
wenn ihr ein DFA produzieren wollen würde für den NFA
Dann eine Idee. Nee, das haben sie.
Hat einer von den Leuten, die ich noch nicht länger
als eine Woche kenne, eine Idee.
Ja, die Antwort war, wie viele verschiedene Zweigemeinde langgegangen ist.
Ja, oh ja, könnte man bestimmt auch machen,
geht einfacher. Hast du auch recht,
weil diese Anzahl von Zweigen wird nachher irgendwie beschränkt sein,
das wird auch funktionieren
Die Idee ist, muss man nicht wissen. Ich meine,
dafür haben zwei Leute die höchste Auszeit und eine Informatik gekriegt.
Das muss man jetzt nicht irgendwie in der zweiten Semestervorlesung
sich aus den Ärmel schütteln können. Spannend ist doch,
diese Zustände, in denen der NFA nach Lesen eines Teilworts
sein kann, das ist ja eine Menge.
Kann ich mir irgendwie merken. Und wie viele Teilmengen gibt es
von einer endlichen Menge? Nur endlich viele. Das heißt,
ich werde nur endlich viele Zustände haben,
wenn ich mir wirklich in jedem Zustand des DFAs nur merke,
wo der NFA theoretisch sein könnte oder nicht deterministisch sein könnte
Und für die Akzeptanzbedingungen kann ich dann sagen, naja,
der NFA akzeptiert ja genau dann,
wenn in dieser Menge irgendwie mal ein Endzustand dabei ist.
Das kriege ich auch irgendwie raus. Wenn du mit diesen Konstruktionsmethoden von vorhin arbeitet,
könnt ihr sagen, wenn ihr endviele Zustände beim NFA habt,
dann gibt es eben genau zwei Hochendteilmengen von N, von Z.
Das sind zwar eine Menge, aber es bleiben endlich viele.
Habe ich nur endlich viele Informationen, die kann ich
mir irgendwie merken. Endzustände sind dann ganz leicht rauszufinden.
Dann gucke ich nämlich bei jeder Menge nur nach,
ob da ein Endzustand des NFAs dabei ist oder nicht
Und die Überführungsfunktionen kann ich fast so definieren,
wie eben die Überführungsfunktion des NFAs definiert ist.
Der würde ja auch diese Menge von Zuständen
irgendwie durchgehen und gucken, wo er damit überall hinkommt.
Genau das werde ich beim DFA auch machen.
Also vom Gefühl her kann man gleich sagen,
so mhm, müsste passen mit dem DFA,
weil ich mir nur endlich viele Informationen merken muss.
Formal. Wir machen auch gleich ein Beispiel, dann wird
das hoffentlich klarer, aber erstmal formal einmal sich ansehen.
Wir wollen zu einem NFAA, ein DFA konstruieren,
der eben die gleiche Sprache akzeptiert
Das heißt, wir fangen mit. Wir fangen hier mit dem NFA
an. Z, Sigma Delta, Z, Start,
Z, End. Und wir wollen ein DFA produzieren,
alles jetzt so mit gestrichenen Sachen da oben und fragen uns jetzt,
wie müssen wir die einzelnen Komponenten von dem DFA machen?
Das erste, die Zustandsmenge, haben wir eben schon
irgendwie versucht, uns intuitiv zu überlegen.
Das wird genau die Menge aller Teilmengen von Z sein.
Eingabealphabet, da ändert sich nicht viel,
warum sollte ich plötzlich neue Symbole lesen können?
Das heißt, da nehme ich
das gleiche wieder
Jetzt der schwierige Teil, wie definiere ich mir die Übergangsfunktion?
Jetzt kann man sich erst mal sagen, bei der Übergangsfunktion wird ja
ein Element aus der Zustandsmenge genommen und ein Element aus der Symbolmenge.
Das mit der Symbolmenge ist einfach, aber der Zustand ist jetzt selbst eine Menge.
Ein Zustand ist ja ein Element aus Z-Strich,
das heißt, das wird eine Teilmenge von Z sein.
Ich kann also irgendwie definieren, wie gehe ich damit um,
dass ich hier jetzt eine Menge habe?
Und das macht man so, indem man sagt,
ich nehme jedes Element aus dieser Menge M einmal raus und gucke mir an,
wo würde der NFA denn dann sein? Und ich beispielsweise in der Menge M,
die Zustände Z0 und Z1 drin habe,
Dann gucke ich mir jetzt an, wohin überführt das Symbol X den NFA,
wenn er ein Z.0 ist, wohin überführt es ihn,
wenn er ein Z1 ist, all die Zustände,
indem ich zusammen in eine neue Menge, das ist,
weil es ja eine Menge von Zuständen ist,
wieder ein Zustand in dem DFA und genau da gehe ich dann hin.
Alternativ könnt ihr das auch mit den Kanten machen,
das könnt ihr euch einmal zu Hause ansehen,
wenn ihr wollt, das ist im Grunde genommen das Gleiche.
Dann als Startzustand nehme ich mir einfach genau diese Menge vom NFA,
also mein Startzustand beim DFA soll ja eine Menge von Zuständen des NFA sein,
nämlich genau die Startmenge.
Und bei der Endzustandsmenge Wie gesagt, einfach immer gucken,
in welchen Mengen ist ein Endzustand vom NFA drin.
Also da sind all die Mengen aus zwei Hochzeit drin,
also all die Elemente aus Zetschrich mit der Eigenschaft,
dass ein Endzustand des NFAs da drin auftritt.
Jetzt machen wir ein Beispiel und dann könnt ihr zu Hause mal gucken,
dass das Beispiel wirklich zu dieser Definition passt,
weil er das rausgekriegelt hat, dann habt ihr es auch verstanden.
Dann könnt ihr es nochmal in den Übungsaufgaben zweimal machen,
einmal in den Präsenzaufgaben und einmal in den Jugendaufgaben
und dann könnt ihr das auch
Kurz Anmerkung zur Konstruktion, insbesondere auch zur Nachbereitung.
Z-Strich ist die Menge aller Teilmengen von Z,
habe ich gesagt, das Eingabeverbiet wird übernommen.
Startzustand ist gerade die Menge der Startzustände des NFAs,
weil wir ja wissen beim NFA,
wir fangen in irgendeinem dieser Zustände an.
Genau das wollen wir uns beim DFA merken.
Endzustand sind all jene Mengen, die mindestens einen Endzustand enthalten.
Und die Übergangsfunktion geht eben all diese Zustände durch und guckt dann,
wo man damit hinkommt und tut das alles zusammen.
Beispiel. Der Automat wieder
Jetzt wollen wir einen DFA produzieren. Anders als in der Definition von eben,
da wurde ja gesagt, die Zustandsmenge ist zwei Hochzeit.
Das kann man formatlich definieren. Was man dann in der Praxis üblicherweise macht,
ist, man konzentriert sich auf die initiale Zusammenhangskomponente.
In zwei Hochzeit werden auch irgendwelche Zustandsmengen drin sein,
die ich gar nicht erreichen kann.
Die brauche ich mir gar nicht angucken. Also wir beginnen mit dem
. Das ist der Startzustand und jetzt fragen wir uns,
wohin gelangen wir mit einem A und Wohnen
gelangen wir mit einem
Gib mal einen einen Tipp ab. Wohin gelangt man mit
einem A? Rate. Sind 0 und Z1?
Ja, sehr gut. Wenn ich in Z0 bin und
dein A lese, kann ich nach Z0 kommen oder nach Z1.
Und mit einem B? Genau. Mit einem B bleibe ich
hier und für das A machen wir jetzt einen neuen Zustand auf.
So, und jetzt wird es schwieriger.
Jetzt nehmen wir uns
den Zustand hier
Und gucken uns da an, wo wir mit dem A hinkommen,
wo wir mit dem Bier hinkommen,
was ihr jetzt machen müsst, ist,
ihr nehmt euch den ersten Zustand dieser Menge,
also das Z0. Jetzt guckt ihr euch an,
wo komme ich da mit dem A hin?
Das merkt ihr euch. Jetzt guckt ihr euch den
nächsten Zustand an, das Z1 und guckt euch an,
wo kommt ihr da mit dem A hin?
Merkt ihr euch auch? Und die beiden Sachen, die
ihr euch gemerkt habt, wicht ihr? Das ist das,
wo ihr von Z0, Z1 mit dem A hinkommt.
Also wo kommt man da hin? Mit dem A? Genau, Z0, Z1,
Z2. Wenn ich in Z0 bin und ein A lese,
kann ich nach Z0, Z1 kommen und wenn ich in Z1 bin,
kann ich mit dem A nach Z2 kommen.
Alles zusammentun, Z0, Z1,
Und in B? Genau. Z0 und Z2. Wenn ich in Z0 in B lese,
bleibe ich in Z0 und wenn ich in Z1 in B lese,
kann ich nach Z2. Beides zusammengenommen,
Z0 und Z2. Oben steht es nochmal,
das ist dann das, was rauskommt.
Mit dem A in diese drei elementige Zustandsmenge mit dem B dahin.
So, jetzt machen wir das weiter, ne? Z0,
Z2, wo komme ich da mit dem A hin und
wo komme ich da mit dem B hin und dann eben nochmal die Menge Z0,
Z2, wo komme ich da mit Ma hin,
wo komme ich da mit dem B hin
Und wieder, wenn ich ins Z0 bin und
das A lese, dann komme ich nach Z0 Z1.
Und wenn ich in Z2 bin und das A lese,
komme ich da gar nicht weg, da blockiere ich.
Das heißt, ich vereinige die Menge,
die Z0 Z1 enthält, mit der leeren Menge.
Es vereinigt Z0 Z1. Das heißt, von hier wird gleich
eine A-Kante nach da gehen, nach da oben.
Und bei der B-Kante, ähnliches Spiel,
bei Z2 passiert nichts, da blockiere ich.
Und bei Z0 komme ich mit der B-Z0.
Das heißt, eine B-Kante wird da nach oben gehen
Oben steht es auch nochmal,
wenn ich in Z0 bin und das B lese,
komme ich nach Z0, wenn ich in Z2 bin und das B lese,
das ist die leere Menge, beides miteinander vereinigt,
ist die Menge, die Z0 enthält,
das heißt aus der Menge Z02 komme ich mit dem B in die Menge Z0.
Ja, als Letztes kann man sich das nochmal dafür überlegen,
wo man da mit dem A und B hinkommt,
da muss man jetzt alle drei Zustände durchgehen,
wo komme ich von Z0 mit dem A,
wo kommt von Z1 mit dem A,
fährt zwei mit dem A hin,
dann bleibt man da und mit dem B kommt man eben wieder zurück.
Letzte Frage, Endzustände?
Welche sind Endzustände
Oh. Nochmal? Genau, all die, wo Z2 drin sind,
also der hier und der, das sind beides die Endzustände.
Fertig. Kann man schon sehen, dass das irgendwie komplizierter aussieht,
dann da oben. Und jetzt könnt ihr euch mal überlegen,
wenn ihr irgendwie hier nochmal A,
B ranhängt und nochmal A, B, so,
dann wäre das das auf die Gefahr,
dass ich gerade falsch gezählt habe.
Das viertletzte Symbol oder so, ein A,
dann kommt hier sowas raus mit irgendwie zwei hoch vier,
16 Zuständen oder sowas.
Und eben recht grünen Kanten dazwischen.
So, das ist die ganze Konstruktion
Jetzt muss man noch beweisen, dass diese Konstruktion kurz ist,
damit man später bei der Aufgabe konstruieren sie mal zu diesem NFA ein DFA,
das einfach machen kann und dann mit Sicherheit weiß,
okay,
die von dem akzeptierte Sprache ist die gleiche wie die,
die von dem DFA akzeptiert wird.
Ich habe noch fünf Minuten. Abgesehen von den fünf Minuten,
die euch ja eigentlich wegen des letzten Mal schenken wollte.
Wenigstens könnt ihr sagen, er hat es nicht vergessen.
Aber er hält sich doch, ist doch geil.
Malen wir morgen. Also wir machen das morgen mit den
fünf Minuten,
das machen wir noch
Das ist jetzt auch mehr so, versucht mal,
das ein bisschen mitzunehmen, was da passiert.
Sowas müsst ihr in der Prüfung nicht machen oder so.
Aber wenn ihr irgendwie merkt, okay, ich finde das
interessant so, dann probiert mal da jetzt mitzukommen.
Und für die anderen merkt euch insbesondere diese Technik hier mit
dem Induktion über die Wortlänge. Also das,
was wir machen wollen, ist, wir wollen diesen Zusammenhang zeigen.
Delta Strich ist die Übergangsfunktion von dem DFA,
ohne das gestrichen ist, ist die vom NFA.
Wir wollen zeigen, dass das beides gleich ist.
Und wir machen das über eine Induktion über die Wortlänge.
Wenn wir mit der Wortlänge Null anfangen,
dann haben wir das leere Wort und in dem Fall ist
es ganz einfach, da passiert nämlich nichts.
Da bleiben beide bei dieser Menge
Induktionsanfang, fertig. Induktionsannahme. Wir nehmen an,
diese Gleichheit hier für Wörter der Länge N. Induktionsschritt. Wir nehmen jetzt ein Wort,
das länger ist, und zerlegen, wie in XV,
wo bei X eben ein einzelnes Symbol sein soll.
Das erste Symbol. Idee ist, wir machen jetzt irgendwas
mit dem X und auf das V können wir nachher die Induktionsannahme anwenden.
Nach Definition der erweiterten Überführungsfunktion, jetzt kommt die Krux.
Sieht das so aus? Wenn ich in dem A,
bin, dann gehe ich jetzt hier alle Elemente aus M durch und gucke mir immer an,
wo führt mich da für jeden dieser Zustände,
wo führt mich die erweiterte Überführungsfunktion hin, das vereinige ich.
Das war diese Alternativdefinition, die ich neulich hatte.
Ja, bei dem DFA sieht es ganz ähnlich aus,
da wurde das eben so definiert hier.
Aber das, Delta züchtete, das ist eben auch hier
das Gleiche, sieht man da schon.
Auch wie du in der Definition der Überführungsfunktion
Na, dann nennen wir dieses Ungetüm hier mal irgendwie
im Strich und dann wissen wir ja jetzt,
V hat als Länge nur noch N, ist also weniger.
Jetzt steht hier, Delta Dach von M, Komma V
und hier steht Delta Dach Strich von M, Komma V.
Können wir nach Induktionsannahme sagen, die sind gleich,
weil wir ja jetzt ein kürzeres Wort haben.
Das heißt, die beiden sind gleich? Naja,
aber das hier gleich ist und das hier,
also die beiden ganz recht stehenden Sachen von dem Gleiche zeigen,
dann sind auch die beiden ganz linksstehenden Sachen vom Gleichheitszeichen,
XV noch durch W aufgelöst,
fertig,
dann haben wir
das bewiesen
Jetzt sind wir fast fertig. Jetzt müssen wir noch sagen,
wenn wir für dieses M die Menge Z-Staat einsetzen,
beziehungsweise beim DFA Z0, was ja nach Definition das Gleiche ist,
dann gilt das hier, dass die beiden gleich sind,
weil jetzt kann man sich noch die Konstruktion,
in der Konstruktion die Geschichte mit der Akzeptanzbedingung an und dann erkennt man,
entweder kommt bei beiden eine Menge raus,
wo ein Endzustand von dem NFA drin ist,
dann akzeptieren wir, oder dass es nicht so,
dann lehnen wir ab.
Und damit hat man dann diese Gleichheit von den akzeptierten Sprachen gezeigt,
Wichtiger Satz, äquivalente Automatenmodelle, zu Hause fürs Nachbereiten,
könnt ihr euch nochmal angucken, was Äquivalenz bedeutet.
Da steht's nochmal. Zwei Minuten noch. Zwei.
Zwei Minuten noch. So, hi. Das ist so
ein bisschen so wie mit meiner kleinen Nichte.
Ganz ruhig. Gib gleich Essen. Wenn ihr euch diese Definition
von dem Potenziautomaten anguckt, da tritt ja dieses Zwei-Hoch-Z auf.
Was man sich jetzt fragen kann, ist, erreicht man
dieses Maximum jemals. Eben haben wir ja bei dem Beispiel
gar nicht alle zwei Hoch-Z-Zustände gebraucht,
sondern wir haben nur vier von den möglichen acht gebraucht
Tatsächlich kann man jetzt sagen, die Zahl tritt tatsächlich auf.
Das ist also keine Schwäche in der Konstruktion,
sondern es gibt wirklich NFAs, wo ihr mit N-Zuständen auskommt.
Und DFAs, wo ihr zwei Hochendzustände braucht, um die gleiche Sprache zu akzeptieren.
Ein Beispiel, um das in etwa zu zeigen,
ist eben diese Automaten-Idee, beziehungsweise die Generalisierung davon,
wo ihr das hier einfach immer weiter hinten ranhängt,
da braucht ihr nicht genau zwei Hochend-Zustände, aber zwei Hochend minus eins,
was ja schon in die richtige Richtung geht.
Also wenn ihr irgendwie ein NFA mit 31 Zuständen macht,
der so aussieht, also ihr macht irgendwie der 31,
der Band und 30 letzt gelesene Symbol sollen A sein,
dann braucht der DFA knapp eine Milliarde Zustände,
um das Gleiche zu akzeptieren
So, und jetzt die letzten zwei Folien für die Zusammenfassung.
Was haben wir heute gemacht? Zwei Konstruktionsmethoden für DFAs kennengelernt
. Erstens, sich zuerst die Zustände, sich zuerst was
über den Speicher zu überlegen und das da zu benutzen.
Zweitens eine On-the-Fly-Methode. Dann haben wir NFAs kennengelernt mit diesem,
es gibt unterschiedliche Technungen, sobald ich in eine akzeptiere,
bin ich fertig.
Jetzt haben wir gezeigt, dass die Äquivalent sind.
Und dafür haben wir eben diese Potenzautomatenkonstruktion kennengelernt. Wichtige Begriffe,
NFA und die ganzen Anpassungen von den Begriffen,
das solltet ihr auf jeden Fall mitnehmen.
Und die wichtigen Techniken, die ihr beherrschen sollt,
sind die Konstruktionsmethoden
Und die Potenzautomatenkonstruktion. Und wer möchte, in Klammern kann
noch mitnehmen, die Idee einer Induktion über die Wortlänge.
Aber wichtig sind die ersten beiden genannten Techniken und dass
ihr wisst, was ein NFA ist.
So, jetzt höre ich