Okay, dann... Heute wollen wir das wirklich machen,
was wir gestern eigentlich schon machen wollten, diese NFAs einführen.
DFAs kennen wir ja jetzt so nach den letzten Veranstaltungen,
haben wir gestern nochmal ordentlich wiederholt und einen komplizierteren konstruiert.
Folien habe ich erstmal so,
wie wir sie gestern gemacht haben,
ins Netz gestellt und diesen Appendics mit dem Beweis,
der kommt hoffentlich heute Abend oder morgen
nochmal nach
Genau, und heute wollte ich mit euch NFAs machen.
Also das, was wir gestern so in den letzten fünf Minuten so
ein bisschen im Ausblick nochmal gehabt haben, das nochmal einzuführen.
Das ist erstmal quasi diese Idee zu einem A,
kann es mir als eine Kante rausgeben aus dem Zustand,
dass man die jetzt eben formalisiert und dann eben guckt,
was passiert.
Also Ursprung war, dass man irgendwie gesagt hat,
okay, beim DFA ist immer dieser Nachfolgezustand hier komplett determiniert.
Und das kann man dann irgendwie aufweichen und das als
schnell hingeschriebenes Beispiel, da gibt es eben zwei A-Kanten aus
Z0 heraus
Und dann hatten wir gestern irgendwie gefragt, wie man denn
hier diese Überführungsfunktion definieren könnte und hatten da noch diskutiert,
dass drittens irgendwie am sinnvollsten ist.
Zweitens gilt auch. Aber drittens werden wir nachher sehen,
es ist am sinnvollsten, weil man dann eben sehr schön mit Operationen auf Mengen arbeiten kann.
Dann kann man da irgendwie, wenn es dann nachher um Nachfolgezustände geht,
wenn ich von Z0 aus starte,
dann sind die Nachfolgezustände irgendwie Z1 und Z2 und dann werde ich nachher die Nachfolgezustände von Z1 und Z2 irgendwie ermitteln müssen.
Und dann bläht sich die Menge unter Umständen auf und dann ist das halt sehr schön,
wenn ich irgendwie mit Mengenoperationen arbeiten kann und nicht irgendwie hier bei Wörtern,
also bei Elementen aus Z-Stern, bis die dann irgendwie sagen,
ich gehe jetzt das Wort von links nach rechts durch und gucke immer,
was da passiert.
Das ist irgendwie unhandlich
Deswegen wird man das so definieren wie bei drittens.
Und wird dann sagen, dass der Automat eben nach Lesen von A,
nicht deterministisch in diesen beiden Zuständen sein kann. Also immer,
wenn er quasi mehr als ein Zustand ist,
dass er da irgendwie nicht deterministisch drin und die Idee nachher wird sein,
dass er genau dann akzeptieren soll,
wenn es eben irgendeine Rechnung auf dem Wort gibt bei dem,
bei der er akzeptiert.
Ja, und das wollen wir jetzt ausformalisieren.
Und wenn man sich dazu, also hier hatten wir
es ja schon gemacht, das wird die Überführungsfunktion.
Jetzt kann man sich überlegen, was man noch anpassen muss,
so Menge der Zustände wird man nicht anpassen müssen,
weil das weiterhin okay,
das ist eine endliche Menge von Zuständen gibt
Eingabealphabet wird man auch nicht anpassen, müssen endliche Mengen von Symbolen, ist auch gut. Endzustandsmenge. Da kann man mal drüber nachdenken,
wenn man die Endzustandsmenge anpassen will, aber irgendwie,
man könnte die ja nur in die Richtung anpassen,
dass man sagt, es soll nur noch einen davon geben,
warum sollte man sich so einschränken, da kann man auch sagen, okay, das lassen wir.
Bleibt noch der Startzustand, da kann man sagen,
da macht Sinn, den auch anzupassen,
wenn ich eben hier nach einem Schritt nicht deterministisch in zwei verschiedenen Zuständen sein kann,
kann ich mir überlegen, vielleicht ist es ganz praktisch,
wenn ich auch nach null Schritten nicht die terministisch in verschiedenen Zuständen sein kann,
sprich, wenn ich mehr als einen Startzustand habe,
damit ich am Anfang eben nicht deterministisch in irgendeinem dieser Startzustände,
dann werde ich nachher das so definieren,
dass ich sage,
akzeptieren tue ich,
wenn ich von irgendeinem dieser Startzustände durchlesen des Wortes
in irgendeinen Endzustand komme
Genau, jetzt kann man sich erstmal noch fragen,
so sonst ist die Frage ja manchmal so ein bisschen zu schnell gestellt,
aber in dem Fall kann man wirklich fragen, warum?
Also was ist der Sinn irgendwie davon?
Und es gibt zwei Gründe. Der eine ist,
oder gibt noch mehrere, aber zwei besondere,
mit diesem Nicht-Determinismus kann man meistens relativ schnell einen Automaten entwerfen.
Wir hatten mal dieses Beispiel mit irgendwie alle Wörter,
die auf eins enden, und das haben wir mit dieser On-the-Fly-Technik,
dafür einen DFA konstruiert.
Das waren dann zwei Zustände und dann hatte man irgendwie
an beiden eine Schleife und dann noch eine Kante jeweils nach
links und rechts
Und mit dem NFA geht das halt sehr einfach,
das sieht dann so aus. Da lese ich quasi vorne
ins Z0 das ganze Wort bis auf den letzten Buchstaben und mit
dem letzten Buchstaben gehe ich dann nach Z1 und akzeptiere.
Da sieht man, bei dem Automaten sieht man sofort,
dass der diese Sprache akzeptiert, ist einfacher zu lesen als ein DFA.
Jetzt kann man sagen, beim DFA war es ja auch noch nicht so kompliziert.
Ich hatte irgendwie zwei Zustände, also genauso viele wie da auch.
Im Grunde genommen nur eine Schleife und eine Kante mehr,
ist vielleicht auch noch nicht so schwer.
Ihr könnt mal probieren, so einen Automaten zu entwickeln,
bei dem beispielsweise das drittletzte gelesene Symbol eine Eins ist oder sowas.
Das geht beim NFA auch total einfach,
da macht man hier halt auch diesen 0-1-Schleife
Springt hiermit eine Eins rüber. Und dann sagt man eben
0-1 zu dem nächsten Zustand, 0-1 zu dem nächsten Zustand.
Und der letzte ist Alleinzustand. Und da habe ich sichergestellt,
dass das drittletzte Symbol irgendwie die Eins ist.
Und beim DFA bläht sich das ziemlich auf.
Da brauche ich, ich glaube, zwei hoch drei Zustände.
Also immer, wenn ich sage, das drittletzte Symbol,
dann brauche ich irgendwie zwei hoch drei beim viertletzten,
zwei hoch vier und so weiter.
Das wächst also ziemlich fies exponentiell. Kriege ich aber immerhin
auch mit dem DFA hin. An der Stelle ist es
also schön, dass sich manche Automaten sehr schnell entwerfen kann
Man kann sich noch fragen nachher,
vielleicht kann ich auch mehr damit machen, also Dinge,
die ich mit dem DFA gar nicht machen kann.
Und wir werden dann eben später noch sehen,
bei dem Automatenmodell und eben auch insbesondere bei fortgeschrittenen Automatenmodellen,
wo dieses Konzept des Nicht-Determinismus eben sehr hilfreich ist.
Deswegen ist das praktisch, das jetzt einzutrainieren und später,
wo dann deutlich, deutlich spannende Sachen passieren,
da hat man es dann verstanden.
Gut, das einmal zur Motivation, warum wir uns das angucken wollen.
Später wird es deutlicher, jetzt ist es so ein bisschen,
dass man sagt, okay,
ich kann schnell Automaten entwerfen und ich kann mir mal überlegen,
kann ja das Gleiche wie der DFA
Definitionen? Was ich eben schon gesagt hatte,
gibt nur zwei Stellen, wo sich das unterscheidet.
Ich habe weiterhin die endliche Menge von Zuständen, endliches Eingabealphabet,
die Überführungsfunktion ändert sich hier hinten am rechtesten, stehenden Stelle.
Ich bilde nicht mehr nach Setup,
sondern nach zwei Hochzeiten und ich habe eine Menge von Staatszuständen.
Das alles. Das sind taktisch eine LFA,
jetzt kann man sich noch die Gedanken machen,
wie definiere ich mir die erweiterte Überführungsfunktion und wie definiere ich mir
Akzeptieren von Wörtern und wie definiere ich mir die akzeptierte Sprache.
Jetzt gibt es noch eine Variante, wo man hier bei
der Überführungsfunktion das eben nicht als Funktion definiert, sondern als Kantenrelation
Das hatten wir auch schon mal beim DFA so kurz angedeutet.
Beim NFA macht es Sinn, da kann man damit ganz gut arbeiten.
Man kann das auch so definieren, dass man sagt,
ich mache mir hier eine Zustandsübergangsrelation, Karfe, Kante.
Und da sind dann eben so Tupel drin aus Zustand, Eingabesymbol, Zustand.
Sprich, wenn ich von Z durchlesen von A nach Z-Strich will,
dann ist das Tupel Z AZ-Strich in K drin.
Beim NFA kann man das super machen. Beim DFA ist das ein bisschen doof,
das mit Kantenrelation zu machen, weil man dann zusätzlich einschränken muss,
dass man sagt, K soll eine Teilmenge von Z-Kreuz,
Sigmar, Kreuz Z sein, aber mit der besonderen Eigenschaft für jedes Tupel,
Setkomma A, das halt vorne steht,
da finden nur genau ein oder maximal ein Z-Strich stehen.
Ihr könnt ja nicht dann so Tupel drin haben wie Z,
A, Z, 1 und Z, A, Z 2.
Das geht ja beim DFA nicht.
Da muss man zusätzlich einschränken, da stört irgendwie,
deswegen definiert man das da meistens eben mit so einer Überführungsfunktion.
Und beim NFA macht beides Sinn.
Da findet man auch beides in der Literatur.
So. Ich überlege gerade, was als nächstes kommt.
Ich glaube, es kommt ja schon die Überführungsfunktion.
Ja, genau.
Erweiterte Überführungsfunktion. Die müssen wir auch anpassen
Dass wir quasi, so wie wir das beim DF
auch gemacht haben, wo wir dann gesagt haben,
hier, die erweiterte Überführungsfunktion, die geht von Z-Kreuz-Siegmar
Stern nach Z. Müssen wir jetzt auch anpassen. Nur,
dass wir hier jetzt auch schon in dem ersten Tubelder
da nicht Z drinstehen haben, sondern zwei Hochzeitbegründung.
Wenn ich einmal einen Schritt gemacht habe,
dann bin ich schon in zwei Hochzeiten,
wenn ich das irgendwie rekursiv anwenden will, dann brauche ich danach dieses Zwei-Hochzeit.
Und dann wird das wie volkrekursiv definiert. Genauso wie beim,
oder so ähnlich wie beim DFA auch hier, sagt man,
für alle Timing von Z und für jedes Symbol X und für jedes Wort
definiere ich mir jetzt hier oben erstmal so einen Rekursionsabbruch,
wenn ich irgendwo bin in einer Zustandsmenge und ich lese nichts mehr,
dann ist das Ergebnis eben die Zustandsmenge.
Genauso wie wir beim DFA auch gesagt haben,
wenn ich im Zustand Z bin und nichts mehr zu lesen habe,
dann ist Delta Dach Z, Komma Lamda eben Z. Ja,
und das Spannende ist jetzt die Geschichte hier, diese,
die eigentliche Rekursionsschritt, da macht man jetzt Folgendes.
Ich will quasi wissen, wo ich,
wenn ich nicht deterministisch in allen Zuständen von Z-Strich bin,
wo ich überall mit dem X hinkomme.
Und intuitiv gehe ich alle Zustände von Z-Strich durch,
gucke, wo ich da mit dem X hinkomme und
all diese Mengen vereinige ich.
Und dann gucke ich halt,
wo ich von dahin komme
Und jetzt kann man das entweder so machen wie hier,
dass quasi erst hier hinten die Vereinigung gemacht wird oder
man kann die Vereinigung auch hier drin machen.
Das sehen wir gleich bei der alternativen Definition auf der nächsten Folie.
Aber hier seht ihr, irgendwie,
ich gehe alle Zustände aus Z-Strich durch und für jeden Zustand
Z gucke ich mir eben an, was ist Delta ZX?
Das ist irgendwie eine Menge von Zuständen. Und dann gucke ich
mir an, wo komme ich mit dieser Menge hin,
wenn ich jetzt das Restwort weh lese.
Und das mache ich eben für alle Zustände in Z-Strich.
Beispiel, wenn ich anfange, im Startzustand Z0,
also ich bin in der Menge, die Z0 enthält,
im Mainz im Startzustand,
und ich will dieses Wort 011 lesen
Wenn ich die Null lese, komme ich nur nach Z0,
passiert also nichts. Wenn ich jetzt die Eins lese,
dann komme ich nach Z0Z1. Ich bin nur in Z0,
also komme ich mit der Eins entweder nach Z0 oder nach Z1.
Also in der Menge, die Z0Z1 enthält. Und jetzt kommt
das erste Mal dieser Fall hier oben mit der Vereinigung.
Jetzt muss ich nämlich alle, jetzt ist Z-Strich ja hier,
Z0Z1, so so eine Menge, die zwei Elemente enthält.
Und jetzt gehe ich die sukzessive durch.
Jetzt nehme ich zuerst das Z0 raus, gucke mir an,
wo komme ich mit dem Z0 hin,
wenn ich eine Eins lese.
Das ist wieder Z0 oder
Das heißt, ich komme dann irgendwie,
hier steht dann die Menge, die Z0Z1 enthält.
Das W ist dann das leere Wort und da steht eben Delta Dach,
Z0Z1 Lamda, also der linke Teil hier.
Und dann gucke ich mir jetzt nächstes an, wo komme ich mit der Z1,
von dem Z1, wenn ich eine 1 lese.
Da komme ich nirgendwo hin, also es ist die leere Menge,
also vereinige ich das noch hier mit Delta Dach, leere Menge Komma Lamda.
Genau, und jetzt habe ich hier oben die Abbruchbedingung,
wenn da, wenn das zweite Argument Lamda ist,
dann soll der eben gerade das erste Argument rauskommen,
das heißt hier vorne beim ersten Element der Vereinigung,
da kommt die Menge Z0Z1 raus und bei dem zweiten kommt
die leere Menge raus,
Z0Z1 vereinigt mit der leeren Menge ist,
Alternative finde ich ein bisschen hübscher, die Alternative. Ich wollte das beides machen,
weil man beides in der Literatur findet und relativ häufig halt diese Darstellung.
Ich finde es ein bisschen schöner, wenn man diese Vereinigung,
wenn man die hier drin macht, also im ersten Argument,
hat den gleichen Effekt und man muss aber nicht irgendwie hier so häufig dieses Delta-Dach schreiben,
sondern man schreibt halt das Delta nach einmal,
hat im ersten Argument alle Zustände,
in denen man nicht deterministisch ist und im zweiten Argument das Restwort,
was man von all diesen Zuständen noch lesen will.
Finde ich ein bisschen einfacher, sieht dann so aus.
Wenn er das vergleicht, erste Zeile angucken,
die sieht irgendwie genauso aus
Und zweite Zeile, da ändert sich nur,
dass man dieses Vereinigt-Z-Element-Set-Strich, dass man das eben reingezogen hat.
Sonst tut sich da nichts. Genau,
dann hier bei dem spannenden Fall, wo man das erste
Mal ja alle Zustände der Menge Z0Z1 durchgehen musste.
Da ist es dann eben so,
dass sich das jetzt hier im ersten Argument sammelt.
Sonst ist es genau das Gleiche. Wie gesagt, die
finde ich schöner. Ihr könnt einen von beiden benutzen,
aber benutzt eben immer dann eine und wechselt nicht währenddessen,
sondern benutzt kontinuierlich immer eine.
Fragen dazu? So Arbeitsweise des NFAs
Gut. Dann kann ich das so ähnlich wie beim DFA auch machen mit Konfigurationsübergängen,
also dass ich mir wieder Konfigurationen merke, Konfigurationsübergänge.
Dann ist eine Konfiguration eines NFAs hier wieder ein Tubel,
Z, Komma W aus Z, Sigmar Strich,
sprich Zustand, in dem ich bin, Wort,
das ich noch lesen will und ein Konfigurationsübergang definiere ich mir dann.
Auch so wie beim DFA, dass ich sage,
von ZW komme ich über einen Konfigurationsübergang nach Z-V,
wenn meine Übergangsrelation das eben zulässt.
Also wenn X das erste Symbol hier ist und ich dann
eben durchlesen von X tatsächlich von Z nach Z-Strich komme
Wo ist da der Unterschied zum DFA? Das ist fast
die gleiche Folie, gibt einen Unterschied. Also abgesehen von
korrigierten Kommaterfehlern oder so, das meine ich jetzt nicht.
Es gibt tatsächlich einen mathematischen Unterschied. Was ist bei DFA
anders? Ist die Konfiguration genauso definiert? Ja,
nein, vielleicht.
Acht Uhr morgens
Wo? Bitte? Na, irgendwas müsste,
also es muss auf jeden Fall irgendwas stehen,
was anders ist als Z, weil du ja einen Zustandswechsel machst.
Die Stelle ist es nicht, aber fast,
wir nähern uns, es wird wärmer.
Nee. Selbstständig Elemente
Genau, ne? Beim DFA habe ich ja Data ZX
ist genau irgendwie ein Zustand, also maximal ein Zustand,
der entweder ist ein Zustand oder halt nicht.
Wenn es keiner ist, ist es gar nicht definiert,
ne? Und hier kann das ja eine Menge sein und
dann interessiere ich mich dafür, dass ich einen daraus nehme.
Da sieht man auch schon, was verliert man,
wenn ich jetzt so eine Menge von Konfigurationen aufschreibe?
Also, Entschuldigung, wenn ich mehrere Konfigurationsübergänge aufschreibe,
was verliere ich, anders als beim DFA?
Beim DFA, beim NFA, was ist der Unterschied,
steckt in dem Enthaltensein drin
Ich weiß, es ist immer noch 8 Uhr morgens. Genau, ne? Beim DFA,
wenn ich da so eine Kette von Konfigurationsübergängen habe,
die mich von der, ich nenne es mal Startkonfiguration,
also Z0 und das Wort, irgendwo hinführt,
dann ist das die einzige Möglichkeit, wie der rechnen kann.
So, da steckt quasi sowohl eine Konfiguration in der einzelnen Konfiguration stecken alle Infos drin über den aktuellen,
jetzt ist Zustand doppelt belegt, aber über das aktuelle,
wie der Automat halt so aussieht, Zustände,
in dem er ist und Restwort, das er noch lesen will,
da stecken alle Infos drin und in dem ganzen Konfigurationsübergang stecken auch alle Infos drin,
das ist die komplette Rechnung.
Beim NFA, wenn ich da so eine Konfigurationsübergangskette aufschreibe,
dann ist das eine mögliche Rechnung, die der machen kann,
aber der kann vielleicht noch viel mehr machen und das sehe
ich da dann aber nicht mehr.
Also die Infos fehlen mir dann
Deswegen da nochmal in der roten Box. Man verliert quasi Informationen.
Also man müsste dann, wenn man keine Informationen verlieren will,
alle Rechnungen aufschreiben, die ein NFA auf einem Wort hat.
Sind es aber steht da auch noch, dass man auch wieder
über bestimmte Rechnungen reden will. Wenn ich zum Beispiel,
wenn man schon gesagt, es reicht dann,
wenn es eine akzeptierende Rechnung gibt, dann akzeptiert der NFA.
Wenn ich also irgendwie ein Wort habe und ich zeigen will,
dass der NFA das tatsächlich akzeptiert,
dann gebe ich einfach eine Rechnung an,
auf der er das Wort akzeptiert und nicht irgendwie alle noch zusätzlichen,
bei denen er das Wort nicht akzeptiert.
Und dann reicht diese eine anzugeben. Und um das
eben gut machen zu können, gibt es diese Geschichte mit
Konfirmation und Konfirmationsübergängen
Dann das hier ist auch fast genauso definiert wie beim DFA-Rechnung,
wenn ich eben im Startzustand starte und das Wort weh lese,
auch wieder kleiner Unterschied.
Hier sage ich jetzt, Z0 ist Element aus Z-Staat,
weil ich ja mehrere Startzustände haben kann beim NFA.
Beim DFA gibt es ja nur den einen. Wenn die
Rechnung dann irgendwie in einem Endzustand landet und ich das Wort
zu Ende gelesen habe, dann nenne ich das Erfolgsrechnung.
Und insgesamt akzeptiere ich weh genau dann,
wenn es eben eine Erfolgsrechnung gibt,
die in der Konfrontation Z0W für irgendeinen Staatszustand startet und in ZE Lamda für irgendeinen Endzustand endet.
Wenn ich das definiert habe, dann weiß ich auch schon,
wie ich die akzeptierte Sprache definieren will, nämlich alle Worte,
für die es diesen unteren Fall irgendwie gibt.
Das wird jetzt
die akzeptierte Sprache
Das ist in der unteren Zeile, in der oberen Zeile,
das ist ausgedrückt mit der erweiterten Überführungsfunktion.
Sage ich aber das Gleiche, hier oben sage ich auch,
ich starte in der Startzustandsmenge,
lese das W und jetzt sammle ich quasi sukzessive all die Zustände auf,
die ich nicht deterministisch erreichen kann von Z-Start aus.
Und wenn da am Ende ein Endzustand drin ist,
dann sage ich, okay, jetzt will ich akzeptieren.
Also deswegen hier der Schnitt mit Z-N,
sobald da ein Endzustand drin ist, akzeptiere ich.
Fragen. Vehementes Kopfschütteln. Alle möglichen Rechnungen auf
dem Wort, 0-1-
Was meint ihr, wie viele gibt es?
Wie viele Rechnungen hat der NFA auf dem Wort?
Kann man das schon sehen? Nee. Ihr könnt
den Platz abschätzen. Wie viele Rechnungen passen wohl bis zu
dieser orangenen Box da unten?
Wie hat er?
Genau, drei
Jedes Teilwort muss einmal berechnen. Was meinst du damit?
Ja, also ich frage mich auch gerade,
also es gibt halt einfach drei Rechnungen auf dem Wort,
bei dem unterschiedliche Dinge passieren. Ich weiß gar nicht,
ob man das noch irgendwie Dings oder sagen kann.
Es gibt halt die eine Rechnung hier, wo ich in Z0 bin.
Und quasi so früh wie irgendwie möglich nach Z1 wechselt.
Die erste Null, die muss ich in Z0 lesen,
anders geht das nicht, das ist der Konfigurationsübergang.
Und jetzt wechsel ich so schnell wie möglich nach Z1.
Gleich bei der ersten 1 gehe ich darüber,
dann kann ich aber nicht weiterlesen,
dann blockiere ich an der Stelle
keine Erfolgsrechnung
Die andere Möglichkeit, ich bleibe denen einen Schritt bei der ersten 1 noch in Z0.
Ah nee, ich bleibe so lange wie möglich in Z0.
Ich lese das ganze Wort in Z0. Jetzt lese die erste 1
in Z0, lese auch noch die zweite 1 in Z0.
Dann habe ich eine Rechnung, bei der ich nicht blockiere.
Dann lese ich das Wort zu Ende, aber ich bin nicht
im Endzustand. Also ist das eine nicht akzeptierende Rechnung.
Die erste ist auch eine nicht akzeptierende Rechnung,
aber aus einem anderen Grund, ich blockiere halt.
Und bei der zweiten, da mache ich es in Anführungsstrichen richtig,
ich lese die 0 in Z0,
ich lese die erste 1 in Z0 und mit der zweiten 1 mache ich diesen Übergang nach Z1.
Jetzt habe ich das Wort zu Ende gelesen,
bin im Endzustand,
also akzeptiere ich
Und da ist jetzt,
es gibt drei Rechnungen auf dem Wort und da ist mindestens eine akzeptierende gibt,
in dem Fall eben genau eine, akzeptiert,
der oben abgebildete NFA diese Zeichenkette 0-1-1. Mal zu fragen.
Dann dürft ihr. Der Automat, was ist Delta Dach
, Z0
Oh, hallo
Genau, ne? Wenn ich in Z0 bin,
dann kann ich halt, Entschuldigung,
dann kann ich halt dreimal die Schleife nehmen an dem Z0. Na,
dann bin ich weiter in dem Z0. Oder ich nehme zweimal
die Schleife an Z0 und gehe dann nach Z1. Nämlich in Z1,
oder ich nehme einmal die Schleife an Z0,
gehe dann nach Z1 und dann nach Z2. Also erreiche ich sie alle drei.
Und bin dann eben in dieser Menge Z0, Z1, Z2.
Das erste ist ganz doof, das kann man sich gleich
nochmal so merken, das müssen immer Mengen sein.
Also ein einzelner Zustand kann da nicht rauskommen,
da kommt immer eine Menge von Zuständen raus
Und auf die anderen könnte man irgendwie kommen,
aber richtig ist halt die fünfte,
man übersieht gerne mal eine Rechnung,
aber so zum Üben, die fünfte ist es.
Ähnliche Frage. Gleiche Automat, anderes Wort.
Was kommt da raus
Genau, viertens ist richtig, weil man mit dem ABA,
ich kann das ABA wieder komplett in Z0 lesen,
so dann bleibe ich halt in Z0, ich kann A,
B in Z0 lesen und dann mit dem A nach Z1 kommen,
das ist also Z0 und Z1 erreichbar,
Und jetzt kann man irgendwie auf die Idee verfallen,
dass man auch Z2 erreichen kann,
weil ich ja A lesen kann, nach Z1 gehe,
B lese nach Z2 gehe und jetzt ja quasi irgendwie ins Z2 bin.
Aber jetzt müsste ich ja von da noch das A lesen,
das kann ich nicht, also ist irgendwie Delta-Dach von die Menge,
die Z2 enthält, Komma A, ist die leere Menge.
Und dann feine ich da nachher die leere Menge rein und dann funktioniert das nicht.
Also das Z2 besuche ich zwar mal während der Rechnung,
ist aber nicht in diesem Delta-Dach-Z0 ABA drin.
Geht nicht darum, dass sie das besucht,
sondern quasi, welche Zustände erreicht ihr,
wenn ihr dieses Wort komplett zu Ende gelesen habt?
Wo seid ihr dann so
Und da seid ihr eben nur ein Z0 oder ZZ1.
Es gibt halt keine Rechnung, bei der ich ABA bis zum Ende
lesen kann und die mich von Z0 nach Z2 führt.
Ja, die haben wir quasi gehabt. Gibt es
eine Rechnung auf dreimal Arbeit, der Automat blockiert?
Das ist im Grunde genommen das, was wir eben besprochen
haben, nur mit einem etwas anderen Wort
Ja, weil die,
im Grunde genommen die gleiche Rechnung wie eben,
ich gehe mit dem ersten A nach Z1,
ich gehe mit dem zweiten A nach Z2 und jetzt kann ich das dritte A nicht mehr lesen,
sondern blockiere halt in Z2. Also gibt es eine Rechnung,
wo der Automat das Wort nicht zu Ende liest,
also das irgendwie bei der blockiert.
Letzte Frage,
welche Sprache akzeptiert er denn
Musik Herne. Und wie kann man die Sprache informal ausdrücken?
Hatten wir am Anfang auch. Was ist das?
All die Wörter, mit welcher speziellen Eigenschaft?
Genau, vorletzter Buchstabe A. Rest halt irgendwie As und Bs
Also das hier ist dann irgendwie, diese dritte Menge hier,
A, Komma, B, das ist dann oder.
Ich fange an mit Lese irgendwas aus A,
B, Stern, also irgendwie ein Wort,
das aus As und B ist, besteht.
Das lese ich halt in Z0, dann mache ich mit dem A
einen Übergang zu Z1 und dann lese ich nochmal ein A oder ein B.
Und dann habe ich es halt erreicht,
dass der vorletzte Buchstaben A ist. Bei der ersten Menge,
da kriege ich es auch hin, so Wörter zu haben,
wie hier vorne nehme ich das Lamm da draus.
Hier nehme ich das A, muss ich ja,
und dann nehme ich hier zwei Bs.
Dann habe ich sowas wie A, B, B,
das ist ein Wort, das der Automaten nicht akzeptiert.
Also in eins passiert zu viel. Zwei kann ich
so ähnlich argumentieren, dass irgendwie B, A,
B, B drin,
das will ich
auch nicht haben
Und viertens, da sind nur Wörter drin, die aus
drei Buchstaben bestehen, so das ist irgendwie zu wenig.
Und drittens klappt halt. Kann man auch beweisen,
aber in dem Fall kann man das auch relativ schnell sehen.
Gut, Fragen dazu? Nein. Dann, nächste Frage
. Jetzt haben wir irgendwie diese NFAs eingeführt,
haben irgendwie die Möglichkeit in mehreren Zuständen gleichzeitig zu sein.
Und dann eben auch irgendwie zu akzeptieren und so.
Und jetzt kann man sich irgendwie fragen, Wie verhalten die sich so zueinander?
Sind NFAs mächtiger als DFAs? Sind DFAs mächtiger als NFAs
, so, ne? Um da irgendwie sich ranzutasten,
kann man sich erstmal fragen, kann ich eins von den
beiden Automatenmodellen relativ leicht durch das andere vielleicht ausdrücken?
Dann weiß ich schon mal, dass zumindest, kann da nicht
unbedingt mächtiger sein, oder das kann dann erstmal nur genauso viel.
Kann ich das, also Köln NFA ist alles,
was DFAs können, können NFAs mehr.
Andersrum, was meint ihr? Sind die gleichmächtig? Sprich,
Mächtigkeit soll bedeuten, gibt es Sprachen,
die ich mit dem einem Automatenmodell erfassen kann und mit dem
anderen nicht
Oder sind die alle gleich? Kann ich für jede Sprache,
die ich mit dem NFA akzeptieren kann,
auch ein DFA-Basteln, der die gleiche Sprache akzeptieren kann.
Und andersrum, ne? Nur dann sind die Equalent.
Meinungsbild. Genau, das klingt gut.
Und dann
Mach mal, denk mal weiter. Also er hat gerade gesagt,
erstmal so DFA oder jeder DFA ist auch ein NFA,
so, weil beim NFA darf ich ja für den Buchstaben A
zum Beispiel beliebig viele Kanten aus dem Zustand raus haben.
Ja, da kann ich auch sagen, irgendwie habe ich
halt nur eine raus, dann ist es gerade DFA.
Also kann ich jeden DFA auch irgendwie als NFA ausdrücken,
das geht schon mal. Ja, irgendwie, jeder DFA kann
als spezieller NFA gesehen werden, indem man Folgendes macht.
Dieses Delta-D ist die Überführungsfunktion des DFAs, das Delta-N ist die Überführungsfunktion des NFAs.
Und dann ist hier irgendwie Delta DZ, Komma X,
also für jeden Zustand Z und jedes Symbol X,
gucke ich halt, was ist Delta DZ,
Komma X und genauso definiere ich mir halt dann hier diese Menge Delta NZX,
nur dass das eben eine Menge von Zuständen sein soll.
Also schreibe ich den Zustand da rein,
dann muss man vielleicht nochmal kurz aufpassen,
das hier muss ja nicht definiert sein, dieses Delta DZX,
aber wir hatten ja gestern besprochen, dass man jeden DFA auch vervollständigen kann.
Also sage ich, wenn ich einen DFA habe,
dann habe ich einen äquivalenten DFA,
der vollständig ist und den kann ich als NFA interpretieren mit
genau dieser Konstruktion und den
ist gut
Ich kann auch jeden nicht vollständigen DFA als NFA interpretieren,
aber den muss ich hier halt aufpassen,
dass ich irgendwie diese Fallunterscheidung mache, wenn Delta D. da nicht definiert ist,
dann setze ich Delta Ende auf die leere Menge.
Und dann sage ich halt hier die Startzustandsmengen vom NFA,
das ist die Menge, die Z0 enthält und dann bin ich fertig. Und alternativ,
wenn man lieber mit Kanten arbeiten will, dann sagt man eben,
ausgehend von jedem Zustand Z und jedem Symbol X definiere ich mir halt Z-Strich,
als gerade diesen Übergang im DFA, dieses Delta ZX,
weil das soll auch in Delta D sein,
das ist auch wieder der DFA und im NFA
definiere ich mir dann eben genau die Kante.
Sprich, ich lasse eigentlich alles so,
jeder DFA ist auch ein NFA
Das, was da steht, ist nur,
dass man sich nochmal kurz Gedanken macht, wie man den Formalismus umschreiben muss.
Dass man eben in dem einen Fall Mengen hat beim NFA
und beim DFA eben nicht. Frage geht es auch andersrum.
Also wir wissen jetzt schon mal, jeder DFA ist ein spezieller NFA.
So, und jetzt kann man sich fragen, geht das auch andersrum?
Also kann auch jeder NFA durch den DFA simuliert werden?
Oder kann ich ein Beispiel finden, wo ich sagen kann,
diese Menge, die kann ich mit dem NFA machen?
Und ich glaube aber, die wird nicht mit dem DFA gehen.
Da müssten wir gleich noch irgendwie Techniken entwickeln,
mit der wir dann wirklich zeigen können, oh,
diese Menge geht nicht mit dem DFA.
Also entweder geht es gleich weiter mit einem Beweis,
dass sich zu jedem NFA und DFA konstruieren kann.
Oder es geht gleich weiter mit einer Technik zu zeigen,
dass eine Sprache nicht regulär ist.
Also sprich nicht vom DFA erkannt werden kann
Und dann zeige ich, oh, diese Sprache kann ich
mit dem NFA erkennen, aber nicht mit dem DFA.
Und dann weiß ich, okay, der NFA ist echt mächtiger.
Eins von beiden kommt jetzt, was meint ihr, was kommt?
Man könnte ein NFA durch mehrere DFAs darstellen, sagt er.
Dann hast du aber nicht einen DFA, der die Sprache akzeptiert,
die der NFA akzeptiert. Das wäre nicht äquivalent. Ja,
dann hast du mehr so, dass du dann sagst,
ich habe diese ganze Menge von DFAs und wenn ich Aldi-Mengen
nehme und vereinige oder irgendwie sowas, dann kriege ich den.
Jetzt könnte man sich natürlich darüber Gedanken machen, ist Vereinigung,
also sind die regulären Sprachen gegenüber Vereinigungen abgeschlossen?
Sprich, wenn ich zwei reguläre Sprachen habe,
ist die Vereinigung auch wieder eine reguläre Sprache, dann würde das auch funktionieren.
Könnte man auch versuchen, den anderen. Für das
sehr große Wort. Warum? Also er sagt,
es geht, warum sagt ihr dein Gefühl das?
Und erst mal sozusagen die ganze Zeit, wie einzelne Trappen, Mhm.
Ja. Warum die sind dann im Effekt. Ja,
der Effekt, sozusagen, Teilnähe,
Gras kann man dann aber aufnehmen, so vertreten kann,
wird dann eingesplant, um den dann zu bereit zu gewähren.
Teilnähe. Ja, jetzt musst du dir aufpassen,
dass du nicht das machst, was er schon vorgeschlagen hat,
irgendwie mehrere DFAs zu konstruieren.
Genau, dass mehrere so Komponenten hast, irgendwie so.
Das Ganze ist ein DFA und du hast irgendwie so mehrere
Komponenten, in die du so reingehst.
Das könnte man probieren. Überleg doch mal,
wie diese Überführungsfunktion beim NFA, also die,
wo wir immer vorne im ersten Argument alle Zustände gesammelt haben,
wo der NFA sein kann
Ja. Wie viele Möglichkeiten gibt es denn da?
Wie viele Mengen können denn da stehen? Er sagt,
es geht nicht, wenn ich es richtig verstanden habe,
weil er sagt irgendwie, der NFA hat ja eine Menge von Zustände.
DFA kann nur in einem Zustand sein, ist irgendwie,
passt nicht so richtig. Jetzt müsste man losgehen und das
irgendwie die Intuition beweisen. Aber nochmal,
wenn ihr euch die erweiterte Überführungsfunktion vom NFA anguckt,
da stehen ja immer,
gehen wir weit zurück,
soweit ist es
gar nicht
Hier vorne, im ersten Argument,
da sammle ich mir ja immer Zustände zusammen.
Also habe ich da immer eine Menge von Zuständen,
genau was er meinte, was ihn jetzt stört.
Ich habe eine Menge von Zuständen.
Wie viele verschiedene Mengen können denn da stehen?
Er sagt auch, es geht nicht.
Aber keiner will
meine Frage beantworten
Ja, das ist jetzt die Größe der Menge.
Die Menge kann maximal so groß werden wie der NFA.
Meine Frage ist, wie viele unterschiedliche Sachen können da stehen?
Also es gibt, sagen wir mal,
der NFA hat zehn Zustände. So, dann gibt es
die eine Menge, wo alle zehn drin sind.
Und es gibt zehn Stück, wo jeweils ein Einzelner drin ist.
Das sind schon mal elf. Da kommen jetzt noch
ein paar mehr dazu. Wie viele sind das insgesamt?
Genau, zwei hoch die Mächtigkeit der Zustände. Das,
worauf es ankommt, ist, sind das endlich viele?
Ja, ich habe irgendwie 100 Zustände im NFA.
Ja gut, jetzt habe ich zwei hoch 100 Zustände.
Das ist irgendwie
echt viel
Aber es sind endlich viele. Und wenn ihr jetzt euch überlegt,
wenn wir all diese Mengen als Zustände nehmen,
wir haben ja gesagt, beim DFA die Möglichkeit,
uns was zu merken, ist uns im Zustand was zu merken.
Wir haben uns zum Beispiel gemerkt, gestern,
ob der Übertrag null ist oder eins.
Jetzt können wir sagen, wir merken uns im Zustand des DFAs,
in welchen Zuständen der NFA sein könnte.
Also quasi diese Menge von Zuständen, in denen der NFA ist,
das merken wir uns im Zustand des DFAs.
Das sind endlich viele. Kann man probieren, ob man jetzt
die Kanten machen kann. Hier mache ich ja auch nichts anderes.
Ich mache ja quasi, wenn ich hier bin, in Z0, Z1.
Und ich lese eine Eins. Dann sage ich eben,
oh, ich bin immer noch in Z0, Z1.
Weil das kann ich mir überlegen, dann mache ich das im DFA halt so,
ich bin in der Menge, also in dem einen Zustand,
der die Menge Z0, Z1 ist.
Und mit einer Eins-Kante bleibe ich da halt. Und mit
den anderen Kanten tue ich andere Dinge. Und statt das dann so zu machen,
was du meintest mit, ich fühle mir einen Staatszustand ein,
wo ich dann so mit Kanten zu den ganzen Staatszuständen gehe,
des NFAs, kann ich dann sagen, diese Menge der Staatszustände des NFAs,
das Ganze ist der Zustand im DFA, der Staatszustand im NFA.
Also diese Menge der Staatszustände ist dann ein Zustand.
Das wäre so die Idee. Jetzt könnte man irgendwie ausprobieren
, ob das klappt
Wieder nach vorne wandern. Geht das auch andersrum. So,
was macht Sinn, sich die Zustände,
in denen der NFA-Nachlesen eines Teilwortes sein kann, zu merken?
Also zum Beispiel als Menge. Und der wichtige Schritt ist jetzt,
dass man dann sagt, okay, diese Menge,
das ist dann eben ein Zustand im DFA.
Wer sich da dran stört, der kann auch beim DFA
wieder irgendwie Z0Z1 der 2Z3 einführen und dann irgendwie einen zweiten Index,
wo dann die Menge drinsteht oder irgendwie sowas.
Dann ist das weiterhin irgendwie ein Z-Ding und unten im Index
steht die Menge
Aber es eigentlich ist das unnötig. Und dann kann man sich noch überlegen,
die Akzeptanzbedingung des NFAs, die sagt ja,
ich sammle diese Zustände auf, die ich erreiche beim Lesen des Wortes.
Und wenn da nachher ein Endzustand dabei ist oder mindestens einer, dann akzeptiere ich.
Weil das bedeutet ja, wenn da einer dabei ist,
dass ich, wenn da einer dabei ist,
bedeutet das, es gibt irgendeine Rechnung,
wo ich von dem einem der Startzustände irgendwie zu einem Endzustand komme.
Das heißt, beim DFA, wenn ich hier jetzt als
Zustände des DFAs eben die Menge der Zustände im NFA habe,
da mache ich dann einfach jede Menge,
in der ein Endzustand des NFAs drin ist,
wird ein Endzustand im DFA
Also sollten wir genau dann akzeptieren, wenn in der gemerkten Menge ein Endzustand auftritt.
Naja, können wir irgendwie überlegen, was hatten wir so an Konstruktionsmethoden?
Kann man jetzt gleich so mit so einer,
so einer Art On-the-Fly-Technik auch sich überlegen, aber wenn Z gleich Ende ist,
gibt es zwei auch in Timebang von Z,
endlich viele, dann haben wir nur endlich viele Informationen,
die wir uns merken müssen.
Also das bezieht sich auf den ersten Punkt. Das ist ja das Wichtige,
dass wir endlich viele Zustände haben, dann die Endzustände hier,
die kann ich auch leicht rausfinden,
also die Intuition dazu sagen,
ich mache das so,
das kann ich tatsächlich
auch händisch ausführen
Das ist ganz interessant,
die Überführungsfunktion, die kann ich dann fast gleich machen.
Das sieht nachher sehr, sehr ähnlich aus. Liegt halt daran,
dass beim NFA da eine Menge steht im ersten Argument.
Und beim DFA steht da zwar ein einzelner Zustand,
aber da ich sage, jeder Zustand des DFAs ist jetzt eine Menge,
muss ich gar nicht so viel ändern.
Das macht den Beweis auch gleich ein bisschen. Naja,
nicht einfach, aber erleichtert einem zumindest die Arbeit.
So, das ist die Idee. Wie sieht das aus
bei der Ausführung? Zu jedem NFAA, der jetzt irgendwie
eine Menge L akzeptiert. Also L ist gleich LA,
das ist die von A akzeptierte Menge. Behaupte ich jetzt,
ich kann einen DFA konstruieren mit der Eigenschaft,
dass der die gleiche Sprache akzeptiert.
Also LB gleich LA
im Grunde genommen
Wie mache ich das, Konstruktion? Das Ader,
das soll jetzt der NFA sein, also Z,
die Zustandsmenge, sieht man das Eingabealphabet, Delta,
die Überführungsfunktion, Z-Staat, die Startzustandsmenge, Z-N-D-Ends-Zustandsmenge.
Und jetzt definieren wir uns ein DFAB, mit eben die
einzelnen Komponenten gestrichen da. Und jetzt gehen wir
die alle durch. Die Idee war, als Zustandsmenge,
gerade jede Menge von Zuständen des NFAs zu nehmen,
also die Potenzmenge, zwei Hochzeit.
Eingabealphabet, muss sich nichts ändern. Ich will ja die
gleichen Symbole lesen. Nehme ich also, sieht man.
Jetzt kommt das mit dieser Überführungsfunktion
Und das mache ich so. Delta Strich ist jetzt
die Überführungsfunktion des DFAs. Das heißt,
das erste Element des DFAs ist ein Zustand des DFAs und
ein Zustand des DFAs ist ja gerade eine Menge von Zuständen.
Deswegen hier irgendwie geschrieben als M. M ist ein Element aus Z Strich.
Sprich, das ist ein Element aus zwei Hochzeit.
Und ich will jetzt definieren, was ist denn Nachfolgezustand von
M beim Lesen des Symbols X im DFA?
Was mache ich jetzt genauso, wie ich das beim NFA
eine erweiterte Überführungsfunktion machen würde?
Ich gehe jetzt alle Zustände von M durch
Und guckt mir bezüglich X der Nachfolgezustände an im NFA.
Also Delta ist ja die Beführungsfunktion vom NFA. Also ich
gucke im NFA nach, wo komme ich hin mit dem X?
All diese Mengen sammle ich mir auf und vereinige die.
Und die Menge, die dann rauskommt,
das ist ja wieder eine Menge von Zuständen des NFAs.
Das ist dann auch ein Zustand im DFA und das ist eben mein Nachfolgezustand.
Oder alternativ, wer die Kantenrelation lieber mag, kann das hier mit der Kantenrelation machen.
Ich mache das mal gleich mit dem Oberen,
weil so habe ich es auch im Beweis benutzt.
Startzustand ist dann einfach die Startzustandsmenge des NFAs, Das ist ja eine Menge,
also es ist auch wieder ein Zustand des DFAs jetzt.
Und Endzustandsmenge, da nehmen wir halt all die Teilmengen,
all die Mengen von zwei Hochz-Reihen,
sprich all die Zustände des DFAs, mit der speziellen Eigenschaft,
dass in M irgendein Endzustand des NFAs drin ist.
Sprich M geschnitten mit Z-End ist nicht leer. Also die Formulierung hier,
der Schnitt nicht leer, bedeutet ja, es gibt irgendein Element,
das sowohl in Z-End drin ist, als auch in M.
Sprich in M ist irgendein Endzustand des NFAs drin.
Das ist die Konstruktionsidee
Wenn man das so machen würde, was ist doof?
Kann das einer sehen? Also das ist richtig, so.
Gibt was, wo man sagen kann, gleich 1,
2, 3. Es wird sehr schnell sehr groß,
dadurch, dass man die Potenzmäge benutzt.
Genau, das ist richtig. Denk mal an der Stelle
noch weiter. Also das ist ja quasi etwas,
wo man sagen würde, wenn ich keine andere Möglichkeit habe,
das zu konstruieren,
dann ist das doof,
aber man muss sich halt akzeptieren
Aber was kann er da noch mehr dran stören,
wenn ihr euch das so anguckt, wie das definiert ist?
Jede Zeitlänge macht das selbst, wo es möglicherweise stimmt.
Genau. Ich nehme die da alle rein, diese zwei hochzeitfielen Mengen,
zwei hochendfielen Mengen da, zwei hoch 3 von Zäpfchen Mengen,
aber vielleicht sind die gar nicht alle erreichbar.
Das heißt, was man Die Konstruktion steht hier jetzt so,
wenn man das in ganz viel klassischer Literatur so findet,
in neuerer Literatur, macht man das teilweise so,
dass man einen Algorithmus angibt und den Algorithmus so macht,
dass man eben bei Z0 startet.
Also dann sagt man irgendwie, ich setze M gleich Z0
und dann mache ich den dritten Schritt und ermittel mir damit alle Nachfolgezustände von Z0.
Und dann mache ich bei all diesen Zuständen weiter und immer so weiter,
dann konstruiere ich von vornherein nur die initiale Zusammenhangskomponente des DFAs.
Und so mache ich es jetzt auch gleich im Beispiel.
Und so könnt ihr es auch in den Aufgaben machen,
dass nur, dass ihr wisst, es gibt diesen Unterschied,
einmal das rein statische, dass man sagt,
mit der Konstruktion klappt es.
Und wenn man es algorithmisch implementieren würde oder auch irgendwie
den Beweis algorithmischer führen würde,
dann kann man eben einfach bei Z0 anfangen und die
initiale Zusammenhangskomponente ermitteln
Da nochmal die Anmerkung, die wir jetzt eben auch so alle hatten,
Z-Strich ist die Menge aller Timing von Z, also hier das Z-Strich.
Eingabealphabet kann ich übernehmen, Staatszustand des DFAs,
gerade die Menge der Staatszustände des NFA.
Endzustände, Aldi-Mengen, die mindestens einen Endzustand des NFAs enthalten.
Und die Überführungsfunktion macht eben genau das,
was die Überführungsfunktion des Überführungsfunktionen des NFAs auch macht.
Geht halt alle Zustände durch und sammelt die Zustände auf,
die ich dann mit Lesen des nächsten Symbols eben erreiche.
Und die dabei dann entstehende Menge,
das ist gerade dann die NAFA der Nachfolgzustand des DFAs
Beispiel. Den hatten wir ja eben in den Clicker-Fragen.
Und wenn ich für den jetzt den Potenzautomaten bauen will,
dann, wie gesagt, fange ich an bei der Startzustandsmenge.
Hier ist es jetzt so, dass es nur diesen einen Startzustand Z0 gibt.
Also ist der Startzustand im DFA einfach die Menge,
die Z0 enthält. Aber merkt euch das schon mal,
wenn es mehr als einen Startzustand gibt,
wenn jetzt irgendwie Z2 auch ein Startzustand wäre,
dann würde ich eben beim DFA anfangen mit der Menge,
die Z0Z2 enthält
Jetzt fange ich da an und jetzt stelle ich mir die Frage,
jetzt mache ich das genauso,
wie wir das bei dieser On-to-Fly-Technik gemacht haben.
Ich gehe jetzt immer alle Symbole des Alphabets durch.
Der NFA hat hier das Symbol A, B. Und jetzt
gehe ich all diese Symbole immer durch und gucke mir an, was passiert.
Wo kommt man im NFA mit dem A hin?
Ich bin in Z0, wo komme ich mit dem A hin?
Genau. Z0 mit der Schleife oder nach Z1 dahin.
Das heißt, ich bin in der Menge,
die Z0 und Z1 enthält,
das meine A kannte
Und die B-Kante, naja, da komme ich irgendwie nur von Z0 nach Z0.
Das heißt, ich bleibe in der Menge,
die Z0 tät, ich werde hier also gleich hier oben
eine B-Kante dran haben und ein A-Kante zu einem neuen Zustand.
Jetzt ist der Zustand abgehakt, also mehr Symbole habe ich ja nicht,
ich bin jetzt fertig, mit dem Z0,
also mit dem Zustand Menge Z0 bin ich fertig.
Und jetzt nehme ich den nächsten Zustand.
Wo komme ich von Z0,
Z1 mit Malen
Ja, genau, ne? Wenn ich in Z0,
Z1 bin, also in der Menge, die Z0 und Z1 hält,
dann gehe ich jetzt nach und nach alle diese Zustände in
der Menge durch und gucke mir mal an,
wo komme ich mit dem A hin?
Wenn ich in Z0 bin, dann komme ich mit dem A nach Z0 oder nach Z1,
sprich in die Menge, die Z0 und Z1 enthält.
Dann nehme ich mir den nächsten Zustand, dass das Z1,
da komme ich mit dem A nach Z1,
also in die Menge, die Z2 enthält.
Jetzt habe ich zwei Mengen, für einige, die die Menge,
die Z0, Z1 enthält, vereinigt mit der Menge,
die Z2 enthält, ist die Menge, die Z0,
Z1, Z2 enthält,
wieder neuer Zustand.
Wo komme ich mit dem B hin
Genau, wenn ich in Z0 und Z1 bin und ich lese das B von Z0 aus,
komme ich mit dem B nach Z0 und von Z1 aus,
komme ich mit dem B nach Z2. Zack.
Also von Z0Z1 mit dem A dahin von Z0Z1 mit dem B dahin. Ja,
und das macht man jetzt halt weiter, so lange,
also jetzt habe ich die oberen beiden Zustände,
mit denen bin ich fertig,
da brauche ich nicht mehr gucken,
habe unten aber zwei neue Zustände und jetzt gehe ich halt immer weiter durch,
bis ich irgendwann keine neuen Zustände mehr generieren muss.
Und da ich hier im NFA drei Zustände habe,
werde ich spätestens nach acht Zuständen wird dann irgendwann mal Schluss sein,
weil die Potenzmenge davon enthält gerade zwei hoch drei,
viele Elemente, also acht Elemente, spätestens David Schluss sein.
Hier ist glücklicherweise nach vier Elementen Schluss. Man fragt sich jetzt weiter,
wenn ich ins Z02 bin, wo komme ich da mit
dem A hin, wo komme ich mit dem B hin?
Da hat man jetzt diesen Fall Z2, ist irgendwie egal,
weil da komme ich mit dem A nur in die leere Menge
und mit dem B auch nur in die leere Menge, da passiert also nichts.
Und mit dem Z0, da weiß ich schon,
wo ich mit dem A und B hinkomme,
das habe ich oben schon gemacht und man kann es auch irgendwie sich nochmal ablesen beim NFA,
aber ich werde halt irgendwie mit dem A von Z02 nach Z0Z1 kommen und mit dem B nach Z0.
Weil ich das, von Z0 aus war es
auch so
Aber wie gesagt, man kann die auch durchgehen,
dann geht man wieder durch und sagt,
von Z0 aus komme ich mit dem A nach Z 0,
Z1, von Z2 aus komme ich mit dem A zur leeren Menge,
also komme ich insgesamt nach Z0,
Z1 und mit dem B komme ich eben nur nach Z0. Zack.
Und der letzte Z0, Z1,
Z2, guckt man sich auch alle an, guckt,
was mit dem A passiert, was mit dem B passiert,
kann man wieder so, wie eben sich eigentlich einschränken und sagen,
die Z2 ist mir egal.
Und dann kommt man irgendwie von hier,
bleibt man mit dem A hier,
also wenn ich in Z0, Z1, Z2 bin,
bleibe ich da mit dem A und mit dem B
komme ich links rüber nach Z0,
Jetzt hört man manchmal schon auf in seinem Übermut,
aber die Endzustände fehlen noch, was sind da die Endzustände?
Bitte? Ja, genau, die unteren beiden,
alle, wo Z2 dabei ist,
der wird ein Endzustand und der wird ein Endzustand.
Zack, fertig.
Das ist die Potenzautomatenkonstruktion
Also bei der Staatszustandsmenge des NFAs anfangen und dann immer alle Zustände
der Menge, in der man gerade ist, durchgehen.
Im NFA gucken, wo komme ich da überall mit dem
gerade interessierenden Symbol hin. Und all diese Mengen dann vereinigen,
und das ist die Menge der Zustände,
die dann eben im DFA der Nachfolgezustand ist.
Fragen. Wie würde man das ausschreiten,
wenn man das Wort sehr tut, auch mit einer Waage.
Wenn man hier im NFA, wenn ich von Z0
mit einer A kannte, auch zu C2 käme.
Naja, dann müsstest du, bitte
Okay. Ändert eigentlich nichts. Du kommst dann halt in
drei Nachfolgezustände von Z0 und dann muss das halt alles anpassen.
Sonst noch. Also Startzustand ist wichtig,
dann die Überführungsfunktion und dann die Endzustände.
Und dann ist man fertig. Fragen zum 1. Zweiten.
Ob das immer auch dem optimalen DFA anspricht,
habe ich
richtig verstanden
Ja. Nee, das ist nicht immer das Beste,
was da rauskommt. Also man kann da immer noch mal
eine Minimierungsoperation draufschmeißen und einen minimalen DFA konstruieren.
Also selbst wenn man das so macht, dass man immer die initiale Zusammenhangskomponente ermittelt.
Bei dem anderen ist ja sowieso klar, da hätte ich
jetzt hier acht Zustände statt vierten und bräuchte die Hälfte nicht.
Aber selbst wenn man das so wie hier jetzt macht,
ist das nicht unbedingt optimal. So,
dann einmal zur Übersicht, dass man die ganzen Sachen,
die wir jetzt gleich, jetzt haben wir die Konstruktion,
aber jetzt wollen wir die auch immer anwenden können.
Das heißt, wir müssen allgemein beweisen, dass die tatsächlich immer funktioniert.
Also ich muss jetzt allgemein zeigen, wenn ich ein NFAA
habe und ich so wie hier in der Konstruktion angegeben
DFAB mache, Dann gilt tatsächlich immer 11 von A gleich 11 von B.
Das muss ich beweisen. Und damit ich gleich nicht immer
20 Folien zurückgehen muss, wenn ich irgendwas nochmal illustrieren will,
habe ich da diese Übersichtsfolie kurz eingebaut gestern noch.
Unten steht die Konstruktion, oben stehen zwei Definitionen beim NFA,
die wir gleich ganz gut vielleicht nochmal hier und da brauchen.
Einmal die erweiterte Überführungsfunktion und einmal die akzeptierte Sprache,
nur dass sie das nochmal so auf einen Blick habt.
Was man beim Beweis jetzt eigentlich erstmal kurz machen müsste,
was auf den Folien nicht steht, ist,
dass man tatsächlich sich mal bewusst macht, das,
was ich hier definiere, Unten ist tatsächlich ein DFA.
Jetzt geht man halt durch und guckt, ja, okay,
es ist eine endliche Zustandsmenge, es ist ein endliches Eingabealphabet.
Hier gibt es für jedes Tupel aus M,6 maximal einen Nachfolger.
Es gibt genau einen Startzustand und alle Zustände,
also alle Dinge in der Endzustandsmenge sind auch tatsächlich Zustände.
Und dann weiß man, das ist tatsächlich ein DFA.
Das müsste man eigentlich nochmal machen. Und jetzt muss man
da rangehen, das zu beweisen, dass das tatsächlich funktioniert.
Das sieht ja schon, das sieht ja schon ziemlich ähnlich aus so,
ne, von den Überführungsfunktionsgeschichten. Also wenn man sich das mal so nebenan,
wenn man jetzt quasi einen NFA nehmen würde und einen DFA,
also zum Beispiel, man die beiden hier mal nehmen würde,
den und den, also oben der NFA und in der DFA,
wenn ihr die nehmt und ihr schreibt euch dann mal für beide die erweiterte Überführungsfunktion auf,
auf dem Wort BBA, B, irgendwie sowas,
so drei, vier Buchstaben oder so,
irgendwas,
worauf ein bisschen was passiert
Dann werdet ihr sehen, dass die total ähnlich aussehen.
Also dass das Wort immer um einen Buchstaben kleiner wird,
ist sowieso klar. Also das zweite Argument muss gleich aussehen.
Aber beim ersten Element werdet ihr auch sehen,
dass das sehr ähnlich ist. Der Unterschied ist halt,
dass bei der erweiterten Überführungsfunktion des NFAs, da sage ich wirklich,
die Menge, die da im ersten Element steht,
das ist eine Menge von Zuständen des NFAs.
Und beim DFA unten würde ich sagen, ja, da stehen Zustände des DFAs.
Aber die Zustände des DFAs sind ja gerade wieder Zustandsmengen des NFAs.
Also da steht irgendwie auch wieder das Gleiche. Und wenn man das mal macht,
wenn man das jetzt zweimal aufschreibt,
dann kommt man auf die Idee,
dass man vielleicht beweisen könnte,
dass diese erweiterten Überführungsfunktionen immer
das Gleiche tun
Und das ist die Idee hier,
dass man versucht zu beweisen per Induktion über die Wortlänge,
also wieder mit sowas,
was wir gestern in dem komplizierten DFA-Beispiel auch schon gesehen haben,
irgendwie wieder in Induktion über die Wortlänge.
Und dass wir beweisen, egal welches Wort wir lesen und
in welcher Menge Teilmenge der Zustände wir sind, wobei das,
wie gesagt, im NFA ist das eine Teilmenge der Zustände.
Im DFA ist das ein Zustand und wir beweisen,
dass wir im DFA einen Zustand erreichen,
der gerade das Gleiche ist, wie die Menge der Zustände,
die wir im NFA erreichen.
Nehmen wir mal an,
wir hätten das
Also nehmen wir mal, wir werden fertig.
Warum hilft mir das? Naja, jetzt könnte ich,
ich zeige das ja für beliebige Teilmenge Zustandsmengen.
Das heißt, das gilt auch für die Staatszustand.
Also das gilt für Z-Start. Das heißt,
ich könnte links und rechts Z-Start hinschreiben.
Dann entspricht das hier gerade dieser Notation beim NFA, der Eltern-Dachzeit-Start-Komma-W.
Und beim DFA ist es das Gleiche,
weil Z0 ist ja der Staatszustand des DFAs. Das heißt,
da steht dann auch Delta-Dach-Strich, Z0,
W. Also genau das,
was man bei der erweiterten Überführungsfunktion des DFAs
auch haben will
Sprich, da stehen links und rechts die gleichen Mengen.
Da kann man sich noch fragen, okay,
die sind also gleich, da kommt bei beiden das Gleiche raus.
Jetzt guckt man sich an, wann wird hier akzeptiert.
Hier wird halt akzeptiert, wenn die Menge,
die da rauskommt, geschnitten mit Z-End, nicht leer ist.
Also wenn da irgendwie ein Endzustand dabei ist. Naja,
und dann ist das ja beim DFA, das heißt ja die gleiche Menge,
also dieses Z-Start W steht da ja auch,
das wäre dann hier unten das M.
Und hier wird auch verlangt, dass das geschnitten Z-End
ungleich leer ist. Das heißt,
in beiden Mengen ist ein Endzustand drin und nach Konstruktion
ist das im DFA ein Endzustand und nach Definition des NFAs
ist es eine akzeptierende Rechnung,
sprich beide würden akzeptieren
Also weiß ich, wenn ich das bewiesen habe, weiß ich,
entweder akzeptieren beide das Wort weh oder beide lehnen das Wort weh ab.
Das heißt, ich habe dann gezeigt,
dass beide Automaten, gerade die gleichen Wörter akzeptieren,
genau die gleichen, also weiß ich,
L von ASL von B. Jetzt muss ich nur noch das da beweisen.
Ja. Induktionsanfang ist schön einfach.
W gleich null,
also leeres Wort
In dem Fall gilt für beide, jetzt guckt man sich
bei beiden die Definition der erweiterten Überführungsfunktion an.
Und bei beiden wird gesagt, wenn das zweite Element Lamda ist,
dann soll gerade das erste Element rauskommen.
Also hier sehen wir es noch, erweiterte Überführungsfunktion des NFAs, Delta Dach M.
Komma Lamda soll gerade M sein. Und wer es noch so erinnert,
beim DFA, da hat man auch gesagt,
Delta Dach, Z-Komma Lamda ist gerade Z. Das heißt,
da kommt hier in beiden Fällen die Menge M raus,
einfach wegen der Definition der weiteren Überführungsfunktion.
Eduktionsanfang fertig, Induktionsannahme, wir gehen jetzt davon aus,
dass diese Aussage hier, hier für Wörter der Länge N gilt.
Und zumindest für N gleich Null haben wir es gerade gezeigt,
aber jetzt wissen wir, dürfen wir annehmen,
für Wörter der Länge enden, gilt das jetzt oder das nehmen wir an.
Und im Induktionsschritt zeigen wir jetzt, dass es dann auch
für Wörter der Länge N plus eins gilt. Und das heißt dann insgesamt,
naja, für Null haben wir es gezeigt,
dann folgt aus dem Schritt, also es gilt für eins,
dann wissen wir auch, es gilt für eins,
dann folgt aus dem Schritt,
es gilt für zwei und so weiter.
Also haben wir es dann für Wörter einer beliebigen,
aber endlichen Menge Länge gezeigt. Sprich im Induktionsschritt,
wir gehen vom Wort aus, dass die Länge N plus eins
hat und zerlegen das Wort in Den ersten Buchstaben und den Rest des Wortes.
Also X ist der erste Buchstabe-Faust, der Rest des Wortes.
Die Idee ist jetzt quasi einmal die erweiterte Überführungsfunktion irgendwie anzuwenden
für das X. Und dann zu sagen, oh cool,
und für das V kann ich die Induktionsannahme benutzen,
weil V ja nur noch die Länge ändert.
Ja. Nach den Definitionen der weiteren Überführungsfunktion folgt nun,
und das sieht jetzt ein bisschen unheimlich aus,
aber im Grunde genommen benutzt man nur die Definition.
Hier, Data Dach MXV, also M, die Menge,
in der wir hier irgendwie sind, ne?
Da. XV haben wir ja gesagt, ist das Wort
Und dann schreiben wir hier rechts einfach hin, was sagt uns
die Erweiterte, die Definition der weiteren Überführungsfunktion des NFAs.
Und die sagt eben, geh alle Zustände in den M
durch und guckt ihr an, wo komme ich hin,
wenn ich da das X drin lese.
Und das vereinige ich alles. Also wenn ihr versucht,
das mal kurz die erste Zeile zu memorisieren,
dann sieht die genauso aus wie die da.
Ja, steht ein W statt ein V. Aber sonst das Gleiche.
Also einfach die Definition angewandt. Und hier in der
unteren Zeile, da mache ich das jetzt für den DFA
Man schreibt auch in irgendwie Zustand, in dem ich bin,
XV, das ich lesen will.
Und dann wird da eben ja auch das erste hier aufgrund
der Definition der erweiterten Überführungsfunktion. Da ist es auch so definiert,
ich gucke mir an, wo komme ich von meinem Zustand M.
Durchlesen des ersten Symbols hin. Da kommt irgendwie ein Zustand raus und auf das Tupel,
der Zustand, in dem ich dann bin und Restwort V,
da wenn nicht wieder die erweiterte Überführungsfunktion an.
So, und jetzt sehen die noch nicht so richtig gleich aus,
aber jetzt kann ich hier drauf, dieses Delta-MX,
da kann ich benutzen, wie ich das eigentlich definiert habe.
Und Datastrich MX habe ich halt Gut. An der Stelle hier,
der Elterstrich MX, ist eben nach Definition gerade Vereinigung über Z-Element M,
Delta ZX. Wenn ich das da so einsetze,
da Delta Strich MX und hier Vereinigung Z-Element M, Delta ZX.
Also erste, jeweils die erste Gleichheit,
so in beiden Zeilen,
ist einfach aufgrund der Definition der erweiterten Überführungsfunktion und in der
zweiten Zeile das zweite Gleichheitszeichen ist aufgrund der Definition des Delta
Strichs in dieser Konstruktion
Ja, dann sieht man hier schon, vereinigt Z-Element M,
Delta Z X und hier unten auch vereinigt Z-Element M,
Delta Z X, das steht genau das Gleiche.
Nennen wir das mal M-Strich. Und dann habe ich hier
stehen Delta-Dach M-Strich V und hier habe ich stehen Delta-Dach Strich MV.
V hat nur die Länge N, kann ich also hier
die Induktionsannahme benutzen, nämlich, dass die beiden gleich sind.
Induktionsannahme ist anwendbar, das heißt, das ist beides gleich.
Nein, jetzt habt ihr quasi das hier, also das,
was ganz recht steht in den beiden Zeilen,
das ist jeweils gleich.
Naja, und dann muss auch das,
was ganz link steht,
irgendwie gleich sein
Das heißt, insgesamt haben wir gezeigt,
XV ist ja weh, das heißt,
insgesamt haben wir jetzt gerade gezeichnet, Delta-Dach-MW,
das gleiche ist wie Delta-Dach-MW.
Fertig. Fragen? Schweigen im Hörsaal
Die Gedanken von Studierenden im Hörsaal. Sowas wie 39 minus 31,
ja, noch acht Folien. Anfo, you know.
Das fasst nur noch Zusammenfassung, das ist nichts Schlimmes mehr.
Fragen dazu. Okay, dann muss man jetzt noch diesen,
also das meiste davon, ich weiß, das sieht ein bisschen gruselig aus.
Das weiß ich auch deswegen,
weil als ich das aufgeschrieben habe mit den Folien,
ich mich bestimmt drei, vier, fünf,
sechs, sieben Mal verschrieben habe, weil so irgendwie,
wo muss der Strich hin und so weiter und so weiter.
Aber im Grunde genommen passiert da eigentlich kaum was.
Wie gesagt, bei den ersten beiden Gleichheitszeichen wendet ihr irgendwie
die Definition der erweiterten Überführungsfunktion an
Und da wendet ihr an, wie ihr es in der Konstruktion definiert habt.
Und dann benutzt ihr die Induktionseinnahme. Also sonderlich viel passiert da eigentlich
gar nicht. Das ist mehr das Komplizierte bei der Notation,
dass man sich irgendwie vergegenwärtigt, was, was ist so.
Und dann läuft das ganz gut durch. Und jetzt muss man
halt noch das, was ich vorhin schon argumentiert hatte,
hier, ich weiß jetzt, das gilt für beliebige Wörter.
Und jetzt muss ich halt noch argumentieren, naja,
wenn ich jetzt für M halt die Startzustandsmenge nehme,
dann ist das genau der Startzustand des DFAs und die Staatszustandsmenge des NFAs.
Und beide sind gleich. Bei beiden kommt also die
gleiche Menge von Zuständen raus und beide akzeptieren genau dann,
wenn da mindestens ein Endzustand drin ist des NFAs.
Und da steht hier nochmal eigentlich für diese Mengen jetzt einsetze,
da erhält man eben gerade,
dass die beiden gleich sind und dann nach dieser Konstruktionsvorschrift,
also sprich, wie ist die Endzustandsmenge des DFAs definiert und eben nach der Akzeptanzbedingung des NFAs,
weiß ich dann, dass sie eben beide genau dann akzeptieren,
wenn in dieser Menge, die ja das Gleiche ist,
einen Endzustand auftritt und dann sind also die Mengen gleich und a akzeptiert genau dann mit B akzeptiert,
also 11 von a, gleich 11 von B. Fertig.
Dann kann man also sagen,
NFA ist nicht mächtiger als DFA,
ist aber auch nicht schwächer,
weil wir ja für jeden DFA in NFA machen können,
ergo,
beide Automatenmodelle
genau gleichmächtig
Wenn ich irgendwie vorletzte Vorlesung oder so gesagt habe, die Rego,
die Sprachfamilie der regulären Sprachen, ist gerade darüber definiert,
dass ich für die Sprache ein DFA angeben kann.
Dann kann man jetzt sagen, oder ein NFA. Also für jede Sprache,
für die ich ein DFA oder ein NFA angeben kann,
kann ich sagen, die Sprache ist regulär.
Da steht es nochmal, äquivalente Automatenmodelle nennt man das,
beide akzeptieren die regulären Sprachen. Da drunter nochmal ein bisschen Notation,
was man mit Äquivalent meint. Wenn ich zwei Automaten habe,
des gleichen Typs, also zwei DFAs,
A1 und A2, und die die gleiche Sprache akzeptieren,
also elf von A1 gleich 1102 ist,
dann nennt man
die Äquivalent
Dann kann man den Äquivalenzbegriff auch ausdehnen auf Automaten unterschiedlicher Typen,
dass ich da auch sage, wenn sie die gleichen Sprachen explizitieren, sind diese beiden Automaten äquivalent.
Und wenn ich das so machen kann wie hier mit einer ganzen Klasse von Automaten,
wenn ich zu jedem Automaten des einen Modelltyps,
sprich für jeden DFA, einen Automaten des anderen Modelltyps,
sprich einen NFA angeben kann und das in beide Richtungen geht,
dann sage ich, die Automatenmodelle sind äquivalent,
also EFAs und NFAs sind äquivalent.
Und da nochmal, dass ihr das einmal gesehen habt,
nach Konstruktion hat der NFA 2 Hochzeit viele Zustände im Vergleich zu
der DFA 2 Hochzeit viele im Vergleich zu den Z-Fielen vom NFA,
bläht sich also exponentiell auf
Und jetzt haben wir ja bei, in dem Beispiel,
was wir durchgerechnet haben, da haben wir die ja gar nicht alle gebraucht.
Also die werden meistens nicht alle gebraucht,
aber man kann tatsächlich Beispiele konzentrieren, wo man die alle braucht.
Ergo, man kommt um diesen exponentiellen Blow-up leider nicht rum. Und das Beispiel,
mit dem man das gerade erreicht,
das ist so ein bisschen kompliziert, aber mit diesen Beispielen,
das ist jetzt eine Verallgemeinerung von dem Beispiel,
was wir in den Klickerfragen hatten, damit erreicht man das schon ziemlich gut,
weil man dann eben der Äquivalente DFA immer zwei hoch,
N-1-1-Zustände hat, nicht genau zwei hochende,
aber zwei hochende minus eins.
Da kann man schon sehen,
dass man irgendwie so einen exponentiellen Blow-up hat,
der halt einen ersten,
also 100 Zustände im NFA sind dann irgendwie zwei hoch 99
im DFA,
das ist schon
irgendwie blöd
Genau. Da nochmal auf der Folie,
das ist für zu Hause, das ist quasi die Anmerkung,
dass ihr die Konstruktion nicht so machen,
also beim Ausführen nicht so machen solltet,
wie ihr in dem Beweis, sondern eben so,
wie wir es im Beispiel gemacht haben mit der initialen Zusammenhangskomponente.
Dass man mit dem Staat, mit der Staatszustandsmengezeit
Staat anfängt und dann eben sukzessive aller Erreichbaren Zustände konstruiert.
Und im Worst Case kann man immer noch irgendwie dann
exponentiell viele erzeugen, aber das passiert halt relativ selten.
Also gerade bei den Beispielen, die wir so machen,
brauchen wir meistens nicht alle zwei Hochzeit-Filen Zustände, sondern irgendwie weniger.
Genau, das nochmal, dass wir das auch da
so schriftlich haben
Und da nochmal, weil das immer so ein bisschen
zu Verwirrung führt. Jeder DFA akzeptiert eine Sprache und jede
dieser Sprachen ist jetzt in der Sprachfamilie Reck enthalten.
Der DFA akzeptiert eine Sprache, dann kann man auch sagen,
er ist eine kompakte Beschreibung der Sprache.
Kompakt, weil der DFA ist endlich,
also alle Elemente aus A-Sternen aufschreiben könnte ich nicht.
Ich kann aber einen DFA angeben, der schön kompakt.
Jede von denen ist regulär und die Familie dieser regulären Sprachen
ist dann die Ansammlung aller Sprachen für diesen DFA gibt oder eben,
wie wir heute wissen,
ein NFA
Also wenn ich sage, Sprache ist reguliere, meine ich,
es gibt wahlweise ein DFA oder ein NFA dafür.
Super. So, und jetzt noch die drei Zusammenfassungsfolien.
Was haben wir gemacht gestern und heute wiederholt? NFAs kennengelernt,
Potenzautomatenkonstruktion kennengelernt und eben die Korrektheit bewiesen und sowohl da als auch gestern
bei dem größeren Konstruktionsbeispiel diese Idee kennengelernt, eine Induktion über die Wortlänge zu führen.
Und was eben auch ja noch anders war, war,
wir haben nicht irgendwie LA gleich LB,
so wie wir das sonst immer gemacht haben,
durch zwei Timemang-Beziehungen gezeigt, sondern eben durch einen anderen Ansatz,
dass wir direkt gezeigt haben,
alle Wörter werden entweder von beiden akzeptiert oder von beiden abgelehnt
Da in der roten Box,
das werden wir noch ein bisschen aufblähen, das nächste Mal.
Hier steht jetzt zu jeder regulären Sprache,
L gibt es wahlweise in DFA oder in NFA.
Und nächstes Mal lernen wir noch zwei weitere Modelle kennen,
die das auch können. Aber die wollen wir nur so
antatschen, da wollen wir die Beweise nicht mehr führen.
Und dann werden wir uns, machen wir das nächstes Mal schon.
Ich denke mal so Dienstag, nicht nächsten Montag,
aber Dienstag werden wir dann anfangen, uns über diese Sprachfamilie hinauszuentwickeln.
Dass wir dann sagen, okay, das ist jetzt alles schön und gut.
Aber können wir nicht doch ein Automatenmodell machen, das mehr kann.
Also der NFA konnte jetzt nicht mehr und dann bauen wir
uns nächstes Mal was, was dann tatsächlich mehr kann.
Motiviert über eine Sprache, wo wir feststellen werden,
dass die vom DFA nicht geht,
dass die aber trotzdem wichtig ist
Jo, und das solltet ihr alle bis nächste Woche so,
das wäre gut, wenn das alles da ist,
also DFA, NFA, die ganzen Grundbegriffe dazu,
was ist eine Überführungsfunktion und so weiter, dann solltet ihr einfach wissen,
dass die DFA und NFA im Prinzip das Gleiche sind.
Ihr solltet DFAs und NFAs konstruieren können und zeigen können,
dass eben 11 und A gleich M ist und diese Potenzautomatenkonstruktion,
also die Konstruktion solltet ihr können,
ihr müsst jetzt nicht irgendwie euch den Beweis aus dem Ärmel schütteln können,
aber die Konstruktion solltet ihr ausführen können.
Die kommt auch in den Übungsaufgaben
dieses Mal dran
Ja, dann noch ganz kurze Anmerkung zu dem Skript,
dann sind wir auch fertig gleich. Da ist bisher noch
der Teil drin, halt mit den ganzen Grundbegriffen.
Und morgen kommt quasi der Teil rein mit den Konstruktionssachen,
also das, was wir eigentlich letzten Dienstag schon gemacht haben.
Und übermorgen müsste dann der Teil reinkommen mit NFAs.
Und dann habe ich die holprige Studie-Semester-Anfangsphase geschafft und dann müsste
das Skript eigentlich immer rechtzeitig zu den Vorlesungen da sein.
Und es gab vereinzelt so Anfragen, ob man das vorher machen kann,
ob man die Folien vorher veröffentlichen kann und so weiter.
Das mache ich immer nicht, weil Ich das eigentlich immer gut,
also wenn ihr euch vorbereiten wollt auf die Vorlesen,
wenn ihr quasi alles bis zu diesem jetzigen Punkt der Vorlesung,
wenn ihr das alles perfekt könnt,
dann seid ihr super auf die Vorlesung vorbereitet.
Ihr braucht also die Folien für das nächste Mal,
die braucht ihr eigentlich nicht, ihr seid super vorbereitet,
wenn ihr alles bis dahin perfekt könnt.
Das ist der eine Grund. Der zweite Grund ist,
ich will euch gar nicht erst in Versuchung führen,
zu glauben, dass man sich nur mit Folien
irgendwie gut vorbereiten oder gut nachbereiten könnte oder so.
Folien machen eigentlich nur dann Sinn, wenn ihr auch in
der Vorlesung gesessen habt. Das macht irgendwie sonst in Folien irgendwie,
sonst schnappt euch ein Buch und lest da drin oder so,
da steht noch der ganze Zwischentext drin, das ist super.
Die einzige Begründung, die ich in Ordnung finde für,
kannst du die Folie nicht vorher zur Verfügung stellen,
dass wenn man sagt,
dann kann ich
die vorher ausdrucken
Und dann kann ich mir Notizen machen. So, das kann ich akzeptieren,
aber das rechtfertigt dann leider auf meiner Seite den Mehraufwand nicht.
Da muss ich nämlich diese ganzen Frage-Sessions und so rausnehmen und so.
Und das ist irgendwie das Nervkram. Da macht das lieber so,
dafür ist unten ja auch immer die Nummerierung, dass ihr,
wenn ihr irgendwie euch eine Anmerkung zu einer Folie machen wollt,
dann schreibt euch eben auf, Folie 8,
das und das wollte ich mir dann auch notieren.
Und dann habt ihr das auch. Und ansonsten gebe ich
eben als Vorbereitung die Folien meistens nicht raus,
weil ich das besser finde, wenn ihr euch bis zu diesem Zeitpunkt,
wenn ihr alles davor ist, wisst, ist alles super.
Dann könnt ihr hier hinkommen,
wie ins Kino zu gehen und so und euch überraschen lassen,
was kommt.
Das war's eigentlich, Fragen. Wir haben noch eine Viertelstunde.
Fragen. Hallo Jemand sagt uns, es ist mir zu Gott,
dass es geschieht, jede Wahrheit, dass wir einfach sein.
Ich bin der Wahrheit. Gibt es gerade ein Getändnis?
Ob es quasi, die Frage war gerade,
ob es gegeben einen besonders großen DFA und jemand behauptet jetzt,
er hat einen kleineren NFA, ob es eine Technik gibt,
den zu finden.
Naja, wenn er das behauptet, könnte dir ja
mal geben. Das wäre ja schon mal ganz nett.
Ansonsten, nee, es gibt halt Techniken,
um DFAs zu minimieren
Ich weiß nicht, ob es Techniken gibt, um NFAs zu minimieren.
Ich glaube nicht. Und normalerweise würdest du,
wenn du einen DFA hast, den halt minimieren und dann sagen,
jetzt ist er schön klein, alles super.
Oder du würdest tatsächlich die Sprache nehmen und versuchen halt möglichst kleinen NFA zu konstruieren.
Aber jetzt so richtig eine Technik, wo man sagen kann,
zu diesem DFA konstruiere ich mir jetzt möglichst minimalen NFA,
kenne ich zumindest nicht.
Sonst noch. Gut, dann wir durch. Dann viel
Spaß in den Übungsgruppen heute und Mittwoch und Donnerstag und Freitag
und wir sehen uns Montag wieder.