Abwartenlos. Das funktioniert spätestens ab der dritten, vierten Veranstaltung
so nicht mehr. Ich glaube, da redet ihr dann
einfach weiter. Wer hat heute Morgen schon eine Veranstaltung?
Wer hatte noch keine Veranstaltung? Willkommen zum Semesteauftakt.
Formale Grundlagen der Informatik 1
ist die Veranstaltung
Das ist das ganz grundständige Theoriemodul in der Informatikausbildung,
wo so allerlei Sachen drankommen, die man als Informatiker so wissen sollte.
Gilt als ein relativ schwieriges Modul, weil so diese Vertrautheit mit mathematischen Notationen,
Formalismen und so, das ist irgendwie für viele unvertraut.
Das kommt so in der Schule heutzutage nicht mehr vor und es bereitet da dementsprechend Probleme.
Ich hatte neulich eine mündliche Prüfung in FGI 3,
das ist dann so das Mastermodul, aus formale Grundlagen der Informatik
3. Er hatte seinen ersten Versuch bei mir im Februar,
Dass er dann gnadenlos gescheitert, die Prüfung lief dann so,
also mündliche Prüfung kennt ihr irgendwie aus dem Abitur in der mündlichen Prüfung.
Studie sitzt da, Professor sitzt da, Professor stellt Fragen,
Studie beantwortet Fragen, das ist so grob eine mündliche Prüfung.
Dann gab es so vier Themen und dann meinte ich so,
ja, hier kommen Thema zwei oder drei,
womit willst du denn anfangen?
Da sagt er, oh, die habe ich mir beide nicht angeguckt.
Ist okay? Da meinte ich, alles klar,
dann hier vielleicht Thema vier. Da sagt er,
oh nee, da bin ich gar nicht mehr zugekommen.
Meinte ich, okay, aber was soll ich denn fragen
Ja, das weiß ich jetzt auch nicht. So grob
der erste Versuch. Zweiter Versuch, also ich erzähle jetzt nicht,
wie wir dann die 20 Minuten Prüfungszeit totgeschlagen haben,
aber so lief grob der erste Versuch. Zweiter Versuch,
anderthalb Monate später, grandiose Prüfung, 1-0,
also wirklich grandios, 1-0. Ja,
und dann geht man nach der mündlichen Prüfung,
geht der Studie immer einmal raus, wir besprechen die Note,
ist bei einer 1-0 meistens relativ überflüssig,
aber Studie geht einmal raus,
darf sich ein bisschen aufregen und dann kommt er wieder rein und sagt,
was habe ich für ein Loot?
Und dann meinte er, also alles super 1-0.
Da dachte er so, ja
Bringt er irgendwie doch was mit dem Vorbereiten, ne?
Ergo, warum erzähle ich das? Diese Module, die
gelten immer als schwierig. Meistens liegt das tatsächlich daran,
dass man irgendwie nicht so die Menge an Zeit reinsteckt,
die man da vielleicht eigentlich reinstecken sollte.
Das ist auch so unterschiedlich. Einige müssen viel Zeit reinstecken,
einige müssen weniger Zeit reinstecken. Bei FG3 war es tatsächlich so,
dass die Leute, die durchgefallen sind,
wenn man die gefragt hat, sag mal,
wie lange habt ihr euch denn darauf vorbereitet?
Dann haben die eigentlich durch die Bank durchgesagt, eigentlich überhaupt nicht.
Dann kann das auch irgendwie nicht funktionieren. Und bei solchen Modulen hier,
gibt es ja immer im Semester noch diesen Übungsgruppenbetrieb.
Da kommen wir auch gleich dazu. Das heißt,
man muss eigentlich im Semester auch immer irgendwie was tun.
Man kann das nicht alles in die vorlesungsfreie Zeit schieben.
Und bei diesen Theoriemodulen ist es anders als, ich würde jetzt nur sagen,
wenn ihr so eine Softwareentwicklung 1-Modul hört oder so.
Und das geht so los mit irgendwie zwei Jahre Ausdrücke,
kann man addieren, wenn man Plus dazwischen schreibt.
Dann denkt man so, ja, okay, Check,
habe ich verstanden. Und später kommen irgendwie die schwierigen Sachen so,
wo man denkt so, oh, scheiße,
jetzt muss ich mal anfangen, das Buch zu lesen oder so.
Hier ist es so ein bisschen so, nicht unbedingt,
dass es am Anfang irgendwie besonders schwierig wäre oder so.
Es ist nur so, dass am Anfang
relativ viele Begriffe eingeführt werden
Und wenn ihr dann am Anfang den Begriff nicht versteht und
dann irgendwie in der dritten oder vierten Vorlesung dieser Begriff benutzt wird,
dann könnt ihr natürlich logischerweise der Vorlesung nicht folgen.
Das ist so, wie wenn in der Schule irgendwie einen englischen Text lesen solltet und ihr sagt,
naja, die Vokabeln habe ich mir nicht angeguckt, aber ich kann ja mal anfangen zu lesen.
So, das klappt irgendwie nicht. Deswegen,
wenn ihr hier am Anfang merkt,
dass ihr irgendwie Probleme habt mit den Begriffen so,
dann investiert da die Zeit, kommt irgendwie zu uns,
kommt zu euren Übungsgruppenleitern, dass wir euch dabei irgendwie unterstützen können,
wenn ihr euch gar nicht meldet sozusagen, wenn ihr irgendwie sagt,
okay, ich habe es nicht verstanden,
ihr geht nach Hause und fertig und macht die Tür zu,
dann können wir euch auch nicht helfen.
Also da merken wir auch nicht,
dass es irgendwo
ein Problem gibt
Ich erkläre nachher noch mal ein bisschen was zu Feedback schleifen
und so, wie wir das machen wollen mit euch.
Aber das ist schon mal so der Aufruf,
investiert am Anfang Zeit und kommt gerne zu uns,
wenn ihr irgendwie Probleme habt.
So, jetzt kommen zehn eher langweilige Folien mit dem ganzen Organisatorischen.
Wie sieht so eine typische Woche aus? Montag,
Dienstag, Vorlesung. Dienstag bis Freitag, die Übungsgruppen.
Da kriegt ihr immer einen neuen Zettel, sollt im Übungsgruppenbetrieb
die Präsenzaufgaben bearbeiten. Dann gebt ihr die Übungsaufgabe der Vorwoche
zurück und ihr kriegt die Übungsaufgabe der Vor-Vorwoche wieder
Also Übungsgruppenleiter korrigiert das dann und gibt euch das wieder.
Freitag gibt es immer so einen Stoß neuer PDFs,
da gibt es dann irgendwie die Präsenzlösung für die Woche,
die Musterlösung für die gerade abgegebenen und die neuen Aufgabenzettel.
Und dann gibt es Freitag noch ein Tutorium. Im Einzelnen,
Vorlesung, Montag 12 bis 14, ist okay,
Dienstag 8 bis 10, ist schon unangenehm.
Müssen wir leider durch. Aber Vorlesung wird aufgezeichnet. Es soll
auch einen Livestream geben, haben wir schon einen Livestream?
Nee, okay. Wir haben ab morgen oder so
einen Livestream
Heute funden, vielleicht noch nicht. Morgen, übermorgen haben
wir unseren Livestream. Und meistens irgendwann nach der Vorlesung
ist das bei Leture to Go. Ihr brabbelt schon,
denken die ersten schon so, dann kann ich ja jetzt gehen.
Es gibt ein Video, alles klar, tschüss.
Und einmal kurze Vorlesung inhaltlich, zweigeteilt, Automatentheorie bis ungefähr
mit dem Ei-Logik, ab Mitte Mai, so grob.
Übungsgruppenbetrieb. In den Übungen kriegt ihr den neuen Aufgabenzettel,
üblicherweise am Freitag schon online, dass ihr schon mal drauf gucken könnt,
dass ihr irgendwie so ein bisschen wissen könnt, oh,
die Begriffe kommen wohl vor,
kann ich irgendwie mal in der Vorlesung besonders auf die Begriffe
Und dann machen wir den Übungen folgendes. Wir bearbeiten
die Präsenzaufgaben. Und zwar machen wir das wie folgt.
Der Übungsgruppenleiter teilt euch irgendwie so in Dreiergruppen ein,
so grob zwei, drei Vierergruppen.
Dann bearbeitet ihr so circa zehn bis 15 Minuten die Aufgaben.
Die Übungsgruppenleiter geht rum und hilft euch. Und die Präsenzaufgaben,
die behandeln halt immer so irgendwie Stoff der aktuellen Woche und sollen
euch darauf vorbereiten, irgendwie die Übungsaufgaben dann gut zu bearbeiten.
Und nach so circa zehn Minuten wollen wir dann einmal rotieren.
Das heißt, wir pflücken diese Dreiergruppen wieder auseinander und sortieren die neu.
Machen wir dann so, dass eine Person pro Gruppe im Uhrzeigersinn,
da wandert die anderen entgegen des Uhrzeigersinns, aber das Wichtige,
wir pflücken die Gruppen ein bisschen auseinander.
Warum machen wir das
Wenn ihr gerade dabei seid, eine Präsenzaufgabe zu bearbeiten.
Und wir zerpflücken dann die Gruppen. Dann gibt es
so neue Dreiergruppen und eventuell habt ihr irgendwie unterschiedliche Ansätze verfolgt
oder die in der einen Gruppe ist gar nichts passiert.
Und in der anderen Gruppe ist ganz viel passiert.
Und dann müsst ihr euch gegenseitig erklären,
warum ihr meint, dass euer Lösungsanlass denn jetzt funktioniert,
warum der gut ist und so weiter.
Das ist deswegen super, weil ihr dann anfängt,
über den Stoff zu reden. Und zweitens ist es super,
weil ihr euch alle in der Gruppe kennenlernt.
Und üblicherweise läuft das so die ersten zwei Wochen so ein
bisschen schleppend. Da sind dann auch immer noch die,
die sagen, ich will das nicht machen
Okay. Und so nach drei Wochen sagen dann die meisten,
eigentlich ist das ganz cool. So,
ich kenne jetzt alle in meiner Übungsgruppe, ich fühle mich wohl,
wenn ich in den Raum komme und alles ist gut.
Die Übungsgruppe sollte dir auch eher so verstehen,
nicht als etwas, was euch irgendwie gängeln soll und so,
sondern als etwas, was euch eine Hilfestellung geben soll.
Dieses ganze organisatorische Drumherum, das gibt es eigentlich nur,
um euch so eine bestimmte Anreize zu geben,
weil so der Erfahrung nach ist es halt so,
wenn wir sagen, hey, macht die Übungszettel freiwillig,
dann sagen alle, oh cool, ich mache die in drei Monaten.
Das funktioniert halt meistens nicht so gut. Genau,
das wiederholen wir dann mit diesem Rotieren,
dann besprechen wir die Präsenzaufgaben im Plenum und genau,
wiederholen das Verfahren einfach mit der nächsten Präsenzaufgabe.
Und am Ende gibt ihr dann die Lösung des Aufgabenzettels
der Vorwoche ab und kriegt die der Vorvorwoche zurück
Genau, dann noch zu den Abgaben,
die sollte ja auch in Arbeitsgruppen bearbeiten, die Aufgaben,
üblicherweise so drei Studierende, zwei, drei Studierende.
Ausnahmen kann da die Übungsgruppenleiter ein bisschen regeln und dann gebt ihr halt nur
einen Lösungszettel ab und die erreichte Punktzahl wird dann eben jedem Gruppenmitglied gut geschrieben.
Und ein ganz wichtiges Kriterium zum Bestehen ist,
wenn ihr so einen Lösungszettel abgibt, hier alle Namen der Teilnehmer bitte lesbar notieren.
Das ist immer so eine Vollkatastrophe. Manchmal steht das da so,
man denkt so, das ist doch nur ein Strich,
ich habe keine Ahnung,
wer das sein soll oder man kriegt so eine Abgabe und denkt so,
schön, das ist die Matrikelnummer,
aber damit kann ich jetzt gerade nicht so viel anfangen,
das bringt irgendwie auch nicht
so viel
Wo es mal da sei. Also mach das Leserlicht dann.
Dann soll jedes Arbeitsgruppenmitglied die Lösung an der Tafel präsentieren können.
Das ist einfach so ein Schutz gegen das Abschreiben.
Und es wird voraussichtlich zwölf Aufgabenzettel mit Hausaufgaben geben. Ja,
das zu den Abgaben, Kriterien in den Übungsgruppen,
anwesend seien, aktiv mitarbeiten, 50 Prozent der insgesamt vergebenen Aufgaben,
Punkte sollte machen, jeweils 20 Prozent der Punkte auf zehn bis zehn der zwölf Aufgabenzettel.
Und ihr sollt nicht mogeln. Und dann meint der
eine Übungsgruppenleiter zu mir, ich glaube,
das müssen wir mal ein bisschen mehr spezifizieren,
was wir meinen
Also die kleinen Gruppen sollen etwas Selbstgeschriebenes abgeben. Ihr könnt gerne irgendwie,
wenn ihr noch Freunde irgendwie aus anderen Kleingruppen habt,
das mit denen zusammen besprechen,
aber setzt euch nicht zu sechst hin und schreibt das auf.
Sondern dann trennt ihr euch, dann schreibt ihr das getrennt auf.
Das ist auch einfach nochmal zum Üben,
weil man sonst manchmal so Sachen hat, wie einer schreibt es,
neun Leute geben es ab und acht haben von Tuten und Blasen,
keine Ahnung.
Und das bringt einfach nichts. Genau,
und weiteres auf der Webseite und dem Modulhandbuch.
Klausur wird auch so sein, 50 Prozent der Punkte.
Da kommen wir dann irgendwann im Juni nochmal zu,
da gibt es auch irgendwie Probeklausur und so weiter.
50 Prozent der Punkte sollen wir dann da machen.
Und die ist verschoben worden. Bisher stand da
irgendwie Freitag der fünfte,
Leider, leider, leider schreiben wir die jetzt am Samstag, den 6.8.
Wer also schon Urlaub gebucht hat. Bitte? Ja,
es gibt eine zweite Klausur am Mitte September,
da weiß ich jetzt gerade nicht, wann das ist.
Aber die ist nicht verschoben worden,
da steht auf den Studienbüroseiten, wann die ist.
Ich glaube, das kommt noch, kommt das noch?
Nein, kommt nicht mehr. Ja, die Hausaufgaben sollen
handschriftlich abgegeben werden. Ja, wenn dann einer abschreibt,
dann muss er
wenigstens schreiben
Sonst noch Fragen. Gut, dann machen wir ein Tutorium. Das ist immer Freitag,
16 bis 18 Uhr und da sollen die Übungsaufgaben,
die ihr gerade abgegeben habt, bei Bedarf nochmal besprochen werden.
Das ist also quasi ein nachgelagertes Tutorium,
das behandelt nicht den Stoff der aktuellen Woche,
sondern man ist halt die Übungsaufgabe,
mit denen ihr euch gerade beschäftigt habt und die ihr abgegeben habt.
Dass es dazu da, wenn ihr irgendwie merkt,
hey, ich verstehe die Musterlösung gerade nicht so gut oder irgendwie
bei der Aufgabe bin ich gar nicht weitergekommen.
Da kann man natürlich auch so mal eine Frage irgendwie
zum Stoff der Vorlesung stellen, aber primär geht es um
die Übungsaufgaben
Der Sinn dahinter ist, dass man gar nicht erst in den Glauben verfällt,
man könnte eine vierstündige Vorlesung durch ein zweistündiges Tutorium ersetzen.
Wenn man mal so drüber nachdenkt,
das kann auch irgendwie keinen Sinn machen, dann werden die,
das, was wir irgendwie jahrelang gemacht haben,
das war irgendwie so ein bisschen,
da wurden die Leute halt immer expliziter auf die Übungszettel vorbereitet,
aber das ist eigentlich auch nicht das,
was man machen will.
Außerdem will man eine Veranstaltung ja auch nicht künstlich aufblähen.
Ich will nicht aus einer 4 plus 2-Veranstaltung
eine 4 plus 2 plus 2-Veranstaltung machen.
Deswegen ist das Tutorial total freiwillig und dient einfach nur als Hilfestellung,
wenn man bei denen hoffentlich eh schon ausführlichen Musterlösungen noch
eine Frage hat
Gut, dann wird es vor den Klausuren voraussichtlich noch ein Repetitorium geben.
Das ist üblicherweise irgendwie in der Woche davor, drei Tage.
Die Termine stehen irgendwie so ab Mai, Ende Mai,
würde ich sagen, stehen die fest.
Genau, und dann noch zwei Literaturhinweise.
Einmal das Buch von Hopcryft, Modvany Ulman hier.
Für den Automatenteil und das Buch von Schöning für den Logikteil.
Wir machen nicht beide Bücher vollständig, sondern wir machen quasi
aus beiden Büchern irgendwie Auszüge.
Und man kann auch mit einem beliebigen anderen grundlegendem Automatenbuch
oder mit einem beliebigen anderen grundlegendem Logikbuch arbeiten
Das sind nur so die beiden,
die ich empfehle und bei denen ich mich auch so,
die Notation sind, ich will jetzt nicht sagen identisch,
weil vielleicht habe ich irgendwo mal eine kleine Sache anders geschrieben,
aber zumindest zu 99 Prozent sollten die Innotationen identisch sein.
Und das ist beim ersten Lernen ja immer ganz vorteilhaft.
Aber wie gesagt, ihr könntet auch andere Bücher benutzen. Genau,
da nochmal zusammengefasst, was haben wir alles,
Vorlesungen und Folien, Übungsgruppen, Bücher, Tutorien,
Repertorien und das, was halt wirklich,
wirklich Pflicht ist, sind halt so diese Übungsgruppen,
dass man ordentlich sich mit Aufgaben beschäftigt und das drumherum,
das soll einem dann eben helfen,
diesen Stoff zu verstehen und die Aufgaben bearbeiten zu können
Dann nochmal die Bemerkung in der roten Box,
Anwesenheit in der Vorlesung oder wenn ihr denn nicht anwesend sein könnt in der Vorlesung,
macht euch bewusst, ja, ihr trefft diese Entscheidung wenigstens bewusst,
trefft nicht die Entscheidung, Dienstag morgen um 7.30 Uhr,
naja, ich will doch nicht aufstehen, ja,
sondern macht euch bewusst, okay, ich gehe nicht zur Vorlesung,
aber dann gucke ich dieses Video und entguckt es auch,
ne.
Das, was nämlich üblicherweise passiert ist, ja,
ich gehe nicht in die Vorlesung, es gibt ja Videos,
vier Tage später, ach ja, ich wollte das Video gucken.
Guckt das Video zeitnah, guckt es vor allem vor der Vorlesung.
Oder wenn ihr der Meinung seid, irgendwie,
oh mein Gott, diese Stimme geht mir total auf den Keks,
ich kann das nicht hören, ist ja auch total okay,
dann versucht irgendwie anders den Stoff zu verstehen,
arbeitet mit Literatur
Das dazu und dann noch die zweite Bemerkung, was einfach sehr wichtig ist,
eigentlich immer, wenn man was lernen will, arbeitet irgendwie.
Nehmt einen Stift in die Hand, macht euch Notizen,
schreibt die Definition noch mal auf. Es reicht üblicherweise
nicht zu sagen, ich habe mir das doch angeguckt.
Ihr müsst irgendwie damit arbeiten, ihr müsst die Sachen aufschreiben.
Genauso wie ihr auch bei einer Programmierausbildung auch nicht sagt,
aber ich habe das Buch doch gelesen.
Das hilft meistens nicht. Dann habe ich zwar gelesen,
wie irgendwie Istan Altes aussieht,
aber wenn ich es dann das erste Mal tippen soll,
denke ich meistens, wo war die Klammer noch gleich oder so,
wenn ich es dann hundertmal gemacht habe,
ist es okay, dann ist ein Blut drin.
Deswegen hier auch, beschäftigt euch mit dem Stoff und mit
den Aufgaben
So, das war das ganze organisatorische Fragen.
Bitte? Ob man Folien und PDS online finden kann,
ja, klar, die sind bei dieser Beschreibung entstiegene,
da sind diese beiden Links drin, wo man das findet,
schicke ich gleich nochmal per Stine-Mail aber auch rum.
Also ihr kriegt gleich nochmal so eine Stine-Mail mit drei Links,
das ist einmal die Seite der Vorlesung,
da findet man halt immer die Folien und die Seite der Übungsgruppen,
da findest du dann Aufgabenzettel,
Musterlösung und so weiter.
Sonst noch?
Erstens, zweitens
Da können wir anfangen. Eine Sache noch zu dem Skript,
damit ihr so ein bisschen so wisst, was die unterschiedlichen farblichen Boxen
so zu tun haben, rot, klar, wichtige Anmerkung.
Gelb ist so das typische, was ich irgendwie benutze in dem Layout. Da sind so Definitionen drin,
Sätze, normale Anmerkungen, so was Grünes,
eher so was für entweder ein Beispiel oder eine Nebenbemerkung und blau ist eine Nebenbemerkung für,
wenn man jetzt sagt, okay,
das ist mir eigentlich zu einfach, was hier gerade passiert.
Ich möchte noch mehr Zeit reinstecken und dann steht da halt sowas wie,
lesen Sie doch mal in diesem Buch,
was nicht mal in der Literatur erwähnt wird,
mal Kapitel 5 oder irgendwie sowas.
Das ist also
so Exkurse
Supe. Dann können wir ja loslegen. Also, Automatentheorie
geht um Automaten. Jetzt kann man sich erstmal überlegen,
was ist das eigentlich? Und was man halt versucht ist,
dass man formal Zustände und Zustandsübergänge fasst.
Dass man also irgendwie weiß, mein System als Informatiker,
mein System kann irgendwie in einem Zustand sein und es kann
Zustandswechsel geben
Also so typischerweise, wenn ihr Source Code schreibt,
ihr seid in einem Zustand, wo X5 ist,
jetzt wird X durch zwei geteilt und seid ihr danach in einem Zustand,
wo X eben irgendwie nicht mehr fünf ist,
sondern je nachdem, was das war, vielleicht 2,5,
vielleicht zwei, je nachdem.
Solche Zustandsübergänge will man irgendwie modellieren können und formal darüber argumentieren können.
Dafür kann man Automaten einführen und jetzt kann man halt erstmal
weg von dem Source Code irgendwie sich über solche Sachen Gedanken machen,
ich will so einen einfachen Lichtschalter haben,
der kann an oder aus sein und dann kann ich halt den Zustand wechseln,
indem ich den Lichtschalter einmal betätige.
Was macht man typischerweise, man schreibt sich dann an oder aus irgendwie
in eine Ecke geboxt oder in einen Kreis oder irgendwie sowas,
sich irgendwie Kreise durchgesetzt und wenn man halt B für betätigen oder sowas drückt,
dann wechsle ich halt den Zustand von außen nach an oder von an nach außen.
Jetzt kann man sich noch überlegen, am Anfang ist das System
vielleicht irgendwie in einem Staatszustand. Ich gehe in das Zimmer rein,
dann ist das Licht üblicherweise aus, also will ich vielleicht,
dass aus der Staatszustand ist und vielleicht möchte ich noch modellieren mit dem System,
dass ein Endzustand des Systems doch bitte immer sein soll,
dass das Licht auch wieder aus ist.
Und dann kann man das irgendwie so machen, dass diese Kante,
die keinen Ursprung hat, die markiert uns den Staatszustand Und der doppelte Kreis hier markiert uns den Endzustand.
Das hat man ein ganz einfaches System modelliert. Und das,
was da jetzt erstmal wichtig ist, wenn man sich das anguckt,
ist, wir haben eine endliche Anzahl von Zuständen,
das will man vielleicht immer haben, kann man sich Gedanken machen,
was passiert, wenn ich daran jetzt rumschraube,
was passiert, wenn ich unendlich viele Zustände habe.
Wollen wir hier noch nicht machen,
aber können wir nachher nochmal in so einem Exkurs uns angucken.
Wir wollen erstmal eine endliche Anzahl. Dann soll einer davon ein Startzustand sein,
macht auch irgendwie Sinn, dass es nicht mehrere sind.
Ich will nicht irgendwie zum HVV-Fahrkartenautomaten gehen und je nachdem,
welcher Tag ist, hat er einen anderen Startzustand oder so.
Das finde ich irgendwie unangenehm. Ich will,
dass das immer gleich aussieht. Dann will ich aber vielleicht
eine größere Menge an Endzuständen haben, sowas wie Fehlerzustand,
Berechnung erfolgreich ausgeführt,
irgendwie so mehrere Endzustände
Dann sollen Zuständsübergänge möglich sein und das System soll immer in genau einem Zustand sein.
Das macht auch Sinn für viele Anwendungen, dass man irgendwie sagt,
naja, ich kann nicht gleichzeitig in mehreren Zuständen sein,
sondern eben in genau einem.
Und das wollen wir eben versuchen, formal zu fassen alles
und damit zu arbeiten. Und so wird das dann nachher aussehen,
da sieht man schon,
da oben gibt es dann irgendwie so ein Eingabeband und hier abstrahiert man von irgendwie so Anweisungen wie Lichtschalter anmachen,
Lichtschalter ausmachen,
X plus 1 rechnen oder sowas und sowas abstrahiert man alles und sagt,
okay,
das ist einfach nur ein Automat,
der liest irgendwie Symbole und kann
diese Symbole verarbeiten und dabei Zustandswechsel machen
Das ist erstmal alles so. Das ist halt eine Abstraktion auf relativ hohem Level,
weil man quasi nachher in den wirklichen Implementierungen natürlich ganz viele Ideen hat,
was man jetzt mit dem A und B und sowas meint.
Genau, und darum wird es halt gehen.
Und vor allem nachher eben auch um Erweiterungen davon,
um Beziehungen zwischen den einzelnen Modellen, um die Frage,
was diese Modelle jetzt wirklich können, was sie nicht können und so weiter.
Trotzdem kann man sich jetzt natürlich fragen, irgendwie, warum machen wir das jetzt eigentlich alles?
Was soll ich damit? Und da jetzt erstmal,
ich kann nachher ein bisschen mehr Motivation noch machen,
aber jetzt erstmal so, dass man sagt, okay,
lernen wir es erstmal. Es ist nämlich meistens ein bisschen einfacher,
wenn man schon ein bisschen Stoff hat,
dann zu motivieren, wofür das cool ist,
als das jetzt schon ganz am Anfang zu machen,
weil man dann irgendwie denkt,
ja,
kann man machen oder auch nicht
Deswegen eine richtige Motivation können wir dann später nochmal immer mal wieder so einstreuen,
aber jetzt erstmal so zur Kenntnis leben,
dass irgendwie viele Leute der Meinung sind,
das ist eine sinnvolle Grundlage, das sollte man alles irgendwie wissen.
Also um das so mit ein paar Buzzwords einmal zu motivieren hier so,
es ist eine Grundlage für viele weitere Automatenmodelle.
Das ist deswegen ganz schön, weil man,
selbst wenn man jetzt bei dem Automatenmodell denkt,
wofür soll ich das eigentlich benutzen?
Gibt es halt darauf aufbauende Automatenmodelle, wo das dann irgendwie klarer wird.
Wenn ich dem Automaten noch zusätzlichen Kellerspeicher gebe oder solche Geschichten oder ihm erlaube,
nicht nur zu lesen, sondern auch zu schreiben,
dann kann er plötzlich Dinge machen wie einen Algorithmus und sowas.
Und dann kann ich mir da
auch über Gedanken machen
Dann kann ich die benutzen, um relativ schnell das Wortsuchproblem zu lösen.
Also so eine Fragestellung, wie gegeben ein Text,
Control Fs drücken und ich suche die Formulierung Lösung oder so.
Da will ich das Wort Lösung finden.
Wenn man solche Probleme hat und die schnell lösen will,
da bieten sich Automaten als Datenstruktur im Hinterkopf oder als Denkwerkzeug an.
Deswegen werden die eben auch so bei solchen Sachen benutzt,
wie mexikografischen Analysen, ein paar Sachen, Compilern.
Da spielen die eine große Rolle,
vor allem aber auch Erweiterungen davon,
also vor allem eine Kellerautomat spielt da
eine große Rolle
Und Grammatiken, die damit zusammenhängen und dann ein sehr wichtiger Aspekt,
man kann damit Systeme modellieren und man kann dann am Modell Eigenschaften überprüfen.
Das ist so dieser Themenblock irgendwie Hardware und Software-Verifikation.
Da spielen Automaten eine sehr große Rolle und da spielen auch,
was wir in der zweiten Hälfte der Veranstaltung machen wollen,
Logik eine sehr große Rolle.
Man kann dann halt das System mit Automaten modellieren,
mit der Logik irgendwie spezifizieren, welche Eigenschaft man haben möchte.
Zum Beispiel sowas wie, es gibt keine Verklemmung oder irgendwie sowas
oder es gibt keinen Fehler im System und da kann man überprüfen,
ob das am Modell schon mal passt.
Und danach kann man halt versuchen,
aus dem Modell heraus
das System zu entwickeln
Und da sind die halt, spielen die halt eine wichtige Rolle.
Genau, und da nochmal auch als grundlegende Datenstruktur so.
Und ich werde mal versuchen in der Veranstaltung,
das immer mal wieder so anzupieken, wo man solche Sachen irgendwie benutzen kann.
Aber da wird der Schwerpunkt nicht so drauf liegen.
Das sind dann so fortgeschrittene Veranstaltungen, wo man das dann benutzt.
Genau, da nochmal so, wo wir das wiederfinden würdet,
wahrscheinlich werde alles RS gehört, Rechnerstrukturen, der alle gehört, ne?
Großteil. Da sind die, glaube ich,
auch schon so in der Mili- und Mua-Automaten und sowas,
könnte da ein Begriff sein in den späteren Technikvorlesungen von Herrn Wolfinger,
wo das so um Netzwerke und sowas geht,
da sieht man dann auch, dass die immer eine Rolle bei Protokollen spielen, so beim Design von Protokollen und so was.
Da haben die halt Anwendungen und dann helfen die uns noch
zu bestimmten Erkenntnissen zu kommen. Wenn man dieses Automatenmodell nämlich erweitert,
dann kommt man zu einem Modell, mit dem man formal fassen kann,
was ein Computer oder ein Algorithmus tun kann.
Und dann kann man sich eben darüber Gedanken machen, was er nicht tun kann.
Dann kommt man zu sehr fundamentalen Grenzen für die Informatik,
wo man sagen kann,
für dieses und jenes Problem können wir gar keinen Algorithmus entwickeln,
den brauchst du auch gar nicht erst versuchen
Das sind quasi Probleme, die gar nicht gelöst werden können.
Und dann kann man sich noch Gedanken darüber machen,
was für Probleme praktisch nicht gelöst werden können.
Also was für Probleme eine Laufzeit dann haben,
also wenn ich einen Algorithmus habe für ein Problem und ich starte den jetzt und ich weiß,
ja, das dauert aber irgendwie drei Milliarden Jahre,
bis die Lösung kommt, dann ist das irgendwie nicht mehr praktikabel.
Und da denkt man erstmal so,
naja, das sind dann wahrscheinlich alles irgendwie keine Probleme,
die man wirklich so braucht.
Tatsächlich sind das sehr fundamentale Probleme. Also das eine Problem,
was wir uns angucken werden, was vom Computer nicht gelöst werden kann,
das ist ein ganz zentrales Verifikationsproblem,
was einfach nicht geht
Und bei diesen hier, die praktisch nicht gelöst werden können,
gibt es eine ganze Fülle von Problemen, wo man sagt,
oh, das ist aber doof, dass das nicht geht.
Und dann kann man natürlich immer versuchen, irgendwie Workarounds zu finden.
Dann kann man sagen, naja,
dann löse ich das Problem halt nicht in seiner Allgemeinheit,
sondern irgendwie nur einen bestimmten Ausschnitt davon und dann kann man so arbeiten.
Aber dafür muss man erstmal einen Begriff dafür haben,
was nicht geht, damit man wirklich merkt, ah,
okay, das geht nicht, dann mache ich mir Gedanken darüber,
wie es irgendwie anders angehen kann, das Problem.
Genau, und was dann noch ganz wichtig ist,
so eher als Sekundärtugend, abstraktes Denken, exaktes Argumentieren, einüben.
Sonst klappt das auch nicht mit dem, was wir eben hatten.
Und dann, wenn man das hat,
dann kann man darüber nachdenken, wie man eben diese Grenzen,
die eben genannt sind,
wie man die doch umgeht
So, das einmal kurz zur Motivation, Freunde.
Dann geht es der formale Apparat los.
Aber ganz einfach, wer hat alles ein Mathemodul gehabt?
Alle, ne? Wer hat kein Mathemodul gehabt? Wer hat
sich eben nicht gemeldet? Menge. Einmal vier Folien zum,
oh, das kenne ich ja. Endliche Mengen,
ich schreibe den Namen der Menge dahin,
ich schreibe ein issgleich Zeichen hin, eine geschweifte Klammer,
die aufgeht, ich schreibe die Elemente hin,
die da rein sollen,
eine geschweifte Klammer,
die zugeht
Endlich Mengen. Unendliche Menge, irgendwie mit Punkten,
wenn denn klar ist, was da drin sein soll.
So eins, zwei, drei Punkt, Punkt,
Punkt, das wird dann jetzt wohl weitergehen mit vier,
fünf, sechs und so weiter. Wenn da steht eins,
zwei, vier Punkt, Punkt, Punkt, naja,
vielleicht kann man dann erahnen, dass das mit acht,
16, 32 weitergehen soll oder so.
Aber über einen endlichen Mengen mit dem Punkt, Punkt,
Punkt, halt so ein bisschen vorsichtig sein,
es sollte irgendwie klar werden, was ihr meint.
Enthalten sein Symbol, dieses E, drei Element aus M1,
fünf Nicht-Element aus M1, zumindest durchstreicht.
Kardinalität mit diesem Balken zählt die Anzahl der Elemente,
macht für endliche Mengen Sinn, endliche Mengen mit vier Elementen,
im 1 gleich vier
Was man dann halt oft macht, gerade bei unendlichen Mengen,
dass man die Elemente nicht alle einzeln eingibt,
sondern dass man sie irgendwie durch eine charakteristische Eigenschaft beschreibt,
sagt man eben, M3 ist gleich.
Jetzt gibt man irgendwie so einen Wertebereich an,
aus dem die Elemente sein sollen, die da drin sind.
Also in M3 sollen jetzt nur natürliche Zahlen drin sein.
Jetzt kommt dieser Balken, weil man sagen will,
mit der bestimmten Eigenschaft, dass eine andere natürliche Zahl existiert.
Es existiert noch so ein I aus N mit der Eigenschaft.
X lässt sich schreiben als zweimal I. Sprich,
in M3 sind gerade die geraden Zahlen drin
0-2-4-6 und so weiter.
Wenn man denn, was wir hier üblicherweise tun,
die Null zu den natürlichen Zahlen hinzuzählt.
Macht man in der Informatik üblicherweise. Genau das, so Mengen.
Dann gibt es noch so die Symbole Teilmengen. A,
ist eine Teilmenge von B, genau dann, wenn.
Jedes kleine A, was in der Menge Großart drin ist,
auch in Großb drin ist. 1-4-5 und danach 1,
2, 3, 4, 5 und so weiter.
Und dann guckt man, okay, eins ist rechts drin,
4 ist rechts drin, 5 ist rechts drin.
Stimmt also. 1-4-5, 1,
4-5, die sind da alle drin, das ist auch okay.
Hier ist das ja so, unter dieser Strich da,
das soll immer noch so die Gleichheit andeuten,
dass wir so eine Teilmenge nehmen für echte Teilmenge oder gleich.
Die beiden sind also auch okay. Dann haben wir noch hier 1,4,5,
1,3,5,7, naja, so 4 ist rechts nicht drin, klappt, also nicht.
Und 1,4,5, 1,4 klappt irgendwie auch nicht, ne? Genau. Und dann Mengen Gleichheit,
wenn man zeigen will, dass A und B gleich sind,
gleiche Mengen sind, dann gilt das genau dann,
wenn A eine Teilmenge von B ist und B eine Teilmenge von A,
dann zeige ich ja, alles, was in A drin ist,
ist im B drin, weiß ich schon mal,
A ist eine Timing-Phobie und ich zeige aber auch alles,
was im B drin ist,
ist in A drin,
also müssen die Mengen
gleich sein
Und echte Teilmenge, wenn das eben eine Timing ist,
aber die Gleichheit nicht gilt. Und hier den zweiten Punkt,
den werden wir relativ häufig brauchen, Mengengleichheiten zu beweisen.
Deswegen da schon mal die Anmerkung, wenn ich eine Mengengleichheit
zeigen will, dann muss ich hier beide Richtungen zeigen.
Ich muss zeigen, dass A eine Timingmenge von B ist und
ich muss zeigen, dass B eine Timingmenge von A ist.
Eins davon reicht nicht. Betone ich an der Stelle schon mal,
werden wir nachher brauchen, da werdet ihr dann sehen,
warum ich das jetzt hier schon mal betont habe.
Ja, und dann die ganzen Operationen, Vereinigung,
wenn ich A mit B vereinige,
dann nehme ich halt alles aus A und alles aus B,
schreibe mir das in eine neue Menge,
das ist A vereinigt mit
1, 2, 4, vereinigt mit 1, 2, 3, ist irgendwie die Menge.
Und da man jedes Element ja nur einmal erwähnen muss,
ist das eben die Menge 1, 2, 3,
4. Schnitt, genau die Elemente nehmen die in beiden Mengen drin sind,
also 1, 2, 4, 1, 2,
3, 1 und 2 sind in beiden drin.
Das ist die Menge. Mengen Differenz, A ohne B,
alles nehmen, was in A ist und dann die Elemente rausschmeißen,
die in A und B sind.
Also 1, 2, 4 ohne 1, 2,
3, dann bleibt nur die 4 übrig.
Dass ich drei auch rausschmeißen würde,
ist egal
Potenzmenge, nicht eine Menge A habe,
dann ist die Potenzmenge die Menge aller Teilmengen von A. Also hier geschrieben als PA für Potenzmengen oder auch 2 Hocha,
da sage ich dann,
da sollen all die Mengen B drin sein mit der Eigenschaft B,
ist eine Teilmenge von A. Beispiel für die Menge 1,
2, also die Menge, die 1, 2 enthält,
kommt die Menge raus, die eben die leere Menge enthält,
die Menge, die einzeln hält, die Menge,
die 2 enthält und die Menge, die 1, 2 enthält.
Die Induntation hier mit 2 Hocha,
die hat sich deswegen durchgesetzt, weil in der Potenzmenge,
wenn man die Anzahl der Elemente zählt,
die in der Potenzmenge drin ist,
also die Kardinalität von PA,
dann ist das gerade 2 Hochanzahl der Elemente von
Also wenn ihr hier guckt, A, hat irgendwie zwei Elemente, also eins, zwei jetzt, und die Potenzmenge hat dann eben vier. Ja,
und kathesisches Produkt A, Kreuz B, ich habe eine Menge,
A, ich habe eine Menge B und in das kathesische Produkt kommen all die Tubel rein,
bei denen das erste Element aus A ist und das zweite Element aus B. Beispiel unten eins,
zwei, Kreuz, A, B, C,
1a, 1b, 1 Szene,
die 1 mit A, die 1 mit B,
die 1 mit C und dann nochmal zwei A als bei B,
2C. Und das immer als ein Tubel, dass das kathesische Produkt,
und das kann man dann noch verallgemeinern,
für Ennmengen und dann hat man eben nicht Ennmengen mit einem kathesischen Produkt verbinde,
dann habe ich eben Enttupel und das IT-Element des Tupels ist eben gerade aus der Iten-Menge.
Und eine Teilmenge davon, also eine Menge R,
die Teilmenge von der Eins-Kreuz, Punkt, Punkt, Punkt,
Punkt, Kreuzer Ende ist, die nenne ich eine endstellige Relation.
Da nochmal ein Beispiel, wenn ich Z habe, als 1,
2, 3 und ich habe A als A, B,
C, dann kann ich, ist das hier eine dreistellige Relation über Z-Kreuz A-Kreuz Z.
Und wenn man nochmal an die Automaten von vorhin denkt,
wo zwei Zustände hatte eine Kante dazwischen, die irgendwie beschriftet war,
dann könnte ich das mit so einem Triebel sehr schön ausdrücken.
Erstes Element im Triebel ist der Zustand, von dem ich komme,
zweites Element im Triebel ist der Buchstabe,
der an der Kante steht, drittes Element im Triebel ist,
der Zustand, wo der Pfeil hingeht.
Dann habe ich das formal gefasst, wie ich so einen Kantenübergang machen will.
Und die letzte, eine totale Funktion, F von A nach B,
weist jedem Element aus der Menge A ein Element aus der Menge B zu.
Beispielsweise von 0-1 nach 0-1 mit 0
wird auf 1 abgebildet, 1 wird auf 0 abgebildet.
Irgendwie so eine Invertierungsfunktion oder von N auf N mit X wird auf seinem das Doppelte abgebildet.
Genau. Und dann gibt es dazu eben noch,
wenn ihr jetzt nicht für alle definiert sind,
also wenn es so ein A-Element aus A gibt,
ohne das FA definiert ist,
dann nennt man die Funktion partiell,
dann ist sie ja nicht auf allem definiert.
Und dann die zwei Anmerkungen, jedes X-Element aus A hat höchstens ein Bild,
also F und X gleich 5 und Airphonics gleich 4, geht nicht.
Macht auch irgendwie Sinn. Aber zwei Elemente aus A können
das gleiche Bild haben. So, das sind,
glaube ich, alle mathematischen Grundlagen, die wir so brauchen.
Also ein bisschen Mengen, ein bisschen Relation,
ein bisschen Funktionen.
Fragen. Fragen zum ersten
Okay. Dann neue Begriffe. Wir haben ja eben schon gesehen,
dass wir an diesen Automaten irgendwie Symbole ranschreiben wollen.
Das sind jetzt nochmal fünf Folien und dann haben wir das mit
den Grundlagen geschafft und dann können wir uns Automaten dann gucken.
Aber wir brauchen noch was für diese Symbole.
Ich will da jetzt irgendwie Symbole dran haben an den Kanten.
Da brauche ich so Begriffe für wie,
das ist ja quasi ein Buchstabe, der da dransteht.
Also klingt schon vertraut, wenn man sagt, naja,
dann will ich ein Alphabet haben,
aus dem diese Symbole sind und so weiter.
Und genau sowas definiert man sich. Wir sagen so ein
Alphabet soll einfach eine total geordnete, endliche Menge sein von unterschiedlichen Zeichen.
Oder auch Buchstaben oder Symbolen. Sprich, das ist sowas
wie die Menge, die A, B, C enthält.
Und dann weiß ich, ich darf A, B,
C als Buchstaben nehmen
Und dass die vielleicht beim Modellieren noch für irgendwas anderes stehen,
ist okay, aber abstrakt bezeichne ich die einfach als ABC.
Dann führe ich mir diese Kombinationsoperation ein hier, Konkertinationsoperationen.
Das ist einfach fürs Hintereinanderschreiben von Buchstaben. Wenn ich dann
den Buchstaben A habe und ich habe den Buchstaben B,
dann kann ich die beiden konkertinieren, dann habe ich das Wort AB.
Und wenn ich dann das Wort AB habe,
dann erweitere ich das,
dass ich eben auch ein Wort mit Buchstaben konkertinieren kann und dann habe ich halt das Wort A,
B, C und dann erweitere ich das noch so,
dass ich auch Worte konkertinieren kann,
dann kann ich halt das Wort A,
B und das Wort A,
B miteinander konkertinieren und dann habe ich A,
B,
Glaube ich, reicht so, muss man nicht formal machen.
Also das ist einfach der Operator für das Hintereinanderschreiben von Buchstaben.
Das leere Wort, Nullbuchstaben, das kürzen wir mit
so einem Lamm da ab oder so einem Epcyon.
Findet man auch beides so in der Literatur.
Und das leere Wort so nie in einem Alphabet enthalten sein.
Das Alphabet sollen ja gerade die Buchstaben sein, die wir schreiben können.
Und das leere Wort ist halt kein Buchstabe,
sondern das leere Wort ist eben das spezielle Symbol dafür,
dass da kein Buchstabe steht und auch kein Wort und so.
Spezial, noch hier die Geschichten mit Exponenten,
wie hoch eins ist, wie, wie hoch zwei ist,
wie konkodiniert, wie und allgemein, wie hoch K ist,
wie hoch kam minus eins konkadiniert mit wie.
Sprich, der Exponent bei dem Wort sagt,
wie oft ich das Wort hintereinander schreibe
Also wenn ich habe, AB hoch 3,
dann ist das eben AB, AB, AB als Wort.
Und Spezialfall wie Hochnull ist das Lamm da, das leere Wort.
Beispiele, Konkretination wird auf Mengen von Wörtern erweitert.
Wenn ich jetzt die beiden Wortmengen hier habe,
jetzt mache ich im Grunde genommen genau das Gleiche wie bei dem Kreuzprodukt,
diesem kathesischen Produkt, nur dass ich eben keine Tupel bilde,
sondern ich wende einfach diese Konkretinationsoperation an.
Ich verbinde also das eine Element der Einmenge
hier mit allen Elementen der zweiten Menge,
also AB mit AB und AB
Und macht das mit dem zweiten auch und so weiter.
Und worauf ich halt achten muss, ist,
die Worte aus der ersten Menge, die stehen immer vorne,
die Worte aus der zweiten Menge, die stehen immer hinten.
Kommt also das raus, habe ich mit AB, AB mit B und so weiter.
Dann kann man den Punkt dann auch wegschreiben und dann sieht das sowas.
Und dann kann man das nochmal machen mit einer Menge,
wo das Lamm da drin ist.
Und dann ist irgendwie A verknüpft mit B,
ist AB, A verknüpft mit Lammda, ist A,
AB verknüpft mit BSA, B, B, A,
B mit Lammda ist wieder AB,
hatten wir schon und so weiter.
Dann kommt das daraus
Genau. Und dann kann man sich diese Operation,
die wir eben hatten,
so dieses W-Hoch-1, wie Hoch-2, wie Hoch-3,
das kann man sich dann auch für Mengen einführen,
indem man sagt,
er Hoch-2 ist eben R konkatiniert mit R und er Hoch-3 ist R konkatiniert mit R konkatiniert mit R,
sieht dann so aus.
Und als Spezialfall wieder R Hoch-0 ist die Menge,
die nur Lambda enthält. Also sprich,
ein R-Hoch-I sind all die Wörter drin, die ich erhalte,
wenn ich E-Wörter aus R rausnehme und die immer wieder hintereinander schreibe.
Ich darf Wörter mehrmals rausnehmen und so weiter, sondern einfach nicht,
darf ihm mal ein Wort aus R nehmen und das dann da hinschreiben.
Und er hoch null,
da darf ich ihm nur null Wörter aus R nehmen,
dann bleibt irgendwie nur das leere Wort übrig
Ja. Und dann definiert man sich noch eher Hochplus und er hocht Stern.
Und er hochplus ist quasi die Vereinigung von R hoch 1,
er hoch 2, er hoch 3, er hoch 4 und so weiter.
Und er Stern, da kommt er zusätzlich noch R hoch null dazu.
Also die Mengli, die das leere Wort enthält.
Warum brauchen wir die? Die sind nützlich,
wenn wir jetzt sagen wollen, wir haben ja dieses Alphabet Sigma,
äh Quatsch, Eschuldigung, wir haben so ein Alphabet,
das enthält als Buchstaben jetzt A, B,
C. Und dieses Alphabet, das kürzen wir üblicherweise mit Sigma ab.
Und jetzt ist es interessant, sich Sigma Stern anzugucken,
weil das ist die Menge aller endlichen Wörter,
die ich aus den Symbolen dieses Alphabets
bilden kann
Sprich, wenn ich das Alphabet nehme,
0-1 oder das Alphabet AB,
dann sind da eben in Sigmar Stern alle Wörter drin,
die ich aus Ars und Bis bauen kann oder die ich
aus Nullen und Einsen bauen kann.
Alle endlichen Wörter, um genau zu sein.
Und eine Teilmenge hier, wenn ich jetzt irgendwie eine Menge,
eine Teilmenge von Sigmar Stern nehme, sowas heißt dann formale Sprache.
Und was uns gleich interessieren wird, ist, gegeben,
so ein DFA, welche formale Sprache akzeptiert der?
Also ich habe dann so ein DFA und ich habe
einen Startzustand und jetzt interessieren mich alle Wörter,
die mich von diesem Startzustand zu einem Endzustand führen.
Da will ich dann nachher sagen, oh,
jetzt akzeptiere ich
Und dann interessieren mich all die Wörter, die ich so akzeptiere.
Und üblicherweise will ich dann so Sachen erreichen, wie,
dass ich genau eine bestimmte Menge von Worten akzeptiere. Beispielsweise bei,
hier sowas wie bei Ifs and Else oder so,
wenn ich jetzt beim Compiler baue, eine bestimmte Zeichenkette suche,
dann interessiert mich vielleicht genau das If und davor und danach
darf irgendwie was Beliebiges stehen oder irgendwie sowas,
damit ich genau das If rausfiltern kann oder irgendwie solche Geschichten.
Genau, so ein formaler in der blauen Box
kann ich das jetzt ein freies Monoid auffassen,
aber das ist Wenn ihr sehr tief einsteigen wollt,
in die formale Sprachtheorie, dann kann man sich sowas nochmal angucken.
Brauchen wir eigentlich nicht. So, nochmal zusammengefasst.
Sieg mal für eine Menge von Symbolen.
Das wird einfach immer unsere Menge sein von Symbolen,
die wir an die Kanten reinschreiben dürfen.
Lamda oder eh für das leere Wort? Nochmal die Anmerkung,
das ist nie in einem ein Verbet.
Konkertenation. Ich kann Symbole oder einzelne Worte konkertinieren,
sprich sie hintereinander schreiben. Ich kann das auf Wortmengen erweitern.
Das bedeutet dann jedes Wort der ersten Menge mit jedem Wort der Zweitmenge konkertinieren.
Wobei die Worte der ersten Menge eben vorne stehen und
die Worte der zweiten Menge hinten
Dann kann ich mit dieser Exponentenschreibweise notieren,
dass sich die Konkretenation mehrfach hintereinander ausführen will,
aber eben wahlweise auf das gleiche Wort oder die gleiche Menge anwende mit den beiden Sonderfällen Hochnull.
Da kommt dann irgendwie das Lamm daraus oder die Menge,
die Lamm da enthält. Er plus für alle Worte,
die sich durch Beliebiges aneinander rein von Worten aus er bilden lassen und er Stern,
ich nehme noch das Lamm da hinzu. Das ist so das, was wir jetzt brauchen werden. Jetzt gibt es noch zwei weitere Notationen,
die so ähnlich sind wie diese Kardinalität von der Menge,
dass ich eben sage,
wenn ich ein Alphabet Siegmar habe und irgendwie ein Symbol aussiegma so ein Wort aus Sigmar Stern,
also Sigmar ist von mir aus A, B, C,
X ist dann A und wie ist jetzt irgendwie ein Wort,
A, B, B. Und jetzt will ich eben mit den Balken,
wo ich sonst eben die Kardinalität der Menge irgendwie zählen kann,
zähle ich einfach die Länge des Wortes.
Also wenn ich irgendwie 001 als Wort habe,
dann ist die Länge eben drei, in dem Fall 00111
ist die Länge fünf und für Lamda ist die Länge eben null.
Das ist ja das leere Wort, hat keine Länge.
Und wenn ich unten noch so ein X hinschreibe,
dann möchte ich die Anzahl der Xe in W zählen.
Also wenn ich hier irgendwie 2202 habe und ich will wissen,
wie zweien sind da drin,
dann ist eben drei
Wenn ich die Anzahl der Einsen wissen will, sind das null,
wenn ich die Anzahl der Null wissen will, ist das eine.
Das sind die Grundlagen. Fragen. Dann habe ich Fragen
. Nächstes, also morgen könnt ihr euch immer hier,
ich glaube, ihr habt das jetzt alle fast nicht gemacht.
Wir haben hier diese Boxen mit Klickern,
also hier vorne ist so eine Box mit Klickern und wenn man reinkommt,
ist eine Box mit Klickern,
wenn ihr morgen zur Vorlesung kommt,
könnt ihr euch so einen Klicker mitnehmen und dann starte ich
diese lustige Umgebung da und dann kann man lustige Balken-Diagramme sehen
und gucken,
wer für welche Antwort ist
Und heute machen wir das mal so.
Oder wer hat einen Klicker? Kommt meiner, ne?
Nein. Dann machen wir das heute so.
Denkt mal kurz drüber nach und dann lösen wir das
gleich auf
Hm. Okay, Brabbel, Brabbel, Brabbel.
Wer ist für erstens? Wärst du erstens? Das Schöne bei Klickern
ist nämlich, jetzt hat man sich ja schon entschieden.
Und dann kann man halt dieses Bikendiagramm sehen. Und jetzt,
jetzt gucken die Leute und denken so,
ich war für erstens, aber keiner meldet sich,
nee, dann tu ich das auch nicht.
Okay,
wer ist für zweitens
Auch niemand. Wer ist für drittens? Auch niemand.
Wer ist für viertens? Okay, das ist gut.
Alles klar. Stimmt das? Ja, sieht gut aus.
Zweite. Ich habe übrigens gerade gedacht, mein Handy ist
so alt, dass ich nicht mal eine Stoppuhr habe,
aber eine Stoppuhr habe ich.
So, ihr kriegt 20 Sekunden, das muss reichen.
Ja,
Tschüss. Okay, wer es für erstens?
Wieder niemand. Wäre es für zweitens
Ja. Einmal heißt er ja halb.
Bei zweitens fehlt der letzte aus beiden Mengen. A,
verknüpft mit Lamda. Der ist bei zweitens nicht drin.
Deswegen ist zweitens auch nicht richtig. Wer ist für drittens?
Ja, drittens. Wer ist für viertens? Ja.
Beides gut. Drittens und viertens ist die gleiche Menge.
Viertens ist es natürlich schöner. Viertens ist weniger verwirrend.
Aber drittens und viertens
sind gleich
Wenn ich bei drittens ABC verknüpft mit Lamda noch ausführe,
dann kommt der ABC raus.
Dann habe ich da zweimal ABC drin stehen,
dann reicht es, das da immer hinzuschreiben.
Und bei A verknüpft mit Lamda reicht es,
das A hinzuschreiben.
Was passiert hier
Wer ist für erstens? Erstens,
wer ist für zweitens? Zweitens, wer ist für drittens
Drittens, wer es für viertens und traut sich trotzdem noch, sich hier zu melden.
Warte mal, wie löse ich das auf? Drittens ist richtig,
weil in R-Quadrat,
R-Quadrat ist ja eher verknüpft mit R oder R konkodiniert mit R,
Entschuldigung, er konkodiniert mit R. Erstens,
wer also sowas wie R null vereinigt mit R1,
vereinigt mit R2 oder wenn man das von vornherein so definieren würde,
dass in dem R hoch I immer alle vorherigen Is mit drin sind oder so.
Ist so aber nicht definiert,
sondern R-Quadrat ist halt eher konkodiniert mit R. Das heißt,
ich nehme aus dieser Menge AB jeweils ein Element raus,
schreibe es nach vorne und dann nehme ich nochmal
ein Element raus und schreibe es nach hinten
Man kann halt nur AA, AB, BA, BB rauskommen.
Die zweite ist, also mit einer ähnlichen Begründung falsch,
das zweite wäre sowas wie R1-Vereinigt mit R2. Und viertens,
ist deswegen falsch, weil bei der Kongordination dann eben keine Mengen rauskommen,
sondern eben Worte wieder.
Das ist halt einfach so definiert. Hätte man auch
anders definieren können, aber so sehr definiert.
Also nicht so wie bei der Potenzmengen oder sowas.
Genau, also drittens richtig. Und letzte Frage,
wenn ich das da habe, was ist eher Stern
Musik Wer ist für erstens? Wer ist für zweitens?
Wärst du drittens? Er ist für viertens
Okay, unendliche Wörter könnt ihr euch gleich schon bemerken,
unendliche Wörter sind Mist. Damit machen wir in dieser Veranstaltung nichts.
Es gibt keinen unendlichen Wörter für uns. Die machen wir
dann später so im, vielleicht schon im nächsten Semester,
aber dieses Semester noch nicht, gibt keine unendlichen Wörter.
Alle Wörter sind endlich. Bleiben also noch endliche Wörter,
endliche ungerade Wörter und endliche gerade Wörter.
Das ist also ABBA und so drin. Wenn ich Wörter
der Länge 2 miteinander verbinde, was kriege ich dann raus?
Wörter der Länge, 4, 6,
8 und
so weiter
Aber da ist ja auch A und B drin und damit kriege ich halt alle Wörter,
dass ich mit den anderen noch spezielle Wörter irgendwie dazwischen kriege,
die ich eh schon gekriegt habe.
Ist egal. Also ich konnte halt zum Beispiel das Wort A,
B, kann ich jetzt dadurch erreichen,
dass ich das Wort A, B aus der Menge R rausnehme.
Oder ich kriege A, B, dadurch,
dass das Wort A, B in der Menge R-Quadrat drin ist,
nämlich einmal das A genommen und einmal das B genommen,
miteinander konkadiniert.
Ich habe jetzt für viele Worte eben ganz viele verschiedene Möglichkeiten,
das zu machen, aber das macht nichts.
Lange Rede, kurzer Sinn, ich kriege alle endlichen Wörter,
die aus As und Bs bestehen.
Also das erste ist richtig.
Tobi, dann nochmal zur Nachbereitung,
die Antworten
Und jetzt wollen wir zu diesem endlichen Automaten endlich kommen.
Das hatte ich mir noch. Also endlich Automat. Und zwar,
wir haben ja unten dieses Zustandsdiagramm, Zustandsübergangsdiagramm,
und die Elemente in den Kreisen, das sollen die Zustände sein,
in denen ich mich befinden kann.
Üblicherweise irgendwie abgekürzt als Z0, Z1, 2,
2. Man kann da auch irgendwie was anderes hinschreiben,
wenn einem das irgendwie hilft.
Aber man hat halt nur endlich viele davon
Mit dieser, mit diesem Pfeil hier ganz links markieren wir den Startzustand.
Davon soll es nur einen geben. Mit so einem doppelten Kreis
markieren wir Endzustände. Davon darf es beliebig viele geben.
Ja und dann haben wir hier noch irgendwie diese Kantenübergänge,
die einfach dadurch Zustand, aus dem ich komme,
wenn ich ein A lese,
also wenn ich ein Z0 bin und ein A lese,
dann gehe ich nach Z1. Und hier oben symbolisch dargestellt ist das Eingabewort.
Die Idee ist jetzt, wir haben diesen Zustand,
diesen Automaten und wir legen dem ein Eingabewort vor und der fängt jetzt an,
das zu lesen. Und die guten Wörter,
in Anführungsstrichen, die Wörter, die wir akzeptieren wollen,
die sollen uns vom Staatszustand durch die Kantenübergänge zu einem Endzustand führen.
Dann wollen wir akzeptieren. Und dann kann unterwegs so allerlei Schlechtes passieren,
es kann irgendwie passieren, dass wir ein Symbol gar nicht
lesen können, wenn wir irgendwie ein Z0 sind.
Und wir sollen ein B lesen, dann funktioniert das irgendwie nicht.
Also blockieren wir. Dann geht das halt nicht weiter,
dann können wir das Wort nicht akzeptieren.
Oder wenn wir das Wort zwar zu Ende lesen können,
aber wir sind da nicht in einem Endzustand.
Auch doof. Und das wollen wir jetzt versuchen, formal zu fassen.
Und dann können wir uns halt Gedanken darüber machen,
gegeben, ein Automat, welche Menge von Worten akzeptiert der.
Erstmal die Frage, wie definieren wir das? Naja,
wir haben eine Menge von Zuständen,
da bietet es sich an, irgendwie eine Menge zu nehmen,
dann haben wir irgendwie eine Menge Z mit, Z0,
Z, 1, der 2. Eine Menge von Eingabesymbolen,
das ist irgendwie das Sigma, das sind einfach alle Kantenbeschriftungen, die wir so haben.
Dann wird es ein bisschen schwierig, die Kanten zu definieren.
Da hatten wir ja vorhin schon gedacht, so naja,
ich kann das vielleicht irgendwie mit solchen Triebeln machen.
Wir machen das gleich mit einer Funktion,
weil man dann sagen kann, Funktion von Z-Kreuz-Sigma,
sprich Zustand, in dem ich bin, und Symbol,
das ich lese,
Übergang zum Nachfolgezustand
Dann brauchen wir noch einen Startzustand und die Endzustandsmenge.
Und dann sind wir schon fertig. So sieht das aus
. Also so deterministischer, endlicher Automat ist ein Fünf-Tubel,
bestehend aus Zustandsmenge, Eingabealphabet, Überführungsfunktion, Startzustand, Endzustand.
Zustände sollen endliche Menge sein, Eingabealphabet, auch eine endliche Menge.
Startzustand ist einfach ein speziell ausgezeichneter Zustand der Zustandsmenge.
Endzustände ist eine Menge von speziell ausgezeichneten Zuständen der Endzustandsmenge und
die Überführungsfunktion hier. Das ist eine partielle Funktion,
die eben Tupel aus Zustand und Eingabesymbol und diese Mantik dahinter ist,
Zustand, in dem ich bin,
Symbol,
das ich lese,
überführt in einen Nachfolgezustand
Beispielsweise kann man jetzt eben so Sachen machen,
wie wenn ich in dem Zustand bin,
das Licht ist aus und das Symbol B für Lichtschalter betätigen,
passiert, dann mache ich den Zustandswechsel in Lichtes an.
Frage. Kann ein Staatszustand auch ein Endzustand sein?
Ja. Warum? Naja, wird nicht ausgeschlossen. Also ich meine,
hier steht ja nirgendwo, Die Menge der Endzustände ist ZN
aus Z mit der speziellen Eigenschaft Z0 ist nicht in ZN.
Da steht er ja nicht. Sondern einfach nur ZN ist irgendwie
eine Teilmenge der Zustandsmenge. Also spricht da nichts gegen.
Könnten Zustände und Alphabet gleich sein? Also kann ich ein
Symbol haben, A, was gleichzeitig auch ein Zustand ist
Ja, kann man das aber total plärrig, will man nicht haben.
Also man könnte theoretischen Zustand A haben und ein Eingabesymbol A,
das würde nicht mal richtig schlimm sein,
weil bei diesen Zustandsübergangsdiagrammen hier, naja,
dann kann ich halt von A durchlesen,
von A irgendwie nach Z1 kommen oder irgendwie sowas, ne.
Das wäre nicht wirklich tragisch. Dadurch,
dass die halt semantisch doll voneinander getrennt sind,
aber eigentlich will man das nicht haben.
Also man könnte hier noch irgendwie hinschreiben,
dem endlichen Alphabet Sigma von Eingabesymbolen mit Z geschnittenen Sigma ist leer.
Dann gibt es eben nichts, was gleichzeitig Symbol und Zustand
sein kann
So, zur Semantik erstmal informal. Der DFA,
also das hier, beschreibt ja nur die Struktur des DFAs.
Diese Mantik definieren wir jetzt gleich über diese Überführungsfunktion und über das Eingabewort,
dass wir irgendwie sagen, uns wird ein Wort aus Sigmar Stern
vorgelegt und da kann ich jetzt anhand der Überführungsfunktionen Übergänge machen und gucke halt, wo mich das hinführt.
Und informal kann man das so beschreiben,
der DFA kriegt irgendwie ein Eingabewort, wie aus Sigmar Stern,
Sigmar ist das Eingabealphabet des Automaten, ihm ein anderes Wort vorzulegen,
macht nicht so viel Sinn, weil dann ist eh klar,
dass er das nicht zu Ende lesen kann.
Also er kriegt irgendwie ein Wort, das aus seinen Eingabesymbolen besteht.
Dann beginnt er im Startzustand Z0,
Und wenn jetzt das Wort weh mit dem Symbol X beginnt,
dann gucken wir jetzt halt, was sagt uns unser Delta denn?
Was ist Delta von Z0,X? Das, was da rauskommt
, das ist der Nachfolgezustand. Oder das, wohin das
abgebildet wird, genau, das ist dann der Nachfolgezustand.
Und jetzt sind wir zum Beispiel im Zustand Z,
das Symbol X haben wir gelesen,
wir sind jetzt beim zweiten Symbol des Wortes und dann gucken wir uns an,
was ist wieder der nächste Übergang,
wenn ich im Zustand Z bin und jetzt das zweite Symbol lese,
was sagt mir meine Überführungsfunktion dann?
Und damit mache ich dann einfach weiter. Genau,
und dann Kann man sich nochmal Gedanken machen mit akzeptieren oder nicht?
Welche Intention hatte man mit diesen Endzuständen? Das Wort soll
eben akzeptiert werden, wenn es bis zum Ende gelesen werden kann.
Und der Automat dann in einem Endzustand ist. Also er
soll nicht davor irgendwann mal in einem Endzustand gewesen sein oder so,
sondern er soll, wenn er das letzte Symbol gelesen hat,
dann soll er in einem Endzustand sein.
Und dann akzeptieren wir und sonst nicht. Also Beispiel,
wir fangen an mit Grün markiert im Zustand Z0 und lesen das erste Symbol,
das A. Man nennt das ja auch manchmal so ein Lesekopf
oder sowas aus den 50ern kommt,
die Bezeichnung noch
Auch die Vorstellung, mit so einem Eingabeband heutzutage würde man vielleicht sagen,
das sind Knöpfe, die man drückt oder irgendwie sowas,
aber wir lesen jetzt halt dieses A, das kommt irgendwie.
So, und jetzt gucken wir, gibt es im Z0
eine Kante, die uns aus Z0 wegführt mit dem A.
Die gibt es, die führt nach Z1.
Also machen wir einen Zustandswechsel nach Z1, so.
Und dann wandert eben dieser Lesekopf auf das nächste Symbol,
sprich das A haben wir gelesen,
wir sind jetzt bei dem B. Jetzt gibt es wieder das B,
auch eine Kante, damit bleiben wir aber in Z1.
Das ist aber okay, es gibt diese Kante,
also es gibt quasi den Übergang Delta, Z1,
B nach Z1. Oder Delta,
Z1 B ist gleich
Das heißt, das ist was anderes, als wenn wir
hier in Z0 gewesen wären und dann das B käme.
Dann gibt es nämlich keine B-Kante und dann sagen wir, können wir nicht lesen.
Hier können wir es lesen, bleiben aber in dem Zustand.
Also es ist quasi ein Zustandswechsel vom Zustand wieder zurück in den Zustand.
So. Das Äquivalent dazu irgendwie, wenn ihr eine Schleife habt
in der Programmiersprache und ihr macht halt den Übergang von Schleifenkopf zu Schleifenkopf.
Dazwischen passiert vielleicht was, aber wenn ihr euch nur den Zähler anguckt,
seid ihr halt an der Position oder Schleifenkopf beginnt.
Wenn ihr einmal den Rumpf gemacht habt,
seid ihr wieder an der Position, wo der Schleifenkopf beginnt.
Da hat sich der Zustand vielleicht auch gar nicht geändert.
Wenn er sich gar nicht geändert hat, ist es wahrscheinlich
ein bisschen schlecht, weil den Termin jetzt schleifen nicht,
aber So von der Idee kennt man das daher auch.
Jetzt kommt nochmal ein B, passiert wieder nichts.
Also wir bleiben wieder in Z1. Und jetzt kommt das A,
A, können wir auch lesen, überführt uns nach Z2,
Z2 ist ein Endzustand, wir haben das Wort zu Ende gelesen, wir akzeptieren.
Also das Wort A, B, B, A akzeptieren wir mit dem Automaten. Anderes Beispiel A,
B, B, fast das gleiche Wort,
passiert also am Anfang auch das Gleiche,
mit A lesen kommen wir nach Z1,
mit B lesen, bleiben wir in Z1,
mit dem zweiten B bleiben wir auch in Z1,
Wort ist zu Ende gelesen, gut,
wir sind nicht im Endzustand,
nicht so gut,
Wort wird nicht akzeptiert
Anderes Beispiel BAA. Schon beim ersten Buchstaben blockieren wir.
Also Wort nicht zu Ende gelesen. Wort wird nicht akzeptiert
. Eines Beispiel AAB. Mit A komme ich nach Z1.
Mit A komme ich nach Z2. Nee, kann ich nicht mehr lesen.
Ich blockiere wieder. Ich bin zwar im Endzustand,
aber ich habe das Wort nicht zu Ende gelesen.
Also akzeptiere ich nicht. Da nochmal zusammengefasst zum Nachbereiten
Also ihr akzeptiert nur dann, wenn ihr das Wort zu Ende lesen könnt und dann im Endzustand seid.
Okay. Ja, Fragen dazu. Dann,
um das jetzt zu definieren,
das war jetzt so die informale Definition, das zu definieren,
brauchen wir, oder es ist nützlich,
sich diese erweiterte Überführungsfunktion einzuführen,
die tut im Grunde genommen das Gleiche,
wie die Überführungsfunktion,
nur dass sie statt einzelnen Symbolen
ganze Wörter reintun kann und dann quasi die Überführungsfunktion für das
ganze Wort mache
Also die Abbildung immer wieder ausführe. Vielleicht definiere ich mir das so,
da kommt so ein Dach drauf, Delta Dach und mit
Menge Z kreuzig mal Stern und wird nach Z überführt.
Und zwar wird hier rekursiv definiert, dass ich sage,
wenn ich im Zustand Z bin und das leere Wort lese,
also nichts tue, dann bleibe ich in Z.
Das ist einfach dafür, dass man nachher den Rekursionsabbruch hat.
Und wenn ich irgendwie im Zustand Z bin und ich lese hier das Wort XW,
dann führe ich halt einmal, also dann gucke ich mir einmal an,
was ist das Bild unter Delta von ZX.
Also ich bin Zustand Z,
wo komme ich hier mit dem X und den Zustand tue ich
dann da wieder hin und dann gucke ich mir halt Delta Dach, dieser Zustand Komma weh an.
Und wenn das nur ein Symbol war, also wenn das nur X war,
dann ist das wir ja leer, das leere Wort,
dann hättet ihr jetzt hier Delta Z Delta Dach Z,
Komma X, dann guckt ihr euch hier Delta Z,
Komma X an, kommt irgendwas raus und dann ist hier das weh,
das leere Wort,
sprich ihr habt hier diesen Rekursionsabbruch.
Beispiel, wenn ihr diesen Automaten hier habt mit einer Nullkante an Z0,
im Eins-Übergang nach Z1 und hier wieder eine Null-Schleife und ihr
guckt euch an, was passiert eigentlich bei
001 Er entführte quasi immer wieder die, oder ihr
guckt euch immer wieder das Bild in der Überführungsfunktion an.
Dann fangt ihr an, was passiert eigentlich bei Z00.
Da bleibe ich halt bei Z0. Das heißt,
ihr bleibt hier bei Z0 und nehmt den einen Buchstaben weg.
Dann guckt euch wieder an, was passiert bei Z00. Ihr bleibt in Z00,
Buchstabe kommt weg und Zustand wird dahin geschrieben, was passiert bei Z01.
Und jetzt müsst ihr da streng genommen erstmal noch stehen.
Delta-Dach, Z1, Komma Lamda. Und das ist dann
Z1. Und dann ist man fertig.
Das ist die erweiterte Überführungsfunktion
Und damit lässt sich gleich relativ einfach definieren, welche Wörter
wir akzeptieren wollen. Man kann dann nämlich einfach sagen,
wir wollen all die Wörter akzeptieren mit Delta Dach,
Z-0,W, ist ein Endzustand.
Und dann ist man schon fertig mit den Wörtern, die akzeptiert werden.
Eine Alternative wäre das mit Konfiguration zu machen.
Das ist immer so ein Tupel bestehend aus Zustand,
in dem ich bin und Wort, das ich noch lesen will.
Das ist dann quasi die Konfiguration, in dem
der Automat sich befindet
Wenn ihr irgendwie hier seid, ihr am Anfang,
im Grunde genommen das, was hier in den Klammern steht,
dass wir immer eine Konfiguration dann.
Ihr seid am Anfang in der Konfiguration Z0,
001 und dann macht ihr einen Übergang und dann seid ihr in der Konfiguration Z001,
weil ihr immer noch in diesem Zustand seid,
aber ein anderes Restwort lesen müsst.
Also Konfiguration, Tupel aus Zustand und Wort,
mit der Bedeutung AS im Zustand Z und muss das Wort W noch lesen.
Konfigurationsübergang, wenn ihr von, wenn sich W schreiben lässt
als XV und X ist irgendwie ein Symbol, Und Delta ZX ist Z-Strich. Sprich,
wenn ich in Z bin und das X lese,
komme ich nach Z-Strich, dann ist der Konfirmationsübergang eben,
dass ich von Z als erstes Element im Tubel nach Z-Strich komme und vom Wort W,
streiche ich eben das erste Symbol X weg und schreibe das noch hin,
was dann nach dem X kommt,
also das V in dem Fall.
Und wenn ich dann so ein Wort habe und ich fange im Zustand Z-0 an,
dann kriege ich irgendwie eine Folge von Konfirmationsübergängen,
das nenne ich dann eine Rechnung.
Also wenn ich die in Z-0 W anfange und einfach gucke,
was passiert, dann nenne ich das Rechnung.
Und wenn die Rechnung in so einer Konfirmation Z-Strich Lamda endet,
sprich Wort ist zu Ende gelesen,
Z-Strich ist ein Endzustand,
dann nenne ich das
eine Erfolgsrechnung
Konfirmation, Konfirmationsübergänge, Rechnung, Erfolgsrechnung. Im Grunde genommen das Gleiche.
Deswegen ist es beim DFA auch gar nicht unbedingt nötig, das einzuführen.
Also es würde reichen, damit zu arbeiten, mit dieser erweiterten Überführungsfunktion.
Aber bei späteren Automatenmodellen ist das sehr praktisch, das zu haben.
Deswegen hier schon mal eingeführt. Genau. Und da das Beispiel,
was wir eben auch schon hatten,
aber jetzt kann man halt hier sehen, okay,
wir sind am Anfang in der Konfirmation Z0A, BBA.
Wenn ich ein A lese, bin ich danach in der Konfirmation Z1 BBA.
Wenn ich Das B-Lese bin ich in Z1, B-A,
nochmal das B-Lesen, Z1a, jetzt die A-Kante nehmen, Z2 Lamda.
Ist eine Rechnung, weil ich hier in der Konfiration starte
mit Startzustand und irgendeinem Wort. Und es ist sogar eine Erfolgsrechnung,
weil ich in einer Konfiration ende mit Endzustand Lamda.
Also alles gut. Genau, so und da nochmal die Anmerkung,
dass man den meistens erst später einführt,
aber macht euch jetzt schon mal damit vertraut,
dann ist das für spätere Automatenmodelle praktischer.
Bei späteren Automatenmodellen führt man das ein,
weil man sich mehr Dinge merken muss,
zum Beispiel irgendwie noch einen Kellerinhalt oder irgendwie sowas
So, und zu guter Letzt, akzeptierte Sprache,
geschrieben mit so einem 11 für Language,
also ich habe so ein Automaten A und die Sprache von A,
das sollen all die Wörter sein aus Sigmar Stern,
mit der Eigenschaft, wenn ich in Z0 starte und das W lese,
dann überführt mich das in Endzustand.
Oder eben formal ausgedrückt, Delta Dach von Z0W ist Endzustand. Oder in der Notation da drunter,
ich komme von so einer Startkonfiguration,
Z0 und Angabe-Wort nach mehreren, aber endlich vielen Schritten,
also dieses Zeichen hier,
diese zwei Ölbalken,
das war ja das für einen Konfigurationsübergang und mit so einem Stern da drüben,
darüber heißt es eben mit null bis endlich vielen Schritten
komme ich zu einem Endzustand
Und habe das Wortsende gelesen, genau. Und solche Mengen,
die von einem endlichen Automaten akzeptiert werden können,
die bezeichnen wir als reguläre Mengen.
Und dann kann man alle regulären Mengen zusammennehmen,
dann hat man eine Menge von Mengen,
oder in dem Fall spricht man auch von der Familie,
das ist die Familie der regulären Sprachen.
Und mit denen kann man schon allerlei Dinge tun in der Informatik.
Und was wir uns halt angucken werden, ist,
welche Eigenschaft hat eigentlich diese Sprachfamilie,
was gibt es für andere Automatenmodelle,
zu welchen Sprachfamilien führt das und
so weiter
Genau. Da nochmal, also wenn ich so ein DFAA
habe, dann ist LA irgendwie eine Menge von Worten.
Das ist die von A akzeptierte Sprache. Die kann leer sein,
das kann ganz Siegmar Stern sein,
aber im Spannenden sind die natürlich, die irgendwo dazwischen liegen.
Und spannend sind auch die Sprachen, die nicht gehen und sowas.
Und LA ist dann eben aus Reck und Reck enthält dann Mengen.
Und zu guter Letzt, die zwei Definitionen nochmal reingemischt,
weil wir die oft benutzen werden, so in Beweisen.
Wenn ich so ein DFA habe, dann nenne ich den vollständig,
wenn ich zu jedem so einem Tupel Z,
ein Bild habe unter Delta, also oder grafisch ausgedrückt,
egal in welchem Zustand ich bin,
es gibt für jedes Symbol eine Kante daraus.
Wobei Raus auch bedeuten kann, dass ich in dem Zustand bleibe,
aber es gibt halt für jedes Symbol eine Kante.
Vollständigkeit führt halt dazu,
dass ich jede Eingabe auf jeden Fall lesen kann,
weil egal, was für ein Symbol kommt und wo ich gerade bin,
ich kann ja weiterlesen.
Und initial zusammenhängend nenne ich ihn, wenn es zu jedem Zustand
ein Wort gibt, sodass ich diesen Zustand erreichen kann.
Das ist deswegen praktisch,
weil ich alle anderen Zustände im Grunde genommen ignorieren kann,
wenn ich die eh nicht erreiche,
dann passiert da auch nichts
Und das führt dazu,
dass man sehr häufig so in Beweisen irgendwie nur mit der
initialen Zusammenhangskomponente arbeitet oder irgendwie den Automaten erstmal vollständig macht,
damit man weiß, ich kann auf jeden Fall jedes Wort lesen und sowas.
Das waren die Begriffe, die wir jetzt so hatten.
Fragen. Fragen zum Ersten? Ja. Kannst du
kurz lauter
Die Familie? Ja. Die Frage kommt nur halb bei mir an.
Ich beantworte einfach mal, was eine Familie ist.
Wenn bei der Potenzmenge zum Beispiel, das ist ja eine
Menge von Mengen, im Grunde genommen genau das Gleiche.
Nur, dass wir jetzt eben das eine Familie nennen,
weil wir da nachher auch noch so spezielle Operationen drauf machen wollen und so.
Aber der genaue Bedeutungsunterschied ist nicht so wichtig für uns.
Wichtig ist nur, dass du weißt,
die regulären Mengen bilden eine Sprachfamilie. Das bedeutet,
das ist eine Menge von Mengen und jede Menge in Reck
ist halt eine reguläre Menge
Nee, bezogen auf, nee, auf nichts Spezielles bezogen.
Also die charakteristische Eigenschaft der regulären Mengen ist, dass es
einen endlichen Automaten gibt, der diese Menge akzeptieren kann.
Kommen wir auch noch mal so im Detail zu,
wenn wir das so ein bisschen uns mit Sprachen so angeguckt haben.
Fandest du noch? Zum ersten? Zweiten
Genau, dann hast du aber nur ein elementige Mengen. Es geht ja darum,
dass ich dir eine Menge von Worten sage und sage,
baue mir einen DFA, der genau diese Menge akzeptiert.
Jedes Wort, was da drin ist, keins darüber hinaus,
aber jedes, das da drin ist.
Wenn ich dir jetzt zum Beispiel sage,
konstruiere mir doch mal einen Automaten, der alle Wörter akzeptiert,
die aus geraden vielen Ars bestehen, also irgendwie zwei As,
vier As, sechs As, acht As und so weiter.
So, dann kannst du sagen, alles klar,
kann ich machen, ich mache mir hier einen Startzustand,
ich mache mir einen Endzustand, eine A-Kante, Quatsch,
Start- und Endzustand und temporärer Zustand.
Mit einem A gehe ich rüber, mit einem A gehe ich zurück.
Jetzt akzeptiere ich null As, zwei As,
vier As, sechs As und so weiter.
Und die ungeraden nicht. Alles super. So,
jetzt sage ich als nächstes, okay,
dann hätte ich gerne einen Automaten für beliebig viele As, egal wie viele.
Und dann genauso viele Bs. Das ist so eine ganz
charakteristische Sprache. A, Hoch-NB hoch ändern wir die später,
dass du quasi fünf As lesen kannst und dann 5 Bs.
Oder sieben As und dann sieben Bs oder neun As und
dann neun Bs oder irgendwie sowas. Und wenn du dafür versuchst,
einen DFA zu konstruieren, Dann hast du das Problem informal jetzt,
hast du das Problem, dass du dir eigentlich im Zustand irgendwo merken müsstest,
wie viele As du gelesen hast,
damit du danach genauso viele Bs lesen kannst.
Und dafür bräuchtest du aber unendlich viele Zustände, weil du
das ja für beliebig viele As halt machen können müsstest und das geht nicht.
Und so eine Sprache wird dann nicht mehr regulär sein,
obwohl du ja jedes einzelne Wort dieser Sprache natürlich mit dem Automaten akzeptieren kannst,
wenn ich das Ende irgendwie festhalte, kann ich das machen,
also wenn ich sage, bis zu 1000 As oder so,
dann kann ich das machen,
brauche ich irgendwie 1000 Zustände und kann das machen,
aber wenn die Menge unendlich groß wird,
habe ich an der Stelle ein echtes Problem.
Okay, Den einmal. Welches, wow, welche Worte
akzeptiert er? Oh, schaff ich das noch?
Welche Worte akzeptiert er
Na, wer es für erstens? Wer es für zweitens
? Erst für drittens? Wer ist trotz Einschüchterung für viertens
? Weißt du, fünftens? Ihr macht das doch mit
Absicht. Nein. Er ist doch großartig,
wenn es nachher dieses Clicker-Tool gibt,
dann schaffe ich das ja manchmal nicht,
das rechtzeitig umzustellen oder ich denke halt gerade nicht dran und
dann habe ich noch sowas wie jetzt hier sechs Antworten zur Auswahl.
Dann gibt es ja immer welche,
die sechstens drücken,
ne?
Immer. So, zweitens ist richtig,
weil das Wort null überführt einen Endzustand,
von Z0 nach Z1 und das Wort 0-1-0 auch,
weil ich von Z0 nach Z1, nach Z2 nach Z3 komme.
Die beiden Wörter sind also okay. Nur null ist doof,
weil dann verpasse ich das andere. Nur 0-1
-0 ist auch doof, weil der verpasst die null.
Und das vierte, das ist halt dieses Ding mit 0
-1 will ich nicht akzeptieren können,
auch wenn ich da vorher mal im Endzustand war.
Aber ich bin ja ein Nachlesen des Wortes nicht mehr
im Endzustand. Da will ich nicht mehr akzeptieren.
Ist das ein DFA? Ja, nein.
Weiß nicht, sag ich nicht. Ich wollte da
irgendwie mehr als zwei Sachen zur Auswahl haben.
1, 2. Wer ist für Ja? Wer ist für
Nein? Wer ist für, weiß ich nicht.
Das vierte frage ich nicht. Okay. Es ist kein DFA,
weil wir beim DFA ja gesagt haben, wir wollen diese Überführungsfunktion haben.
Also darf es für ein Tupel, in diesem speziellen Fall,
das Tupel Z 00, Nur ein Bild geben.
Also wenn ich in Z0 bin und die Null lese,
dann darf es nur einen definierten Nachfolgezustand geben.
Und hier gibt es irgendwie zwei. Ich könnte in Z0
bleiben oder nach Z1 gehen. Erstens kriege ich das mit
dem mathematischen Formulismus gar nicht ausgedrückt.
Ich müsste dann irgendwie Delta-Z0-0 auf zwei Zustände abbilden.
Das kann ich gar nicht machen. Und das andere ist,
ich habe das noch nicht so betont bisher,
aber es geht hier jetzt gerade um einen deterministischen Automaten.
Und dieser Determinismus, der drückt sich dadurch aus,
dass ich quasi immer nur eine Möglichkeit habe, was zu tun.
Das Verhalten dieses Automaten ist determiniert. Wenn ich in Z0
bin und den Knopf null drücke oder die Null lese,
je nachdem welches Bild man gerade im Kopf hat,
dann muss halt der Nachfolgezustand determiniert sein und nicht unterschiedliche Dinge
passieren können
Also da ist es zweitens und ja, nehmen wir die nochmal hier.
Welche Sprache akzeptiert der? Dass diese Mensa-Fraktion jetzt immer schon aufbricht,
das ist echt,
ich will vielleicht auch eigentlich gleich noch was zeigen jetzt,
diese ganze Mensa-Fraktion,
die wird mich heute Abend so mit E-Mails bombardieren,
ich weiß das jetzt schon
Ja. Wärest du erstens? Keiner, alles gut.
Wäre es für zweitens? Okay. Wer ist für drittens
? Okay. Und wer ist für viertens?
Ach ja. Wer weiß noch gar nicht so richtig,
wie man das macht so, weil das machen wir morgen eh nochmal genauer.
Wenn ihr das jetzt noch nicht so ganz so,
das machen wir morgen alles genauer. Aber es geht ja darum,
welche Wörter sind jetzt alle in dieser,
ich nenne es jetzt mal rechts hier,
welche Wörter stehen alle hier in der rechten Menge
Und all diese Wörter, die müssen auch in der linken Menge drin sein.
Sprich, all diese Wörter muss der Automat akzeptieren.
Und aber nicht mehr, sondern genau diese Menge soll er akzeptieren.
Da steht ein Gleichheitszeichen, da steht nicht Teilmenge nach rechts oder Teilmenge
nach links, sondern genau diese Menge. Das heißt,
sowas wie das hier zum Beispiel 0 Stern 1, beliebig viele Nullen,
gefolgt von einer 1. Alle diese Wörter überführen mich in den Endzustand Z2.
Die akzeptiere ich also alle. Alle diese Wörter sind also in L.A.
drin. Aber in L.A. sind noch mehr Wörter drin.
Nach Lesen der 1 kann ich ja noch Nullen lesen in
Z2. Ergo ist zweitens nicht richtig.
Drittens, Sieht gut aus. Ich kann am Anfang
beliebig viele Nullen lesen, auch null, null.
Dann kommt eine Eins, die bringt mich nach Z2
und dann kann ich wieder beliebig viele Nullen lesen.
Und ich bleibe dabei ein Z2, also auch super.
Weil zweitens kann man tatsächlich die Gleichheit zeigen. Bei viertens,
da ist das Problem,
nachdem ich mit der Eins den Zustandswechsel nach Z2 gemacht habe,
während in dieser Menge 0-1 Stern ja noch Wörter drin,
die wieder Einsen enthalten.
Die kann ich aber in Z2 nicht mehr lesen.
Das heißt, bei viertens ist auf der rechten Seite zu viel.
Weil zweitens ist es auf der rechten Seite zu wenig,
bei viertens ist es auf der rechten Seite zu viel.
Bei drittens passt es genau. Und ab morgen werden wir uns damit beschäftigen,
wie man gegeben eine Sprache einen Automaten dafür akzeptiert.
Also ich gebe euch irgendwie so eine Menge M hier auf
der rechten Seite und sage, baut mal einen Automaten,
der genau diese Menge akzeptiert.
Damit werden wir uns beschäftigen und mit der Frage,
gegeben Automat, welche Menge akzeptiert er eigentlich?
Das ist das zweite. Und das dritte,
wie zeigt man überhaupt dann diese Mengengleichheit?
Ja, aber, also die Frage war gerade hier,
warum reicht zweitens nicht? Wenn du dir den Automaten
ja anguckst und die Definition von LA ist ja,
ich will alle Wörter in LA drin haben,
die ich zu Ende lesen kann und die mich den Automaten vom Staatszustand in den Endzustand überführen.
Und wenn du jetzt zum Beispiel als einfachstes Wort 010 nimmst,
dann liest du in Set 0 die Null,
machst mit eins den Übergangswechsel nach Z2 und dann liest du noch diese andere Null.
Das ist ein Wort,
das der Automat zu Ende lesen kann,
das ihn vom Staat in Endzustand geführt hat und das er
also akzeptieren will oder soll
Ja, das ist ja bei 0-1 auch so.
Das Wort akzeptiert er ja auch. Ach so, hier,
da. Diese Sternengeschichte, die bedeutet auch 0-0.
Also er muss da nicht noch eine Null lesen.
Er kann. Okay, die skippen wir mal,
die könnt ihr euch zu Hause angucken, die vierte.
Und ich will euch noch was zeigen.
Weil, ich hoffe mal, das klappt ihr jetzt?
Ja, ich habe
noch acht Minuten
Ich hatte ja gesagt, dass, ups. Ich hatte ja gesagt,
dass es üblicherweise diese Probleme gibt,
dass man irgendwie Notationen nicht versteht oder auch irgendwie sonst mit dem Stoff,
also dass man irgendwie Probleme mit dem Stoff hat.
Und ein Problem ist halt, dass man Ja,
man sitzt jetzt irgendwie mit Skript oder Buch zu Hause und denkt irgendwie so,
hm, ja, Mist in der Vorlesung, dachte ich, ich habe es verstanden.
In den Übungsaufgaben dachte ich auch, ich habe es verstanden.
Und jetzt merke ich gerade, keine Ahnung,
diese Stelle im Skript verstehe ich nicht.
Und dann markiert man die sich irgendwie im Skript und denkt so,
ja cool, markiert ist sie jetzt.
Und ich weiß auch, dass ich es nicht verstanden habe,
aber irgendwie kommt man jetzt gerade an der Stelle nicht weiter.
Und da wollten wir euch halt Unterstützung anbieten.
Also ihr könnt natürlich jederzeit sowieso irgendwie die Übungsgruppenleiter mal anmelden
oder mich anmelden oder so, wenn es Probleme gibt.
Aber wir wollten euch ein Skript basteln. Und zwar wollten
wir das Skript nicht nur als PDF haben,
sondern wir wollten das Skript digital haben
Und da haben wir die Seite hier gebastelt und da könnt ihr jetzt,
also da unten stehen noch so Infos und sowas,
das könnt ihr euch mal zu Hause angucken.
Das ist unter FG1-Skript.de und jetzt könnt ihr hier oben im Automatentheorie
teil in die endlichen Automaten gehen und nehmen wir mal den DFA,
das war so das, was wir jetzt heute ja so gemacht haben.
Und jetzt wird das da so generiert, sieht man das? Ja, kann man sehen, sehr schön. Genau und hier ist das jetzt so,
hier rechts oben ist immer der Download PDF-Button für das Kapitel,
also man kann das Kapitel auch als PDF ganz normal haben,
aber ihr könnt das dann eben auch irgendwie im Browser lesen und wir haben uns irgendwie hoffentlich,
also wir haben uns auf jeden Fall ordentlich Mühe gegeben,
aber ich hoffe, es hat auch gefruchtet, dass wir versucht haben,
das so aufzubereiten, dass man das gut verstehen kann,
dass das irgendwie alles so ein bisschen grafisch hübsch ist.
Hier hat man jetzt irgendwie so die Definition, Bilder,
dann gibt es so Text dazwischen,
dann gibt es hier oft so Sachen, Bereiche,
wo ich weiß, die machen einigen Leuten Probleme, anderen nicht,
die sind dann oft in solchen Akkordeons, heißen die Dinger,
dann sind da einfach nochmal so mehr Infos zum Akzeptieren und Ablehnen von Worten,
oder hier so Beispielgeschichten, um die dummen,
und hier ist nochmal so eine Zusammenfassung mit wichtigen Griffen,
ganz unten ist immer so ein kleines Quiz, dann irgendwie,
sieht so ähnlich aus wie die Fragen, die wir hier hatten oder das könnt ihr dann starten, könnt die Fragen beantworten und so weiter.
Und warum ich euch das jetzt aber eigentlich zeige,
ist folgendes. Nehmen wir mal an,
ihr lest jetzt diesen... Nehmen wir mal an,
ihr seid an der Stelle hier,
A beginnt im Startzustand Z0 und ihr habt jetzt irgendwie vergessen,
was der Startzustand ist oder was der für eine Bedeutung hat oder irgendwie sowas.
Dann gibt es hier rechts oben,
gibt so ein Ausklappding zum Annotieren und zwar könnt ihr dann
hier jetzt Staatzustand irgendwie highlighten und dann könnt ihr an der Stelle sagen,
ich möchte das annotieren und dann poppt das da auf und dann könnt ihr irgendwie sagen,
ich weiß nicht mehr,
was ein Staatzustand ist
Frage ist dann so. Dann,
um das schon mal vorweg zu sagen, hier,
also ich bin jetzt schon angemeldet hier als sehr anonymen Frank Heidmann.
Und hier oben könnt ihr jetzt irgendwie in so eine andere Gruppe wechseln, FG1-Gruppe.
Ich sage da auch gleich noch mal was dazu.
Und dann könnt ihr das halt posten, schwupp.
Und jetzt ist halt das Schöne, dass wir sehen können,
hier an welcher Stelle das gepostet ist,
wenn man jetzt mehrere Sachen markiert,
wenn man jetzt hier noch sagt Endzustand, weiß ich auch nicht.
Ich auch nicht. So,
jetzt sieht man schon hier rechts,
sind die jetzt beide und jetzt kann man hier halt
ganz gut überall hinspringen
Schmal. Jetzt stellt ihr fest, Frank führt Selbstgespräche und so.
Das ist total okay. Genau. Und das ist für,
also das ist total freiwillig, die Benutzung,
ist für uns ein Angebot an euch,
dass ihr das Skript sowohl online lesen könnt als auch irgendwie als PDF.
Und wenn ihr irgendwie Probleme habt, könnt ihr eben die da markieren,
relativ gezielt irgendwie an der Stelle, wo es das Problem gibt.
Und wir können euch hoffentlich möglichst schnell helfen. Also,
dass ihr nicht irgendwie bis eine Woche,
bis in die nächste Übungsgruppe warten müsst,
sondern dass wir euch gleich helfen können.
Zwei Sachen will ich dazu noch anmerken, die wichtig sind.
Erstens, dieses Tool, was da rechts läuft,
das ist ein Plugin, das heißt Typothesis.
Und das ist eine, jetzt muss ich auch fast sagen,
eine Non-Profit-Organisation, die das gemacht hat.
Das ist auch Open Source,
das ist in den Terms of Services steht drin,
ihr könnt das anonym benutzen,
aber man braucht halt eine E-Mail zum Anmelden
und so weiter
Es ist verlinkt und beschrieben in der Doku von dem Skript
. Ihr könnt euch unten... Hier unten unter annotieren,
gibt es eine Doku zu dem Annotierungstool. Links daneben gibt es
ein bisschen Doku zu dem Skript an sich. Lest euch das einmal sauber durch,
was ihr halt machen könnt,
ist bei dem Annotierungstool,
ihr geht halt auf die Seite von diesem Annotierungstool und meldet euch mit irgendwie einer E-Mail-Adresse,
die ihr von mir aus extra für diesen Zweck anlegt,
da an und was anderes außer die E-Mail-Adresse
fragen die ja auch nicht
Wenn ihr da jetzt natürlich irgendwie total Bedenken habt und so,
dann geht da noch zwei, dreimal in euch,
liest die Terms of Services nochmal genauer.
Ich glaube, das ist datenschutzrechtlich ziemlich unbedenklich.
Ihr solltet natürlich nicht in die Unotations sowas schreiben wie Hilfe,
ich verstehe diese Stelle nicht, ruft mich unter dieser Nummer an.
So, das sollt ihr irgendwie nicht machen. Dann schreibt lieber
eine E-Mail, ne? Aber ansonsten ist das relativ sicher,
wenn man in den, wenn man in den Gruppen postet,
hallo, Aufmerksamkeit, wenn man in den Gruppen postet,
ist es auch, baldet ihr quasi das Copyright und so weiter und so weiter.
Nur wenn man halt in diese Public-Domain postet,
dann ist das halt wie öffentlich in den Wald reinschreien,
dann kann man auch nicht
Genau, man kann den Account jederzeit löschen.
Also ich glaube, das ist, wie gesagt,
die machen da, die wollen auch keinen Profit machen.
Ich glaube, das ist ziemlich sicher. Genau,
das dazu, was wollte ich noch sagen? Genau,
und wir veröffentlichen da, also das Ziel ist,
insbesondere die Skriptteile da drin zu haben,
von denen wir wissen oder die Vorlesungsteile,
von denen wir wissen, dass die immer Probleme machen.
Ich werde versuchen, das komplett alles zu haben,
also nicht nur die Teile, die Probleme machen,
kann ich jetzt aber noch nicht hundertprozentig versprechen.
Also vielleicht gibt es irgendwann mal Kapitel, wo ich sagen muss,
Da bin ich nicht mehr zum Schreiben gekommen,
da müssen die Folien und die Literatur reichen.
Ich versuche aber, das immer zu schreiben und so,
dass wir immer grob die aktuelle Woche da drin haben,
vielleicht irgendwann auch eine Woche im Voraus.
Aber es ist halt nicht das ganze Ding online,
sondern immer so die aktuelle Woche, vielleicht die nächste.
Und ich schreibe euch heute Abend über Stiene noch Mails mit
der Einladung. Einmal gibt es eine Gruppe FDA 1,
alle, so, da sind dann halt alle drin.
Und dann wird es aufgesplittet nach den Übungsgruppen,
also ein bisschen Übungsrum,
die sie jetzt in Stiene sind,
weil dann halt quasi immer 15 Leute
ihre Gruppe haben und nur ihre Annotierung sehen
Und falls ihr es viel benutzt, wird es dann eben
nicht zu unübersichtlich. Und dann ist immer der Übungsgruppenleiter auch
in der Gruppe drin und kann euch ein bisschen assistieren.
Und ich habe noch drei studentische Hilfskräfte,
die auch so ein bisschen auf die Gruppen verteilt sind,
die dann eben auch da helfen.
Genau. Also nutzt das gerne. Wir würden da
auch gerne mit euch so ein bisschen so in,
das ist ein Experiment,
deswegen würden wir ganz gerne mit euch so ein Feedback schleifen gehen,
was vielleicht gerade nicht klappt,
dass wir das irgendwie verbessern können und so weiter.
Ja,
Paul, letzte
Genau, danke. Genau, ihr seid dazu aufgefordert,
das so zu benutzen, dass ihr euch auch
gegenseitig helft.
Super,
bis morgen