Wenn ich kurz in die Aufmerksamkeit gewüste, aufgrund von technischen Problemen,
nein, verzögert sich nicht die Abfahrt,
sondern ist das Wild mit einem leichten Stich versetzt.
Das ist das eine. Das zweite ist, mobile Found-Anlage ist
äußerst unmobil heute, weswegen ich hier an das Rednerpult gekettet bin.
Davon abgesehen läuft aber alles wie immer. Ich begrüße Sie
also zur, zum Sommersemester 20011 mit formalen Grundlageninformatik 1.
In diesem Jahr gehalten von Frau Eschenbach und mir,
damit man mal einen Eindruck bekommt,
wer ich weiß
Vortragenden sind. Frau Eschenbach, aus dem Arbeitsbereich
Wissens- und Sprachverarbeitung, mit den Logikanteil dieser Vorlesung lesen.
Und ich werde den Vorlesungsteil Automatentheorie formale Sprachen und alles,
was da sonst noch dran hängt, lesen.
Was gibt es zur Vorlesung, organisatorisch zu sagen,
wie liegt? Ich bitte eigentlich an was bei den Umwelten
geht ganz gut. Ich weiß nicht, wie weit
das grammell geht
Ja. Ich weiß nicht, ob man das jetzt noch
kontrastreich sehen kann. Ja, kann man, über welche,
die sich zustimmen? Ich mache es doch so.
Ich sehe das hier relativ klar und scharf vor mir.
Ich habe erst mal das Kleingedruckte als Vorbemerkung zur Vorlesung
oder davor, es wird noch genügend Sitzplätze.
Man muss sie nur nehmen. Du bist zum Zusammenrutschen.
Das ist schon ein altes Impulserhaltungsgesetz.
Wenn man an der Seite draufhaut, dann wünschen die Studenten
in die Mitte
Es gibt einen Skript zur Veranstaltung, dass die Folien,
die ich hier vortrage, eine gedruckter Form enthält.
Dazu ist zu sagen, dass aber dieses Folien-Skript und
diese Vorlesung nur als eine Einheit zusammen wirklich sinnvoll ist,
also ein eine Literaturstudium wird zumindest damit schwer.
Das hat auch gar nicht den Anspruch,
ein Buch zu ersetzen oder alleinstehend verwendbar zu sein.
Wer eine Präsentation des Stoffes in Buchform haben will,
der sei verliehen auf die Standardwerke, Literatur.
Ich empfehle in diesem Jahr die neueste Ausgabe in Popcorp,
Ironman, Mordwani, in die Automattheorie formale Sprachen, in Komplexitätstheorie.
Empfehlenswert ist auf der Fossenbit, rund plus theoretische Informatik,
hat allerdings einen kleinen Nachteil. Das Buch ist vergriffen.
Er eignet sich also zum Annschaften nur äußerst bedingt.
Bei Amazon wird es, glaube ich, ein Rechtsexemplar gebraucht.
Sodass man auf die Bibliothek angewiesen ist. Gut, für
den Logikteil gilt ähnliches auch dort. Sind die Folien natürlich,
wenn man sie in Zusammenhang mit der Vorlesung konsumiert,
durchaus geeignet, das alles immer zu erfrischen,
aber er setzt nicht unbedingt ein Lehrbuch
Dann das nächste Organisatorische sind die Übungen zu den Übungen,
haben sie vielleicht festgestellt, oder ich weiß gar nicht,
ob sie das sehen können, dass wir verschiedene große Gruppen eingerichtet haben an den Terminen.
Übungsgruppen liegen also zu folgenden Zeiten. Dort sind derzeit 80er, 90er-Gruppen zu sehen. Das hat den folgenden Hintergrund,
dass wir einfach, um das balancieren zu können,
mehrere Gruppen zu diesem Termin anbieten wollen und jetzt erst gesehen haben,
wo die tatsächlichen Wanderungsbewegungen sind,
da wir allerdings überstehende keine Raumzuweisungen dieser Form machen können,
wird es am ehesten Termin einen Sammelpunkt geben, wo alle,
die zu diesem Zeitpunkt gebucht sind,
auflaufen werden.
Und dann werden entsprechenden großen Gruppen,
die aus vielen kleinen Gruppen sich zusammensetzen, auf die entsprechenden Räume verteilen.
Das machen wir dann dort vor Ort. Die entsprechenden Räume sehen Sie hier,
also wenn Sie wissen, wann Ihre Übung ist,
können Sie sich das sofort abschreiben.
Diese gleiche Folie finden Sie aber auch nochmal ein Web auf den Folie.
Seiten, wo sind die? Die sind auf folgender Webseite
zu finden, auf diesen Link finden Sie unter Stine
und da hinweisen Materialien
In den Übungen kriegen sie zum einen beim ersten Mal das Skript.
Gut, schon mal praktisch. Zweitens wird das Organisatorische
so sein, dass die Übungszette dort verteilt werden.
Die Hausaufgaben werden noch dort abgegeben und korrigiert wieder zurückgegeben.
Das läuft also alles in der Übungsgruppe ab. Der Übungszettel wird ausgedruckt,
zwar verteilt werden, steht aber auch,
und das sollten sie nutzen, immer freitags zuvor,
bereits im Web auch unter dieser E-Mail-Adresse und der Webadresse,
oder können sie sich den angucken,
was man nächste Woche wohl zu tun hat
Neben diesem Standardangebot vor Lesung plus Übung haben wir auch noch
das nächste Angebot an Sie. Wir nennen es die Hausaufgabenbetreuung
. Da sitzt ein Kollege von mir in seinem Büro.
Die kaum 204 und ist dort zu den angegebenen Zeiten,
also direkt am Dienstag nach der Vorlesung bis Mittags Mittwochs und Freitags auch.
Oder wenn man ihn bittet nach Vereinbarung,
ist er auch zur Verfügung. Dort kann man Fragen stellen,
wenn man Probleme über den Hausaufgaben und allgemeine Probleme beim Stoff hat.
Das ist so das eine Angebot, das Sie nutzen können,
natürlich nicht müssen
Ein zweites Angebot ist folgendes, wir bieten an,
das nennt sich Saltenbunk, das ist eine Großgruppenübung.
Dort werden verschiedene Dinge gemacht, es wird zwei Gruppen geben,
die sind auch in der Vorlesungsnummer versehen, mittwochs und freitags jeweils um zwölf.
Dort können größere Fragen komplexe geklärt werden in der größeren Gruppe,
es werden noch die Musterlösung zu den Hausaufgaben weiter abgesprochen oder es werden nochmal Themenbereiche vertieft,
die vielleicht in der Vorlesung manchen zu kurz bekommen sind.
Die Teilnahme ist auch hier freiwillig, sie sollten sich aber
trotzdem anmelden, denn die Räume haben ein beschränktes Fassungsvermögen.
Also wir können gar nicht alle, die hier sind, aufnehmen.
Wir haben beiden Terminen ist, glaube ich, irgendwann,
sagen wir mal, bei 50, 60 irgendwann im Raumschluss ab.
Dann ist kein Sauerstoff mehr für alle damit. Was ist dennoch gibt,
auf Wunsch der Studenten, ist vor den Klausuren,
es gibt zwei Grasurtermine, vor beiden wird relativ zeitnah eine Kompaktveranstaltung,
Repetitorium angeboten werden, dass die Idee hat,
wenn sie den Stoff schon mal gelernt haben,
dass sie dann nochmal ihnen dort kompakt wiederholen können,
Erster setzt natürlich nicht die Vorlesung, das ist ganz klar,
dafür reicht die Zeit dort auch gar nicht.
Das wird nur punktuell nochmal Dinge wiederholen, aufgreifen,
Schwerbezüge nochmal veranschaut. Wenn Sie am Repetitoren teilnehmen wollen,
melden Sie sich bitte per E-Mail bei Herrn Duvinho at Informatik
und das Weitere an und auch bei Herrn Kabak.
Das liegt daran, dass Herr Duvinho derzeit in
etwas längeren Urlaub ist und Herr Kabak ihn vertritt.
Und deswegen sollten die beiden das. Gut,
das zum Organisatorischen Teil, wenn da keine Fragen sind
Den gucken wir mal an, warum machen die diese Veranstaltung?
Wir gucken etwas tiefer in die Grundlagenkiste der Informatik mit den verschiedenen Möglichkeiten.
Und da gibt es verschiedene Dinge zu Automaten, Berechenbarkeitsmöglichkeiten,
Komplexitätsfragen zu Syntax-Semantik, zur Logik, all das Ganze.
Und das gliedern wir in diesem Semester ein wenig abweichend für diejenigen,
die die Vorlesung schon mal besucht haben, folgendermaßen.
Wir beginnen am Anfang,
den Teil wertgehalten und befassen uns mit endlichen Automaten,
dem einfachsten Automatenmodell und kontextfreien Grammatiken und deren Sprachen
Ganze wird bis Ostern gehen. Nach Ostern schließt sich denn der Logikteil an,
der sich im Wesentlichen in die zwei Bereiche Aussagenlogik und Prädikatenlogiklieder,
das wird Frau Eschenbachelieren. Und nach Pfingsten,
das passt in diesem Jahr sehr gut, der Abstand,
ist ja wie jedes Jahr 50 Tage, wenn ich das Recht erinnere,
dann setze ich wieder ein und habe dann Touring-Maschinen,
Berechenbarkeit und Komplexitätstheorie inhaltlich.
Das zum Ablauf, das heißt, die nächsten drei Wochen endliche Automatenkontextfreie Grammatik.
Und dieser erste Teil hat folgende Ideen, Uns ist es wichtig,
ein Konzept kennenzulernen, dass ich formale Sprache nenne.
Und formale Sprachen werden definiert anhand einfacher Automatenmodelle, mathematisch abstrakte Modelle.
Und zweitens interessiert uns, was berechenbar heißt. Also wir wissen natürlich alles,
die Kiste, unser Computer berechnet irgendwas,
aber formal ist der Begriff A älter und B mathematisch gesehen,
kann man sich fragen, hast du es überhaupt berechnet,
mit welchem Aufwand ist was berechenbar?
Und ähnliche Fragen mehr. Und das kann man
unterschiedlichsten einschränkungen oder Randbedingungen betrachten. Man kann sich überlegen,
dass man konstant
viel Speicher hat
Beliebig viel Speicher, aber den Zugriff irgendwie einschränkt oder ihn beallfrei lässt.
Und da merkt man gleich, das sind mathematische Idealisierungen,
Abstraktionen, denn beliebig viel Speicher gibt es natürlich physikalisch nicht.
Physikalisch realisierbar ist immer nur endlich viel Speicher. Und dann
die nächste Frage, die vielleicht ein wenig artifiziell klingt,
aber vom theoretisch hohem Interesse ist, ist die Frage,
ob es irgendeine Funktion gibt, ein Problem gibt,
das nicht berechenbar ist.
Ja, und da stellt man fest,
eine ganze Menge eigentlich, fast alles ist nicht berechenbar,
sogar eine ganze Menge praktisch interessante Sachen sind nicht berechenbar
Und die nächste Klasse von Problemen uns interessiert, die,
die zwar berechenbar sind, aber praktisch nicht mehr berechenbar sind.
Was heißt das? Meine Probleme, die sind so kompliziert zu lösen.
Die brauchen so viel Zeit beispielsweise, dass man eigentlich
nicht realistisch in menschlichen Zeiträumen mit einer Antwort rechnen kann.
Und das ist beweisbar. So ein Überblick über diese Vorlesung,
sieht ungefähr so aus, wir wollen uns mit Automaten formalen Sprachen befassen.
Da gibt es verschiedene Ecken und Enden. Also beispielsweise die
der Berechenbarkeitsmodelle oder formale Spezifikationen. Es gibt verschiedene Komplexitätsmodelle Und
das führen wir auch weiter. Es gibt Erzeugung durch Generalisierungsregeln und Erzeugungsregeln,
das nennt man dann Grammatik, oder man kann es erkennen.
Das sind dann Automaten. Gut, wenn man das noch
nicht kennt, dann sagt die Einordnung für noch nicht viel.
Also fragen wir uns als erstes mal ein Automat.
Manchmal sagt man auch Maschine in der Literatur dazu.
Was ist das eigentlich? Ist das ein mechanisches Gerät,
wie eine Schreibmaschine oder ein elektronisches Gerät, wie muss man sich einen Computer langläufig vorstellt?
Oder sowas wie eine Maschine im täglichen Leben, also glücklich spielautomat,
Musikbox, Kaugummi der Automat, Fahrkartenautomat, Telefon,
all das, was man sich so alles vorstellen kann.
Ja, und dann müssen wir uns überlegen,
wenn wir da theoretisch mathematisch dran wollen,
dann müssen wir irgendeinen Begriff dafür finden,
unter dem sich das alles fassen lässt.
Also wir brauchen eine Abstraktion des Ganzen.
Eine Abstraktion bedeutet, dass wir nur Wesentliches beschreiben wollen.
Wir abstrahieren also schon mal von der realen Bauweise,
von Erscheinungsform, Implementierung etc. Und wir versuchen mit dieser Abstraktion
das Gemeinsame von Maschinen
herauszuarbeiten.
Was ist das Gemeinsame? Ganz elementar. Es gibt dort
eine gewisse Form der Eingabeinformationen. Eingabe kann bei einem Geldautomaten
die Münzfolge sein. Beim Fahrkartenautomat vielleicht die Tastenfolge,
mit der ich irgendetwas bediene und so weiter.
Denn nach eine Maschine, eine irgendwie geartete innere Verarbeitung,
interne Schritte, die gemacht werden,
ohne dass man das als externer Benutzer sehen könnte.
Und irgendwann gibt es eine Ausgabe des Ganzen.
Das heißt, eine Schallplatte wird abgespielt.
Ich bekomme Geld zurück. Vielleicht ein Kaugummi,
ein Freizeichen oder endlich meine Fahrkarte
Solche Dinge passieren bei Automaten. Ein Automat kann aber auch
was ganz Simples sein, wir nehmen mal ein konkretes Spielzeugbeispiel,
im wahrsten Sinne ein Spielzeug, nämlich ein Kugelautomat.
Was ist ein Kugelautomat, das ist ein Eingangsstil?
Das hat hier drei Kippschalter. Oben zwei,
und da sieht man, aha, hier sind so
kleine Nasenflügel und wenn man da ein Gewicht drauf platziert,
dann kippt dieser große Hebel oben zur Seite.
Und ich kann oben zwei Eingänge erkennen, dass der Input,
dort kann ich kugeln in diesem konkreten Beispiel des Kugelautomaten hineinwerfen
Dann fällt die Kugel hier durch,
die Hebel verändern ihre Stellung im Zweifelsfall und es kommt auf
der linken oder der rechten Seite wieder raus in etwas.
Gucken wir uns das am Beispiel mal an. Wir werfen links
eine kleine Kugel hinein. Dadurch ändert sich bei dem linken
oberen Hebel die Stellung, er kippt also zur Seite,
dann fällt die Kugel weiter in der Mitte auf den Hebel,
der out seine Stellung verändern wird.
Und ganz zum Schluss kommt die Kugel auf der rechten Seite
raus. Also beim Ausgang, der mit der Null
beschritten ist
Wenn ich jetzt weiter mit dem Automaten experimentiere und auf der
rechten Seite eine Kuh reinwerfe,
dann kommt diese Kugel auch beim Ausgang nur heraus.
Und jetzt haben wir mathematisch gesehen die Aufgabe,
wie wir diesen einfachen Kugelautomaten spezifizieren wollen.
Schon bei diesem einfachen Beispiel sehen wir alle Charakteristika eines Automaten,
einer Maschine. Wir sehen also, dass durch Aktionen,
die ich an diesem Automaten vornehme, der interne Zustand geändert wird.
Das erste wichtige Merkmal eines Automaten. Zweitens kann man feststellen,
wenn man mit diesem Automaten experimentiert,
dass unterschiedliche Eingaben zur selben Ausgabe führen können
Und auch die gleiche Eingabe kann zu unterschiedlichen Ausgaben führen,
bedingt durch den internen Zustand. Jetzt wüssten wir natürlich gerne Dinge,
wie sich dieser Automat verhält, beispielsweise führt dieselbe Eingabe immer
zu der gleichen Ausgabe oder was muss ich zwischendurch tun,
damit es wieder zur gleichen Ausgabe führt und so weiter.
Und solche Fragen analysieren zu können,
und es nicht irgendwie ausprobieren zu müssen,
was ja auch nicht unbedingt alle Informationen eines Automaten preisgeben muss,
brauchen wir eine formale Beschreibung des Systems,
sodass wir dort prüber nachdenken können,
also mathematisch argumentieren können
Zuerst brauchen wir eine Beschreibung dessen, was die internen Zustände
des Automaten ausmachen. Und die internen Zustände dieses Kugelautomaten,
die werden beschrieben durch die individuelle Stellung seiner Hebel.
Mathematisch gesehen, bilden die Zustände eine Menge und hier
sind sie grafisch annotiert. Man sieht also abstrakt gesehen,
die Zustände mit den Kipphebeln, so wie sie gerade aufgebaut sind.
Verschiedene Dinge kann man sich fragen. Zum Beispiel alle Zustände,
wenn ich mich betrachte,
kann ich die durch irgendwie geschickte Interaktion mit dem Automaten,
kann ich den Zustand X erreichen,
einen beliebigen Zustand
Kann ich den gezielt herbeiführen? Wenn das ein Glücksspielautomat wäre,
wäre das eine sehr interessante Fragestellung,
ob ich einen internen Zustand herbeiführen kann,
weil ich dann genau wusste, was als nächstes passieren würde,
dann könnte ich mich dort meinen Gewinn maximieren.
Nächste Frage ist, wenn ich irgendwo hingekommen bin, wieder ein Glücksspielautomat,
kann ich das erzwingen, dass er wieder zum Staatszustand zurückkommt,
von dem aus sich her weiß, wie es sich verhält?
Das könnten Fragen sein, die man hier klären möchte,
zu Schulschatz mehr. Wenn ich diese Frage habe,
da muss ich aber erst mal klären,
welche Übergänge zwischen den Zuständen möglich sind,
Also muss ich gucken, welche Aktionen habe ich zur Auswahl?
Und was ist deren Wirkung? Das kann ich
beispielsweise textuell machen. Also ich kann die ganzen Möglichkeiten,
etwas zu tun, der Reihe nach aufführen.
Da steht 16 Möglichkeiten gibt es. Das liegt daran,
ich habe acht Zustände und ich kann links oder rechts einwerfen.
Und jeder dieser Kombinationsmöglichkeiten aus Zustand und Interaktion
führt natürlich zu einem Nachfolgezustand,
also zu einer neuen Hebelstellung
Jetzt kann ich Folgendes machen, ich kann mir angucken,
wenn ich diese als Startsituation habe, werfe die Kugel links ein,
ja, dann kommt sie, wie wir gesehen haben,
beim Ausgang Null raus mit die Hebestellung, ist die Folgende.
Zweitens kann ich sagen,
wenn ich Bibelstellung habe und ich hätte rechts eingeworfen,
dann wäre die Hebelstellung hinterher jene und so weiter für alle möglichen Zustände diese Automatik.
So, das ist wieder besonders elegant und ist auch nicht gerade übersichtlich,
dass du textuell zu machen,
also suchen wir nach einer kompakteren einfacher zu handhabenden Darstellung
Ja, und wir möchten das jetzt in einer Form der Mathematik beschreiben,
kompakt. Die kompakteste Variante, die wir haben,
um das Verhalten hier zu beschreiben, ist das als Funktion.
Eine Funktion in diesem Fall wäre etwas, das mir sagt,
ja, auf einer der Funktionsname, Delta,
ist eine Funktion, die ein Zustand nimmt und eine Eingabe.
Ja, also beispielsweise der Zustand sieht so aus,
die Eingabe ist elt, was rauskommt,
ist ein Nachfolgezustand und die Ausgabe,
also dort, wo die cool rauskommen,
also etwas aus der Menge Z-Kreuz,
die Menge 0
Ja, und wie Sie schon wissen,
bei einer Funktion, die linke Seite ist der Urbildbereich,
die rechte Seite ist der Bildbereich, eigentlich Domain Range.
Und diese Notation da drunter,
da würde ich jetzt angeben für die entsprechenden Elemente,
wie jedes Element aus dem Urbildbereich abbildet, auf ein Element des Bildbereiches.
Das gibt es auch als alternative Notation,
vielleicht wenn sie jene, dass man schreibt,
Geld davon, Zustand, Eingabe,
Doppelpunktgleich,
also wird definiert als Nachfolgenzustand,
Dass wir jetzt eine Möglichkeit, wenn man das für alle
möglichen Eingaben des Bildbereichs macht. Das kann man auch tabellarisch aufführen,
dass man also die Zustände, die dort sind,
für die Zeilen schreibt, hier vorne und hier in die Spalten reinschreibt,
was bei der Eingabe L passieren würde.
Viel in der zweiten Spalte, bei der Eingabe
R. Und dort werden die möglichen Ergebnisse Nachfolgezustand, Output,
Nachfolgezustand, Output jeweils in den Tabelleneintrag aufführen.
Zusammenrücken kriegen wir bestimmt noch
zwei Sitzplätze
Und, das gerade für kleinere Beispiele und wenn es
ein Mensch lesen soll und keine Maschine interpretieren,
ist immer sehr angenehm, eine grafische Darstellung das Ganze zu haben.
Ja, die Tabellen sind zwar sehr praktisch, das irgendwie
in den Rechner zu kriegen, aber nicht besonders anschaulich.
Also schauen wir mal, wie könnte das Ganze grafisch aussehen?
Das könnte in unserem Fall für den Kugelautomaten ein solches Diagramm sein,
ein Zustandsübergangswehren kann. Seit diese Form sieht man,
also wir haben gewisse Zustände,
das sind die Kreise hier und wir haben Zustandsübergänge
Damit man weiß, welche Zustände was sind und was für
Übergänge das sind, notieren wir weitere Dinge hinzu.
Wir haben also hier die Zustandsbeschrift und die sagen,
in welchem Zustand sind wir, wo ist der Hebe jeweils von den drei Stücken.
Und an den Kanten stehen Angaben wie drin, ich werfe links was ein.
Und dann kommt das beim Ausgang eins raus.
Und dann bin ich in jedem Zustand. Und das
entsprechend für alle acht. Und man sieht hier schon,
das gibt einen schönen zusammenhängendes Gebilde.
Und jetzt können wir uns die Systemeigenschaften dieses konkreten Automaten
mal anschauen
Der hat mich ein paar nette Eigenschaften, die er sich so verhält.
Ja, und durch Experimentieren stellt man irgendwann fest,
dass wenn ich viermal hintereinander rechts etwas einwirke, egal wie ich starte,
wenn ich in diesem Bereich irgendwo gestartet bin, viermal,
führt mich wieder an den Ausgangsort zurück.
Wenn ich 2Z5 starte, viermal rechts, lade ich wieder hier.
Bei Z6, genau das Gleiche. Ich bleibe in dieser
Schleiche. Entsprechend, wenn ich hier rechts starten würde,
nach viermal InputR lande ich auch wieder beim Zustand,
bei dem ich gestartet bin
Das heißt, das ändert nichts. Da bin ich wieder
am Ausgang. Gleichsam sehe ich auch, dass 4x11 auch
nicht viel ändert. Das sieht man einerseits,
wenn ich irgendwo hier auf dem Zickzackmuster starte,
komme ich auch wieder zurück, auf ein geschlossener Kreisel,
auch hier. Und genauso auf der rechten Seite auch.
Und dort sieht man, Zickzackmuster, genau andersrum,
wieder ein Kreis, auf dem ich bewegt habe.
Also viermal die gleiche Sequenz hintereinander verändert nichts. Gut,
das wäre noch nicht sonderlich informativ,
da typischerweise sich ja nicht ständig auf der gleichen Seite
einwerfe,
so nochmal mische
Also frage ich mich, was passiert,
wenn ich einmal links einwerfe und dann nach rechts?
Und die erste Feststellung, die ich machen kann,
ist, wenn ich einmal links einwerfe und dann rechts,
dann führt mich das im gleichen Zustand,
als hätte ich einmal rechts und dann links geworfen.
Das heißt, die Reihenfolge,
jetzt hier beispielhaft für ZEP 5, spielt gar keine Rolle,
in welcher Reihenfolge ich links, rechts ausführe.
Das gilt auch für weitere Zustände. All diese Zustände haben
die Eigenschaft, bin ich erst links,
eingreife dann rechts
Dann ist das genauso gut vom Endergebnis,
als hätte ich rechts eingeworfen und danach.
Gut, das ist schon mal eine praktische Eigenschaft.
Da können wir jetzt ein paar Sachen vereinfachen und darstellen,
wenn wir wissen wollen, wie sich der Automat verhält.
So, jetzt können wir ein bisschen die Frage klein bisschen komplizierter machen.
Ich mache hier eine sehr komplexe Eingabe. Ja, links,
links, rechts, links und immer so weiter, relativ lange.
Und ich frage mich, in welchem Zustand bin ich denn hinterher?
Nach dieser Eingabe. Und da habe ich natürlich
die natürliche Möglichkeit, die offensichtliche,
ich gucke einfach nach
Laufe mit dem Finger über dieses Zustandsdiagramm diese Folge entlang.
Gut, das macht aber irgendwie keinen Spaß, spätestens wenn
die Folge 100 oder mehr übersteigt, ist das ein Strafarbeit.
Also suchen wir irgendwie einen Weg,
das Ergebnis zu bekommen, wäre es der Zielzustand sein,
wird nach einer sehr langen Eingabe, indem wir die Eigenschaften,
die wir eben hatten, hier verwenden.
Und wir hatten zwei Eigenschaften,
wir hatten die eine Eigenschaft,
dass viermal das gleiche Symbol gar nichts verändert
am Zustand erreicht wird
Das heißt, wir wenden die Regel an,
wenn ich viermal ein Elf finde oder genauso mit viermal ein App,
dann lösche ich das.
Das kann ich formal so lange noch bekommen. So ausdrücken,
viermal El gibt es zu gar nichts, Äxelung.
Wenn es schon mal kürzer, ja, ein Herr.
Und das Zweifel, was wir eh machen,
wenn die Sequenz rechts, links auftritt, haben wir ja gesehen,
dass es die gleiche Bedeutung hat, wie die Sequenz nimmt es rechts.
Also können wir alle solche Dinge vereinfachen,
indem wir es umdrehen in der Reihenfolge
So, wozu führt das? Das führt dazu,
dass wir für diese Beispielsequenzen eine ganze Menge Vereinfachung vornehmen können.
Da sieht man, dass hier einige links-rechts Kombinationen vertauscht werden schlichtweg,
um hier vier erst in Folge zu bekommen,
die ich dann ja weglöschen kann.
Hier weitere Folgen von Els und Erz tauschen so lange,
um es auch hier weitere Viererkombinationen, Viererblöcken entstehen.
Und das mache ich dir immer so weiter.
Da munter drauf los, das wird immer kürzer,
immer kürzer, bis ich zum Schluss nur noch die Viererkette
dreimal links und einmal
rechts zahle
Und das ist jetzt etwas einfacher, als die ursprüngliche Folge.
Und wäre es natürlich ganz nett, wenn man eine garantierte,
dass es immer klappt, aber in diesem Beispiel,
und damit begnügen wir uns erstmal,
klappt das und mit vier Zeichen, da kann man gut leben,
das kann ich noch überblicken.
Man kann es natürlich noch schöner machen, wenn ich so
eine lange Kette habe, dann zähle ich einfach.
Ich ziehe die Zeichenkette durch und was stelle ich fest?
Die stellen fest, dass die Zeichenkette L genau 15 mal
enthält und er genau 21 Mal.
Und jetzt haben wir ja diese Eigenschaft,
dass viermal R oder R
gar nichts ändert
Und offensichtlich die Reihenfolge von Elz und Erz,
auch keine Bedeutung spielt, ich darf sie ja nicht tauschen.
Das heißt, es kommt ja eigentlich nur auf die Anzahl
von Elz und Erz an. Weil ich Vertauschen vornehmen kann,
spielt mir die Anzahl eine Rolle und da ich Viererblöcke einfach löschen darf,
spielt auch nur die Anzahl, wo nur 4 eine Rolle.
So, bei der Vivision durch 4 bekomme ich
die Reste 3 bei 15 und 1 bei 21.
Und das entspricht ja genau dem Wort,
dass die eben durch Ersetzung bekommen hatten,
nämlich dreimal den Rest für das L und einmal rechts
Gelobt, hier für den Anzahl der Erz. Das heißt,
wenn ich diese Erkenntnis habe,
dass diese Automat nur LS&Rs Module 4 rechnet,
um die Nachfolgezustand zu bestimmen, dann habe ich eine Erkenntnis,
dass mir ausreichend bestimmt, dass ich nie eine längere Zeiche hätte,
als diese betrachten muss.
So, und das geht deutlich schneller, als es auszuprobieren,
als lange Zeichenketten auszuprobieren. So, das kann man
mit Automaten ungefähr machen. Was wir jetzt machen müssen,
wir müssen die ganzen Notationen, die man jetzt braucht,
um sowas aufzuschreiben, uns nochmal ins Gedächtnis rufen,
soweit sie denn schon dran waren in Liscreta Mathematik.
Soweit sind wir noch nicht dran, waren müssen, wie sie jetzt einführen.
Fangen wir mit einfachen Dingen an. Wir werden mit Mengen,
jeder die Zustände waren, als Menge bezeichnet worden.
Wie kann ich im endlichen Fall einfach aufzählen oder im
unendlichen Fall durch eine Notation Menge aller X,
der natürlichen Zahlen mit der Eigenschaft X,
das ist größer gleich 0 oder kleiner gleich 7. Das heißt,
mit solchen Eigenschaftsprädikaten kann ich auch Mengen liegen.
Dann brauchen wir noch die Kardinalität eine Menge. Das heißt,
die Anzahl der Elemente, Menge bezahlen, 0 bis 7 enthält,
hat also genau acht Elemente, also die Anzahl an.
Ja, und wenn es einen unendlich große Menge ist,
dann ist eben die Kardinalität unendlich. Was wir auch draußen werden,
ist 200M, mit 200M bezeichnen wir die Potenzmenge.
Das heißt, die Menge aller Teilmenge der Menge ändern.
Diese Notation ist deswegen ganz suggestiv,
denn wenn die Menge M genau En-Elemente hat,
dann hat die Potenzmenge zwei Hoch-Elemente.
Einfach eigenschätzen
Von wegen dieser Analogie, bei den Kardinalitäten, Zeiten,
Maniputenzmengen, auch zwei MML.
Und Operationen, die Sie schon kennen oder eine Operation,
die Sie schon kennen, ist das kathesische Produkt auf Mengen.
Also wenn die zwei Mengen A und B haben,
ist das stathesische Produkt die Menge aller Paare von Elementen,
die ich aus A und B bilden kann.
Und dann brauchen wir noch das sogenannte Komplexprodukt.
So, was ist das? Das schauen wir uns jetzt
mal an. Also nochmal zur Wiederholung,
das kathesische Produkt kann auch auf mehreren Mengen definieren,
wenn ich die hier en Main habe,
eins bis AM
Und ich habe Elemente jetzt eins bis XN aus diesen Längen,
dann heißt dieses Pupel X1 bis XN,
ein geordnetes Endtupel von Elementen über eins zu erenden.
Und die Menge allerseitser Tupel, die ich bilden kann,
die bezeichne ich als kathetische Produkte länger eins gesellen,
und das schreibe ich als A1-Kreuzer 2, Punkte von Kreuzeren.
So, und wenn man diese Definition nur in Mathematik ausdrücken will,
sagt man, eins, Kreuzer,
zwei Kreuzfunk, Kreuzer End ist,
die Menge aller Tupel X1 bis SN,
dieser Eigenstadt X1,
von XN
dies ausarten
Gut. Soweit nichts Neues. Das nächste,
was ein bisschen weniger Gebäude ist, ist die Eigenschaft,
einer Menge Haar, eine Halbgruppe zu sein.
Eine Halbgruppe besteht aus einer Menge Haar und einer darauf definierten,
die näheren Operationen, damit die möglich abstrakt aussieht, malen dann Kreisverbund.
Die zwei Elemente abbildet auf ein Element dieser Menge Haar.
Also eine abgeschlossene Operation. Und für diesen Operator gilt das Assoziativgesetz,
das heißt, ob ich erst AB-Klammer und mit C
multifiziere oder erst BC und mit A multifiziere,
Macht keinen Unterschied, es kommt das Gleiche raus.
Was wichtig ist, ist aber die Reihenfolgeelemente.
Klammerung ist egal, rein folgendes Lied. Und eine Halbgruppe,
die sogar ein neutrales Element heißt, hat.
Die heißt Monoid. Und ein neutrales Element, e,
Indexarten, die Halbgruppe, das ist ein Element,
das die Eigenschaft eh mal M, ist M wieder selbst.
Also wenn es eh links mit M multifiziere,
kommt das Element selbst raus.
Und genauso, wenn ich M rechts mit E
multifiziere und outen muss
Also es eh das neutrale Element bezüglich dieser allgemeinen Multifikation.
Und Beispiele kennt man schon und vielleicht nicht so genannt.
Die natürlichen Zahlen nur Plus bilden eine Halbgruppe. Wenn ich die Null rausnehme,
dann habe ich aber kein neutrales Element bezüglich der Addition.
Also es ist kein Monit. Wenn ich die Null hinzunehme,
dann ist es ein Monoit, dann klappt das wunderbar.
Gut, jetzt habe ich also eine Halbgruppe oder ein Monoit.
Und jetzt kann ich mich fragen, oder ich brauche die Notation einfach,
wenn ich zwei Teilmengen um V habe, U&V,
Sind also Teilmengen dieser Grundmenge hart,
dann kann ich mit U mal V das Komponentenweise multiplizieren definieren.
Also ich nehme ein Element aus Großen und ein Element aus Klein,
aus GroßV, also U und V,
multipliziere die beiden und packe das in die Menge.
Also jeder mit jedem multipliziert, wobei die Reihenfolge wichtig ist.
Wenn ich das mache, was da rauskommt,
diese Menge nenne ich Komplexprodukt
Was ich damit mache, ist also nichts weiter,
als wenn wir zwei Timemengen habe, dann wird die Multiplikation,
die elementweise definiert wird, auf ganze Teilmengen hochgezogen erweitert. So,
unser Standardbeispiel, das wir haben werden, dass das Hauptsache hier interessiert ist,
wenn die Wortmengen haben, also reine Sequenzen von Buchstaben,
und ich habe hier eine Menge Umfangbuchstaben,
eine Menge von V von, eine Menge U von Wörter,
jedes Wort besteht aus Buchstaben und eine Menge V von Wörtern,
dann ist die Menge U-Mal-V, die Menge,
die man durch jeder mit jedem hintereinander geschrieben,
konkatiniert vornehme,
ausgedrückt enthält
So, das ist die Hauptmotivation des Komplexprodukts zu betrachten.
Und dann gibt es eine zweite wichtige Sache, die wir hier betrachten.
Das ist eine Relation. Eine Relation ist erstmal nichts Besonderes.
Es ist eine Teilmenge des kathesischen Produktes. Also die Sprechweise,
dass er eine Relation über 1 bis AN ist,
und zwar eine Endstellige, weil ich eine Grundmengen habe.
Das bedeutet nichts weiter,
als dass er eine Teilmenge des kathesischen Produkts all
dieser Mengen ist
Und die Idee dahinter ist, dass einige Elemente in Relation
stehen, die sind dann in der Menge drin.
Und einige stehen nicht in Relation, die sind dann außerhalb von R.
In Komplimenten. Und für den Spezialfall des N gerade 2 ist,
also hier 1, Kreuz, A2 bestehen habe,
spricht man nicht von einer zweistelligen Relation,
sondern von einer binären Relation.
Und wir hatten eben schon implizit eine binäre Relation gesehen.
Wir hatten mich bei unseren Kugelautomaten implizit schon gesehen,
dass ich eine Äquivalenz,
die eine spezielle Relation nämlich habe
Die alle links, rechts ketten, also alle Input-Sequenzen, irgendwie ineinander Beziehung setzt.
Nämlich, wir hatten gesehen, links, rechts und rechts,
links sind in dieser neuen Relation, genauso rechts,
links, links, rechts, sind in dieser Relation.
Und anstatt zu schreiben, dieses Paar ist Element der Relation,
wenn ich einen solchen Operator habe, der so ähnlich aussieht wie gleich,
dann schreibt man typischerweise links, rechts, das Äquivalent zu rechts,
links und rechts, links und die Qualenze links, rechts.
Das wäre also ein Beispiel für eine solche Relation
Und dann gibt es verschiedene interessante Eigenschaften, die man
auf Relationen definieren kann. Insbesondere, wenn die Relation,
die man am Wickel hat, eine Relation ist von Arkwords A,
also die Menge mit sich selbst in Beziehung setzt.
Dann kann ich verschiedene Namen dieser Relation sehen.
Ich nenne die Relation eher reflexiv, wenn für jedes Klein
A das PA, Komma A in der Relation ist.
Also grafisch gibt es einen Fall von jedem Element
zu sich selbst
Genauso symmetrisch ist die Eigenschaft, wenn AB in Relation steht,
dennoch BA. Das heißt, die Richtung spielt keine Rolle.
Und transitiv war die Eigenschaft, dass ich verketten darf.
Das heißt, wenn AB in Relation steht und BC,
dann folgt das auch AC in Relation steht.
Das heißt, verbinde ich A, B, B,
C, zu einer Gesamtkette, habe ich dich hätte AC.
Ja, und deswegen gegen dieses Verkettens kann man auch schreiben,
wenn ich die Relation mit sich selbst verkette,
dann ist sie bereits in sich selbst enthalten
Relation, die alle diese drei Eigenschaften haben,
kennen sie auch, die sind besonders interessant,
die heißen da die Qualenzen dazu.
Also eine Relation, die reflexiv, symmetrisch und transitiv ist,
ist eine Äquivalenz und verhält sich weitestgehend so wie ein Gleichheitszeigt,
dass man auf Mengen sonst kennt.
Was kann man noch mit Relation machen? Man kann
solche Dinge definieren. Da wird es jetzt neuer,
was man als R plus R Stern bezeichnet
Das RPUs nennen wir transitiven Abschluss und das ersternen wir reflexiv transitiven Abschluss.
Und das bedeutet, wenn man sich es grafisch vorstellt und
die Relation zwischen zwei Elementen als Pfeil zwischen den Elementen schreibt,
dass dort beliebig lange Ketten von solchen Übergängen betrachtet werden dürfen.
Und mathematisch formaler kann man das notieren, wenn jemand sagt,
RPUs ist die Vereinigung über alle möglichen E, über Mengen RI.
Und die werden hier definiert, wie sagt man mich?
R1 ist die Menge, die alle Ketten der Länge eins
enthalten,
also genau die Relation
Und RI plus 1, das sind also alle Ketten
der Länge Ü plus 1, wie erhalte ich die?
Ja, die erhalte ich, wenn ich schon eine Kette
der Länge I habe und die verbinde mit einem Pfeil, mit einem Kantenzug.
Dann habe ich die Länge um eins erhöht erhalte,
also eine Kette der Länge Ü plus 1.
Und wenn ich alle möglichen Ketten zusammennehme, vereinige,
also Ketten beliebiger Länge zulasse, wohlgemerkt beliebig,
nicht unendlich vielleicht, aber beliebig lang,
dann erhalte ich die Menge RPlus.
Das ist dann der Transitive Abschluss einer Relation
Und wenn ich eher Sterne definieren will, sage ich,
das ist der transitive Abschluss, vereinigt mit der Identitätsrelation,
it a. Das heißt, der Menge aller A, Komma-A-Paare.
Das heißt, der einfachsten, reflexiven Relation.
Dann weiß ich also, was der transitive oder reflexive,
transitive Abschluss ist. Wichtig dabei ist natürlich bei der Definition,
das sieht, dass eine Relation ist von A,
Kreuz A und nicht von der A1, Kreuz A2. Sonst,
wenn ich verschiedene Mengen hätte, meinetwegen A und B,
Dann könnte ich A mit B natürlich betrachten,
aber es ist relativ ungewiss, ob ich von B wieder weiterkäme,
mit der Relation A.
Also die Verkettung sind nur dann eindeutig möglich.
Wenn das Element, wo ich aufhöre,
wieder ein Element ist, mit dem ich weiterlaufen kann.
Und deswegen müssen die alle aus der gleichen Grundmenge sein.
Wenn also A, eine Menge von Zahlen werden,
von Ungranzahlen und B, die Menge der Graben zahlen,
dann kann ich da keine Ketten bilden.
Dann ist dann nach einem Schritt Schluss.
Damit das überhaupt Sinn macht, muss ich also
die gleiche Rundmenge zugrunde legen
So, das Nächste, was ich machen kann,
ich kann auch Relationen miteinander multiplizieren.
Ja, das habe ich hier oben schon implizit gemacht,
da habe ich gesagt, was heißt das Verketten von Relationen,
um einen Schritt länger machen.
Und formal heißt das, Verketten, wenn ich zwei Relationen habe,
R1 und R2, dann kann ich eine Relationenprodukt definieren.
R1, Mai ja 2. Und das ist folgendermaßen definiert,
wenn es ein Y gibt, sodass es XY in der einen Relation ist.
Und YZ in der anderen Relation,
wenn nämlich Anfang und Ende X&Z,
dieses Pärchen,
und das ist jetzt
ein Produkt drin
Das heißt, verketten über ein Zwischenelement Y mache ich mit
dem Relationenprodukt oder Komposition von Relationen manchmal nicht mehr.
Und wie auch beim Komplexprodukt ist oftmals sehr angenehm, dass das Mahlzeichen weggelassen wird.
Bei x-mal Y schreibt man es ja auch nicht unbedingt hin.
Jetzt gibt es dort eine ähnliche Notation. Dieser transitive Abschluss,
den ich auf einer Relation definieren kann,
wie kann man so ähnlich auch auf Monoiden definieren?
Wir erinnern uns, wir haben also eine eine M auf einer Halbgruppe.
Und das ist irgendwie eine beliebige Menge M. Und jetzt wüssten wir gerne,
was ist gewissermaßen der kleinste Monoid, der da reinpasst.
Oder die kleinste Unterhaltgruppe, die hier reinpasst. Denn M,
die Menge selbst muss keine Halbgruppe sein. Das liegt zum Beispiel daran,
wenn ich ein Element aus M nehme und es mit einem anderen Element aus M multipliziere,
kommt im Allgemeinen ein Element raus,
das nicht mehr in M liegt, sondern woanders in Haaren.
Das heißt, für diese Menge M ist im Allgemeinen die Multiplikation kein Abschlusseigenschaft.
Jetzt frage ich mich, Was ist die kleinste Menge,
die die Eigenschaft hat, gerade abgeschlossen zu sein?
Und dieses Konzept, das nennt man die Unterhaltgruppe,
die von M erzeugt wird. Und die bezeichne ich mit M
plus. Und wenn ich noch das neutrale Element hinzunehme,
kriege ich das von M erzeugte unter Moduid.
Und warum kommt das jetzt an dieser Stelle mathematisch gesehen?
Sieht es fast genauso aus wie eben das Relationenprodukt. Ich sage nicht wieder,
ich packe jetzt in diese Unterhaltgruppe alle Elemente rein,
die ich durch iFaches multiplizieren von Elementen aus M mit sich selbst bekommen kann.
Und das vereine ich über alle I. Und jeder steht wieder,
einmal das Tun heißt, naja,
einmal multiplizieren ist gar nichts, tun ist die Menge selbst.
Und I plus einmal zu machen, naja,
wenn ich schon ihm mal was multipliziert habe,
dann multipliziere ich noch einmal mit M hinzu.
Dann habe ich jetzt ein Produkt aus i plus 1 Faktoren.
Und wenn ich alle solche Faktoren zusammennehme,
ist die überhaupt geben kann, halte ich die Menge an Plus.
Und die ist jetzt nach dieser Konstruktion her auch abgeschlossener Multiplikation
Beliebig viele Elemente multipliziert miteinander sind wieder in M-Plus enthalten.
Und wenn ich jetzt zu dieser Menge M-Plus noch das neutrale Element,
zu dieser Halbgruppe hinzufüge, dann erhalte ich,
das von M-Generierte unterm Mobil entsterben.
Und da kann man mal am Beispiel angucken,
ich nehme eine sehr kleine Menge A,
die nur aus 2 und 5 besteht, aus 2 Zahlen.
Das ist offensichtlich eine Teilmenge der natürlichen Zahlen,
die natürlichen Zahlen mit Plus haben wir gesehen, bilden ein Monoid.
Und jetzt schaue ich mal an diesem Einfach
ein Beispiel sieht man schon 2 plus 5 für 7.
Sie müssen nicht in dieser Menge enthalten. Also müssen wir zumindest mal
die Sieben hinzufügen. Aber 2 mal 7 bis 14,
also müssen wir noch 14 hinzufügen und so weiter.
Also all diese Möglichkeiten, Produkte jetzt zu bilden, müssen hinzugepackt werden.
Und da sieht man schon, das ist eine ganze Menge.
Zum Beispiel, weil 2 mal 5 Jahrzehnt ist,
erhalten alle größeren Zahlen. Bei 5 bis 15 ist,
so rum erhalte ich eine Zehn.
Mit einer Zehn kann ich mir 100.000 alle Zehner potenzen.
Mit 2 und 5 kann ich mir eine 7 bilden.
Wenn da 2, kann ich mir eine 4
eine 6 eine 8 bilden
Das heißt, alle Zahlen kann bilden, bis zehn mit der Ausnahme der Null.
Die kann ich so nicht erzeugen. Die eins mit,
zwei kann ich, drei kann ich nicht. Vier kann ich wieder,
fünf, sechs, sieben kann ich auch,
indem ich die beiden natierte, acht kann ich,
neun kann ich, nicht fünf plus zwei, plus zwei.
Und zehn kann ich sowieso,
fünf plus fünf und dann geht das immer so weiter.
Das heißt, wenn ich die Halbgruppe,
die von diesen beiden Elementen haben will, betrachten möchte,
dann erhalte ich fast alle natürlichen Zahlen.
Nur die 0-1 und drei kommt da nicht bei raus.
Und das ist ein typisches,
informatisches Konzept
Denn in der Informatik ist es immer wichtig, selbst wenn man mit unendlichen Mengen hantiert,
ein Konzept zu haben, dies endlich zu beschreiben.
Denn dem Rechner können wir immer nur endliche Beschreibungen geben. Das heißt,
wenn wir durch Zufall,
warum auch immer gerade die natürlichen Zahlen beschreiben möchten,
die nur die 0-1-3-Nichten halten,
dann könnten wir dem Rechner sagen, naja, die zwei,
die fünf sind drin und alle,
die du durch Addition dieser beiden Zahlen in endlich vielen Schritten erreichen kannst.
Also ein Konstruktionsvorschrift,
die alle Elemente der gewünschten Menge in endlich vielen Schritten erreichen
Also doppelte Endlichkeit spielt für solche formalen Beschreibungen eine Rolle.
Zum einen, endliche Darstellung. Zum anderen,
endliches Erzeugungsprinzip. Gibt das aber vielleicht nur am Rande,
aber das ist für uns immer wichtig. In der Mathematik
wäre es kein Problem, in natürlichen Zahlen es gegeben anzusetzen.
Auf einem Computer, der alles nur endlich beschreibt mit endlichen
Zeitketten, meistens 0 und 1 Ketten.
Für den ist es wichtig, dass man eine endliche Repräsentationsform findet.
So, und dann ist es ganz klar, null.
In diesem Fall ist das neutrale Element. Das heißt,
wenn ich das erzeugte Mobil betrachte,
bekomme ich die natürlichen Zahlen,
aber die 1 und mit reingeht
So, das ist das wesentliche mathematische Handwerkszeug, das wir jetzt brauchen.
Zur Berührung kann ich sagen, vielmehr ist es an Grundlagen nicht mehr.
Also der Albetrat teile es ab, geschlossen an dieser Stelle.
Und wofür das hauptsächlich gebraucht wird, ist im folgenden für
eine sehr spezielle Struktur, nämlich die Struktur der Zeichenketten.
Die bildet man mich nach diesen Prinzipien.
Und für Zeichenketten brauchen wir erst mal Alphabet.
Das ist für uns eine endliche Menge an Zeichen,
manchmal auch Symbole genannt
Und was auch wichtig ist, manchmal in einem Zusammenhängen ist,
dass es eine Ordnung darauf gibt, dass man sagen kann,
dass das erste, das ist das zweite,
das ist das dritte und so weiter, Element des Alphabets.
Das heißt, es ist eine Sequenz von Elementen eigentlich eher. Gut,
und wenn ich das habe, dann kann ich sagen,
ich habe ein Alphabet, Großsigma, das Standardsymbolverall verbetet.
Und Sigma Stern, was bezeichnet das? Das ist jetzt
eine Kurzschreibweise Physikma Stern und den Kringeln hier.
So, und Sigma Stern, das ist auch das freie
Movie manchmal genannt
Und Kringel, das ist die Operation auf Sigmar Stern,
die einfach das hintereinander schreiben oder Vornehmer ausgedrückt, die Konkertenationen von Worten beschreibt.
Das heißt, zwei Worte hintereinander geschrieben werden konkertiert und ergeben
das zusammengesetzt gefordert. Und Sigmar Stern, Herr Eben,
haben wir gesagt, das ist das erzeugte Monoid,
also haben wir auch ein neutrales Element.
Und das neutrale Element bei der Konkertination muss ein Element sein,
das beim Aneinanderhängen nichts verändert.
So, das Wort, das diese Eigenschaft hat,
das nehmen wir das leere Wort und bezeichnen es mit Epsylon
Das hat also die Eigenschaft,
das ist das leere Wort und ich hänge Y hinten dran,
ich habe ein Wort und hänge das leere Wort hinten dran,
dann kommt wieder das Wort wie selbst heraus.
Genauso, wenn ich es vorne ran hängen will. Also,
wenn wir nichts haben, damit wir diese Neutralität auch
irgendwie manifestieren können, haben wir dafür ein Zeichen eingeführt.
Da, wo nichts steht, schreiben wir jetzt Äpstel.
Y ist eine Zeichenkette, die die Länge Null hat.
Kein Zeichen. In manchen Fachbüchern schreibt man statt Äpstel
noch Lammner
Und dann eine sehr bequeme Notation ist, wenn ich ein Wort klein Weh habe.
Das ist ein Wort, das erkenne ich daran,
dass hier steht, das ist aus Ligmar Stern sein soll.
Dann schreiben wir, wie mit der Potenz K,
meinen damit das kafache Produkt, also wie,
mal wie, mal, wie, mal, wie,
mal, wie, mal.
Das heißt, wie mal das Wort hintereinander geschrieben.
Und weil es auch wieder sehr praktisch ist,
wenn die Potenz null ist, sagen wir,
wie hoch null ist gar nichts, also das mehrere Wort.
Und jetzt interessiert uns in der formalen Informatik, im Prinzip
erstmal eine beliebige Menge L, Eine Teilmenge ist von solchen Zeichenketten.
Sigmar Stern ist die Menge aller Zeichenketten über dem Alphabet Sigmar.
Und jetzt interessiert uns eine Teilmenge davon, zu charakterisieren,
die wir mit L bezeichnen möchten.
Und warum das spannend ist, ist eben die Tatsache,
dass Sigmar Stern die Menge aller Zeichenketten endlich groß ist.
Das heißt, im Zweifelsfall ist auch die Menge L selbst unendlich groß.
Und jetzt fragen wir uns in der Formatik wieder,
wenn hier ein unendlich große Menge habe,
wie kann ich die mit endlichen Mitteln darstellen?
Was ist also ein Erzeugungsmetalismus für diese Menge Elben
Ich kann mir viele unendlich große Mengen vorstellen,
aber ich möchte sie jetzt konstruktiv in Informatik,
also irgendwie auf generativen Wege beschreiben.
Das ist unser Hauptsinn und Trachten bei den formalen Sprachen.
Wir werden jetzt von formalen Sprachen und Menge Generationsmöglichkeiten kennenlernen und die verschiedenen Straten.
Alle sind unendlich, aber manche sind schlimmer als andere.
Das ist so die Quintessenz. Und wir versuchen mal,
diese verschiedenen Grade von kompliziert oder schwer
in den Griff zu bekommen,
wenn sie veranstalten
Und manchmal ist es auch ein technisches Etwas, können wir
genug gebrauchen. Ich glaube, wir alle wissen,
was eine binäre Darsteller ist oder eine Darstellung von Zahlen in einer beliebigen Zahlensystem,
allgemein, wenn ich eine Basis B habe,
benutze ich also die Ziffern aus der Menge Großbie,
die von null bis b-1 reiten.
Also speziell für B-Like 2 habe ich von 0 bis 1 und ich bekomme eine b-nähere Zahlendarstellung.
Das ist erstmal nur reine Syntax, eine Sequenz von 0 und 1.
Und ich muss hinterher dieser reinen Syntax wieder ein Zahlenwert zuweisen. Das heißt,
wenn ich eigentlich diese Fans habe von Zippern AK bis A0,
Und alle Symbole, AI, die hier in dieser Sequenz vorkommen,
sind, also aus diesem Ziffernbereich, dann weiß man per Konvention,
dass das die Zahl N darstellt, die sich dadurch erhiebt,
dass es die Ziffer, die an der Position I steht,
mit BOI, also der IT-Potenz meiner gerade gewählten Basis versehen,
multifiziere.
Ja, den normalen Sprachgebrauch wird zwischen der Darstellung einer Zahl
und der Zahl selbst nicht mehr unterschieden.
Wenn wir das machen wollen, schreiben wir das folgendermaßen.
Wir haben also die Syntax, jetzt schreiben wir eckige Klammern
rumherum und ein Index B und sagen, diese Ziffernfolge, wird jetzt zur Basis
B als Zahlen interpretiert und dann kommt diese Zahl eng heraus.
Das ist manchmal ganz vernünftig,
denn einer Zeichenkette 0-1-1-0-0-1,
da weiß man ja gar nicht,
ist das zu Basis 2 oder zur Basis 3 oder zu Basis 4 definiert.
Kommen immer verschiedene Zahlen raus. Also von daher ist es
schon meistens aus dem Kontext zu sehen, welche Basis gemeint ist.
Man muss da nicht großartig viel jetzt machen,
aber wenn man streng genommen arbeitet, unterscheiden wir zwischen der Symbolkette, die nichts bedeutet.
Und ihrer Interpretation zu einer gewählten Basis B. Normalen Texten
ist immer die Basis 10 in Informatiker-Texten,
gerade wenn sie Hardware-lastiger sind,
die Basis 2 und so gut
Das ist so die Basis, mit der man gewohnt ist,
zu arbeiten. Es gibt noch eine zweite Form der Zahlen-Darstellung,
was eben wie mehr hieß, heißt jetzt beadisch.
Das funktioniert fast genauso, was die Ziffernlänge,
die mir zur Verfügung stellen müssen, anders ist.
Ich habe die Null nicht mehr und gebe es B. So,
wenn B wieder zwei ist, nenne ich das dyadische Zahlen darstellt,
statt zweialisch. Und wie interpretiere ich das? Ja,
wenn ich wieder so eine Sequenz habe, AK,
Akaminis 1 bis 10, und das sind Symbole,
die jetzt wieder aus dieser Ziffernfolge 1 bis B sind,
Dann ist die Zahl, die ich dem zuweise,
wieder ganz genau so bildet, nämlich ich nehme die Eate mit Ziffer,
multiplizieren mit der Basis von ihm und summiere alles aus.
Das heißt, wenn ich eine Zahl habe,
in der gar keine null vorkommt und vielleicht auch die Basis
B selbst nicht, dann spielt das gar keinen Unterschied.
Es wird die gleiche Zahl bezeichnet. Warum braucht man überhaupt
das? Naja, man braucht das dann manchmal,
wenn man sicherstellen will, dass die Zahlenpodierung,
die man hat,
keine führenden Nullen hat
Denn jede Zahl kann ja mit beliebig vielen führenden Nullen aufgefüllt werden.
Also hat jede Zahl unendlich viele Darstellungen. Dem ich einfach
vorne beliebig viele Nullen zupacke. Das verändert den Wert der
Zahl selbst nicht. Diese Möglichkeit habe ich hier nicht,
denn dort gibt es keine Null.
Ich muss ganz vorne mindestens eine Eins stehen haben.
Wenn ich da sowas vorschreiben würde, wird die Zahlung größer.
In diesem Zahlensystem hat jede natürliche Zahl genau eine Darstellung mit Ausnahme der Null,
sieht man die Null, kann irgendwie so nicht kodiert werden.
Es sei denn, man erlaubt hier auch Die leere Sequenz,
also die Sequenz, die Länge K gleich null hat.
Das wäre also unser Apcelon. Dann würden die Apcelon als
die Kodierung der nullen anfassen. So, dann hat sogar
die null eingeguckt. Gut. Was machen wir jetzt? Also,
wir brauchen endliche Repräsentationen, ich hatte es schon gesagt,
für unsere Sprache. Diese Sprachendarstellung sollte am besten eindeutig sein.
Sonst kann ich sie nicht gebrauchen. Also,
wenn man sie missverstehen kann. Aber umgekehrt kann es für
die eine Sprache L natürlich
mehrere Darstellungen geben
Ich kann sie auf jene oder diese Art beschreiben.
Wir werden verschiedene Wege sehen und ganz einfache Sprachen zu beschreiben. Und das,
was wir jetzt gleich sehen werden sind, endliche Automaten,
reguläre Ausdrücken, Ausdrücke, Typ 3 Grammatiken,
was ganz unterschiedliche Darstellungsformen sind, von denen man aber zeigen kann,
dass sie letztendlich genau das Gleiche beschreiben.
Gut, und davon einen Einblick zu geben,
zumindest zu endlichen Automaten,
muss ich
die mal suchen
Unsere gehen nahtlos über zu Kapitel 13. Wenn Sie sich wundern,
die Kapitelnummerierung ist historisch gewachsen und es würde mehr Arbeit bedeuten,
die jetzt wieder zu ändern, also wundern Sie sich nicht,
dass wir in der ersten Vorstellung die Fullensätze 12 und 13 machen.
Alle Nummern anzufassen, wer jetzt mehr Arbeit ist,
hat uns gespart. Gut, worum soll es gehen?
Es soll um das einfaches, einfaches Konzept geben,
nämlich um das Konzept des endlichen Automaten
Das ist ein Konzept, das man so ähnlich schon aus dem Hardware-Entwurf kennt.
Wir idealisieren das jetzt nur ein wenig mathematischer. Wir stellen uns vor,
im einfachsten Fall, und der einfachste Fall ist deterministisch arbeitend,
dass wir so eine Eingabesequenz haben, für diese Eingabesequenz,
die arbeiten wir ganz brav, nur lebend,
nur von links nach rechts laufen ab.
Das ist der Input. Entweder stellen wir uns vor,
der ist schon von Anfang an da, oder immer,
wenn ich was lesen will, kommt was,
oder ich warte so lange,
bis mal
eine Eingabe vorbeikommt
Das heißt, so ein normaler Fahrkartenautomat, der hat nicht
bis zum Ende seiner Betriebslaufzeit die komplette Eingabe schon da.
Natürlich nicht. Aber der hat in jedem Moment erwartet er die nächste Eingabe.
Da uns diese feinsinnige Unterscheidung aber sehr egal ist,
ist für uns das Konzept jetzt so,
als wäre die komplette Eingabe bis Betriebsschluss schon da.
Macht keinen Unterschied. Und dann, nächste Vereinfachung,
diese interne Verarbeitung, dafür haben wir jetzt einen kleinen Zustandsdiagramm,
das irgendwie aussieht.
Und das werden wir auch gleich noch sehen,
so ein paar von Zuständen sind besondere Zustände.
Das sind sogenannte Zustände,
wie wir sagen
Jetzt bin ich zufrieden mit dem Wort, jetzt akzeptiere ich das.
Und worauf wir verzichten, ist eine Ausgabe.
Also dieser Automat wird keine Ausgabe haben,
sondern er wird einfach sich nur die Eingabe ansehen und wird hinterher gesagt,
dieses Wort gefällt mir, das akzeptiere ich oder mir gefällt es nicht.
Mehr wird er gar nicht machen. Wenn man sich das
jetzt so grob anguckt, sieht man also,
wir haben ja ein sehr einfaches Wort, A,
B, B, A.
Und wir haben da drunter ein sehr einfaches Zustandsdiagramm,
das hat nur fünf Zustände,
hier dieser kleine Pfeiler deutet an,
hier will ich starten
Und dann sieht man an den Kanten, steht dran, welche Übergänge genommen werden.
Das ist noch ein deterministischer Automat. Das heißt,
hier gibt es eine Kante für ein A und hier eine Kante für ein B. Das heißt,
wenn ich hier die Kante A laufen muss,
weil hier auf der Eingabe ein A steht,
dann komme ich in den Zustand Z1.
Ich starte auch ganz normal im Staatszustand,
lese das A, gehe jetzt in den neuen Staatszustand Z1.
Und das nächste Zeichen, mit dem ich weiterarbeite,
ist jetzt das B. Wenn ich das B lese,
dann bleibe ich in diesem Zustand.
Lese jetzt also noch ein
Und jetzt kommt ein A und das führt mich in
diesen Zustand, wer mit dem Doppelkringeln versehen ist, C2.
Und da hat das ein besonderer Zustand ist,
wenn dann diese Zustände, Endzustände, sagen wir,
nachdem das Wort vollständig gelesen wurde, sind wir ein Endzustand gekommen.
Und das ist für uns ein Signal, dass wir das Wort akzeptieren.
Es gehört also zur Sprache dieses Automobils. Ja,
oder anders formuliert das Wort A BWA,
alles auf der Eingabe hatten, wird akzeptiert.
Nehmen wir ein anderes Beispiel, das Wort A B,
A B. Die letzten beiden Ziffern vertauschen wir
Das passiert dann. Starten wieder im Startzustand. Wir lesen
wieder das A ein. Wenn wir das B einlesen,
bleiben wir in diesem Zustand. Und jetzt kommt ein A.
Und jetzt sind wir zwar in einem Endzustand,
aber da ist noch ein Zeichen B, das gelesen sein muss.
Und jetzt sehen wir für dieses Zeiten B, gibt es
hier keinen Pfeil, bei dem wir irgendwas machen könnten.
Das heißt, diesen Zustand wollen wir im Prinzip verlassen,
die Spezifikation hat dafür aber nichts vorgesehen.
So, und das interpretieren wir als Zeichen dafür.
Wir müssen eigentlich was tun, wir können aber
nichts tun
Ja, eine normale Kiste wird dann verzweifelt piepen. Wir sagen einfach nur,
ja, dann wird das Wort eben nicht akzeptiert,
weil wir einen Übergang, den wir machen müssten, nicht machen können.
Das ist gewissermaßen ein Fehlerfall. In diesem konkreten Fall heißt es,
also das Wort AB, AB wird nicht akzeptiert.
So, das also ist ein endlicher Automat,
ein deterministischer war es sogar, ein Beispiel.
Jetzt wollen wir natürlich nicht einen Automaten beschreiben,
sondern im Prinzip möchten wir die Menge aller endlichen Automaten beschreiben.
Das heißt, wir brauchen jetzt eine mathematisches Gerüst,
das uns die Beschreibung von endlichen Automaten liefert.
So, was ist das mathematisch noch der Übersicht mit?
Zum ersten Eimer ein deterministischer, endlicher Automat wird DFA abgekürzt
für die englische Bezeichnung, die Terministik, Final Termity.
Okay, man findet auch bei einigen Autoren tatsächlich der,
aber das ist äußerst ungewöhnlich, das ist ein bisschen übersetzt.
Und ein solcher Automat A, wirklich durch fünf Komponenten beschrieben,
wobei die Reihenfolge zwar nicht wichtig ist,
manchmal von Lehrbuch zu Lehrbuch variiert
Was wir jetzt hauptsächlich versetzen, ist die Reihenfolge,
wo die erste Komponente, die Menge von Zuständen ist.
Und wenn es die ein etlicher Automat ist,
das ist ganz wichtig, die Menge der Zustände ist endlich.
Das ist die erste große Einschränkung, damit das Ganze informatisch,
formal fundiert ist, betrachten wir nur endliche Mengen von Zuständen.
Ja, sonst könnte man jeden möglichen Unfug treiben,
wir schenken uns deswegen hier ein bewusst.
Die Menge der Zustände wird eine Kuh bezeichnet,
in manchen Lehrbüchern auch groß Ass für States oder Insels
Dann müssen wir irgendwen spezifizieren, was das Alphabet sein soll.
Alphabete sind immer endlich, habe ich hier nochmal dazugeschrieben.
Ja, das Alphabet der Eingabesymbole, die diese Automat verarbeiten kann
, will. Dann müssen wir eine Funktion Delta beschreiben,
die uns erklärt, was der Nachfolgezustand ist.
Das hatten wir beim Kugelautomaten schon mal gemacht. Hier ist es
ein bisschen einfacher geworden. Wir haben nur unseren aktuellen Zustand,
den Input und bekommen dann als Funktionsergebnis die Nachfolgzustand.
Eine Ausgabe macht diese Automat ja nicht mehr.
Von daher ist es
ein bisschen einfacher
Was wir eben schon gesehen hatten, ein Beispiel war,
die Tatsache, dass für manche Zustände nicht immer definiert ist,
was danach folgt, Zustand ist.
Das letzte Beispiel, der Content der Automat, nachdem er
drei Zeichen gelesen hatte, kein weiteres finales B mehr lesen.
Wir haben so etwas mathematisch ausdrücken zu können, sagen wir,
dass diese Funktion nicht unbedingt total sein muss.
Sie ist also im Allgemeinen eine partielle Funktion. Das bedeutet,
partielle Funktionen, sie sind nicht auf allen Elementen des Eingabepreis
des Urbildbereiches definiert
Wenn es undefiniert ist, gibt es halt keinen Überwerb.
Was wir dann noch definieren, wir brauchen einen klar definierten Beginn.
Also wir haben den Startzustand von 0, bei dem das Ganze losläuft.
Und dann haben wir einige Zustände. F,
Groß-App für die Menge der Finalzustände, dem Deutschen als Endzuständen
bezeichnet werden. Das sind die Zustände mit dem Doppelkreis,
die uns signalisieren, dass das Eingabewort,
wenn es jetzt zu Ende ist und die jetzt in einem
Brennzustand sind,
dass wir das jetzt akzeptieren
So, jetzt haben wir zwei Möglichkeiten, an solchen Automaten darzustellen.
Einmal, wir können ihn malen, so wie eben.
Oder wir können ihn hier so als Fünftentupel mathematisch aufschreiben.
Jetzt ist die Frage, warum zwei Sachen?
Naja, die grafische Darstellung hat manchmal so ihre Tücken.
Ich gebe hier mal eine. Ist das ein deterministischer,
endlicher Automat? Ja, nein. Zustand wohl,
wie wir zwei Folgen zuständig haben.
Das heißt, in dieser Grafik haben wir irgendetwas aufgezeichnet,
was eben sich nicht mehr durch eine Überführungsfunktion Delta darstellen lässt,
die sagt, es gibt ja dem Nachfolgezustand für einige jeden
eine Eingabe und einen gegebenen Zustand.
Nun ist das aber manchmal praktisch,
deswegen waren wir später nochmal aufgreifen und sagen,
wir werden auch solche nicht deterministischen Zuständensübergänge mit A,
Hierland oder Dortlapp auch nochmal reinnehmen und gucken,
ob sich da dann irgendwas ändert.
Das will man manchmal haben,
weil dann die Spezifikation so schön einfach und kompakt ist
Natürlich, wenn man das als formale Spezifikation eines Computersystems begreift,
dann wäre es natürlich nicht sehr praktisch.
Die Spezifikation nicht deterministisch zu lassen. Denn wir erwarten ja schon,
dass ich die Maschine, auf der wir operieren,
mit dem Programm meiner Rings zusammen und der Steuerung,
dass das sich verlässlich verhält und nicht irgendwie nicht deterministisch irgendwelche Übergänge macht.
Das heißt, die Ausführung selbst hätten wir gerne deterministisch.
Manchmal ist es aber angenehm, die Spezifikation mit Freiheitsgraden auszustatten,
die man nicht deterministisch formulieren kann
Das heißt, wir müssen uns später noch fragen,
welche Verbindung zwischen solchen nicht deterministischen Möglichkeiten. Also hier mit einem A,
sich auszusuchen, hier zu bleiben oder einen Zustand zu einzugehen.
Ob diese Varianten ineinander überführbar sind. Bleiben wir aber erstmal
beim einfachen Unfall, ein deterministischen Auto.
Für diesen deterministischen Automaten haben wir bislang zwar beschrieben,
wie er aussieht, also seine Komponenten als Fünftupel definiert,
wir haben aber noch nicht beschrieben, zumindest noch nicht formal,
was es heißt,
dass ein Wort akzeptiert wird.
Das holen wir uns schnell nach
Und die Hauptaufgabe, die wir haben müssen, ist,
wir wissen ja, was ein Zeichen bedeutet.
Ein Zeichen bedeutet nämlich, dafür haben wir diese Überführungsfunktion der Eltern,
bedeutet nämlich ein Zeichen zu einem Zustand, gibt einen Nachfolgeszustand.
Wir möchten aber eigentlich gerne wissen, nicht,
was es für ein Zeichen bedeutet,
sondern was es für ein gesamtes Wort,
also ein Zeichen hätte aus Sigma Stern bedeutet.
Und um das beschreiben zu können, definieren wir jetzt
eine Erweiterung, Delta stärkt.
Delta Stern ist eben genau die Funktion,
die ich aus dem Delta bekomme
Indem ich jetzt mir ausrechne, was es bedeutet,
ein komplettes Wort aus Sigmar Stern einzulesen.
Und dann kriege ich für dieses komplette Wort eine Zeichen hier drauf.
Und ich definiere das Recosin. Ich sage angenommen,
ich bin im Zustand Zettel. Zet ist also ein Zustand
aus Kuh. Und ich habe X, das ist
ein Symbol und W ist ein Wort.
Also sprich, ich habe hier ein längeres Wort,
das am Anfang das eine Symbol X hat.
Denn rechne ich mir aus, wo komme ich hin,
in einen Schritt vom Z nach X.
Das ist jetzt ein Nachfolgezustand,
wieder neuer Zustand
Für den frage ich mich jetzt, wo komme ich hin,
wenn ich von diesem neuen Zustand aus die Zeichenkette wie einlege?
Dass das eine schöne, rekursive Definition ist,
erkennt man daran, dass ich den Nachfolgezustand für eine Zeichenkette,
die hier die Längen, end plus eins,
weil hier vorne ein Symbol mindestens ist, reduziere,
auf die Infinition der Überführungsfunktion für Zeichenkette, Ketten der Länge enden.
Das heißt, in jedem Schritt wird die Zeichenkette,
die ich da definiere oder behandeln muss, um eins kürzer,
Das heißt, ich komme zwangsläufig irgendwann mal bei einer Zeichenkette,
die die Länge null hat, an.
Ja, und für die müssen wir auch noch was definieren.
Das steht hier. Ich sage nicht schlichtweg,
wenn ich im Zustand Kuh bin und die Zeichenkette der Länge null
gerade am Wickeln habe, also nichts einlesen muss mehr,
dann ändert sich auch nichts.
Das heißt, die Nachfolge, ein Nachfolgezustand ist genau das
Kuh selbst, mit dem ich gestartet bin.
Das heißt, wir haben ja eine komplette Fallunterscheidung.
Das sind die Worte, die mindestens ein Zeichen lang sind
Und hier ist die Menge, sehr einfach,
die Menge aller Zeiten, ich persönlich die Länge null haben,
dann gibt es nur ein Wort, das die Eigenschaft hat.
Und bei beiden Fällen funktioniert diese rekursive Spezifikation, wunderbar.
So, damit weiß ich jetzt,
also wo kommt der Automat in einem Zustand Z gestartet,
bei Eingabe des Wortes wie hin. Was mich jetzt interessiert,
das bezeichnet wir uns akzeptierte Sprache,
das ist die Menge aller Worte,
die ich über den Alphabet Sigma bilden kann,
die mich vom Staatszustand mit dieser neuen Funktion Denker stärkt,
mit diesem Wort
In einen Endzustand bringen kann. Also, ich starte
ein Q0, lese wie Eich, lande ein Endzustand.
Wenn das der Fall ist, dann packe ich das Wort weh,
diese Menge rein und alle solche Worte weh,
bezeichne ich als die von dem Automaten akzeptierte Sprache L von A. Gut.
Dabei ist jetzt eine Sache zu beachten. Diese Funktion Delta
musste ja nicht total sein. Wenn Delta nicht total ist,
kann es sein, dass das,
was hier steht,
überhaupt nicht definiert ist
Set muss Felix kein Nachfolgezustand haben. So,
in dieser Darstellung gehen wir davon aus,
dass dann der linke Ausdruck eben auch undefiniert ist.
Das heißt, Delta Stern, dass ich aus Delta ableite,
dass es dann auch eine partielle Funktion.
Und wenn Delta selbst mal eine totale Funktion war,
dann ist auch Delta Stern eine totale Funktion.
Aber im Zweifelsfall ist es eben auch dazu. Das hat Auswürfeln,
ob die Lesart dieses Ausdrucks hier unten, es kann ja sein,
dass für ein Wort weh Dahinter Sterntumol von W,
gar nicht definiert ist.
Wenn es aber nicht definiert ist,
dann ist es erst recht nicht Element der Endzustandsmenge.
Von daher ist es nicht weiter schlimm. Wir schließen also
darauf, entweder ist es definiert und in den Endzustandsmengen,
dann ist es eine Menge drin.
Oder es ist definiert, aber nicht in F,
dann ist es nicht in der Menge.
Oder dritter Fall, es ist hier gar nicht definiert.
Dann ist es aber auch nicht in F und
dann ist es auch nicht in der akzeptierten Sprache
Das heißt, immer dann, wenn er einen, einen Fall auftritt,
ich kann aus seinem Zustand Kuh mit einem eingelesenen Bull X gar nicht hinaus,
dann habe ich die Eigenschaften,
dass das Wort erst recht nicht eingelesen werden kann,
dann ist auch recht kein zu akzeptierendes Mord wenig.
So, jetzt weiß ich also,
für jeden beliebigen endlichen Automaten, das Essentielle,
also erstmal für einen deterministischen endlichen Automaten, ich weiß nämlich,
was seine akzeptierte Sprache ist.
Mich interessiert jetzt nur,
ist das Wort B in der akzeptierten Sprache
oder nicht
Denn Theoretiker interessiert jetzt aber noch mehr,
den interessiert eigentlich nicht ein konkreter gegebener Automat.
Das ist ja fast schon Softwareentwicklung, wenn ich sage.
Das ist Entwurf. Wenn ich einen Automaten vorgebe,
mit dessen Sprache angucke, das kann ich mal machen.
Aber viel spannender aus theoretischer Sicht ist jetzt die Frage,
wenn ich alle endlichen Automaten betrachte.
Was bekomme ich dann? Das heißt,
ich betrachte eine Menge von Mengen und damit man da keinen
Knoten in der Zunge kommt, sagt man Familien dazu.
Also wir betrachten jetzt die Mengenfamilie Reck,
der sogenannten regulären Sprache
Was ist das? Die Menge von Wörtern,
die von dem DFA akzeptiert werden können.
Die bezeichnen wir auch als regulären Menge. Das heißt,
eine Menge ist regulär, genau dann, wenn es einen deterministischen,
endlichen Automaten gibt, der diese Menge als akzeptierte Sprachen.
Oder umgekehrt alles, was ein endlicher Automat akzeptiert,
nennen wir regulär. Gut, also erstmal ein neues Wort.
Und was ist uns jetzt interessiert? In Wirklichkeit ist
die Menge der regulären Menge. Und das wird meistens gesprochen
als die Familie der regulären Mengen
Familie ist jetzt einfach nur die Sprechweise für eine Menge von Mengen.
So, und diese Menge bezeichne ich mit Reck groß RIG.
Jetzt kann ich noch zwei Unterscheidungen machen. Ich kann nicht
sagen, ich halte ein Alphabet-Sigma fest. Das heißt,
so ein vorher verabredetes Alphabet-Sigma bezeichne ich mit TFA-Sigmar,
die Familie aller Sprachen hält,
die Timing von Sigma Stern sind,
und die
von einem DFA mit diesem Eingabealphabet-Sigma akzeptiert werden kann
Das heißt, das gehören nur solche Sprachen dazu, die bei diesem Sigma definiert sind.
Wenn das eine andere Menge ist, also meinetwegen Sigmas,
A und B, und ich habe einen anderen ächtlichen Automaten,
der aber über Null und Eins operiert,
dann interessiert mich das gerade nicht.
Das kann ich formal auch so aufschreiben, dass ich sage,
diese Menge DFA, Index, Sigma ist gleich länger aller Sprachen,
die eine Teile im Prinzip mal Stern sind.
Und Ella hat die Eigenschaft, die Sprache eines Automaten
zu sein. Er hat diese Familie betragen. So,
und aus historischen Gründen gibt es sogar zweite Zeichnungen dafür,
einmal DFL A, Sigma.
Also die sprach aller von DFAs erzeugten.
Sprachend? Die Familie aller von DFAs erzeugten Sprachen.
Und genauso bezeichnet man diese Menge auch auch weg index,
sieht man nämlich als reguläre. Das war erstmal das Gleiche
. Und die regulären Mengen sind mit dieser sprechenden Schreibweise dann
einfach die Vereinigung aller regulären Mengen mit dem Alphabet Sigma,
wobei ich eben alle möglichen Alphabete vereine.
So, wenn ich das habe,
dann habe ich jetzt mal also eine große Sprachmenge definiert
Und diese Familie enthält jetzt unendlich viele Sprachen. Und jede
Sprache halte im Zweifelsfall oftmals zumindest, unendlich viele Worte.
Also wir haben schon mit diesem sehr einfachen Konzept des endlichen Automaten
zweimal unendliche Dinge spezialisiert. Das erste unendlich kommt daher,
dass ein ein fester endlicher Automat unendlich viele Worte akzeptieren kann.
Nämlich immer dann, wenn er interne Schleife läuft,
dann können die Worte beliebig lang werden,
dann kann er auch unendlich viele Worte akzeptieren
So, das wäre schon mal die Unendlichkeit einer Sprache,
die von eingegebenen Automaten akzeptiert hat. Die zweite Unendlichkeit kommt jetzt rein,
weil wir uns jetzt die Familie der regulären Sprachen angeguckt haben.
Ja, und da wird man auch feststellen, es gibt unendlich viele davon.
Also haben wir auch schon eine zweite Klasse und endlich viel. So,
man könnte mal meinen, das reicht so viel unendlich,
das muss reichen,
im Laufe der Vorlesung werden wir jetzt aber auch noch weitere Klassen kennen,
die immer weiter reichen, die noch mehr enthalten,
noch mehr unendlich haben.
Wir kriegen also verschiedene Grade von unendlich
Wir fangen jetzt mit dem Einfassen und endlich an, wie sowas.
Was kann ich jetzt noch machen? Bislang sind manche Automaten
ein bisschen umständlich in der Handhabung oder haben nicht so schöne Eigenschaften.
Was sind also schöne Eigenschaften? Es hat sich herausgestellt,
dass zwei Sachen besonders praktisch sind. Die erste Eigenschaft eines
deterministischen, endlichen Automaten ist die Vollstände zu sein meldest.
Ein vollständiger Automat hat für jede Eingabe,
also wie im Zustand, wie viele Symbol X,
einen Nachfolgezustand
Definieren. Also Delta ist eine totale Definition. Und das
hat zur Folge, dass jede Eingabe vollständig verarbeitet werden kann.
Es gibt nirgends einen Zustand, für den ich mit irgendeiner Eingabe nicht weiterkriege.
Das heißt, irgendein Übergang findet immer statt. Gut,
da blockiert also schon mal nichts. Das ist die erste
wünschenswerte und praktische Eigenschaft, die uns das Leben einfachen kann.
Zweitens, finden wir die Eigenschaft ans Automateninitial zusammenhängend zu sein,
sehr interessant und sehr praktisch relevant. Ich bin angenommen,
ich habe einen endlichen Automaten, Denn verändert er sich nicht großartig,
wenn ich noch weitere zuständige Gegend male,
die damit aber überhaupt nicht verbunden sind.
Die leben quasi als Ballast, als Müll in der Gegend
umher. Die brauche ich aber gar nicht,
weil sie vom Staatszustand nicht erreicht werden können.
Wirklich interessant sind nur solche Zustände, für die ein Wort weh existiert,
sodass sich diesen Zustand von Set-Müll im Staatsanstand aus erreichen kann.
Zustände, die ich nicht erreichen kann,
sind völlig irrelevant für das gesamte Verhalten, dieses Automaten.
Reise sagt man, streich doch alle diese Zustände raus,
die irrelevant sind, also diejenigen,
die ich
überhaupt nicht mehr erreiche
Und selbst wenn ich nur solche Automaten hätte, also Automaten,
die vollständig sind und die initial zusammenhängend sind,
dann gibt es immer noch die Problematik, sagen wir mal,
dass es zu einer gegebenen Sprache beliebig viele Automaten gibt,
die diese Sprache akzeptieren.
Ist ja ein bisschen blöd. Also müssen wir irgendwas tun? Ja,
das erste, was wir tun müssen, wir müssen einen Begriff dafür finden,
wann wir zwei Automaten die Qualenten nennen sollen.
Und der Äquivalenzbegriff, den wir hier haben, ist,
wir nennen zwei Automaten Äquivalent
Wenn sie die gleiche Sprache akzeptieren. Genau dann,
wenn die Sprache von A leichter spart, von B ist,
sind die Automaten zwar vielleicht nicht gleich, aber sie können ja das Gleiche akzeptieren.
Deswegen, wenn sie Äquivalent. Und bei allen Dingen,
die wir mit automatisch so tun wollen und können,
geht es uns darum, die Sprache nicht zu verändern.
Das heißt, wenn ich ein Programm schreibe,
mit dem ein Benutzer endliche Automaten werfen kann und die dann
später ausgeführt werden, denn es ist ja nicht notwendig,
dass tatsächlich dieser Original spezifizierte Automat ausgeführt wird.
Es muss nur einen dazu äquivalenter Automat ausgeführt werden. Und gerade in dieser Eigenschaft,
dass es nicht so wichtig ist, dass exakt das Vorgegebene,
sondern nur etwas dazu Äquivalentes ausgeführt wird, dass erlaubt ist,
ein Compiler im Hintergrund natürlich meine Eingabe zu verbessern, zu optimieren.
Zum Beispiel aus einem sehr großen Automaten, einem sehr kleinen Automat
zu machen, der vielleicht besser auch meine Schiffflächen passt.
Das sind also so grundlegende Fragen, die mich umtreiben,
beispielsweise wie kriege ich es hin,
den Automaten möglichst klein zu kriegen,
ohne seine akzeptierte Sprache dabei zu verändern
Fangen wir mal mit einfachen Beispielen, Kleidern an.
Ja. Mit diesem Beispiel hier haben wir noch einen Startzustand
, noch. Es sind viele Spielereien möglich, ja.
Wir haben noch eine Menge von Endzuständen.
Ja. Wir haben hier eine Kleinigkeit geändert gerade.
Wir haben den Staatszustand zum Endzustand gemacht.
Das ist völlig legitim, nur mal darauf hinzuweisen.
Was passiert, wenn der Staatszustand der Endzustand ist?
Welches Wort wird dann akzeptiert
Ja, das leere Wort mit akzeptiert,
weil ich mit einem Wort der Länge Null von dem Staatszustand zu sich selbst kommen kann,
also durch nichts tun kann ich bleiben,
wo ich bin, auf gut Deutsch.
Das führt also dazu, dass ich ohne etwas einzulesen,
das bereits akzeptieren kann. Oder natürlich,
was für Worte akzeptiere ich noch, alle, die A,
B, A, und das beliebig oft ausführen.
Sobald ich mal ein Bild hier ausführe,
nach so einer Dreierkette, wenn ich in diesem Zustand,
da komme ich zweimal weiter, aber gewiss nicht mehr zu einem Endzustand.
Das heißt, diesem Automaten kann ich die Sprache noch sehr gut ablesen.
Es gibt komplexere Beispiele, wo das nicht der Fall ist.
Dieser Automat hat beispielsweise die Eigenschaft initial zusammenhängt. Ja,
wenn wir uns das anschauen, dieser Automat,
wie der Zustand ist erreichbar, diese Dreierkette sowieso von diesem,
ja, den kann ich auch erreichen.
Was passiert jetzt? Ich kann die eine Kante hier hören
, mal umdrehen. So, dann bekomme ich ein
relativ nutzlose Teil
Nämlich den hier oben. Das heißt,
wenn ich in Zustand Z3 wegstreiten würde,
würde ich an der akzeptierten Sprache überhaupt nichts ändern.
Und ich habe den Automaten Kleider gemacht. Das heißt, sowas interessiert uns.
Ohne Gefahr können wir also immer die überflüssigen Zustände wegstreiten. So,
was wir auch noch sehen, dieser Automat ist nicht vollständig,
beispielsweise Genuss Z1, nur eine Kante mit einem Beer raus,
aber von A wissen wir nicht,
was wir tun
Das ist eine initiale Zusammenhangskomponente zu bekommen, ist relativ ein,
wir müssen einfach nur den nicht erreichbaren Teil wegstreichen.
Da wir nur endlich viele Zustände haben, geht das doch leicht.
Die zweite Sache, die wir machen können, ist,
wir ververvollständigen an DFA. Das ist auch relativ leicht.
Gerade wenn ich hier so einen Kreislauf vorher hatte,
eben hatten wir den, wie gesagt, von B aus,
da konnten wir ja keinen A-Intergat machen.
Hier ähnlich auch kein B-Übergang und hier auch kein B-Übergang. Um diese Fälle zu behandeln,
fügen wir einfach diesen als rot markierten Zustand, zäpfieren Zug,
Und alle Übergänge, die vorher nicht gemacht werden konnten,
führen jetzt in diesen neuen Zustand Falle genannt.
Denn dort ist jetzt das Verhalten gefangen. Und diese Falle kann
alle Eingaben verarbeiten, weil sie nicht hier diese nette,
kleine Schleife mit allen Eingabensymbolen zu sich selbst.
Das heißt, ohne großartige Verrenkung kriegen wir das hin,
stets aus einem beliebigen DEPA einen neuen zu basteln,
der die Zahl zusammenhängend vollständig ist,
also sowohl so ein IZDFA als auch ein Paudier.
Und die Sprache, das ist wichtig,
dabei wird nicht verändert.
Das sind die großen Eigenstände
Gut, dazu morgen mehr. Die Vorlesung,
es beginnt um 8.15 Uhr,
damit wir für die nachfolgenden Übungen halbwegs pünktlich Viertel vor 10
schließen können