Ja, die Kiste vorne ist leer.
FG1, dritte Veranstaltung. DFAs und NFAs,
DFAs kennen wir schon, endliche deterministische, endliche Automaten.
NFAs kommen heute. Aber erstmal die ganzen wichtigen Begriffe,
die wir so zu DFAs hatten. DFA, Zustände,
Staatszustand, Endzustand, Überführungsfunktion, weitere Überführungsfunktion und so weiter.
Gibt es da Fragen? Ist das beim,
sind euch Fragen gekommen beim Wochenende oder so,
beim Nachbereiten
Ob jeder DFA vollständig sein muss, nee. Kann man,
nehmen wir die Frage mal und spinnen sie gleich weiter.
Die Frage war ja, ob ein DFA vollständig sein muss,
so muss er nicht, wenn er nicht vollständig ist,
ist halt nicht vollständig und wenn er vollständig ist,
ist er halt vollständig.
Aber weiterführende Frage, kann ich jeden DFA,
also ich nehme jetzt irgendeinen DFA,
wenn er vollständig ist, bin ich zufrieden,
wenn er nicht vollständig ist,
kann ich
ihn dann
vollständig machen
Ohne die Sprache zu verändern. Also sprich,
kann ich zum DFAA, einen DFAA-Strich bauen,
sodass A und A strich die gleichen Wörter akzeptieren,
also die gleiche Sprache nachher im Endeffekt akzeptieren.
Und der eine ist vollständig und der andere möglicherweise nicht,
kann ich das machen.
Das ist ja erstmal nur eine Ja-Nein-Frage so,
kann man machen oder auch nicht.
Ja, Geld,
danke.
Ich finde das schön, wenn meine Übungsgruppenleiter da sind,
aber wenn sie sich bei Fragen melden, finde ich das etwas befremdlich.
Ich weiß das, nämlich, nämlich. Okay,
ich wiederhole mal und du korrigierst falls ich was Falsches sage.
Man hört das hier vorne leider echt schlecht. Er sagt,
wenn ich den Automaten vervollständige,
dann ist die Menge des ursprünglichen Automaten die Menge der Worte,
die der akzeptiert,
eine Teilmenge des vervollständigten Automaten.
Ja, nein. Klingt ja erstmal gut, ne?
Der andere Automat tut ja irgendwie mehr, so.
Wer schließt sich an? 1, 2,
3, 5, ja, so vereinzelt.
Schließt sich halb an, ja. Wer schließt sich nicht an?
Warum nicht? Für die fehlende Kante eine Schleife. Also,
wenn du jetzt, nehme mal an,
du hast einen Zustand Z und du hast nur eine A-Kante
zu irgendeinem anderen Zustand und keine B-Kante,
dann willst du jetzt an den Zustand Set noch eine
B-Kante ranbauen
Klingt auch interessant. Was meint ihr dazu? Bitte?
Ja. Und dann? Ja, aber also jetzt,
also die Aussagesetze, ich mache einen neuen Zustand.
Und wie komme ich da hin? Du willst nicht,
mach mal genau, es ist schon richtig,
aber manchmal genau, du willst nicht von allen Knoten da hinkommen,
also willst du schon, aber nur auf eine bestimmte Art und Weise,
Genau. Genau, das kann ich machen. Zu den
anderen beiden Vorschlägen, wenn ich das so mache,
dass ich irgendwie Schleifen ranführe, dann lese ich plötzlich Wörter,
die ich vielleicht vorher nicht gelesen habe und akzeptiere die vielleicht sogar.
Also wenn ich als ganz einfaches Beispiel, nehmen wir an,
ich habe als Alphabet AB, Oh, oh, Tafel.
Ja, so ein Automat, der akzeptiert bisher nur
das Wort A, mehr tut er nicht.
Und jetzt nehmen wir mal an, das Alphabet ist A,
B, dann war die Idee, ich mache hier eine B-Schleife ran.
Ist erstmal gut, weil jetzt kann ich das auch alles lesen,
aber dann akzeptiere ich jetzt B-Stern A auf einmal.
Also ich existiere jetzt auch B, A, B,
B, A und so weiter.
Das will ich nicht, das ändert die Sprache.
Die Idee von eben ist,
ich führe mir so einen Fehlerzustand oder irgendwie eine Senke,
also heißt entweder Fehlerzustand oder Senke ein
Und für all die Buchstaben, die ich bisher in einem Zustand nicht lesen konnte.
Also ich kann jetzt hier weder das, also hier kann ich
das B nicht lesen und hier kann ich A und B nicht lesen.
Für all diese, für all diese Symbole,
die ich in einem Zustand nicht lesen kann,
führe ich mir eine neue Kante in den Fehlerzustand ein.
Jetzt kann ich in dem jedes Symbol lesen,
ich kann A lesen, ich kann B lesen,
ich kann in dem jedes Symbol lesen, ich kann A lesen,
ich kann B lesen.
Und jetzt muss ich noch hier unten bei dem Aero-Zustand das
auch machen. Da kommt es wirklich eine Schleife ran.
Und jetzt kann ich jedes Wort lesen,
das aus As und Bs besteht.
Ich akzeptiere genau das Gleiche
wie vorher auch
Im Grunde genommen mache ich folgendes, all die Möglichkeiten,
wo ich vorher blockiert hätte,
die gehen jetzt in Error-Zustand und da lese ich das Wort zu Ende,
aber ich akzeptiere halt nicht.
Und alles andere ist ja okay, also wenn ich vorher nicht blockiert habe,
sondern das Wort zu Ende gelesen habe,
dann habe ich es entweder akzeptiert oder nicht, das mache ich weiterhin so.
Also der spannende Fall ist es die Wörter, bei denen
ich vorher blockiert habe. Genau. Das zum Vervollständigen,
also relativ einfach, wenn ich Automaten vervollständigen will,
ein Fehlerzustand einführen, alle kannten,
die bisher nicht da sind, zu diesem Fehlerzustand gehen lassen,
fertig.
Einmal noch dran denken,
eine Schleife zu machen an den Fehlerzustand
Und da habe ich einen vollständigen Automaten, der genau die gleiche Menge akzeptiert.
Sonst noch Fragen zu dem Stoff. Verständlich. Zum ersten,
zum zweiten, zum dritten. Okay, dann habe ich
ein paar. Das würde man einmal ganz allgemein machen,
dass man einmal sagt, wenn ich diese Konstruktion mache,
ich kriege ein DFAA und wenn ich jetzt die folgende Konstruktion mache,
für jede Kante, die fehlt, führe ich eine Kante zum Fehlerzustand und so weiter.
Und jetzt zeige ich ganz allgemein, dass das die
gleiche Sprache, dass der die gleiche Sprache akzeptiert.
Dann kannst du die Konstruktion immer machen und weißt immer,
dass das die gleiche Sprache sein muss
Also die Frage war eben, Entschuldigung, die Frage war,
ob man immer jeweils, sobald man den Automaten vervollständigt,
jeweils dann immer zeigen muss,
dass L von A tatsächlich elf von arschrig ist.
Das muss man nicht jedes Mal machen. Man zeigt das
einmal allgemein für die Konstruktion und dann ist das fertig.
Sonst noch? Gut, dann spielen wir mal wieder mit
diesen Klicker-Sachen. Erste Frage, wie ist der DFA definiert
Adam. Okay. Wer ist für eine fünfte Version?
Fünfte? Nämlich? Okay, er dachte, Sigmar kam
vor dem Z. Wer hat denn Viertens gemacht und warum?
Also nee, ich war das nicht.
Wenn er so fragt, dann war ich das nicht.
Genau. Also erstmal, das ist mehr so eine Fangfrage in Anführungsstrichen.
Streng genommen könnte man sagen, die sind alle richtig.
Kommt darauf an, was man mit den Symbolen meint.
Wenn man, also jetzt mal davon abgesehen,
dass Z, mal davon abgesehen,
dass Z weiterhin die Zustandsmenge sein soll und so weiter
Wichtig ist, wenn man sich jetzt auf die Konvention einlässt,
dass so einen kleinen Buchstabe hier,
also sonst hätte null klein geschrieben oder sonst hätte end klein geschrieben,
wenn das ein einzelner Zustand sein soll und groß geschrieben,
also ein großes Set oder ein großes Z-End,
wenn das eine Menge von Zuständen sein soll,
wenn man sich auf die Konvention einlässt,
dann ist nur eine richtig, nämlich hier die zweite,
weil bei der zweiten als einziges die Möglichkeit hat,
nur einen Staatszustand zu nehmen und eine Menge von Endzuständen.
Wenn ihr jetzt natürlich irgendwie sagt, ist mir egal,
ob ich das klein oder groß schreibe und ihr erzählt dazu
im Text irgendwie hier Zustände, Eingabealphabet, Übergangsfunktion,
einzelner Staatszustand und Endzustandsmenge,
dann könnt ihr das bei jedem machen,
dann sind die alle richtig
Was ich erreichen will mit der Frage, erstens,
die Reihenfolge im Tupel ist eigentlich egal.
Es hat sich halt nur so durchgesetzt,
das so zu schreiben wie hier bei viertens.
Was aber wirklich wichtig ist, ist,
ihr habt einen Startzustand und ihr habt eine Endzustandsmenge.
Also ein einzelner Startzustand, sonst ist es auch nicht die Termine,
sonst könnt ihr am Anfang in unterschiedlichen Zuständen sein.
Das ist doof. Also ein einzelner Startzustand, aber beliebig
viele Endzustände. Also die war so ein bisschen Fangfragen.
Das ist keine Fangfrage
Mehrheitssieg, wenn hier, also wenn das tatsächlich gilt,
dann würde ich das W auch akzeptieren,
aber das dürfte in den seltensten Fällen gehen.
Das geht nämlich nur, wenn W nur genau aus allen Buchstaben besteht,
dann kann ich diese einfache Delta-Funktion nehmen, diese Überführungsfunktion.
Und sobald das Meer ist, sobald das ein ganzes Wort ist,
muss ich irgendwie hier diese erweiterte Überführungsfunktion nehmen und dann eben gucken,
ob ich vom Staatszustand durchlesen von W in einen Endzustand komme.
Und da ZN eine Menge ist und hier auf der
linken Seite Delta Dach von Z0W, ein Zustand,
geht es halt darum, ist der da drin oder eben nicht.
Wenn er drin ist, akzeptiere ich, wenn nicht,
akzeptiere ich nicht. Das vierte hier, da müsst ihr
auf der linken Seite eine Menge stehen, steht es aber nicht.
Also da steht links ein einzelner Zustand,
Recht steht eine Menge, da macht das Gleichheitssymbol
keinen Sinn
Das kann also nicht funktionieren. Und erstens,
wie gesagt, klappt nur in so einem Spezialfall.
Und zweitens, da müsste man jetzt irgendwie genauer sein,
was man damit überhaupt meint.
Set-0 in Set-End überführen, klingt irgendwie ein bisschen komisch.
Also, wenn ich von Z0 aus ein Zustand in Set-End
erreiche, könnte man sagen.
Aber richtig ist die dritte. Wenn wir dann schon dabei sind,
diese Überführungsfunktion, wie ist die denn definiert?
Also die Signatur
. . . .
Ja, sieht gut aus
Über Führungsfunktionen hier im ersten Fall, ein Tubel bestehend aus Zustand,
Zustand, in dem ich bin, und Symbol,
das ich lese, werde abgebildet auf den Nachfolgezustand.
Das macht Sinn. Drittens könnte man auch machen, das ist aber eher ungewöhnlich.
Also da passiert ja im Grunde genommen das Gleiche,
nur dass die Reihenfolge im Tubel vorne tausche.
Aber wir haben es, wir erstens definiert,
drittens könnte man auch machen, findet man auch in einigen Büchern,
das ist aber wie gesagt eher ungewöhnlich.
Zweitens klappt nicht, irgendwie Zustand, Abbild,
also nur den Zustand irgendwie auf so ein Tubelpaar abbilden.
Damit erreiche ich nicht das, was ich erreichen will.
Viertens könnte man vielleicht machen, aber man müsste
das hintere Symbol immer irgendwie ignorieren.
Also man macht damit gar nichts,
deswegen brauchen wir das auch nicht
Also erstens oder drittens bevorzugt erstens. Ich will wissen,
wenn ich in einem Zustand bin und ein Symbol lese,
was ist der Nachfolgezustand?
Geht in euch?
Weiß ich es oder nicht
Das Erschreckende sind die 24 bei B.
Wo sind denn die 17, die A gedrückt haben?
Minus die, die A gedrückt haben aus Versehen oder so.
Wer hat denn A gedrückt? Also A ist richtig,
ne? Er hat ein A gedrückt. Erzähl mal,
wie sieht denn das aus?
Ich wohne. Ja, komplett richtig. Gemeint war nur die Signatur.
War aber komplett richtig. Wie ist denn die Signatur? Genau,
mit dem hier das erste und machen Z-Kreuz Sigmar Stern nach Z.
Und dann hat er eben noch ganz ausführlich erzählt,
wie das jetzt noch definiert ist,
dass man halt das rekursiv definiert und quasi von dem Wort
immer den ersten Buchstaben abspaltet und guckt,
was ist denn dann Delta ZX,
das setzt man wieder ein
Streicht in einen Buchstaben vom Z und immer so weiter. Bis man irgendwo dahin ist,
Delta Dach, Z, Komma Lamda, und da hört man dann auf,
das ist dann Z. Deswegen funktioniert das überhaupt nur mit der Geschichte hier,
weil irgendwann nicht hier das Lamm da stehen,
halb statt dem W. Und dann weiß ich,
Delta Dach, Z, 0 Lamda ist Delta Dach,
Z Lamda, ist der Zustand Z.
Und dann kann ich halt gucken, ob der ein Endzustand ist oder nicht.
1, 2, 2, 4, 5. Jetzt kann man ja,
statt mit Überführungsfunktion zu arbeiten, auch mit diesen Konfigurationen arbeiten,
naja, über Führungsfunktionen braucht man auch,
aber statt mit der erweiterten Überführungsfunktion könnte man mit Konfirationen arbeiten.
Wo kommen die denn her?
So eine Konfiration
Ja, genau. C sieht gut aus, ne?
Mit einer Konfiguration wollte ich abbilden, in welchem, oder wollte ich kodieren,
in welchem Zustand ist der Automat und welches Restwort muss er noch lesen.
Und dieses Restwort, ja,
also aus Sigmar Plus würde noch Sinn machen, so,
das ist das Restwort, aber irgendwann habe ich auch alles gelesen,
dann ist das Restwort quasi Lamda, also muss ich das Lamda auch,
muss ich auch die Möglichkeit haben,
als zweites Element in Tupel das Lamda zu nehmen.
Also muss die Konfiguration hier aus Z-Kreuz-Sigmar Stern sein. Ja,
dann habe ich irgendwie am Anfang Z0W und dann bin ich irgendwie
im Nachfolgezustand Z und von W fehlt der erste Buchstabe und immer so weiter,
bis ich dann irgendwann in einem Zustand bin und zweiten Element,
nur noch das Landa habe und dann kann ich gucken,
ist Z ein Endzustand oder nicht.
Wenn ich jetzt dieses umgedrehte Tee nehme für die Konfigurationsübergänge,
das ist ja eine Relation,
die setzt irgendwie zwei dieser Tupel in Relation zueinander, Konfiguration vorher und Konfiguration,
nachdem ich einen Schritt gemacht habe und wir haben ja gesagt,
Relationen sind ja auch wieder Teilmengen von irgendwelchen anderen Mengen.
Diese Konfigurationsübergangsgeschichte, wovon ist denn das Teilmenge?
Also der Kram hier
Konfirmationsübergänge ist Teilmenge, wovon? Die Relation,
die die Konfirmationsübergänge ausdrückt, wovon ist das eine Teilmenge?
Na? Ja, von welchem? Vom kathesischen Produkt
ist richtig, aber von welchem? Was steht links,
was steht rechts? Es ist ja eine Relation,
setzt ja irgendwie zwei Dinge in Beziehung,
was steht hier,
was steht da
Ja. Konfiguration, sonst wären es keine Konfigurationsübergänge.
Also ihr habt hier irgendwie... So. Kommen wir jetzt wieder.
Ihr habt Links eine Konfiguration, ihr habt rechts eine Konfiguration.
Bei den Konfigurationen habt ihr richtig gesagt,
die sind aus Z-Kreuz, Sigmar Stern.
Und dann ist das Ding hier eine Teilmenge von... Z-Kreuz-Siegmar Stern.
Und das nochmal...
Z-Kreuz-Sigmar Stern
Wenn man möchte, kann man die Klammern auch weglassen.
Aber Z-Kreuzprodukt mit Sigmar Stern, Kreuzprodukt, mit Z-Kreuzprodukt mit
Sigmar Stern. Und die Idee ist dann halt,
dass in diesem Vierer-Tupel die ersten beiden Elemente die Konfirmation sind,
von der ich komme und das dritte und vierte Element die Konfirmation,
in die ich gehe.
Das sind die Konfirmationsübergänge. Letzte Frage. Wenn A,
ein DFA ist, also irgendein endlicher Automat,
was ist jetzt richtig?
Welche Beziehung stimmt
Musik Was ist denn Reck? Bitte? Genau, die
Familie aller regulären Mengen. Was ist da also drin in
Reck? Das ist die Familie aller regulären Mengen ist?
Aldi? Aldi, Aldi, Aldi
Genau, alle regulären Sprachen. Also es sind quasi all
die Sprachen drin, die von irgendeinem endlichen Automaten akzeptiert werden können.
Also wenn es irgendwie eine Teilmenge von Sigmar Stern gibt,
für die ich einen DFA basteln kann, der diese Teilmenge akzeptiert,
dann ist diese Teilmenge in Reck drin.
In Reck sind also wieder Mengen drin. LA ist eine
Menge von Worten und Reck ist eine Menge in der Mengen von Worten
drin sind. Also geht hier das zweite nur.
LA enthalten in Reck
Ja, genau. Erstens und drittens funktioniert damit nicht und
viertens auch nicht. Also erstens, drittens, viertens,
das würde nur klappen, wenn man halt die Elemente aus
LA mit den Elementen aus Reck vergleichen könnte.
Und das könnte man, kann man gar nicht.
In LA sind Worte drin, in Reck, wie gesagt, Mengen.
Also beispielsweise ist in Reck drin die Menge A Stern,
also die Menge, in der das Lamm da drin ist,
das A, A-Quadrat, A hoch 3, A hoch 4.
Das ist da drin. Dann ist da die Menge drin,
A plus, also quasi die gleiche Menge nur ohne das Lamm,
aber das sind ja zwei unterschiedliche Mengen.
Beide Mengen sind in Reck drin,
weil es für beide Mengen einen unterschiedlichen DFA gibt,
der die akzeptiert
Das mit den Buchstaben ist eigentlich nicht so wichtig.
Also du kannst ja, die Frage geht gerade in diese Richtung,
was macht man denn mit diesem Sieg mal?
Muss man das Sigma festhalten oder nicht und sowas?
Im Grunde genommen sieht man halt einfach immer ein endliches Alphabet.
Und solange du dann einen DFA bauen kannst,
der diese Sprache, der irgendwie eine Timing von Sigma Stern akzeptiert,
ist das in Reck drin. Das führt zu so Sachen,
dass da sowohl A-Stern drin ist als auch B-Stern,
als auch C-Stern,
als auch D-Stern und so,
obwohl die sich streng genommen ja
nicht wirklich unterscheiden
Also konntest darauf an, wie man drauf guckt,
aber man kann sagen, das ist eigentlich alles das Gleiche.
Man kann auch sagen, nee,
es hat total unterschiedlich, es ist ein anderer Buchstabe.
Kommt ein bisschen darauf an, wofür man sich gerade interessiert.
Aber du nimmst halt eine endliche Menge von Symbolen, das ist dein Siegma.
Und jetzt interessierst du dich für Timemengen von Siegma Stern.
Und sobald du einen DFA machen kannst für diese Menge,
kannst du sagen, okay,
die Menge ist dann ein Dreck drin.
Und die müssen, also sie können Symbole gemeinsam haben,
müssen sie aber nicht.
Nach Fragen. Im
Gut. Das war so der erste Teil, den wir
so am Montag primär gemacht haben, mit so diesen ganzen Begrifflichkeiten.
Das hier soll euch noch so ein bisschen schwulen,
so, wie sind genau die Zusammenhänge und sowas?
Wie ist es genau definiert, dass man da so ein
bisschen exakt halt reinbringt? Deswegen, wenn ihr da jetzt
irgendwie gerade noch so ein paar Mal falsch gelegen habt,
wiederholt die Begriffe noch ein paar Mal.
Das macht es dann später einfacher, wenn die komplizierteren Automatenmodelle kommen.
Dazu wiederholen einmal. Und dann haben wir noch Folgendes gemacht.
Wir haben uns angeguckt, wir haben uns angeguckt,
wenn wir jetzt so ein DFA haben, Und eine Sprache,
von der wir meinen, das ist die, die er akzeptiert.
Ja, dann ist dieses LA gleich M irgendwie so eine Behauptung,
wo wir sagen, dass diese Worte akzeptiert jetzt der Automat.
Und dann mussten wir eben immer diese zwei Richtungen zeigen,
dass wir einmal gezeigt haben, LA ist eine Teilmenge von M
und gezeigt haben, M ist ein Timing von LA.
Bei dem einen geht man halt vom Wort aus,
dass der Automat akzeptiert, zeigt, dass das auch ein M ist.
Und bei dem anderen geht man vom Wort aus,
dass ein M ist und zeigt, dass der Automat dieses Wort tatsächlich auch akzeptiert.
Und dann haben wir so zwei solche Konstruktionsmethoden kennengelernt,
wenn man jetzt eben eine Sprache hat oder irgendwie von der Sprache weiß,
für die interessiere ich mich jetzt für einen Automaten
Dass vor allem dieses mit was will ich speichern,
dass man sich ein bisschen überlegt, was will ich mir eigentlich in den Zuständen merken.
Und das andere war so eine Art On-the-Fly-Konstruktion,
dass ich mit dem Staatszustand ausgehe, vom Staatszustand ausgehe und mir immer merke,
überlege, wenn ich ein Symbol lese,
weiß ich jetzt irgendwie was Neues, was mich interessiert,
würde ich mir das im Zustand speichern oder nicht.
Genau das waren so die beiden Techniken, die wir da hatten.
Und da muss man eben jedes Mal, wenn man so
einen Beweis führen will, da irgendwie neu rangehen.
Das kann man zwar ein bisschen üben, dass man so ein,
zwei, drei Techniken kennt für dieses LA gleich M zu beweisen,
aber man muss halt jedes Mal wieder neu rangehen.
Und das hier mit den zwei Richtungen,
Ihr müsst zwei Richtungen zeigen und wir empfehlen am Anfang immer,
dass man die sauber trennt, damit man das irgendwie gut sehen kann,
was wo passiert. Man kann natürlich auch irgendwie sagen,
wenn W oder W ist aus M, genau dann,
wenn dieses ist, genau dann, wenn dieses ist,
genau dann, wenn dieses ist, genau dann,
wenn WNLA ist, dann hat man beide Richtungen auf einmal gezeichnet,
so bei genau dann, wenn gelten ja beide Richtungen immer,
dann muss man das nicht trennen, in zwei Teilbeweise,
aber für den Anfang empfehlen wir das immer.
Das übt so ein bisschen mehr.
Habt ihr dazu Fragen zu diesem Konstruieren und dem Beweisen davon
Zum ersten. Dann haben wir ja noch ein bisschen Zeit.
Wer hat denn Blog und Papier, wer hat Papier und Stift mit?
Ja, das sieht ja ganz übersichtlich aus, das ist ja gut.
Dann probiert euch doch mal da dran. Ein komplizierteres Beispiel.
Das Eingabealphabet sieht jetzt schon mal ein bisschen komplizierter aus.
Das Eingabealphabet hier Sigmar, das sind jetzt so was ähnliches wie Lektoren.
Oben Mitte unten steht jeweils eine Zahl aus 0-1. Sprich,
das sind so Vektoren, die von 0-0-
0 bis 1-1-1 gehen.
Wenn ich jetzt mehrere von diesen Symbolen nehme und die
hintereinander schreibe, kommt irgendwie so ein Wort raus.
Und dieses Wort kann ich so interpretieren, dass ich sage,
es gibt eine erste Zeile, es gibt eine zweite Zeile,
es gibt eine dritte Zeile.
Und wenn ich das so mache, kann ich jede Zahl
als Binärzahl interpretieren. Und jetzt kann ich machen,
erste Zeile plus zweite Zeile soll die dritte Zeile ergeben.
Und die Sprache, die nennen wir mal Summen, Summe,
und da sollen genau die Wörter aus Sigmar Stern drin sein,
mit eben genau dieser Eigenschaft,
dass die unterste Zeile die Summe der obersten beiden Zeilen ist
Sprache, klar. Sprache, klar, Sprache.
Bitte? Beim Adieren passieren normalerweise Überträge, also mit.
Sonst gibt es ja nur ein Symbol. Bitte? Übertrag
. Er hatte gerade gefragt wegen Übertrag. Eins plus eins
ist nicht null, sondern null mit Übertrag, genau.
Genau, was muss man also dafür beachten? Man muss halt dann,
wenn ich 1-1 habe,
der muss in der letzten eine Null stehen und dann muss
davor noch das Symbol sein,
0-0-1. Also quasi die ersten
beiden Zeilen können mit Nullen irgendwie aufgefüllt werden,
damit die beiden Zahlen
gleich lang sind
Noch mehr? Setting, klar. Okay,
dann lieg los. Ist summenregulär. Entweder sich überlegen,
naja, das kann nicht klappen, weil irgendwie versuchen,
so ein bisschen rumzuargumentieren, warum das nicht klappen kann.
Wir haben ja noch nicht so richtig Techniken, um das zu machen,
aber man kann das vielleicht irgendwie dann so ein bisschen versuchen,
intuitiv zu erklären. Oder ihr probiert zu beweisen,
dass es regulär ist, indem ihr eben Automaten baut,
der die Sprache akzeptiert und dann eben beweist,
dass er die Sprache tatsächlich akzeptiert.
Und ihr könnt ja mal anfangen mit irgendwie Wörtern,
die nur aus einem Symbol bestehen, was müsste da passieren?
Wörtern, die nur aus zwei Symbolen bestehen,
stört dann da schon irgendwas und so weiter.
Könnt ihr mal, legt los. Blatt, Papier,
Stift, Partner neben euch, links und rechts
und so diskutiert. Legt los. Und in zwei,
drei Minuten gibt es
den ersten Tipp
Musik Musik Musik Musik Musik Musik Musik So, erste Diskussionsrunde
, was ist euch aufgefallen? Was nervt euch möglicherweise,
was stört? Wer hat sofort hingekriegt, kann ja auch
sein.
Keine Probleme
Also mit Überträgen hatten wir ja eine Überträge, sollen da sein,
sonst kann es ja schon sowas wie eins plus eins nicht rechnen.
Und du erweiterst halt die ersten Zeilen möglicherweise irgendwie nach links,
wenn du irgendwie sowas hier hast. Eins plus drei,
dann soll ja irgendwie vier rauskommen, also die Zahl hier.
Dann erweiterst du hier halt noch so, ne?
Also dann hast du diese drei Buchstaben hier.
Und dann geht das
Das passt. Also dass man jetzt quasi eingeschränkt ist,
mit den Wörtern ist nicht so das Problem.
Höchstens vielleicht, dass es Wörter sind,
die du mit einem regulären Automaten nicht akzeptieren kannst.
Das könnte passieren. Dann wäre die Antwort auf
die Frage, ob das regulär ist.
Nein. Was stört euch denn noch so
Mhm. Genau. Ich versuche mal kurz zusammenzufassen,
dass das für die anderen und für den Stream da ist.
Er sagt, er glaubt nicht so richtig,
weil ich muss mir das ja mit den Überträgen irgendwie merken.
Und meistens ist es ja auch so,
das hängt dann davon ab,
was danach irgendwie kommt und dann müsste ich aber wieder zurückgehen können und gucken können,
was da so war irgendwie.
Also so dieses, dass die Überträge
erst spät kommen und so
Nicht drösel das mal auf in zwei Sachen.
Das eine ist zu sagen, mich stört dieser Übertrag.
So, jetzt kann man sich mal überlegen,
kann der Übertrag beliebig groß werden? Also jetzt,
vielleicht hast du das gerade gar nicht gemeint,
aber um den Gedanken mal zu machen, kann der Übertrag beliebig groß werden?
Nö. Welche Zahlenwerte gibt es für einen Übertrag?
Null und? Eins. So. Kann ich mir merken.
0-1 kann ich mir irgendwie merken. Auch so Zehnersystem,
da gibt es dann irgendwie auch nur 0 und Einsatzübertrag.
So, da kann ich irgendwie bemerken. Dieses andere Problem
mit dem, ich muss dann irgendwie ja eigentlich,
ich fange ja an von links zu lesen,
Und irgendwie muss ich dann rückwärts rechnen oder so.
Das nervt schon tierisch. Das kann man sich als ersten Ansatz
überlegen, okay, dann drehen wir es einfach um.
Dann nehmen wir das Problem nicht so,
wie es da steht, sondern wir drehen alle Zahlen um,
dann wird das quasi summenhoch reverse oder so,
dass man die Worte nicht von links nach rechts lesen muss,
sondern von rechts nach links.
Das könnte ja schon helfen, weil jetzt kann ich,
so wie ich es auch hier machen würde, beim schriftlichen Adieren,
da fange ich ja immer rechts an und arbeite mich nach links durch.
Und wenn ich die Wörter jetzt umdrehe,
dann kann ich das vielleicht mit dem DFA wieder irgendwie versuchen
zu machen.
Und jetzt könnt ihr versuchen, genau das abzubilden,
was ein Mensch eigentlich auch machen würde. Wir fangen rechts an,
also der Automat dann links beim Wort,
aber ich fange hier rechts an und dann addiere ich halt immer,
dann gucke ich immer, ja, was muss unten rauskommen,
was muss ich mir null oder eins als Übertrag merken,
falls ja, mache ich weiter und so.
Okay, probieren wir das. Und danach machen wir uns
Gedanken darüber, ob wir das vielleicht wieder umdrehen können,
sodass wir tatsächlich die Sprache da kriegen und nicht Summen Reverse.
Leg los
Musik Musik Musik Untertitel der Amara.org-Community Okay, Ideen?
Der hat einen Automaten, wo er der Meinung ist,
der tut's
Glaube ich nicht. Ich habe doch bestimmt so einen Automaten,
wo sie meinen, dass er das tut, oder?
H, eins, zwei, drei. Ihr habt alle keinen Automaten,
von dem ihr meint, dass er das tut.
Einer, ganz vorsichtig so? Echt nicht? Oder traut
euch alle nur gerade nicht, euch zu melden?
Ja, das Jutas, eins, zwei, drei.
Okay, erzähl mal, was meinst du, was passiert?
Zwei Zustände. Zwei, drei Zustände bezahlen, Schade,
dass wir arbeiten, wir haben 100 Tage verändern würden.
Also die wir gleich behalten, das beschreiben,
die sich verändern würden, die wechseln sich mal.
Im Grunde genommen, fertig. Genau. Machen wir es
mal mit dieser On-the-Fly-Technik. Also das war das Ergebnis nachher
, super. Weißt du, mit so einer On-the-Fly-Technik.
Einen Startzustand zu haben ist immer gut.
Weil irgendwo will ich anfangen zu lesen. Und jetzt geht ja
alle Symbole im Alphabet durch und ihr macht im Grunde genommen
genau das Gleiche wie beim binären Adieren auch.
Also das, also wie das, was ihr machen würdet beim binären Adieren.
Wenn ihr von rechts anfangt mit dem Wort, Und da
steht 0-0-0. Ist die Summe von 0 und 0-0?
Ja. Weiß ich also, der hier ist okay.
Jetzt kann ich mich noch, genau wie er eben meinte,
fragen, passiert hier gerade irgendwas Spannendes?
Bei 0 plus 0-0 passiert irgendwie nichts Spannendes.
Ich weiß quasi, ich habe immer noch eine richtige Rechnung.
Wenn man jetzt schon auf diese Idee kommt mit,
ich merke mir den Übertrag, was bei dir auch schon anklang,
dann kann man sich vielleicht sogar gleich merken,
bei Z0 merke ich mir Übertrag 0 und bei irgendeinem neuen Zustand.
Z1 merke ich mir übertrag 1. Das kann man da schon,
die Idee kann man da schon haben. Aber erstmal weiß ich,
wenn ich 0-0-0 lese, Passiert nichts.
0 plus 0 gerechnet, alles super. Jetzt kommt
der Apparat hier, die Dinger. Wenn die kommen,
dann wüsstet ihr gleich, nee, verrechnet.
1 plus 0, gleich 0, macht keinen Sinn.
0 plus 1 gleich 0, macht keinen Sinn.
0 plus 0 gleich 1, macht auch keinen Sinn.
Die können also alle nicht gehen. Jetzt machen wir das,
was wir vorhin uns überlegt haben, mit diesem Fehlerzustand,
führen uns hier unten noch so einen Fehlerzustand ein.
Und da gehen die jetzt alle hin
So. Jetzt gucke ich mir die hier an. Der hier spannend,
eins plus eins gleich null. Wenn ihr schriftliches Idieren macht,
jetzt sieht das vielleicht sogar irgendwie aus hier, 0,
0, 0. Und nehmen wir mal an,
ihr wisst noch nicht, was jetzt weiter links kommt.
Bis dahin sieht das gut aus. Das ist nur die Frage,
ob jetzt hier richtig weitergerechnet wird und ob einer sich
den Übertrag gemerkt hat oder nicht.
Wenn er jetzt einfach weiterrechnet von rechts nach links,
ohne Übertrag, dann ist die nächste Spalte halt ein Fehler.
Wenn er mit Übertrag richtig weiterrechnet,
ist alles gut
Ihr könntet also,
wenn jetzt ein 1-1-0 kommt als nächstes Symbol,
dann wisst ihr, Symbol ist okay,
aber ich muss mir merken, es gibt eins Übertrag,
damit ich beim nächsten Symbol kontrollieren kann,
wird richtig damit gearbeitet.
Also genau die Idee. Sprich, ich brauche einen neuen Zustand.
Z1. Und da komme ich mit, was war das,
1-1-0 hin? Die Dinger hier,
1-0-1, 0-1-1-1,
die sind auch beide gut, 1 plus 0 ist 1,
0 plus 1 ist 1,
ist okay
Kann man nur zwischendurch hoffen,
dass nicht so viele Leute draußen stehen und zuhören sollen.
Eins plus 0 ist eins und alles so, ja, ist gut.
So, jetzt haben wir, einer fehlt noch,
1-1-1-1 fehlt noch.
1 plus 1, naja, müsste null sein mit 1-Übertrag.
Macht also auch keinen Sinn. Wenn ihr irgendwie von rechts
nach links lest und es kommt als erstes Symbol 1-1-1,
macht keinen Sinn, unten müsste eine Null stehen.
Der führt also auch in den Fehlerzustand.
Jetzt sind wir mit dem ersten Zustand fertig,
mit dem Z0,
alle 18 Symbole benutzt
Der Aero-Zustand geht ganz schnell zu vervollständigen. Egal welches Symbol der liest,
also für jedes X aus Sigma, gibt es noch eine Kante,
die da wieder in den Aero-Zustand führt.
Weil wenn ich da hingekommen bin, bedeutet das ja,
ich habe schon Fehler gemacht in der Rechnung,
irgendwo vom Wort von rechts nach links gelesen, habe ich einen Fehler.
Also will ich da auch nicht mehr raus. Bleibt also
noch der hier und jetzt mache ich das gleiche Spiel wie eben.
Ich gehe alle Symbole durch und gucke,
wo ich hinkomme und ich gehe alles Symbole durch und gucke,
ob die Rechnung stimmt, wobei ich darauf achten muss,
dass ich jetzt einen Übertrag habe
Also wenn jetzt zum Beispiel 0-0-0 kommt,
wo wir hier gesagt haben, das ist okay,
dass wir hier nicht okay.
Das würde so einer Rechnung entsprechen und das ist ja doof.
Wir sind da ja hingegangen, weil wir so einen Übertrag
haben und dann stimmt 0-0-0 nicht.
Also da müsste da unten einstehen. Also 0-0-0
, wenn Mist. Klar. Ihr habt einen Übertrag,
0 plus 0 ist nicht 0 mit dem Übertrag,
sondern 0 plus 0 plus 1. Das ist irgendwie eins.
Also geht die schon mal hier hin.
Jetzt kommen die beiden hier
Jetzt kommen wir wieder. 1 plus 0 plus den Übertrag.
Ist also null. Und ich habe weiterhin einen Übertrag.
Also würde ich mit dem hier bleiben.
Und mit seinem kleinen Bruder 0-1-0 auch.
Bei beiden rechne ich 1 plus 0, dann kommt immer
noch der Übertrag hinzu, also will ich die so haben.
0-0-1,
was passiert da
Ist gut? Okay. 001, was ist mit dem?
Ist der gut oder nicht? Bitte? Ist man nicht.
Genau, was machen wir also? Genau, wir gehen
wieder zurück, ne? 001 gehen wir wieder zurück.
Damit ich 0 plus 0 rechne, plus den Übertrag,
dann kommt da eins raus und jetzt habe ich aber keinen Übertrag mehr,
den ich bemerken muss.
Also kann ich
in Z0 zurückgehen
Das ist quasi so, wenn ihr hier seid in dem Zustand,
das ist quasi so, als könntet ihr sagen,
alles, was ich bisher gelesen habe,
ist eigentlich für meine Rechnung egal.
Da weiß ich schon, das stimmt. Und ich kann das Wort,
was ich jetzt noch lese, genauso behandeln,
wie wenn der vorherige Teil nicht da ist.
So, was haben wir noch? 1-1-
0. Mainz plus 1 und 2, wahrscheinlich.
Ist nicht gut, ne? 1-1-
0 ist nicht gut. Oder verrechne ich mich gerade?
Ne, wir hatten 0-0-
Für den hier, die 1-1-0,
die haben wir noch nicht.
1-1-0 aus Z1 raus ist murks, ne?
1 plus 1 ist 2. Jetzt kommt da noch der Übertrag hinzu,
das müsste also eine 1 sein und ich müsste mir einen im Übertrag merken.
Das ist also Mist. 1-0-1,
ist auch doof, weil ich den Übertrag nicht mitbeachte.
0-1-1 ist auch doof.
Und zu guter Letzt 1-1-1,
der ist okay, ne? Aber ich habe eben weiterhin
Übertrag. 1 plus 1 plus 1 ist irgendwie 3,
also einzeln schreiben,
eins im Übertrag
Okay, das ist der Automat. Also weiter können wir
nicht konstruieren. Der hat jetzt acht Kanten,
der hat acht Kanten, der hat acht Kanten.
Fertig. Behauptung, der Automat akzeptiert tatsächlich Summen-Reverse,
also diese Sprache Summen, aber umgedreht.
Wer glaubt's? Yeah. Eins, zwei, drei,
vier, fünf.
Ja. Sehr gut
Total gute Idee. Im Moment akzeptiert er gar nichts.
Was findest du gut als Endzustand? Z0, Z1 auch.
Dann würde ich das Wort, nehme mal ein einfaches 110, ne?
Das würde ich jetzt akzeptieren. Willst du das?
Also lassen wir das. Eine korrekte Rechnung habe ich ja
nur, wenn ich fertig bin mit dem ganzen Übertrag.
Also wenn ich den nicht mehr habe. So. Korrigieren wir
die Behauptung, das ist der Automat der Summ Reverse akzeptiert
Also es hatten fünf Leute geglaubt, sechs, sieben vielleicht.
Ja. Nee, das kommt darauf an,
ob du das in der Sprache drin haben willst oder nicht.
Also wenn du jetzt wirklich sagst, als korrekte Rechnung akzeptiere ich nur,
wenn auch was auf dem Blatt Papier steht,
dann würde man das vielleicht rausnehmen wollen.
Dann musst du dir einen Staatszustand einführen,
der kein Endzustand ist und der geht jetzt in diesen Zustand Z0,
wenn er irgendwas liest, was keinen Übertrag hat.
Und ab da geht es dann genauso weiter wie da.
Dann würdest du
das so machen
Hier ist ein bisschen einfacher, auch einfach zu sagen,
okay, eine leere Rechnung ist auch eine korrekte Rechnung.
Das macht gleich die Argumentation ein bisschen einfacher.
Würde ich auch persönlich so irgendwie sehen,
wenn man nichts hat und das ist eine richtige Rechnung.
Aber auch schöner Spezialfall, wo man sich einmal kurz
Gedanken drüber machen will, will ich das oder nicht?
Also will ich das Lamm dann wirklich akzeptieren?
Ja oder nein? Okay, jetzt haben wir relativ wenige
gesagt, sie glauben, dass das stimmt.
Dann müssen wir es beweisen, ne?
Also wenn wir es alle nicht glauben,
müssen wir
es beweisen
Das dient vor allem dazu, dass ihr ein etwas komplexeres Beispiel seht,
sowohl bei der Konstruktion als auch beim Beweis.
Weil bei den ersten Beispielen aus der letzten Veranstaltung,
da waren halt ein paar Leute so ein bisschen so,
nee, aber da brauche ich ja die ganzen Beweise nicht,
weil das sehe ich doch und so.
Hier sieht man es jetzt vielleicht nicht mehr oder nicht mehr so gut.
Und also ich habe gestern, als ich es konstruiert habe,
ich glaube, ich habe so viele Fehler gemacht,
ich musste das ständig korrigieren, als ich es bewege.
Also ich habe es dann angefangen zu beweisen und dann dachte ich irgendwie so,
ja okay, wenn ich jetzt da bin,
passiert das und das, gucke in Diagramm und denke so,
ja nee, steht da falsch.
Also wir korrigieren und bis man es dann
endlich richtig hatte
Also der beweist ihn quasi auch dazu loszulegen, zu versuchen,
es zu beweisen, beim Beweisen vielleicht festzustellen,
wo man irgendwo einen Fehler gemacht hat, das dann zu korrigieren,
dann den Beweis wieder neu anzufassen und so weiter.
Wenn man das beweisen möchte, habe ich da eigentlich Zeit für?
Ja. Wenn ich das beweisen möchte, Ja,
gut. Okay, wenn ich das beweisen möchte,
wir machen das mal zusammen und das wird jetzt klatte und ich
schreibe es dann nochmal einen schönen heute Abend.
Wenn ich das beweisen möchte, Das ist relativ komplex.
Das Problem ist, man hat nicht wirklich viel, womit man arbeiten kann.
Man kann halt, so wie du das gemacht hast,
irgendwie begründen, sodass man sagt, naja,
bei der Konstruktion habe ich mir gedacht,
bei Z0 merke ich mir null Übertrag.
Bei Z1 merke ich mir einen Übertrag. Und jetzt wird es aber irgendwie schwierig,
dann so diese Argumentation drin zu haben, naja,
wenn ich jetzt schon irgendwie tausend Symbole gelesen habe,
jetzt kommt irgendwie wieder eins, passiert jetzt was mit dem Übertragen.
Also es wird eng, das wird knifflig so.
Und wie gesagt, es war auch so,
dass ich beim Konstruieren gestern immer Fehler drin hatte.
Ich hatte halt irgendwie genau den gleichen Gedanken,
hatte dann aber irgendwie bei diesen Kanten,
die von links nach rechts gehen oder so,
eine davon war dann plötzlich falsch oder sowas
Man dann doch manchmal so irgendwie mit dem Übertrag einmal kurz
falsch rechnet oder so. Blöd. Was man machen kann,
also das Problem ist ja jetzt,
ich habe mich so wirklich viel zum Damit-Arbeiten,
was man immer schön machen kann, ist,
wenn man mehr Sachen haben möchte,
mit denen man arbeiten möchte, man macht einen Induktionsbeweis.
Dann kriege ich nämlich durch die Induktionsannahme richtig schön viel geschenkt
und kann mit der Induktionsannahme arbeiten. Dann habe ich was,
womit ich arbeiten kann. Problem in dem Fall,
ich muss die Induktionsbehauptung irgendwie überhaupt mal hinkriegen, aufzustellen.
Ich fange also irgendwie an und sage sowas wie,
mit welcher Richtung ich da anfange
Fangen wir mal mit der hier an. Sei WNM. Ja,
wir wollen erst zeigen, wie es in M,
dann ist W auch in LA,
also wird auch von dem Automaten akzeptiert.
Sei W also in M und jetzt machen wir folgendes mit Induktion
, wollen wir zeigen.
Wir zerlegen das Wort weh in seinen einzelnen Buchstaben.
Wir machen also Induktion über die Länge des Wortes.
Könnt ihr
das alle lesen
Okay. Wir machen Induktionen über die Länge des Wortes und sagen jetzt,
wenn W1 bis WN eine korrekte Rechnung ist,
mit korrekte Rechnung soll bedeuten,
muss man jetzt einmal kurz irgendwie dazuschreiben oder dazu definieren.
Eine korrekte Rechnung soll bedeuten, bis dahin habe ich keinen Fehler gemacht.
Also ich gehe von rechts nach links quasi bei meiner schriftlichen
Rechnung durch. Der Automat halt von links nach rechts,
weil wir das Wort umdrehen. Die Rechnung ist bis dahin
korrekt, aber es gibt vielleicht noch einen Übertrag.
Aber bis dahin habe ich quasi keinen Fehler finden können.
Das soll korrekte Rechnung bedeuten. Nicht in dem Sinne von,
ich habe es ausgerechnet und das Ergebnis ist richtig,
sondern im Sinne von bisher gibt es keinen Fehler bei
der Rechnung
Und es könnte aber noch weitergehen. Und jetzt wollen wir mit Induktion beweisen,
wenn das eine korrekte Rechnung ist, mit Überhang null,
also wenn es keinen Übertrag, wenn es keinen Übertrag gibt.
Eine korrekte Rechnung ist mit Übertrag null, dann kann A
das Wort weh lesen und ist in Z null.
Ist weh korrekte Rechnung mit Übertrag 1. Gut.
Dann kann weh das Wort auch lesen,
ist aber in
Okay. Das klingt irgendwie ganz hilfreich so. Das ist nämlich auch so,
wenn wir das beweisen können mit Induktionen,
dann können wir nachher sagen, ist ja super,
wenn wir aus M ist, also aus Summen,
nicht aus M, wenn das aus dieser Sprache Summ ist,
oder streng genommen Summen hoch Air Reverse,
wenn das aus Summen ist,
dann ist es ja eine korrekte Rechnung.
Nur solche Wörter sind ja in Summen
überhaupt drin
Und dann weiß sie, dann kann ich das hier benutzen und kann sagen,
okay, wenn wir in Summe eher drin ist,
ist es eine korrekte Rechnung, die hat Übertrag null.
Also, wenn ich das der Penduktion beweist, bewiesen habe, weiß ich,
Automat A liest das Wort und ist in Z0. Bedeutet, er akzeptiert.
Also genau, was ich haben will. Ich muss das also nur noch mit Induktion beweisen. Problem ist überhaupt,
auf die Idee zu kommen, das mit Induktion zu machen,
auf die Idee kann man immer ganz gut kommen,
wenn man sagt, ich will diese Schwierigkeit,
dass man irgendwie das Wort sieht und immer denkt,
ja, ich will ja eigentlich mit Teilen des Wortes argumentieren,
die ich jetzt vielleicht nicht mehr habe.
Ich will ja wissen, ist der Übertrag null oder
eins oder sowas
Wenn ich sowas irgendwie machen will,
dann bietet sich Induktion an und dann kann man halt versuchen,
solche Sachen mit einem Induktionsbeweis über die Wortlänge zu machen.
Und dann kann man sich überlegen, was wollte ich eigentlich erreichen?
Ich wollte ja gerade erreichen, dass der Automat,
wenn das eine korrekte Rechnung ist und keinen Übertrag hat,
in Z-0 ist.
Und wenn es eine korrekte Rechnung ist und der Übertrag 1 hat,
er in Z1 ist, also versuche genau das zu beweisen.
Induktionsbehauptungen aufgestellt, Induktionsanfang. Jetzt habe ich also
nur Wörter der Länge
Jetzt geht man, ach man, jetzt geht man,
weil, jetzt geht man,
weil das Wort ja jetzt die Länge eins hat,
geht alle Symbole durch und zeigt,
dass das richtig vom Automat,
also dass es vom Automaten gelesen werden kann und dass er tatsächlich auch wahlweise in Z0 oder Z1 ist.
Der Schritt ist relativ einfach, weil wir uns genau
die Gedanken ja hier beim Konstruieren gemacht haben. Trotzdem,
der Übersichtlichheit halber geht man die alle durch und sagt,
okay, wenn W1 dieses Symbol ist, 100,
keine korrekte Rechnung, brauche ich also nicht beachten.
010, keine korrekte Rechnung, brauche ich nicht beachten.
0010, keine korrekte Rechnung, brauche ich nicht beachten und
so weiter. Die vier brauche ich alle nicht.
Dann gehe ich die drei hier oben durch
Und stell fest, alle drei Symbole sind eine korrekte Rechnung
und überführen mich richtigerweise in den Zustand Z0.
Es gibt ja auch keinen Übertrag. 110, korrekte Rechnung,
boah, ich sag jetzt langsam, korrekte Rechnung.
Und überführt mich in Z1, ich merke mir den Übertrag.
Also funktioniert genau das, erreicht genau das,
was ich da in der Induktionsbehauptung aufgestellt habe.
Also wir gehen alle Symbole aus Sigma durch
Und sehen das bei korrekten Rechnungen.
Oder in
Ja. Das ist, wie gesagt, relativ einfach im Induktionsanfang,
weil man ja den Automaten genau daraufhin konstruiert hat.
Jetzt macht man die Induktionsannahme und sagt, diese Behauptung,
die ich da aufgestellt habe,
soll für ein N größer gleich 1 gelten und zumindest für
N gleich 1 haben wir sie ja gerade gezeigt
So, Induktionsschritt. Jetzt haben wir dieses Wort und es geht bis N plus 1.
Also besteht aus N plus 1 Buchstaben. Und wir wollen
die Induktionsannahme benutzen. In der Behauptung sagen wir,
also das, was wir zeigen wollen, ist,
wenn wir eine korrekte Rechnung ist,
dann überführt sie mich eben je nach Übertrag nach Z0 oder Z1.
Jetzt kann ich erst mal benutzen,
wenn W1 bis WN plus 1 eine korrekte Rechnung ist.
Dann muss die bis WN ja auch korrekt gewesen sein.
Kann ja nicht falsch gewesen sein und
danach korrigiert werden
Ihr könnt ja nicht irgendwie schon einen Fehler gemacht haben und
das dann korrigieren. Das heißt, ihr wisst,
wie eins bis WN war eine korrekte Rechnung,
entweder mit Übertrag 0 oder eins und nach Induktionsannahme wisst ihr dann,
entweder überführt ihr euch nach Z0 oder nach Z1.
Also hier die Induktionsannahme quasi am Anfang benutzt, Paul.
Ob ich die Frage ist gerade, ob ich bei
meinem Automaten nicht mit der Wortlänge 0 anfangen müsste.
Nee, null behandle ich einfach als Spezialfall nochmal gesondert.
Da sage ich, das gilt jetzt für alle Wörter,
die länger als einzeln und dann sage ich null,
klappt auch
Ja, es klappt. So,
wenn W eine korrekte Rechnung ist, korrekte Rechnung ist.
Ich sehe das nicht mehr. Also dann ist auch W1
bis WN eine korrekte Rechnung und wir können die Induktionsannahme anwenden.
Das heißt, So,
das wissen wir und jetzt überprüfen wir wieder alle Symbole,
also wir gehen jetzt für WN plus 1 wieder
alle Symbole durch und splitten noch auf und die Fallunterscheidung,
entweder sind wir gerade in Z0 oder wir
sind in
Jetzt geht man wieder alle Symbole durch, ganz sauber.
Ich weiß jetzt, ich bin hier und ich hatte bisher keinen Übertrag.
Jetzt gehe ich wieder alle Symbole durch, das ist relativ langweilig,
weil das Gleiche passiert wieder beim Induktionsanfang und ich kann wieder sehen,
wenn WN plus 1 00 ist, Ist okay.
Wenn es 1-0-1 ist, ist es okay,
wenn es 0-1-1 ist, ist es okay,
das überführt mich alles richtig nach Z0. 1-1-0 überführt mich richtig nach Z1,
weil dann ist, wie 1 bis WN plus 1,
ja eine Rechnung, die korrekt ist,
die aber noch übertrag 1 hat am Ende.
Und dann muss ich ja in Z1 sein, bin ich.
Überführt mich dahin. Und die anderen hier,
die machen wieder alle Blödsinn, genauso wie beim Minuktionsanfang.
Da passiert also
nichts Neues eigentlich
Hm. Zweite Möglichkeit. Wir sind nach dem Lesen von W1 bis WN in Z1.
Dann wissen wir, wie eins bis WN korrekte Rechnung hat Übertrag
1. In Z1. Das heißt, es gibt einen Übertrag.
Und jetzt macht man wieder das Gleiche. Jetzt macht man wieder das Gleiche,
man geht alle Zustände durch, man geht alle Symbole durch,
man ist jetzt in Z1 und jetzt geht man für WN plus 1 alle Symbole durch und überprüft,
dass das den Automaten richtig, wahlweise nach Z0 oder Z1 führt.
Also auch das, was wir bei der Konstruktion schon gemacht haben,
aber jetzt eben nochmal wiederholen, dass man möglich heißt,
okay, NZ1, wenn ich in Z1 bin,
dann habe ich jetzt Übertrag 1, der da 100,
ist ja mit Übertrag,
also 1 plus 0 plus den Übertrag,
musste also eine Null hin und ich muss da bleiben,
ist richtig.
Der ist richtig,
der ist richtig
001 mit dem Übertrag ist die Rechnung richtig und ich habe
keinen Übertrag, führt mich richtig nach Z0.
Die anderen führen mich richtig zum Aero-Zustand. Also klappt das,
ne? Konstruktion sieht sauber aus. Hab keinen Fehler gemacht.
Könnte ich jetzt auch alle einzeln durchgehen. Das heißt,
es gibt keinen Übertrag. Zum Beispiel nehmen wir mal ein.
Überführt eins 00. 1 plus 0 plus 1 wegen des Übertrags.
Kommt also null raus und wir haben wieder den Übertrag
und so
Notiz für mich ausführen. Ja, jetzt haben wir
alle Fälle. Entweder sind wir nach Lesen von Vereins
bis WN ja in Z0 oder wir sind in Z1.
Andere Fälle gibt es nicht. Induktionsschritt fertig. Also mit dem,
was wir eigentlich beweisen wollten hier oben, das da.
Damit folgt dann jetzt Wir eins bis wählen ist eine korrekte Rechnung mit Übertrag null,
dann kann A das Wort W lesen und ist in Z0.
Da wir jetzt wissen, wie es in Summ R das hier um,
das da, da wir das wissen, wissen wir,
wie ist eine korrekte Rechnung, hat keinen Übertrag.
Das heißt, es überführt uns nach Z0. Das heißt,
wir wissen, es wird vom Automaten akzeptiert,
fertig.
Und jetzt muss man noch die Rückrichtung machen. Jetzt muss
man noch zeigen, wenn wir vom Automaten akzeptiert wird,
dann ist es tatsächlich auch in dieser Sprache Summen hoch eher drin.
Kann man so ähnlich vorgehen. Kann man auch wieder sagen,
ich mache eine Induktion und zwar, wie mache ich die diesmal?
Mache ich auch wieder eine Induktion über die Wortlänge und zeige,
wenn der Automaten nach Lesen von W1 bis WN in Z0 ist,
dann ist es eine korrekte Rechnung mit keinem Übertrag,
ist es in Z1,
ist es eine korrekte Rechnung mit einem Übertrag,
ist er in Z1,
ist es
eine falsche Rechnung
Das zeige ich dann mit Induktion.
Und dann kann ich zeigen, oder dann weiß ich,
da das Wort ja akzeptiert,
dass es ihn nach Z0 überführt
Das kann man jetzt noch mit Induktion zeigen.
Und wenn man das mit Induktion gezeigt hat,
wo man so ähnlich wie eben auch wieder Feinunterscheidung machen muss und so weiter,
dann kann man nachher Schluss folgern, okay, wie ist ja in LA.
Das heißt, weil der Automat vollständig ist,
das kann man die ganze Zeit auch noch ganz gut gebrauchen.
Das heißt, A, kann W. lesen und ist danach
in Z0, weil sonst würde er ja nicht akzeptieren.
Und wenn ich das weiß, dann steht da,
W ist eine korrekte Rechnung mit Übertrag Null,
also muss es in Summen hoch eher drin sein.
Fertig. Fragen zum ersten Fragen zum zweiten Fragen zum
dritten,
Okay, dann seid ihr jetzt genug mit dem recht komplizierten Beispiel gequält.
Ich schreibe das nochmal in schön auf und baue das dann in die Folien ein.
Ja, das ist halt ein komplexeres Beispiel, um manchmal klarzumachen,
dass diese Beweise für Automaten eben auch irgendwie schwierig sein können. Und wie gesagt,
also man macht da auch leicht mal einen Fehler,
die man dann nebenbei im Beweis ganz gut finden kann,
weil man dann eben bei diesem Beweis im Induktionsschritt weiß man dann,
okay, ich muss wirklich nochmal sauber alle Symbole durchgehen,
baue ich nachher auch so ein da in die Vereinunterscheidung.
Und dann kann man immer sehen,
dass man da sich vielleicht doch nochmal vertan hat und sowas
Aber klar, da steckt auch wieder die Konstruktionsidee überall mit drin.
Macht ja auch Sinn. Ich will ja beweisen, dass
meine Konstruktionsidee richtig ist. Gut. Fragen zum ersten,
zum zweiten. Im dritten? Hier wollte ich vor
50 Minuten sein. Das heißt, die übrigen 13,
14 Folien, die machen wir dann wohl morgen.
Aber bevor wir, bevor ich euch alle entlasse,
dass ihr das Modell schon mal gesehen habt.
Diesen NFA. Mal fernab vom NFA. Wir haben ja
diesen DFA. Was könnt ihr euch alles für Stellschrauben vorstellen?
Was könnte man alles ändern
Bitte? Man könnte die Übergangsfunktion ändern, wie?
Pole. Ich führe Magneten ein, die den Lesekopf randomisiert
über das Band ziehen, das wird bestimmt auch spannend.
Was könnte man machen? Lasst eure Idee für eure Fantasie
freien Lauf
Man könnte die Anzahl der Zustände,
die gleichzeitig im Automaten erreicht werden können, ändern.
Genau, das führt zu diesem NFA, das kann man
nochmal machen. Bitte? Mehrere Startzustände. Auch gut,
dann ist zumindest der Anfang irgendwie uninterminiert. Das kann man
nochmal machen. Alphabet 0-0 und 1 zulassen,
das ändert tatsächlich gar nicht so viel, aber das könnte man auch,
mein Alphabet 0-0 und 1 zulassen.
Was kann man noch machen? Heute bin ich noch Stellschrauben. Bitte? Ja,
man kann irgendwie Datenstrukturen wie zum Beispiel den Stack einführen,
mit dem der Automat noch Informationen zusätzlich speichern kann.
Also ein Keller oder dass man ihm einen Baum gibt,
wo er Sachen ablegen kann, irgendwie sowas.
Das kann man auch machen
Mehrere Köpfe, also dass ich mehrere Köpfe habe,
die übers Band gehen, mehrere Bänder,
dass ich nicht nur ein Wort lese, sondern mehrere,
ich kann die Akzeptanzbedingungen ändern, dass ich irgendwie sage,
sobald ich einen Endzustand sehe, akzeptiere ich das Wort und nicht erst,
dass ich es zu Ende lesen muss,
kann ich auch ändern,
zig Stellschrauben.
Wurden, glaube ich, auch alle historisch untersucht so,
die wir uns jetzt ansehen, ist die, die,
weiß ich nicht mehr genau, da irgendwo auftrat.
Diese Idee mit beim DFA, deswegen ja deterministisch,
gibt es zu einem Zustand Z und einem Symbol,
das ich lese,
genau einen Nachfolgezustand
Nachfolgezustand also determiniert. Das unter anderem kann man aufweichen.
Sieht dann irgendwie so aus. Dann sage ich irgendwie,
wenn ich in Z0 bin und ein A lese,
dann kann ich entweder nach Z1 gehen oder nach Z2. Oder beides kommt noch darauf an,
wie man jetzt die Semantik irgendwie definieren will.
Diese Mantik, die man da nachher drauf macht, ist,
dass man sagt, sobald es dann eine mögliche Rechnung gibt,
in der ich akzeptiere, akzeptiere ich das Wort.
Also wenn ich hier beispielsweise dem Automaten das Wort A gebe
und nicht mehr, dann gibt es die eine Rechnung,
die ihn von Z0 nach Z1 führt, da akzeptiert er nicht.
Und es gibt eine Rechnung, die ihn von Z0 nach Z2 führt, da akzeptiert er.
Und da es auf diesem Wort mindestens eine Rechnung gibt,
auf der er akzeptiert, akzeptiert er Automat.
Dass das technisch irgendwie nicht zu realisieren ist,
zu sagen, jo, ich führe das jetzt alles,
also ich gucke mir quasi alle Rechnungen gleichzeitig an,
das ist was anderes, aber so von der Idee des Nicht-Eterminismus,
es können mehrere Sachen gleichzeitig passieren und die Gute suche ich mir nachher raus.
Also wenn irgendwo was Gutes passiert, dann bin ich früher.
Das Wort AC würde ich auch akzeptieren,
Da gibt es streng genommen auch zwei Rechnungen.
Die eine geht eben mit dem A von Z0 nach Z1
und da blockiert der Automat.
Also da liest er nicht mal mehr zu Ende.
Eben war es ja so, dass er beide zu Ende liest.
Und hier wird er jetzt dann irgendwie in Z1 blockieren.
Letzte Clicker-Frage, dann lasse ich euch auch gleich.
Wie würdet ihr diese Überführungsfunktion definieren? Also die Idee hier,
ich will mit A zu mehreren kommen,
wie würdet ihr das machen
Musik Mhm. Wer ist denn für ganz anders gewesen?
Idee. Okay, einfach anders. Wir wollen ja
ausdrücken können, dass wir in mehrere Zustände wechseln können.
Also abhängig vom Zustand, in dem ich bin.
Erstes Z und Eingabesymbol, das ich lese, das Sigma,
muss ich irgendwie hier auf der rechten Seite mehrere Zustände haben können.
Das heißt, das erste, das funktioniert nicht,
das ist die Überführungsfunktion beim DFA,
wenn ich die hier genauso definieren wollen würde,
dann müsste ich irgendwie für den Zustand Z0 und das Symbol A,
dass ich lese, hier irgendwie zwei Menge des Wertebereichs definieren können,
das kann ich nicht machen.
Das wird nicht funktionieren. Also ich kann nicht sagen,
Z0A ist Z1 und Z0A ist Z2, das geht nicht.
Also ich brauche auf der rechten Seite irgendwie was,
dass ich mehr Sachen ausdrücken kann.
Das klappt mit zweitens und drittens. Bei zweitens könnte ich sagen,
Z1 konkretiniert mit Z2 und bei drittens sage ich,
die Menge, die Z1 und Z2 enthält.
Man hat sich auf drittens geeinigt, unter anderem deswegen,
weil man dann schnellen Zugriff auf die Elemente Z1 Z2 und so hat.
Bei zweitens bräuchte man so Sachen wie irgendwie Zugriff auf das
erste Symbol im Wort, auf das zweite Symbol im Wort,
kann man sich zwar auch
alles einführen
Aber nicht so handlich, wie irgendwie mit Mengen zu arbeiten.
Hier kann ich auch so mit Durchschnitten arbeiten und Vereinigungen und all sowas, das ist ein bisschen schicker.
Ergo hat man drittens gemacht für den NFA und an der Stelle,
genau, hier steht es nochmal nach Lesen,
ist halt dann nicht deterministisch,
sowohl in Z1 als auch in Z2 und informal,
was ich schon gesagt habe, akzeptiert er dann eben,
sobald es irgendeine Rechnung gibt, in der er einen Endzustand erreicht.
Und was wir morgen machen wollen, ist,
wir gucken uns das Modell nochmal ein bisschen genauer an,
also was müssen wir alles anpassen,
wenn wir die Überführungsfunktion anpassen,
müssen wir auch die erweiterte Überführungsfunktion anpassen und so weiter
Dann wollen wir da gucken,
so was wir vorhin bei diesem vollständigen DFA kurz diskutiert haben,
ist der echt mächtiger als der DFA.
Also kann ich damit wirklich mehr machen als mit dem DFA
oder können die gleich viel?
Oder kann vielleicht sogar der DFA mehr oder so?
Welches Modell ist mächtiger? Das machen wir morgen.
Bis morgen 8 Uhr.