Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
2. Vorlesung Theoretische Informatik (TI) | Endliche Automaten
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 790 Zeilen
- wir hatten uns in der vorhergehenden Vorlesung neben einem themenüberblick vor allem mit dem Punkt formale Sprachen beschäftigt und haben damit begonnen
- verschiedene formale Definitionen aufzustellen mit deren Hilfe wir Alphabete also Sammlungen von Buchstaben Sammlungen von Ziffern
- Sammlungen von irgendwelchen Zeichen in allgemeine Sprachen verwandeln können also Sammlungen von die sich aus den Zeichen eines Alphabets aufbauen ich
- hatte im Überblick bemerkt dass ein großer Teil der Vorlesung also ungefähr zwei Drittel der Vorlesung sich mit den beiden Themen formale Sprachen und
- Automaten Theorie beschäftigen wird bei formalen Sprachen denke ich es intuitiv ganz gut klar was es geht sie müssen halt
- irgendwelche Sammlungen von Wörtern beschreiben sie müssen Mechanismen finden wie Sie die Wörter zueinander gruppieren und
- Sie müssen mechan finden um das wortproblem zu lösen wir haben uns in der letzten Vorlesung bereits kurz mit dem wortproblem beschäftigt wir
- haben festgestellt eine formale Sprache L ist nichts anderes als eine Menge als eine Menge von Wörtern eine Menge von Wörtern über dem Alphabet Sigma nachdem
- die Wörter beliebig normalen im allgemeinen Fall beliebig lang sein können ist die formale Sprache L
- eine Teilmenge von σ hoch Stern σ hoch Stern war ja wenn sie sich an die Definitionen der letzten Stunde zurückerinnern die Menge aller
- beliebigen Wörter über dem Alphabet Sigma Wörter beliebiger Länge Wörter der Länge 1 Wörter der Länge 2 Wörter der Länge 1li17 und so weiter und auch des
- leerenwtes also das Wortes der Länge Null das wortproblem besteht jetzt darin wenn man sich grafisch veranschaulicht die Menge
- sig Stern ist eine große Menge eine unendlich große Menge ich kann die natürlich nur endlich repräsentieren und die Sprache L ist eine Teilmenge dieser
- Menge die Menge Sigma stn wird also in zwei Mengen geteilt einmal in die Teilmenge l in der sich sämtliche Wörter der Sprache befinden das ist die Menge
- die Teilmenge die uns interessiert und in den Rest in die restlichen Wörter die sich in sigmasn befinden die sich nicht in der Sprache l befinden und da wissen
- sie aus der Mathematik bereit das ist die Menge l quer also die komplementärmenge von L alles was in L nicht enthalten ist ist in der Menge l
- Komplement oder L quer enthalten so eine Sprache teilt also die Menge σ Stern in zwei Bestandteile auf einmal die interessanten Wörter einmal die
- uninteressanten Wörter und das wortproblem besteht jetzt formal betrachtet darin für irgendein Wort P Hans Huber Meer 21 57 was auch immer
- fest Z stellen ist dieses Wort P in der Sprache l enthalten oder nicht und das kann man ebenfalls mit mengenschreibweise formal darstellen
- indem wir die Frage stellen ist P ein Element aus der Menge L ist P in der Sprache l enthalten oder ist P nicht in der Sprache l enthalten diese sehr
- einfache Fragestellung die grundlegende mathematische Fragestellung ist irg ein Element in einer Menge enthalten oder nicht die kennen Sie ja schon seit
- Jahren aus der Schule diese sehr grundlegende Fragestellung macht also das wortproblem aus und mit diesem wortproblem werden wir uns einen
- Großteil des Semesters beschäftigen da steckt also durchaus noch mehr dahinter als man aufgrund dieser mathematisch doch
- relativ einfachen Problemstellung vermuten möchte die interessante Frage beim wortproblem ist jetzt nicht dass für irgendeine gegebene endliche Menge
- von WN zu beantworten ja wenn ich sage die die Wörter Hans Meer und Müller sind eine formale Sprache dann ist es extrem einfach festzustellen ob irgendein Wort
- in dieser Sprache enthalten ist oder nicht dann müssen sie Hal einfach Ihre Liste durchgehen mit den Wörtern schauen ist das Wort Hans ist das Wort Meer oder
- ist das Wort Müller wenn ja dann ist es in der Sprache enthalten wenn nein dann nicht interessanter wird das Ganze wenn die Sprachen allgemeiner definiert sind
- wie z.B Bankleitzahlen da müssen Sie schon überprüfen besteht das Wort nur aus de alziffern und besteht das Wort aus a Dezimalziffern erfüllt das Wort
- möglicherweise noch irgendwelche quersummenbedingungen irgendwelche prüfsummenbedingungen und so weiter das unterscheidet sich von der
- vorher angegebenen beispielsprache insbesondere dadurch dass es praktisch nicht mehr möglich sein wird alle Bankleitzahlen hinzuschreiben ja wenn
- Sie eine sie eine acht stellige Zahl betrachten über den Dezimalziffern dann gibt's 10 hoch 8 verschiedene Möglichkeiten der Wörter zu generieren
- und 10 no8 Wörter hinzuschreiben ist eine äußerst unpraktische Angelegenheit man muss also Möglichkeiten finden um die Sprache allgemeiner zu
- charakterisieren kommen wir möglicherweise heute im Verlauf der Vorlesung noch dazu zum einen Sprache allgemeiner charakterisieren und zum
- anderen sie wollen natürlich auch nicht manuell in der Tabelle nachgucken ist ein gegebenes Wort drin oder ist das Wort nicht drin sondern sie wollen die
- Aufgabe einem Computer überlassen jetzt wissen wir aber zumindest aus Hinsicht dieser Vorlesung nch gar nicht was ein Computer eigentlich ist was das
- allereinfachste Modell ist um den Computer zu definieren also zumen wir das Pferd von hinten rum auf und überlegen uns na jetzt lassen wir mal
- die Frage vom Computer beiseite sondern wir überlegen uns nur ein mechanisches ein möglichst einfaches Rechenmodell um dieses wortprem zu lösen
- auf was wir heute also raus wollen ist letzten Endes eine Maschine die ich mal als Blackbox hinzeichne eine Maschine der
- ich irgendein Wort P als Eingabe reingebe diese Maschine hat Kenntnis über die formale Sprache l die ich betrachten möchte und die Maschine löst
- jetzt die Frage ist das Wort Mitglied der Sprache oder ist das Wort kein Mitglied der Sprache also spuckt entweder die Antwort ja aus das Wort ist
- ein Mitglied der Sprache oder spuckt die Antwort nein aus das Wort ist kein Mitglied der Sprache auf so eine Maschine wollen wir heute
- rauskommen bevor wir uns an die konkrete Konstruktion dieser Maschine fürs wortproblem machen möchte ich aber auf ein etwas verwandtes Problem eingehen
- weil ja die Verwendung von Automaten zur Erkennung des wortproblems ist jetzt auf den ersten Blick vielleicht gar nicht so offensichtlich wie das funktionieren
- kann was aber offensichtlich ist ist ein anderes Beispiel aus dem praktischen Leben wo ebenfalls Automaten zum Einsatz kommen sehr einfache
- Automaten zum Einsatz kommen von denen sie sich alle sehr schnell klar machen werden dass hier bestimmte Dinge gerechnet werden dass das auch ein
- praktisch relevantes Problem ist das wir betrachten bei dem aber ebenfalls klar ist dass das sicher noch kein vollständiger Computer ist den wir
- betrachten das Problem dem ich mich heute stellen möchte mit dem ich sie heute konfrontieren möchte ist das schwierige Problem von automatischen
- Türen in Einkaufszentren sie kennen das ja alle sie betreiben Einkaufszentrum da scheint es eine gewisse Grundvoraussetzung zu sein dass
- sie da Türen haben ja die Leute sollen irgendwie rein und rauskommen in das Einkaufszentrum und sie wollen den Leuten natürlich maximalen Komfort
- bieten also sind die Türen nicht manuell zu betätigen sondern die Türen sollen automatisch aufgehen wenn da jemand rein und rauskommt im Rahmen meiner Zeichner
- Fähigkeiten die automatische Tür hat zwei Türflügel und die können geöffnet sein ich zeichne die Tür mal so im geöffneten
- Zustand auf die Tür kann sich natürlich auch schließen das markiere ich mal hier so durch den Weg den die Türflügel gehen also sie können sich jetzt alle mehr
- oder weniger vorstellen die beiden Türflügel die können sind offen die können zuklappen die können aufgehen da brauchen sie halt
- hier und hier irgendwelche kleinen servomotörchen das kann man aber bauen und jetzt soll die Tür natürlich nicht zufällig aufgehen sondern die Tür soll
- aufgehen wenn hier von vorne mal hier ist vorne oder außen und hier ist hinten oder innen wenn von vorne die
- wohlverhrt die Kundschaft ankommt dann soll die Tür aufgehen sie müssen also irgendwie erkennen dass da eine Kundschaft ankommt kommt das heißt sie
- machen hier einen Sensor hin irgendeinen druckempfindlichen Sensor oder nichtschranke oder was auch immer einen
- Sensor für vorne und wenn dann jemand reinkommt wenn dann jemand auf die Tür zugeht geht die auf jetzt soll ihr Produkt natürlich auch auf dem
- internationalen Markt erfolgreich sein angenommen sie verkaufen diese Türe nach Amerika was passiert jetzt wenn die Türe zu ist und hier steht jemand und dann
- kommt jemand von vorne her dann geht die Tür auf räumt oder diejenige die hinter der Tür steht erstmal über ein Haufen sie haben eine Sammelklage am Hals und
- das war dann ihr Profit der letzten 300 Millionen verkauften Türen das wollen sie natürlich vermeiden also bauen sie auch hinten
- einen Sensor ein der erkennen kann ob jemand hinter der Tür steht und wenn jemand hinter der Tür steht und die Tür und jemand kommt V vorne rein ja dann
- müssen sie halt abwägen wird der der von vorne reinkommt so viel einkaufen dass sich die Sammelklage rentiert oder wird wollen sie es eher
- den konservativen Ansatz fahren und öffnen die Tür dann halt nicht und warten bis der hinter der Tür oder diejenige hinter der Tür wieder
- weggegangen ist so also auf den ersten Blick eine relativ einfache Steuerungsaufgabe das könnte man jetzt natürlich lösen indem man hier einen der
- bekannten rechenmechanismen die ich ihen in der ersten Vorlesung gezeigt habe ein Tablet einen Computer ein Cray y MP Supercomputer was auch immer einbaut das
- funktioniert natürlich kein Frage aber sie wollen es etwas kostengünstiger erledigen also überlegen Sie sich ob man da nicht irgendeine kleine
- spezialelektronik oder irgendein alten 4Bit Computer oder was auch immer einsetzen kann dazu müssen sie aber erstmal das Problem so formalisieren das
- Problem so abstrakt beschreiben so konkret beschreiben gleichzeitig dass sie im Computer erklären können was er machen soll und
- dazu werden wir jetzt das Konzept Verwenden des Ihnen bereits aus dem nullten Übungsblatt bekannt ist das Konzept eines
- grafens die Tür kann sich im Wesentlichen in zwei möglichen Zuständen oder nicht im Wesentlichen sondern die Tür kann sich in zwei Zuständen befinden
- die Tür kann entweder geschlossen sein oder schreiben wir mal zu die kann die kann zu sein das ist ein möglicher Zustand der Tür und die
- Tür kann offen sein so und jetzt ist die Kunst der Steuerung ähm zwischen diesen beiden Zuständen zu und offen sogenannte Übergänge zu machen
- oder wenn Sie es etwas wissenschaftlicher ausdrücken wollen sogenannte Transitionen zu machen diese Transitionen werden natürlich ausgelöst
- von den Eingaben von den Meldungen die die beiden Sensoren vorne und hinten liefern und angenommen die Tür ist zu es kommt kommt vorne eine Kundschaft zu auf
- die Tür zugelaufen und hinten steht keine Kundschaft dann wollen sie die Tür öffnen also gehen sie vom Zustand zu in den Zustand offen und das machen sie
- wenn vorne jemand steht aber hinten niemand steht so wenn die Tür mal offen ist solange vorne Leute reinkommen
- lassen sie die Tür offen solange hinten Leute rausgehen wollen lassen Sie die Tür offen wenn ähm aber niemand mehr vorne und hinten
- steht dann macht's keinen Sinn die Tür offen zu lassen dann ähm heizen sie nur aus dem Gebäude raus hängt auch wieder vom Kontinent ab wenn sie in Europa sind
- heizen sie aus dem Gebäude raus wenn sie in Amerika sind dann haben sie ja im Gebäude -10° von ihrer Klimaanlage dann kühlen Sie aus dem Gebäude raus ist
- beides aber thermodynamisch wenig sinnvoll äh wie sie entweder vom gesunden Menschenverstand her wissen oder noch im
- Rahmen ihrer Physikvorlesung erfahren werden also sie wollen wenn vor und hinten keiner steht die Türe schließen und das würde dann mit einem Übergang
- passieren die Tür geht vom Zustand offen in den Zustand zu wenn vorne niemand und hinten niemand steht ich verwende da jetzt mal eine gewisse
- abkürzungschreibweise so und da können Sie jetzt sämtliche sol lang durcharbeiten bis sie sämtliche Kombinationen gefunden haben was
- passieren kann hinten steht jemand vor steht niemand die Tür ist offen vorne steht niemand hinten steht jemand die Tür ist zu vorne und hinten steht jemand
- die Tür ist offen und so weiter und so fort da gibt's also selbst bei so einem einfachen System sehr viele Möglichkeiten um jetzt zum einen Klagen
- zu entgehen weil sie irgendeine Möglichkeit übersehen haben und zum anderen natürlich fehlerfreie Software zu schreiben sie wollen ja in ihrer
- Software jeden möglichen Fall Abfangen der auftreten kann und nicht in irgendeine undefiniertes Situation reinrauschen sich überlegen wie man
- systematisch sämtliche Möglichkeiten konstruiert die bei so Tür auftreten können und das habe ich mal hier auf dieser Folie
- gemacht welche potenziellen Möglichkeiten haben wir um die Zustände der Tür zu und offen mit den möglichen Sensordaten zu
- kombinieren an Sensordaten haben wir vier Möglichkeiten entweder steht nirgendsjemand also beide Sensoren zeigen nichts an oder es steht vorne
- jemand oder es steht hinten jemand oder es steht sowohl vorne als auch hinten jemand also beide Sensoren zeigen Möglichkeiten an vier Möglichkeiten von
- den Sensoren zwei Möglichkeiten von den Zuständen also habe ich insgesamt acht Situationen auf die ich reagieren muss und diese acht Situationen kann man
- übersichtlich in der Tabelle zusammenfassen bei der ich hier alle möglichen Zustände auftrage die beiden Zustände zu und offen und bei
- denen ich auf dieser Achse alle möglichen sensoreingaben auftrage also alle ja Inputs die auftreten können unabhängig vom Zustand so dann kann
- jetzt diese Tabelle ausfüllen und kommen da zu bestimmten Entscheidungen die ich halt als Programmierer dann treffen muss was ich machen möchte wenn die Tür zu
- ist und wenn nirgends jemand steht dann lasse ich die Tür natürlich zu wenn die Tür offen ist und sich nirgends jemand befindet weder vorne
- noch hinten da macht's keinen Sinn die Tür offen zu lassen dann mache ich die Tür zu geh also in den über Übergang zu sie sehen hier habe ich immer
- Zustandsübergänge das ist mein Ausgangszustand offen das ist was mit die Sensoren liefern nirgends steht jemand und das ist der Zustand in den
- ich übergehe in den Zustand zu so das gleiche machen wir mit wenn vorne jemand steht wenn die Tür zu ist und wenn vorne jemand steht dann wollen wir den Kunden
- ins Einkaufszentrum reinlassen dann machen wir die Tür auf gehen über in den Zustand offen wenn die Tür bereits offen ist und wenn jemand vorne steht sind wir
- natürlich nicht unhöflich und schlagen dem die Tür von der Nase zu sondern lassen die Tür offen gehen also vom Zustand offen in den Zustand offen ja
- dann wird das Ganze jetzt langsam etwas Fahrt wenn die Tür zu ist und wenn hinten je man steht dann wollen wir dem die Tür nicht drauf knallen und lassen
- die Tür zu das ist jetzt eine Frage der Geschäftslogik oder des geschäftsinteresses es kam vorher außerhalb der Aufzeichnung die Frage ja
- was ist jetzt wenn jemand aus dem Einkaufszentrum raus will dann ist natürlich ganz klar die Entscheidung der soll nur etwas mehr einkaufen also wir
- sind ja Geist des Kapitalismus beflügelt also lassen wir die Tür zu hat zwei Effekte zum einen wir vermeiden die Klage dass die Tür drauf knallt und zum
- anderen er kann mehr Geld im Einkauf Zentrum ausgeben ist also aus Sicht der Betriebswirtschaft eine vernünftige Entscheidung das so zu
- programmieren gut wenn die Tür offen ist und wenn hinten jemand steht dann lassen wir es natürlich offen also wenn der das Gute Glück hatte dass vorher jemand
- rausgegangen ist jetzt kommt von hinten jemand rein dann darfausgehen so und dann haben wir nur den letzten Fall wenn vorne und hinten jemand steht und die
- Tür zu ist dann lassen wir die Tür zu warum der vorne möchte zwar rein aber dem hinten oder derjenigen hinten wollen wir die Tür nicht draufschlagen und wenn
- die Tür offen ist und vorne und hinten jemand steht dann lassen wir die Tür natürlich ebenso offen um den vorne reinzulassen und derjenigen hinten die
- Tür nicht diejenige hinten nicht in die Tür einzuklemmen so wenn man sich die Tabelle jetzt so aufschreibt dann kann man sicher sein nachdem wir systematisch
- konstruiert nachdem wir die systematisch konstruiert haben wir haben alle Zustände berücksichtigt wir haben alle Eingaben berücksichtigt und wenn Sie
- hier in dieser Tabelle ke keine unausgefüllten Felder keine weißen Flecken drin stehen haben dann wissen sie ihr Programm kann mit jeder
- eingabesituation vernünftig umgehen es gibt keinen undefinierten Fall ihr Programm wird nie abstürzen und sie wissen aus ihrer persönlichen Erfahrung
- der letzten Jahre mit Smartphones mit Computern es wäre sehr wünschenswert wenn die Programmierer programmiererinnen der entsprechenden
- Apps so an Probleme rangehen würden wenn Sie bedenken wie oft Applikationen Abstürzen wie oft und definierte Situationen laufen also es macht
- durchaus Sinn selbst bei so einfachen Problemen auf systematische beschreibungsweisen zu gehen auf formale beschreibungsweisen zu gehen um gute
- Softwarequalität sicherzustellen so diese Tabelle hier ist jetzt hilfreich wenn Sie systematisch Lösung konstruieren wollen für ein Problem es
- ist allerdings nicht allzu hilfreich wenn sie sich intuitiv einen Überblick verschaffen wollen was eigentlich vorgeht in ihrem Programm das wird aus
- dieser Tabelle nicht ganz so einfach ersichtlich und deswegen gibt's eine zweite Darstellungsmöglichkeit die
- Darstellungsmöglichkeit durch einen Grafen der genau die gleiche Information oder sogar noch bisschen mehr Information komme ich gleich dazu wie
- die Tabelle enthält die aber Ihnen für Menschen etwas übersichtlicherer Form darstellt ich habe hier die beiden über die beiden Zustände der Tür zu und offen
- als Zustände als Knoten eines Grafen eingezeichnet und habe die Übergänge zwischen den Zuständen als Kanten als beschriftete
- Kanten eingezeichnet sie sehen hier z.B den bereits besprochenen Übergang wenn die Tür zu ist und wenn jemand vorne steht dann geht die Tür auf das
- korrespondiert zu dem Eintrag in der Tabelle hier die Tür ist zu es steht vorne jemand also geht die Tür auf sie sehen wir haben den überg von zu nach
- offen wenn vorne jemand steht im Grafen Übergang von zu nach offen wenn vorne jemand steht und analog können wir jetzt sämtliche anderen Informationen aus der
- Tabelle in den Grafen überführen vom Zustand offen gehen wir wenn nirgendsjemand steht in den Zustand zu das entspricht dem tabellenelement
- wenn die Tür offen ist und wenn nirgendsjemand steht geht die Tür zu also diese Kante hier die beschriftete Kante hier entspricht diesen drei
- Feldern und genauso funktioniert es für alle anderen Felder wenn Sie die Tabelle mal in Ruhe vergleichen mit dem Automaten mit dem Grafen des Automaten
- dann werden Sie sehen da ist exakt die gleiche Information drin wir haben in der Tabelle acht Einträge und wenn man nachzählt haben wir im Automaten 1 2 3 4
- 5 6 7 Übergänge also es ist genau die gleiche inform repräsentiert nur dass der Graf offensichtlich etwas leichter für
- Menschen zu interpretieren ist als die Tabelle andererseits wenn sie so eine Steuerung jetzt in ein Computersystem eingeben wollen wenn Sie die
- Steuerungslogik in irgendeinen kleinen Chip eingeben wollen dann ist es sehen sie glaube ich auch alle relativ offensichtlich deutlich einfacher so
- eine Tabelle in den Chip zu transferieren als so ein Bild ich sagt im Grafen findet sich etwas mehr Information als in der
- Tabelle und das ist in der Tat auch korrekt sie sehen hier im Grafen ist eine Kante eingezeichnet mit der Beschriftung Start die aus dem Nichts
- auf einen Zustand zeigt und diese Kante ist erforderlich weil sie das System ja irgendwann starten müssen sie programmieren Ihr System beispielsweise
- in Form einer elektronischen Schaltung und dann muss ich das System aber irgendwann einschalten muss da Strom drauf geben und dann befindet sich das
- System entweder im Zustand zu oder im Zustand offen ja je nachdem wie man die Tür dieolmäßig ausliefert normalerweise wird eine Tür dieolmäßig geschlossen
- ausgeliefert also soll die ganze Steuerungslogik im Zustand zu anfangen und nachdem am Anfang ja noch keine Information aus den Sensoren vorliegt
- brauchen wir diesen ST Pfeil der einen Startzustand markiert um zu wissen wo die ganze Steuerungslogik beginnt wenn ich das System einschalte gehen wir also
- per Konvention die stkante entlang befinden uns dann in diesem Zustand und warten dann auf die Eingaben der Sensoren und dann läuft das im Prinzip
- endlos weiter in der Realität wird die Steuerung natürlich irgendwann beendet werden wenn sie den Strom ausschalten wenn sie abends
- das Einkaufszentrum zusperren aber aus Sicht der Steuerungslogik läuft dieses Programm und es handelt sich bei diesem Automaten ja haben nichts anderes als um
- ein sehr einfaches Programm und damit auch nichts anderes als einen sehr einfachen Rechner wird dieser sehr einfache Rechner
- beliebig lang ohne Ende weiterlaufen so damit haben wir jetzt also zwei Dinge erledigt wir haben zum einen das hochkomplexe Problem der
- automatischen Türsteuerung gelöst wir haben zum anderen was aber deutlich relevanter ist ein erstes Modell für einen vollständig automatisierbaren
- Rechner entwickelt ja das ist offensichtlich noch kein kein richtiger Computer dazu ist das viel zu einfach das ist denke ich Ihnen
- allen klar aber es ist nichts desto weniger ein einfaches Berechnungsmodell und dieses einfache Berechnungsmodell kann ich auch sehr
- schön mit mathematischen Objekten darstellen ich kann es entweder als Grafen darstellen da haben sie ja im nullten
- Übungsblatt schon gelernt wie man den Grafen sehr schön mathematisch darstellen kann über Tupel über Mengen und so weiter und man kann das ganze
- auch in Form einer Matrix darstellen und das eine Matrix ein sehr schönes mathematisches Objekt ist über das man viele Aussagen treffen kann das ist
- ihnen entweder schon aus der Schule bekannt oder sie werden noch sehr viel im weiteren Verlauf ihres ersten Semesters in der Mathematik Verlesung
- hören solche Automaten hatte ich Ihnen ja bereits angedroht die kommen in der täglichen Arbeit in ihrer Zukunft vor ich kann jetzt da nicht im Detail auf
- jeden möglichen Einsatzzweck eingehen macht da keinen Sinn ja will mich ja mit den Automaten selbst beschäftigen und nicht mit den Einsatzzwecken aber sie
- dürfen mit durchaus glauben dass das wirklich eines der universellen Arbeitspferde der Informatik ist in Steuerungsaufgaben in industriellen
- Steuerungsaufgaben wenn sie an die vorher genannten Dinge denken wie Förderbänder irgendwelche industriellen Fertigungsstraßen wie irgendwelche
- verpackungsstraßen und der gleichen Dinge dann steuert man solche Straßen nicht mit Sprachen wie C oder wie Python oder wie c#ar sondern da verwendet man
- einfachere für die Zwecke der Steuerung angepasste Sprachen die haben dann so hübsche Namen wie Anweisungsliste oder wie
- strukturierter Text und dergleichen im Wesentlichen vereinigen diese Sprachen die Nachteile einer strukturierten Hochsprache mit den Nachteilen einer Low
- Level Maschinensprache aber das hat sie halt in der industriellen Steuerung bei den Maschinenbauern so eingebürgert und diese Sprachen sind im Großen und Ganzen
- nichts anderes als etwas komfortablere Front für die Automaten die ich Ihnen jetzt beschrieben habe solche Automaten haben
- sie alle zum einen in ihrem bisherigen Leben schon verwendet und zum anderen wahrscheinlich alle heute schon millionenfach eingesetzt jedes Mal wenn
- sie im Internet irgendeine Seite aufmachen mit Ihrem Browser dann macht er wie Sie vielleicht wissen eine sogenannte TCP Verbindung auf das ist
- die Standard Internetverbindung und das Netzwerkprotokoll bei TCP verbind also der Ablauf zwischen Client und
- Server wenn Sie mit Ihrem Mobiltelefon eine Seite im Netz aufmachen dann muss das Mobiltelefon eine Anfrage an den Webserver schicken ich würde mal gerne
- die Seite anschauen der Webserver muss Antworten ja kannst anschauen dann sagt Mobiltelefon ich möchte das und das anschauen dann schickt der Webserver die
- Daten dann sagt der Telefon ja die Daten habe ich empfangen dann sagt der Webserver okay gut ist schönes jetzt beenden wir wieder die Verbindung weil
- alles weil alles übertragen wurde und verbindungsschritte die werden definiert in dem sogenannten RFC in dem request for comments heißen diese
- Dokumente das sind die offiziellen Internetstandards und darin verwendet man exakt so einen endlichen Automaten ich habe hier mal die entsprechende
- Seite aus dem Internet standandard rauskopiert sie müssen jetzt natürlich nicht im Detail verstehen was da passiert sie werden es dann im weiteren
- Verlauf ihres Studiums genauer kennenlernen was hier vor sich geht aber ich denke es ist relativ offensichtlich dass dass es sich hier um den Grafen
- handelt der aus Knoten und Kanten zusammengesetzt ist die Kanten geben protokollaktionen an die passieren die Knoten geben Zustände an in denen sich
- Client und Server befinden und wenn sie später in imem Studium mal in eine konkrete netzwerkimplementierung reinschauen werden dann werden Sie sehen
- dann geht wir hier wirklich so vor dass man diesen Automaten implementiert was nichts anderes als ein endlicher Automat ist und dieser Code der läuft dann
- Millionen und milliardenfach und billiardenfach wahrscheinlich sogar täglich auf allen möglichen Servern und Clients ab die das Internet betreiben
- also falls Sie ähm bislang noch nicht überzeugt waren dass endliche Automaten wie man diese Sachen nennt oder Automaten wichtig sind in der Informatik
- dann äh denke ich sollte das durchaus ein Argument sein dass das wirklich jeder von ihnen tagtäglich sehr oft verwendet
- und dass man deswegen sich auch mit den entsprechenden Grundlagen des ganzen beschäftigen muss nicht nur bei
- netzwerkaugaben kommen diese endlichen Automaten zum Einsatz es gibt das sehr viele weitere Anwendungszwecke die ich jetzt nicht im Detail darstellen möchte
- sie dürfen mir das aber durchaus Glauben z.B bei der schnellen Mustererkennung in Daten also wenn Sie irgendwelche Genomsequenzen beispielsweise
- durchsuchen oder wenn sie Stichwort Big Data irgendwelche sozialen Netzwerke bei Facebook durchsuchen nach Inhalten oder wenn Sie
- die NSA sind und Millionen Fach unbescholenee Bürger ausspionieren wollen indem sie der Mails lesen dann brauchen Sie endliche Automaten weil die
- sehr schnell die sind sehr einfach also können die sehr schnell implementiert werden sehr performant implementiert werden und werden deswegen
- beispielsweise bei der Mustersuche in Daten eingesetzt also die NSA hat wahrscheinlich sehr schnelle endliche Automaten die nach bin Laden
- suchen oder nach was weiß ich Kim Jong Un Obama für was man sich Hal so passessiert es gibt auch eine Verallgemeinerung des ganzen Konzepts
- die markaufketten die wenn sie dann in me wahrscheinlich im Masterstudium mal kennenlernen die dann für so Sachen wie Schriftklassifikation
- oder Bilderkennung zum Einsatz kommen in der Sprachverarbeitung in Einsatz finden oder selbst im hochfrequenzaktienhandel also alles was
- sie in dieser Vorlesung lernen können Sie für die unterschiedlichsten Zwecke einsetzen einschließlich dazu Stichwort hochfrequenzaktienhandel um ganze
- Volkswirtschaft vor die Wand zu fahren ist also wirklich ein sehr eine sehr sehr universelle Lösungsmöglichkeit eine sehr universelle
- Berechnungsmöglichkeit auch wenn es noch kein vollständiger Computer ist für unsere Automaten die wir jetzt kennengelernt haben gibt's im
- wesentlichen drei verschiedene Anwendungsmöglichkeiten wir haben bei dem Beispiel der Tür einen automatentyp kennengelernt bei dem es
- nur um die Zustands Übergänge geht ja da ging es drum wann geht die Tür von zu nach offen wann geht die Tür von offen nach zu wann bleibt die Tür zu wann
- bleibt die Tür offen diese vier Zustandsübergänge waren relevant die Kanten also die Eingabe der Sensoren die sind Mittel zum Zweck der Automat gibt
- in dem sin nichts aus sondern der Macht nur Zustandsübergänge das ist eine mögliche Anwendung für solche Automaten es gibt zwei weitere Anwendungen ähm die
- zweite ist das Übersetzen von Eingaben in Ausgaben ähm kann also so Automaten verwenden um von einer Form der Eingabe in die andere
- Form der Eingabe zu übersetzen beispielsweise hat ich Ihnen ja am Anfang der Vorlesung gezeigt wie ein Compiler funktioniert und wir
- hatten dabei gesehen dass der Compiler im Endeffekt eine Eingabe in Programmiersprachen Form in eine Datei in ähm in binärform übersetzt die für
- einen Rechner verständlich ist sowas wäre auch eine Anwendungsmöglichkeit für endliche Automaten und mit was wir uns insbesondere in dieser Vorlesung
- beschäftigen werden ist das Erkennen von Sprachen also das Lösen des wortproblems der Zusammenhang ist jetzt vermutlich noch nicht ganz offensichtlich wie man
- von solchen Automaten wie ich sie für die Türsteuerung verwendet habe auf eine mechanisierte auf eine automatisierte Möglichkeit kommt wie man das
- wortproblem löst damit werden wir uns jetzt aber beschäftigen und und damit den ersten Zusammenhang zwischen diesen beiden großen Themenfeldern formale
- Sprachen und endliche Automaten herzustellen der auf den ersten Blick vollkommen unklar ist warum das zusammenhängen soll bei dem S jetzt aber
- gleich sehen werden warum diese beiden Felder sehr sehr eng miteinander verknüpft sind lassen Sie uns um den Zusammenhang
- zwischen endlichen Automaten und dem sprach dem wortproblem herzustellen einen weiteren Automaten Betrachten der erstmal sehr ähnlich aussieht zu dem
- steuerungsautomaten den sie schon kennen der Automat hier zeichnet sich durch drei Zustände aus ich habe die Zustände jetzt etwas weniger anschaulich Q1 Q2
- und Q3 genannt aber Bezeichnungen und Namen sind ja vor allem in der theoretischen Informatik Schall und Rauch ob ich die zuständ jetzt zu offen
- und vertret oder Hans Hubert und Friedrich oder Q1 Q2 Q3 bezeichnen ist vollkommen wurscht solange die Bezeichnungen eindeutig sind ich habe
- hier wieder einen statzustand ich lasse da die Beschriftung Start jetzt bei den folgenden Automaten künftig weg weil er klar ist wenn ein Zustand aus dem Nichts
- auf einen Zustand wenn wenn eine Kante Entschuldigung aus dem Nichts auf einen Zustand zeigt dann soll der Zustand auf den die Kante zeigt als staatzustand
- markiert werden bei dem geht die Rechnung los und sie sehen ebenfalls dass ich die Kanten jetzt nicht mehr mit irgendwelchen sensoreingaben beschriftet
- habe sondern ich habe die Kanten beschriftet mit Nullen und Einsen so jetzt kennen sie aus der letzten Vorlesung bereits das Alphabet σma ist
- 0,1 das einfachst oder eines der einfachst möglichen Alphabete das binäre Alphabet das sich nur aus den Ziffern 0 und 1 zusammensetzt und da könnte man
- sich jetzt über diesem Alphabet durchaus eine formale Sprache vorstellen die Wörter dieser Sprache setzen sich aus Nullen und Einsen zusammen und die
- Wörter sollen jetzt bestimmte Eigenschaften erfüllen ähm damit ich nicht jedes mögliche Wort aus Nullen und einzen betrachte was
- dieser Automat hier jetzt leisten soll ist das wortproblem zu lösen und dazu stellen wir uns den Automaten jetzt als Maschine vor als eine konzeptionell
- etwas andere Maschine als eine Maschine ein Wort bekommt als Eingabe die Maschine soll das
- Wort auf einem Band bekommen das Band hat offensichtlich endliche Länge ja weil jedes Wort das wir betrachten ist endlich lang unendlich lange Wörter
- machen für uns erstmal keinen Sinn weil für unendlich langes Wort müsste unendlich lang zwangsweise rechnen um entscheiden zu können ob das in der
- Sprache drin ist oder nicht also ist dieser Fall uninteressant wir betrachten nur Wörter endlicher Länge und diese Wörter schreiben wir jetzt auf ein Band
- das mag aus S der heutigen Informatik wieder etwas archaisch erscheinen aber sie wissen alle aus der Einführung es gab durchaus Rechner die mit 35 mm
- Lochstreifen gearbeitet haben oder mit Papierstreifen und im Endeffekt ob sie es jetzt auf eine Festplatte schreiben oder auf einen sdchip oder auf ein
- Papierband das ist lediglich eine Form der Technologie eine Wahl der informationsspeichertechnologie die aber konzeptionell vollkommen wurcht ist also
- Betracht irgendein Wort z.B 0 10 10 von mir aus und von diesem Wort möchte ich jetzt entscheiden ist es in einer Sprache drin oder nicht dazu sage
- ich habe eine Maschine die ich durch ein Kästchen repräsentiere und die Maschine die kann jetzt immer ein einziges Kästchen auf
- dem Band anziehen ist wieder eine sehr primitive Maschine aber wir wollen ja erstmal sehr einfache Rechnermodelle kstuieren damit
- wir die mathematisch noch einigermaßen in Griff bekommen können so diese Maschine schaut jetzt auf ein Zeichen kann dieses Zeichen lesen und kann dann
- einen Zustandsübergang machen die Maschine befindet sich in einem der Zustände aus Q aus einer Menge groß Q in dieser Menge groß Q sollen
- alle Zustände versammelt sein die sich im Automaten hier befinden also in unserem Fall Q1 Q2 Q3 und die Maschine befindet sich zu jedem Schritt in dem
- Zustand die kann sich entweder im Zustand Q1 oder im Zustand Q2 oder im Zustand Q3 befinden und abhängig davon welches Zeichen gelesen wird wechselt
- die Maschine in irgendeinen anderen Zustand so nachdem das Zeichen gelesen wurde schiebt die Maschine das Band einen Schritt nach links weiter liest
- also zunächst das Zeichen 0 macht den Zustandsübergang liest das Zeichen 1 macht den Zustandsübergang dies das Zeichen 0 macht den Zustandsübergang und
- so weiter und so weiter und und so weiter bis sie das letzte Zeichen 1 gelesen hat und einen Zustandsübergang gemacht hat die schiebt also das Band
- durch liest Zeichen verzeichnen macht den Zustandsübergang die Zustandsübergänge wie die ausgeführt
- werden ist jetzt natürlich festgelegt wie sie sich alle denken können durch dieses Diagramm hier durch diesen Grafen hier und die Kanten geben auch genau an
- wie sich der Zustand ändert nach dem Lesen eines Zeichens wie sie Seen gehen von jedem zust ausgehend immer genauwei Kanten raus
- eine fürs les vonull und eine fürs Lesen von ein also sie sehen hier vom Zustand Q1 aus haben wir eine Kante die rausgeht für ull eine Kante die rausgeht für 1
- vom Zustand Q2 aus haben wir eine Kante die rausgeht für ein eine Kante die rausgt für ull und vom Zustand Q3 aus haben wir ebenfall eine Kante für 0 und
- eine Kante für 1 nachdem beide auf den gleichen Zustand zeigen war ich hier so frei das so zusammenzufassen dass ich 0,1 an die Kante schreibe das
- kennzeichnet dass die Kante sowohl für ull als auch für eins gilt so was wir aber feststellen können ist der Automat legt jetzt eindeutig fest wenn sie sich
- in dem Zustand befinden und wenn sie ein Zeichen lesen in welchem Zustand der als nächstes übergeht so jetzt können wir ein Wort
- durchlaufen und können das Buchstabe für Buchstabe durchgehen dann müs man nur am Ende des Tages entscheiden und der Ende des Tages
- ist für uns Ende des Gelesenen Bandes ja wird das Wort jetzt eigentlich akzeptiert also ist das Wort ein Mitglied der Sprache oder ist das Wort
- kein Mitglied der Sprache weil diese Entscheidung soll uns der automater liefern ist es Mitglied der Sprache ist es kein Mitglied der Sprache und dazu
- habe ich jetzt einen speziellen weiteren einen speziellen und und einen Zustand speziell ausgezeichnet sie sehen dieser Zustand Q2 hier der ist nicht mit einem
- einfachkreis eingekreist wie Q1 und Q3 sondern der ist mit einem zweifachkreis eingekreist und dieser zweifachkreis bedeutet akzeptierender
- Endzustand das heißt wenn sich die Maschine nach dem Lesen des Wortes die hat ja angefangen hat dann alle Buchstaben eingelesen hat die Übergänge
- gemacht zwischen den Zuständen und wenn das Wort fertig gelesen ist und die Maschine sich in diesem akzeptierenden Endzustand befindet dann wird das Wort
- akzeptiert wenn die Maschine in diesem oder diesem Zustand rauskommt in einfach eingekreisten Zuständen in sogenannten nicht akzeptierenden Zuständen dann wird
- das Wort abgelehnt und da sehen sie es gibt genau zwei Möglichkeiten ich gebe Wort in die Maschine rein die vollzieht die Übergänge und kann dann kommt dann
- entweder bei diesem Zustand raus oder kommt bei diesen beiden Zuständen raus die Maschine wird uns also immer eine Antwort liefern ja das Wort wird
- akzeptiert ist Teil der Sprache oder nein das Wort wird nicht akzeptiert ist kein Teil der Sprache so und damit ist jetzt das ganze Problem wenn Sie das
- wortprem lösen wollen dass Sie sich halt über die Struktur ihrer Sprache klar werden müssen und dann versuchen müssen so einen Automaten zu konstruieren der
- zu ihrer Sprache passt und der für jedes zu akzeptierende Wort am Ende des Tages in dem akzeptierenden Endzustand rauskommen klingt erstmal leicht ist
- natürlich wie Sie sich vorstellen können wenn sie eine konkrete Sprache vor sich haben gar nicht so leicht aber da haben wir jetzt
- die nächsten 10 11 12 13 Vorlesungen Zeit um uns da zu überlegen wie man von der gegebenen Sprache auf einen passenden Automaten kommen
- kann wir möchten jetzt maschinenautomaten dieser Art verwenden um das wortproblem automatisiert zu lösen ja Sie können es kann jetzt jeder
- von ihnen kann hergehen und kann so eine Eingabe z.B die Eingabe 1101 oder 00 kann er in den Automaten eingeben oder kann sie in
- den Automaten eingeben und sieht dann ob das Wort akzeptiert wird oder nicht wir wollen aber letztlich drauf raus dass wir diese
- fade repetitive Aufgabe meinem Computer überlassen also haben wir zwei Ziele oder ein Ziel im Wesentlichen jetzt wir wollen diesen Automaten so stark formal
- beschreiben dass wir n Computer und da meine ich jetzt ein richtigen Computer oder irgendeiner anderen automatischen Maschine die auf gabe des
- nachvollziehens von Wörtern überlassen können und damit das wortproblem mechanistisch lösen können bevor wir das machen schauen wir uns aber mal zwei
- konkrete Beispiele an einmal das Wort 101 wird dieses Wort akzeptiert oder nicht wir haben das Wort 1 01 so das mal ich jetzt auch schön auf
- ein Band und die Maschine fängt an den ersten Buchstaben zu lesen und befindet sich dafür im Anfangszustand Q1
- ja der stadzustandspfeil gibt uns an wir fangen im Zustand Q1 an die Maschine liest die Ziffer 1 na und dann schauen wir nach hier den Übergang für ull hier
- haben wir ein Übergang für 1 also geht die Maschine diesen Übergang für die Eingabe 1 entlang geht vom Zustand Q1 indem sie sich ursprünglich befunden
- hat durch lesen der in den Zustand Q2 so und liest jetzt das nächste Zeichen also wir
- haben wir befinden uns jetzt im Zustand Q2 und der Zeiger welches Feld gelesen wird bewegt sich eines eine Position weiter sie entschuldigen hier meinen
- Löschversuch falls irgendjemand von ihnen im Auditorium rausbekommt wie man mit explain everything Sachen löschen kann eigentlich im Jahr 2000 16 möglich
- sein sollte der darf mir dann gerne E-Mail schicken ähm ich hoffe die Tatsache dass ich theoretische Informatik und Berichte
- entschuldigt mich für das entsprechende Unvermögen so wir befinden uns jetzt im Zustand Q2 und lesen das Zeichen 1 also schauen wir nach von Q2 geht eine Kante
- für 1 raus die Kante geht von Q2 nach Q2 also bleibt der Automat im gleichen Zustand er geht von Q2 nach Q2 über ist auch ein Übergang und wir gehen
- natürlich auch in der Eingabe ein Feld weiter und lesen jetzt im Zustand Q2 das Zeichen 0 schauen wir wieder nach im Zustand Q2
- geht diese Kante für den Buchstaben Null weg also machen wir diesen Übergang nach Q3 befinden uns jetzt im Zustand Q3 schieben den schreiblesekopf ein weiter
- wer in der Physik aufgepasst hat weiß er es ist wurscht ob ich das Band von rechts nach links oder den schreiblesekopf von links nach rechts
- schiebe im Rahmen der klassischen Mechanik ist es egal also lesen wir jetzt das Zeichen 1 im Zustand Q3 n dann machen wir das was
- wir jetzt schon kennen wir befinden uns im Zustand Q3 schauen nach wo kommen wir unterlesen einer 1 hin das ist diese Kante die uns weiterführt und die führt
- uns in den Zustand Q2 also gehen wir über in den Zustand Q2 und haben jetzt auch das komplette Band bearbeitet da ist es nichts mehr zu
- lesen übrig der Automat bleibt dann stehen ja hat keine weiteren Buchstaben mehr am Übergänge zu machen bleibt stehen und er bleibt stehen im Zustand
- Q2 das bedeutet wir haben einen akzeptierend Endzustand erreicht am Ende des Bandes und das Wort 1101 wird also gemäß unserer Konvention
- akzeptiert wir stellen fest 101 ist ein Element der Sprache l die wir betrachten ja wir identifizieren jetzt die Sprache l implizit mit allen
- Wörtern die der Automat akzeptiert betrachten wir das Wort 0 ich habe jetzt hier mal absichtlich ein etwas einfacheres Wort gewählt dass wir
- schneller zum Schluss kommen wir fangen wieder sie kennen den Prozess jetzt mittlerweile wir fangen an beim Startzustand lesen die erste Null
- sehen wir müssen diesen Übergang nachvollziehen also wir gehen von Q1 nach Q1 und lesen dann die zweite Null gehen
- also wieder von Q1 nach Q1 der Automat hat also in Q1 angefangen ist dann nach Q1 gegangen und ist dann noch mal nach Q1 gegangen dann haben wir
- beide Buchstaben gelesen es kommt kein weiterer Buchstabe der Automat bleibt stehen er bleibt aber diesmal in einem einfach umrandeten Zustand stehen also
- in dem nicht akzeptierenden Zustand und das bedeutet gemäß unserer Konvention ist das Wort 00 kein Element der Sprache l weil es vom Automaten abgelehnt wird
- und nicht akzeptiert wird und dieses Spiel können Sie jetzt mit jedem beliebigen Wort wiederholen sie geben das in den Automaten ein und er
- akzeptiert oder er akzeptiert nichts und je nachdem ist das Wort Bestandteil der Sprache oder nicht m den zustehen Vorgang habe ich Ihnen hier
- zusammengefasst ist im Endeffekt ja relativ einfach sie lesen ein Wort Buchstabe für Buchstabe ein durchlaufen die Übergänge zwischen den Zuständen bzw
- etwas wissenschaftlicher ausgedrückt durchlufen die Transitionen zwischen den Zuständen und wenn sie am Ende der Eingabe sind dann schauen sie Hal nach
- sind sie in dem akzeptierenden Zustand in dem doppelt eingekreisten Zustand oder nicht wenn ja akzeptieren wenn nein ablehnen so jetzt kam bereits die Frage
- auf welche Sprache definiert dieser Automat eigentlich welche Sprache erkennt dieser Automat und da äh sind wir jetzt am Ende des Formalismus
- angelangt da um das intuitiv zu verstehen als Mensch welche Sprache der Automat akzeptiert müssen sie jetzt in ihrer eigen Kreativität tätig werden und
- sie werden im Verlaufe dieses semest das hoffentlich an sehen dass die Theoretische Informatik eigentlich ein sehr kreatives Fach ist da müssen sie es
- ja oft um die Ecke denken hier muss man jetzt noch gar nicht so sehr um die Ecke denken aber Sie müssen jetzt übersetzen und das ist ihre Aufgabe als
- Informatiker und InformatikerInnen sie müssen zwischen dem Übersetzen was für eine Maschine einfach ist also zwischen dieser Darstellung und dem was für Sie
- als Mensch einfach ist traut sich irgendjemand ähm eine Spekulation abzugeben wie man die Sprache die der Automat erkennt mit
- menschlichen Worten beschreiben könnte da muss man im Wesentlichen schauen was macht der Automat und unter welchen Bedingungen äh kann ich auf einen
- akzeptierenden Endzustand kommen ähm die menschlich verständlichere Beschreibung der die Sprache die der
- Automat erkennt kann man auch für Menschen etwas verständlicher beschreiben indem man die Struktur des automatens analysiert sie sehen hier so
- wir fangen immer von diesem stzustand aus an und müssen um ein Wort zu erkennen um ein Wort zu akzeptieren irgendwie in den akzeptierend Endzustand
- gelangen um in diesen akzeptierendten Endzustand zu gelangen muss mindest muss diese Kante hier überschritten werden ja sonst komme ich nicht von Q1 nach Q2 und
- das bedeutet in dem Wort in jedem Wort das erkannt wird findet sich mindestens eine Eins es können also keine Wörter erkannt werden die nur aus Nullen
- bestehen weil ich mindestens einmal diese Kante traversieren muss so und wenn ich jetzt im akzeptierend Zustand bin dann ich kann dann auf
- zwei mögliche weitere Arten zu dem nzustand kommen entweder ich durchlaufe diese Kante hier mit der ein das das bedeutet eine ein befindet sich am Ende
- des Wortes das kann ich einem ich diese Kanten durchlaufe realisieren mit 01 dann befindet sich ebenfalls eine eins am Ende des Wortes
- oder ich durchlaufe diese beiden Kanten so dass ich 00 lese dann bedeutet dass es befinden sich zwei Nullen am Ende des Wortes heißt kann nicht vorkommen dass
- ich nur eine Null am Ende des Wortes befindet und das dieses Verhalten fasse ich hier etwas allgemeiner zusammen die Sprache enthält
- mindestens eine eins haben wir festgestellt wegen dieser Kante und das Wort endet auf eine Gerade Anzer von Null also 2 4 6 8 und so weiter oder mit
- einer 1 das wäre jetzt eine etwas oder das ist jetzt eine menschlich verständlichere Beschreibung der Sprache des Automaten die habe ich hier etwas
- semiformal aufgeschrieben als Menge a die Menge enthält alle Wörter mit dieser Eigenschaft also Wort enthält mindestens eine Eins und so weiter und habe damit
- eine mathematische Menge definiert ich denke es ist auch relativ offensichtlich dass sie mit so einer Beschreibung nur sehr schwer einen
- Automaten erzeugen können der die Sprache mechanisch erkennt ja die Beschreibung ist für Menschen gut aber nicht für Maschinen verständlich dass
- sie aber diese Beschreibung sehr einfach in Form eines Programms angeben können oder in Form ein einfachen Elektronik angeben können oder in Form von
- irgendwelchen Playmobil Maschinen die ein papierbanders Eingabe erhalten angeben können dass das also eine saubere mechanische oder eine saubere
- formal definierte Beschreibung der formalen Sprache L ist so jetzt beschreibt dieser jeder Automat beschreibt eine unterschiedliche formale
- Sprache und um den Zusammenhang zwischen Sprache und Automat auszudrücken gibt es die Schreibweise g l von Automat den Automaten bezeichne
- ich als M1 wir kommen gleich drauf zurück was in dieser formalen Beschreibung alles mit drin sein muss und die Sprache die der Automat erkennt
- die language l für language des automatens ist nichts anderes als eine Menge a eine Sammlung von Wörtern diese Menge kann unendlich oder endlich groß
- sein ist aber in jedem Fall eine Teilmenge des Alphabets σ stn wir haben also hier unser Alphabet Sigma unser unsere Menge σ stn die Menge aller
- Wörter über dem Alphabet sigσma ein Teil der Menge l von M ist die Sprache die vom Automaten erkannt wird und hier sind alle anderen Wörter oder a quer je
- nachdem wie Sie das Ganze bezeichnen wollen so in Kurzform sagt man dass die Maschine und das ist eine relativ offensichtliche Bezeichnung sagt man
- dass die Maschine M1 die Sprache a erkennt und in unserem Fall ist die Sprache menschlich betrachtet so
- festgelegt wir müssen jetzt zwischen zwei unterschiedlichen Konzepten unterscheiden wir müssen unterscheiden zwischen der Tatsache wenn ich ein Wort
- in die Maschine eingebe dann wird das Wort von der Maschine akzeptiert oder nicht die Maschine M1 die akzeptiert bestimmte Wörter wir wissen jetzt
- nachdem wir wissen wie die Sprache ausschaut dass z.B die Wörter 1 101 akzeptiert werden das endet auf eine 1 oder das Wort
- 100 das endet auf eine gerade Anzahl von Nullen oder 1 10 wird akzeptiert oder diese Wörter werden akzeptiert jedes dieser Wörter wird
- akzeptiert wenn man aber alle Wörter in Gesamtheit betrachtet die die Maschine akzeptiert dann spricht man von der Sprache und dann spricht man davon dass
- die Maschine M1 eine Sprache erkennt welche Sprache die Maschine M1 erkennt haben wir uns bereits überlegt in der theoretischen Informatik
- muss man sich immer die Sonderfälle die Grenzfälle besonders betrachten weil hier oft das interessante passiert eine Maschine wird im allgemeinen mehrere
- Wörter akzeptieren man ich kann natürlich apatologische Maschine bauen die nur ein einziges Wort akzeptiert oder die gar
- kein Wort akzeptiert im Allgemeinen wird eine Maschine aber mehrere Wörter akzeptieren sie erkennt aber immer nur eine einzige Sprache ja die Sprache ist
- per Definition die Menge aller Wörter die die Maschine akzeptiert das ist Terminologie da steckt nichts größeres dahinter machen sie sich aber bitte mit
- dieser Terminologie trotzdem vertraut was dann erfahrungsgemäß in den Übungen sehr oft dazu kommt dass sie das durcheinander bringen ist jetzt was wird
- akzeptiert was ist nicht akzeptiert was ist eine Sprache was ist ein Wort das ist ein Alphabet was ist das Universum über dem alphab geht und so weiter und
- Sie sollten sich mit diesen sprachlichen Dingen auch wenn da nichts groß dahinter steckt sollten Sie trotzdem sehr wohl vertraut sein weil man halt irgendwie
- ein Fachvokabular braucht um sich gemeinsam über Tatbestände zu unterhalten und um gemeinsam dann dran zu arbeiten dass man diese Bestände in
- konkrete Mathematik in saubere Definitionen in Maschinen verstehbare Definitionen bringt so jetzt ist ihnen allen klar wie
- so ein Automat funktioniert sie können den anwenden es ist denke ich auch eben klar dass man diese Modelle sehr leicht mechanisch
- umsetzen könnte gehen wir also zum nächsten Schritt über und überlegen uns was ist die oder wie kann ich einen Automaten jetzt mathematisch beschreiben
- dass ich die Beschreibung wirklich auf die ganz elementaren Konstituenten reduziere und dass ich so viel von der Mathematik übernehme wie möglich weil
- wir dann natürlich auf den gesammelten Erfahrungs und den gesammelten theoremschatz der Mathematik zurückgreifen können um mit den
- Automaten zu arbeiten ein deterministischche endlicher Automat besteht aus im Wesentlichen fünf Komponenten bevor ich auf die
- Komponenten eingehe zunächst zwei Bemerkungen so deterministisch und zu endlich der Automat man bezeichnet den Automaten als ich nicht deswegen weil er
- nur endliche Wörter erkennt er erkennt zwar in der Tat nur endliche Wörter aber die können beliebig lang sein also die können ein Millionen Zeichen 3 Millionen
- Zeichen 17 Millionen Zeichen langsin es gibt da keine Obergrenze dass man sagt der Automat kann nur Wörter bis zu der Länge und weiter nicht
- erkennen sondern der heißt endlicher Automat weil er mit einer endlichen Menge von Zuständen auskommt und eine endliche Menge von Zuständen ist
- natürlich ein notwendiges Kriterium wenn Sie den Automaten der in der Praxis sinnvoll ist angeben möchten weil eine unendliche Menge von Zuständen können
- sie nicht repräsentieren können sie nicht in den Speicher schreiben die muss endlich sein und das endlich bezieht sich genau auf die Tatsache dass es hier
- nur endlich viele Zustände gibt die Komponente deterministisch bezieht sich auf die Tatsache dass in jedem Rechenschritt des automatens genau
- festgelegt ist was zu tun ist der Automat kann also keine Wahl treffen der kann sie nie entscheiden zwischen mehreren Möglichkeiten sondern der hat
- immer nur genau eine Möglichkeit um voranzuschreiten und das ist dadurch gegeben dass aus jedem Knoten genau eine einzige Kante rausgeht für jeden
- Buchstaben also es geht genau eine Kante für null raus und es geht genau eine Kante für eins raus das trifft hier auf jede Kante zu wenn sie da Kanten
- weglassen dürften wenn also hier z.B keine Kante für null rausgehen würde ja dann wüsste der Automat nicht was er machen soll wenn er eine Null ist das
- möchte man nicht haben wenn hier mehrere Kanten für null rausgehen könnten wenn hier also z.B noch eine zweite Kante für null rausgehen könnte von Q1 nach Q3
- dann müsste sich der Automat auf irgendeine Art und Weise entscheiden geht er jetzt diese Kante entlang oder geht er diese Kante entlang und solche
- Entscheidungen möchte man ebenfalls vermeiden der Automat soll immer eindeutig wissen was er zu tun hat deswegen die Einschränkung auch für
- jeden Zustand muss für genau jeden Buchstab haben genau eine Kante rausgehen und wir lassen entsprechend solche Kanten wie die eben
- eingezeichnete Weg ähm die fünf Komponenten die einen Automaten ausmachen habe ich Ihnen hier
- zunächst in menschenverständlicher Textform zusammengefasst der endlicher Automat besteht aus folgenden fünf Komponenten und mehr die Komponenten
- sind eigentlich relativ offensichtlich sie brauchen zunächst die Zustände in denen sich der Automat befinden kann ja wenn sie keine Zustände haben dann haben
- sie keinen Automaten sie müssen also irgendwie aufschreiben es gibt in dem Fall z.B die drei Zustände Q1 Q2 Q3 dann brauchen Sie ein Alphabet aus dem die
- Eingabe generiert wird das ist auch klar sie lassen nicht beliebige Zeichen zu sondern sie müssen sich festlegen auf dem Alphabet vorab weil sie überprüfen
- müssen dass es für genau jeden Buchstaben genau eine Kante gibt die aus jben Zustand rausgeht im Fall dieses automatens be des Alphabet das binäre
- Alphabet 01 dann brauchen Sie was ebenso offensichtliches eine Festlegung der Übergänge sie müssen irgendwie angeben
- wie die Kanten zwischen den einzelnen Knoten verlaufen also ich muss angeben es verläuft eine Kante von Q1 nach Q1 mit
- Beschriftung 0 es verläuft eine Kante von Q2 nach Q3 mit Beschriftung 0 es verläuft eine Kante von Q1 nach Q2 mit Beschriftung 1 wie man das dann genau
- macht das werden wir uns nch überlegen aber es muss offensichtlich eine Festlegung dieser Übergänge geben dann muss es einen ausgezeichneten Zustand
- geben ind dem der Automat startet das ist der Startzustand der durch diesen Pfeil hier gekennzeichnet wird das ist auch offensichtlich ich muss einen
- Zustand haben bei dem die Verarbeitung losgeht hier ist zu beachten es ist genau ein einziger stzustand also es darf nicht keinen stzustand geben es
- darf mehrere Zustände geben dann hätten wir wieder eine Auswahl das wollen wir vermeiden es muss genau einen einzigen statzustand geben und zu guter Letzt
- muss es Endzustände geben hier ist die Einschränkung auf genau einen allerdings nicht vorhanden es kann Automaten geben mit keinem akzeptierenden Endzustand der
- Automat wird halt dann kein Wort erkennen da gibt's aber legitime Anwendungen dafür er kann einen akzeptierenden Endzustand haben er kann
- mehrere akzeptieren die Endzustände haben im Extremfall hat der Automat genauso viel akzep die Endzustände wie Zustände hat da sind also sämtliche
- Varianten zwischendrin möglich so denk das macht oder das ist relativ offensichtlich aus vom gesunden Menschenverstand aus
- betrachtet dass ich diese fünf Dinge brauche um einen Automaten eindeutig festzulegen was wir allerdings wollen ist eine mathematische Beschreibung des
- ganzen Automaten und da überlegen wir uns jetzt noch wie die einzelnen Punkte mathematisch schon dargestellt werden können zunächst ähm sagen wir nimmer
- endlicher Automat besteht aus fünf Komponenten sondern ein endlicher Automat ist ein fünft Tupel also eine Zusammenfassung dieser fünf Dinge hier Q
- sig Delta q0 F und da sind wir jetzt auch schon bei den griechischen Buchstaben das groß Sigma kennen sie bereits was neu hinzukomt ist das klein
- Delta da komme ich gleich drauf was das genau bedeutet aber diese fünf Punkte hier fassen wir durch diese fünf Buchstaben zusammen also jedes Element
- steht für einen der Punkte so die Zustände in denen sich der Automat befinden kann fassen wir zusammen in einer Menge Q Q ist eine endliche
- zustandsmenge das kennen Sie auch bereits aus der Mathematik im Fall dieses automatens ist die Menge Q enthält alle Zustände die im Automaten
- drin sind das der Zustand Q1 das ist der Zustand Q2 und das ist der Zustand Q3 und die fasse ich in einer Menge Q
- zusammen das Alphabet aus dem die Eingabe generiert wird ist auch klar da schreibt man etwas mathematischer wir brauchen ein endliches Alphabet ma dass
- das Alphabet endlich sein muss ist wieder klar und Sigma ist einfach eine Konvention wie ich das bezeichne im Fall dieses
- automatens wenden wir das Alphabet sigσma dass die beiden Buchstaben 0 und 1 enthält ja andere Buchstaben dürfen
- nicht an den Kanten stehen dann brauchen wir eine Festlegung der Übergänge die wird jetzt durch Delta angegeben das ist jetzt schon etwas interessanter wie man
- das formalisiert im Endeffekt wissen sie aber aus dem nullten Übungsblatt dass ein Übergang eine Kante in dem Grafen festgelegt ist durch den Knoten von dem
- die Kante ausgeht und durch den Knoten auf den die Kante auftrifft also diese Kante hier ist beispielsweise dadurch festgelegt dass sie von Q1 losgeht in Q2
- endet und mit eins beschriftet ist so das heißt anders betrachtet aber die geht von irgendeinem Zustand aus der Menge Q
- los dann wird ein Zeichen aus der Menge gelesen das schreibt man mathematisch so Q Sigma wir kriegen als Eingabe einen Zustand unter Zeichen das wir lesen und
- dann müssen wir festlegen auf welchen Zustand trifft die Kante auf n der Zustand ist wieder aus der Menge Q das gibt uns also die Blaupause wie die
- übergangsfunktion die transitionsfunktion aufgebaut sein muss die bekommt als Eingabe einen Zustand und einen Buchstaben und liefert als
- Ausgabe einen Zustand so und die übergangsfunktion bezeichnen wir mit Delta und schreiben deswegen oder wir lesen diese Definition so die Funktion
- Delta hat die Signatur Q K Sigma geht über nach Q und das bedeutet die Funktion Delta kriegt das Eingabe in den Zustand und den Buchstaben und liefert
- als Ausgabe einen Zustand wie man dann die Funktion Delta konkret spezifiziert für Automaten seh wir gleich das wird natürlich für jeden Automaten
- unterschiedlich sein jeder Automat hat unterschiedliche Z Festlegungen der übergangsfunktion für alle Automaten ist aber gleich dass die
- übergangsfunktion diese Form haben muss so die letzten beiden Punkte wir brauchen einen ausgezeichneten Zustand indem der Automat startet na da
- schreiben wir in die Menge einfach zeichnen wir einen Zustand q0 als Startzustand aus der Zustand q0 muss natürlich aus der Menge Q sein in
- unserem Fall wä jetzt das hier der Startzustand Q1 also würd man dann für diesen spezifischen Automaten M1 an dieser Stelle im fün Tupel Q1
- reinschreiben und dann braucht man noch eine Festlegung welche Zustände akzeptieren die nendzustände sein sollen das bezeichnen wir als Menge F F für
- Final also Endzustand und das ist offensichtlich eine Teilmenge von Q hier ist zu beachten die Menge F kann leer sein ja
- nicht die leere Menge ist eine Teilmenge der zustandsmenge die Menge F wie sie an diesem Querstrich hier unten sehen kann auch gleich der Menge Q sein also es
- kann jeder Zustand ein akzeptierender nzustand sein oder irgendwas dazwischen so damit haben wir jetzt aber sind wir übergegangen von der reinen
- menschenverstehbaren Schreibweise zu einer formal sauberen Schreibweise zu einer mathematisch sauber definierten Schreibweise die nichts anderes sagt als
- die textuelle Beschreibung die ich Ihnen vorher präsentiert habe die jeder sofort verstanden hat nur halt jetzt mit etwas mathematischer
- Präzision nachdem nun mathematisch betrachtet klar ist was ein deterministischer endlicher Automat ist nämlich nichts anderes als dieses Tupel
- aus fünf Elementen Q ma Delta q0 und F lassen Sie uns die Definition mal konkret anwenden für diesen Automaten hier also lassen Sie uns diese Maschine
- in eine eindeutige mathematische Beschreibung überführen wir gehen oder wir benennen die Maschine M1 ja das ist eine Konvention die können
- Sie wiederum beliebig wählen wie Sie die Maschine nennen wollen wichtig ist dass die Maschine M1 ein fünftupel ist aus zustandsmenge
- Q alpab Sigma wir werden diese Größen gleich noch mal sauber definieren der übergangsfunktion Delta einem stzustand und da müssen sie jetzt
- aufpassen der statzustand ist der Zustand Q1 also tragen wir als Startzustand in das fünftupel den Zustand Q1 ein und eine Menge F eine
- ebenfalls noch weiter zu definierende Menge F aus akzeptierenden nzuständen passen Sie auf bei ein Tupel das durch runde Klammern gekennzeichnet ist spielt
- die Reihenfolge im Gegensatz zu einer Menge die ja bekanntlich durch geschweifte Klammern gekennzeichnet ist eine Rolle es macht also einen
- Unterschied ob sie hier schreiben qσma Delta q1f oder Delta sig q1f m ja was auch immer nur übrig bleibt also achten Sie drauf dass bei diesem
- fünftupel die an die Anordnung der Elemente immer gleich ist sie kennen dieses Problem dass Elemente gleich angeordnet sein müssen bereits aus
- programmiert Sprachen wenn sie in der Programmiersprache eine Funktion aufrufen z.B eine Funktion
- ad die einen Namen und ein alter in eine Datenbank schreiben soll dann hätte diese Funktion beispielsweise in pseudo Programmiersprache den Prototyp add von
- String Name Komma in AG das wäre ein möglicher wenn Sie die Funktion add aufrufen mit
- herbert27 dann wird der Compiler diesen Aufruf akzeptieren wenn sie jetzt hingegen die Argumente vertauschen wenn sie schreiben add von 27 komm
- Franz dann wird der Compiler natürlich eine Fehlermeldung werfen wird sagen die Argumente passen nicht zur Funktion sie haben zwar die richtigen Argumente
- angegeben aber in der falschen Reihenfolge das sind Programmiersprachen sensibel drauf und genauso müssen Sie hier drauf achten hier haben Sie zwar
- keinen Compiler der überprüft ob ihre Spezifikation richtig war aber sie haben mich als Compiler Ersatz der ihre Klausur korrigieren muss und
- der dann feststellen wird ist die ist die Reihenfolge der Argumente richtig oder nicht das macht auch Sinn die Argumente richtig angeben zu müssen wenn
- sie hier beispielsweise Q und Sigma vertauschen werden plötzlich sie vertauschen zwei endliche Alphabete aber dann werden plötzlich die Buchstaben die
- Zustände und die Zustände die Buchstaben und das ergibt dann offensichtlich unsinnige Definitionen also achten Sie drauf dieses Tupel richtig rum anzugeben
- okay wir haben jetzt die den Rahmen gelegt für die Definition des automatens und müssen nun noch die Details ausfüllen wir müssen zunächst festlegen
- wie die Menge Q genau zusammengesetzt ist offensichtlich befinden sich in der Menge Q die drei Zustände Q1 Q2 und Q3 das Endliche Alphabet Sigma setzt
- sich zusammen aus den Buchstaben 0 und 1 für den Startzustand Q1 muss nichts weiter spezifiziert werden der ist bereits durch die Position im fünftupel
- eindeutig festgelegt und die Menge F der akzeptierenden nendzustände setzt sich zusammen aus einem einzigen Zustand nämlich Q2 achten Sie hier ebenfalls
- drauf bei der Menge der Endzustände die mengenschreibweise zu verwenden auch wenn sich nur ein einziger auch wenn nur
- ein einziger Zustand als akzeptierender nzustand ausgezeichnet ist sie müssen hier wieder als Typ eine Menge angeben und nicht nur einen einzigen
- Zustand bleibt also noch die übergangsfunktion Delta zu definieren und für die übergangsfunktion Delta gibt's im Wesentlichen zwei
- Möglichkeiten zum einen können Sie zur Definition von Delta eine Tabelle verwenden wie sie bereits aus dem Beispiel des
- türsteuerungsautomatens bekannt ist in der wir sämtliche Zustände Eintragen von oben nach unten und in der wir sämtliche Buchstaben des Alphabets
- von links nach rechts eintragen wir haben die Buchstaben 0 und 1 die sich im Alphabet befinden und wir haben die Zustände Q1 Q2 und Q3
- die sich in der zustandsmenge befinden damit bekommen wir 2 x 3 ist 6 Möglichkeiten um Übergänge zu machen wenn Sie die Anzahl der Kanten
- nachzählen sehen Sie natürlich wir haben 1 2 3 4 56 Kanten diese Kante hier unten oder diese Schreibweise hier unten repräsentiert zweik Kanten und müssen
- nun in die Tabelle einfüllen welche Übergänge im Automaten vorhanden sind wenn wir uns im Zustand Q1 befinden und den Buchstaben 0 lesen sehen wir aus der
- grafischen Darstellung bleiben wir im Zustand Q1 tragen also an dieser Stelle in der Tabelle Q1 ein wenn sich der Automat im Zustand Q1 befindet und eine
- 1 liest dann ist dieses tabellenelement hierfür relevant Zustand Q1 führt nach Lesen einer 1 in den Zustand Q2 also muss hier Q2 eingetragen werden die
- gleiche Vorgehensweise wenden wir nun an für diese vier verbleibenden Felder im Zustand Q2 gelangen wir durch Lesen einer Null in den Zustand Q3 tragen also
- hier Q3 ein wir lesen wir sind in Q2 Lesen eine 0 und gehen über nach Q3 wenn wir in Q2 sind und eine 1 lesen sehen wir anhand dieser Kante dass wir im
- Zustand Q2 bleiben also muss hier Q2 eingetragen werden die letzte Spalte wird analog ausgefüllt sie sehen wenn wir uns im
- Zustand Q3 befinden dann ist es egal ob wir eine 0 oder eine 1 lesen wir gehen in beiden Fällen in den Zustand Q2 über müssen also sowohl hier als auch hier
- wir befinden uns in Q3 Lesen eine 0 oder wir befinden uns in Q3 und lesen 1 müssen wir in beiden Fällen den Zustand Q2 als Zielzustand eintragen und damit
- haben wir eine vollständige Charakterisierung der übergangsfunktion erreicht wir haben für jeden Zustand und für jeden Buchstaben genau einen
- einzigen Zielzustand angegeben in den sich der Automat bewegt wenn ausgehend von diesem Zustand dieser Buchstabe gelesen wurde und damit ist die formale
- Definition des Automaten beendet wenn ich also in der Klasur oder in der Übungsaufgabe Ihnen einen Automaten zur verfügungstelle in Form eines Grafen und
- dann Frage geben Sie bitte eine vollständige formale Charakterisierung eines automatens an dann schreiben Sie bitte all diese Elemente hin sie
- schreiben hin der Automat ist ein fünftupel aus Zuständen Alphabet übergangsfunktion statzustand und nendzuständen die Zustände sind so
- definiert die das Alphabet ist so definiert die Endzustände sind so definiert und die übergangsfunktion ist auf diese Art und Weise angegeben komm
- gleich noch auf eine Alternative Definition für die übergangsfunktion sie könnten jetzt anstatt das fün Tupel erst mit den
- allgemeinen Buchstaben hinzuschreiben und dann zu definieren was die Buchstaben Q Sigma und F bedeuten könnten Sie alternativ auch schreiben
- lassen Sie mich etwas mehr Platz machen der Automat M1 ist ein fünftupel aus der zustandsmenge Q1 Q 2
- Q3 aus dem Alphabet 01 aus der noch zu über definierend übergangsfunktion Delta aus dem Startzustand Q1 und aus der Menge
- Q2 der akzeptierend Endzustände sie sehen wir haben hier genauso ein fünftupel nur dass ich jetzt unmittelbar die Definition der Mengen in das
- fünftupel eingetragen habe und das ist ebenfalls wieder ein Hinweis darauf warum es wichtig ist die reih Folge korrekt
- beizubehalten bei der Definition des fünftupels sie können ja die Zustände irgendwie benennen sie könnten die Zustände also auch ABC benennen und dann
- ist es natürlich nur aus der Reihenfolge ersichtlich dass ABC die Zustände und 01 das Alphabet darstellen es könnte ja genauso sein dass sie die Zustände 01
- nennen und das Alphabet ABC um zwischen diesen beiden Möglichkeiten eindeutig unterscheiden zu können ist die reihenf in der Definition
- des Tupels von Interesse bei der Spezifikation der übergangsfunktion können Sie neben der
- Darstellung als Tabelle noch auf eine weitere Variante zurückgreifen die die Signatur der übergangsfunktion
- also diese Festlegung hier ebenfalls etwas klarer erscheinen lässt die Signatur bedeutet also wenn wenn Sie die Signatur auf die Tabelle wenden dann
- sehen Sie die Eingaben spezifizieren die tabellenachsen die Hochachse machen die Zustände aus die rechtsachse machen die Buchstaben aus des Alphabets und die
- Inhalte der Tabelle sind wiederum zuständig sie können die Signatur der übergangsfunktion aber auch als Prototyp als definitionsmuster für eine Funktion
- lesen nämlich für eine Funktion Delta die zwei Argumente nimmt Zustand und Buchstabe und einen Zustand als Resultat liefert und mit Hilfe dieser
- funktionalen Schreibweise ist es genauso möglich die übergangsfunktion eindeutig festzulegen beispielsweise im Fall des ersten Übergangs Q1 unterlesen einer ull
- wenn sich der Automat im Zustand Q1 befindet und die Ziffer ull liest das eingabesymbol Null liest sollle in den
- Zustand Q1 übergehen und das ist eindeutig durch diese Zeile festgelegt Delta von q0 von q1,0 ergibt Q1 als Resultat also eine Funktion mit zwei
- eingabeparametern die einen Ausgabeparameter liefert wenn sich der Automat im Zustand Q1 befindet und eine 1 als Eingabe erhält dann wissen Sie er
- geht über in den Zustand Q2 also gilt Delta von q1,1 ist Q2 und entsprechend können Sie die Definition jetzt weiterführen del
- von q2,0 ist Q3 Delta von q2,1 ist Q2 und die letzten beiden
- Definitionen Delta von q3,0 ist Q2 und Delta von q3,1 ist Q2 sie sehen die Arbeit der Arbeitsaufwand ist bei dieser Form der
- Beschreibung natürlich etwas höher aber am Ende des Tages ist es vollkommen gleichgültig welche Beschreibungsweise sie verwenden solange beide eindeutig
- definieren welche Übergänge im Automaten vorhanden sind sie können sich hier auch wenn der Automat eine gewisse Struktur besitzt bei der
- sich Dinge wiederholen gibt's bei dieser Schreibweise hier die ich eben gezeigt habe Möglichkeiten Sachen zu vereinfachen mit Hilfe mathematischer
- quantterchreibweise sie sehen wir haben hier im Endeffekt zweimal den gleichen Übergang vom Zustand Q3 aus auf den Zustand Q2 unabhängig davon ob in 0 oder
- eine 1 gelesen wird diese beiden Übergänge könnten sie jetzt etwas kürzer zusammengefasst schreiben indem sie sagen Delta von
- ausgehend vom Zustand Q3 unterlesen eines Zeichens x gehen wir über in den Zustand Q2 und das soll gelten für alle x
- aus dem Alphabet sig was wir also hier stehen haben ist letztlich nichts anderes wieder als eine
- einfache Form einer programmiersprachlichen Beschreibung wir sagen bitte über iteriere über
- alle für den allquantter fehlt noch ein Querstrich bitte iteriere über alle Zeichen x aus dem Alphabet Sigma also macht das für eine 0 und macht das für
- eine 1 und ere dann den Übergang Delta von Q3 X ist Q2 wir machen das einmal für 0 Delta von q3,0 ist Q2 dieser Übergang hier und wir machen das einmal
- für x = 1 Delta von q3,1 ist Q2 also dieser Übergang hier sie sehen wenn es im Automaten Regelmäßigkeiten gibt oder wenn Sie allgemeine Automaten definieren
- sollen dann empfiehlt sich diese explizite funktionsschreibweise weil es Möglichkeiten zur Abkürzung gibt bei der Tabelle
- haben Sie die Möglichkeiten zur Abkürzung nicht dann müssen sie jeden Eintrag ausfüllen wenn es ihnen hingen drum geht sicher zustellen dass sie bei
- dem Automaten keinen Übergang vergessen dass sie keine Kombination aus eingangszustand und Buchstabe vergessen zu berücksichtigen dann bietet sich die
- tabellenschreibweise an weil sie hier sofort sehen ist ein Feld noch unbefüllt muss also befüllt werden oder sind alle Felder mit genau einem einzigen Eintrag
- befüllt lassen Sie uns um die formale Definition von Automaten noch etwas weiter zu üben
- ein zusätzliches Beispiel betrachten natürlich gibt's im Jahr 2016 keine Tafel mehr sondern nur noch die elektronische Aufzeichnung also ma ich
- eine neue Folie auf und gebe Ihnen einen neuen Automaten vor hier erfinde ich wieder einen Automaten der besteht aus zwei Zuständen dem z q0 und dem Zustand
- Q1 der Zustand q0 soll der Startzustand sein der Zustand Q1 ist ein akzeptierender Endzustand und ich definiere jetzt folgende
- Zustandsübergänge folgende Transitionen mit einer 0 von q0 nach q0 mit einer 1 von q0 nach Q1 mit einer 1 von Q1 nach Q1 und mit ein 0 von Q1 nach q0 sie
- sehen der Automat erfüllt offensichtlich die Anforderungen an einen deterministischen endlichen Automaten es geht von jedem Zustand für jeden
- Buchstaben eine Kante aus überprüfen Sie das aber immer auch in der Klausur wenn Sie den Automaten in deterministischen endlichen Automaten
- angegeben haben überprüfen Sie immer kurz für jeden Zustand geht da wirklich genau eine Kante für jeden Buchstaben aus hier ist es der Fall in der kannst
- dann aber durchaus im Eifer des Gefechts mal dazu kommen dass sie Kanten vergessen und das können sie dann mit einem leichten crosscheck überprüfen ich
- nenne diesen Automaten jetzt liebevoll m2 weil M1 ist ja schon bereits vergeben aber das ist natürlich eine beliebige Bezeichnung wie sie das Ding nennen ist
- vollkommen Ihnen überlassen lassen Sie uns an die formale Definition des Automaten schreiten der Automat m2 ist ich wieder ein fupel
- bestehend aus einer zustandsmenge Q aus einem endlichen Alphabet Sigma aus einer übergangsfunktion Delta aus einem statzustand der statzustand ist in
- diesem Fall der Zustand q0 also trage ich den Zustand q0 ins fünftupel ein und wir haben eine Menge F der akzeptierend nendzustände die Menge Q ist gegeben als
- Menge von zwei Elementen q0 und Q1 sigσma ist wieder das Alphabet das binäre Alphabet aus 0 und 1 im Allgemeinen wird das auch das Alphabet
- sein dass ich in 95% aller Beispiele in dieser Vorlesung verwende schlicht und einfach wei das standardalphabet der Informatik ist und die Menge F der
- akzeptierenden nzustände ist wiederum eine einelementige Menge aus bestehend aus dem Zustand Q1 ich spezifiziere die
- übergangsfunktion Delta wiederum in Form einer Tabelle die zuständig Q trage ich von oben nach unten auf die Buchstaben σma trage ich von links nach rechts auf
- wir haben die beiden Buchstaben 0 und 1 und wir haben die beiden Zustände q0 und Q1 so und dann geht's wieder drum die Tabelle schrittweise einzufüllen vom
- Zustand q0 ausgehend gehen wir unterlesen das Buchstabens 0 oder der Ziffer n0 Buchstabe ist die allgemeinere Bezeichnung natürlich Hand dabei
- technisch gesehen um eine Ziffer aber ein Element eines Alphabets ist immer ein Buchstaben das bezieht sich nicht auf lateinische Buchstaben sondern auf
- irgendwelche Elemente des Alphabets von q0 ausgehend gehen wir unterlesen des Buchstabens 0 in den Zustand q0 und unter Lesen des Buchstabens 1 gehen wir
- in den Zustand Q1 und von Q1 ausgehend gehen wir wenn eine 0 gelesen wird in den Zustand q0 und unterlesen einer 1 in den Zustand Q1 sie sehen
- wiederum diese Festlegung hier repräsentiert exakt die gleiche Information die in der grafischen
- Darstellung in der Darstellung als gerichteter Graf festgehalten ist nur dass diese Form der Darstellung besser für menschliche Beobachter besser
- für intuitive Aussagen über den Automaten geeignet ist wohingegen sie diese Darstellung ohne Probleme in ein mechanisches Modell übergeben
- könnten in ein Computerprogramm übergeben könnten und so weiter dass dann die Aktionen des automatens
- ausführt nachdem nun klar ist wie gegebene Automaten formal beschrieben werden möchte ich auf das eigentlich auf das praktisch relevantere Problem
- übergehen sie werden in der Praxis sehr selten mit dem Problem konfrontiert seind dass ein Automat gegeben ist und sie sollen rekonstruieren welche Frage
- dieser welche Sprache dieser Automat erkennt sondern die praktischere Fragestellung ist sie haben irgendeine Vorstellung wie eine Sprache aussehen
- soll und sollen jetzt einen endlichen Automaten konstruieren der genau diese Sprache erkennt momentan steht uns zur Beschreibung der Sprache nur die
- semiformale Beschreibungsweise in dieser Form zu zur Verfügung wir definieren uns also eine Sprache die wir
- mit demem endlichen Automaten erkennen möchten in diesem Fall ist es die Sprache l die aus allen Wörtern besteht mit der Eigenschaft dass ein Wort mit
- eins beginnen soll und mit 0 enden soll also z. das Wort 10 wäre Mitglied der Sprache oder das Wort 10 10 wäre Mitglied der Sprache oder das Wort
- 11 wäre Mitglied der Sprache kein Mitglied der Sprache wärden hingegen die Wörter z.B 01 oder das Wort 111 oder das Wort
- 00 1 1 all diese Wörter sind kein Element der Sprache die roten Wörter die blauen Wörter sind elementer Sprache es ist offensichtlich wenn ich jetzt
- jemanden von ihnen als studentische Hilfskraft anstelle dann kann der oder diejenige sofort zwischen Mitgliedern der Sprache und nichtmgliedern der
- Sprache unterscheiden sie können also so fort das wortproblem lösen die Wörter über dem Universum 01 hoch Stern beliebiger binäre Wörter in
- zwei Klassen zu unterteilen Wörter die in der Sprache l enthalten sind und Wörter die in der Sprache l nicht enthalten sind die also in der
- komplementärsprache L quer enthalten sind aber das ist ja nicht der Sinn der Übung dass man einen menschlichen Bearbeiter das Problem lösen lässt der
- kann es natürlich sondern wir wollen eine mechanisierte Maschine das Problem lösen lassen wir möchten also oder wir müssen einen deterministischen endlichen
- Automaten konstruieren der das wortproblem für die Sprache l löst jetzt ist es natürlich a priori erstmal nicht klar ob ein endlicher Automat
- leistungsfähig genug ist um eine bestimmte Sprache erkennen zu können in diesem Fall habe ich die Sprache natürlich so gewählt dass sie den
- Automaten konstruieren können und im Allgemeinen dürfen sie auch davon ausgehen wenn ich Ihnen eine Sprache zur Verfügung stelle und dann drum bitte
- einen Automaten für die Sprache zu konstruieren dass diese Sprache im Bereich des Möglichen für endliche Automaten liegt wir werden uns aber wie
- bereits angesprochen im hinteren Teil der Vorlesung im zweiten Teil der Vorlesung noch genauer damit beschäftigen müssen um Kriterien zu
- finden die gegeben eine Sprache die dann natürlich notwendigerweise selbst etwas formaler beschrieben sein muss um geben so eine formal beschriebene Sprache
- erkennen zu können Aussagen zu können ja ein endlicher Automat ist in der Lage diese Sprache zu akzeptieren oder nein die Sprache ist zu komplex um von einem
- endlichen Automaten entschieden zu werden lassen Sie uns aber jetzt zunächst eine einen endlichen Automaten konstruieren für diese Sprache dafür
- gibt's keinen formalen Prozess oder keine Schritt für Schritt Vorgehensweise wir fangen ja bei informellen Beschreibung an wir können aus dieser
- informellen Beschreibung keinen formalen Algorithmus konstruieren um einen endlichen Automaten zu erzeugen für die Sprache sondern wir müssen uns wieder
- auf die ja Eigenkreativität stützen um einen Automaten zu erzeugen der die Sprache erkennt der Prozess muss
- allerdings natürlich nicht vollkommen zufällig sein und vollkommen tril und error Prozess sondern man kann systematisch dabei vorgehen solche
- Sprachen zu konst und das werde ich Ihnen anhand dieser Sprache jetzt mal kurz vorführen anhand eines Beispiels wir betrachten die Sprache
- l die aus allen Wörtern über dem Universum 01 h Stern besteht mit der Eigenschaft dass der erste Buchstabe der Sprache 1 und der let erste Buchstabe
- des Wortes 1 und der letzte Buchstabe des Wortes Null sein soll im ersten Schritt formuliere ich diese Bedingungen jetzt
- etwas mathematisch griffiger um auf den ersten und letzten Buchstaben eines Wortes zugreifen zu können verwende ich eine indexschreibweise W ist das Wort
- das ich betrachte und W Index 1 soll der erste Buchstabe des Wortes sein ja kann sich wieder vorstellen wenn man wie als Vektor aus Buchstaben betrachtet dann
- ist wie1 der erste Buchstabe des Wortes also W1 ist erster Buchstabe von W um den letzten Buchstaben von W zu
- kennen müssten wir wissen wie lang das Wort ist das wissen wir natürlich erstmal nicht weil das Wort kann ja beliebige Länge besitzen aber wir wissen
- dass das Wort W formal Betrag von W Buchstaben lang ist diese Schreibweise haben wir beim ersten Mal eingeführt wenn das Wort W Betrag von W
- z.B Buchstaben lang ist dann ist natürlich W Index 8 der let Buchstabe des Wortes we Z Buchstaben lang ist dann ergibt Betrag von W 10 also ist W Index
- 10 der letzte Buchstabe des Wortes und unabhängig davon wie lange das Wort W ist gibt W Index Betrag von W immer den letzten Buchstaben des Wortes an also W
- indexbetrag von W ist der letzte Buchstabe das Wortes W und mit diesen beiden formalen Schreibweisen kann ich
- jetzt die sprach etwas formeller definieren ich kann sagen das Wort aus dem Universum über 01 soll die Eigenschaft haben der erste Buchstabe
- wie1 ist eine 1 und das logische und sollten Sie auch bereits in der Mathematik kennengelernt haben und der letzte Buchstabe W
- indexbetrag von W ist 0 so damit habe ich jetzt schon mal eine etwas äh genauer definierte od eine etwas genauere Vorstellung darüber wie
- die Sprache aussehen soll die ich bei der Konstruktion eines automatens für die Sprache ausnutzen kann um den Automaten zu konstruieren
- der die Sprache erkennt nutzen wir jetzt systematisch die Bedingungen aus die beiden Bedingungen die logischen Bedingungen die hier angegeben sind
- zunächst gilt dass der erste Buchstabe eine ein sein muss das bedeutet im Umkehr wenn der erste Buchstabe eine Null ist
- dann können wir nicht mehr zu einem gültigen Wort gelangen also wenn wir ausgehen von einem
- stzustand den ich als q0 bezeichne wenn wir ausgehen von dem Startzustand q0 den Buchstaben 0 lesen dann wissen wir dann kann der Automat egal was später kommt
- welche Buchstaben im Anschluss kommen es kann nicht mehr ähm ein gültiges Wort konstruiert werden wir müssen natürlich in den Zustand übergehen aber wir wissen
- von diesem Zustand ausgehend kann man nicht mE einen akzeptierenden Endzustand gelangen deswegen bezeichne ich diesen Zustand als Qt für qtraap einen
- fangzustand einen nicht akzeptierenden fangzustand von dem aus beliebige Buchstaben gelesen werden können in unserem Fall 0 oder 1 eine gängige
- Bezeichnung wenn in einer Kante alle Buchstaben des Alphabets gelesen werden können ist es auch die Kante mit sigσma zu beschriften sie sehen hier wenn Sie
- den ersten Buchstaben ull gelesen haben dann ist es egal welche Buchstaben drauf Folgen der Automat wird jeden Buchstaben lesen bleibt aber immer in dem
- fangzustand qtraap behaftet und wird das Wort ablehnen völlig sinnvoll weil der erste Buchstabe ein sein muss und bereits diese Bedingung nicht erfüllt
- Word so also haben wir schon mal den ersten Automat Teil der die erste Bedingung ausnutzt wenn das erste Zeichen ein ist
- ich konstruere jetzt den Automaten Schritt für Schritt und setze dann die Automaten Bestandteile am Schluss zu einem vollständigen Automaten zusammen
- wenn wir beim Startzustand q0 starten und eine 1 lesen dann können wir weiterhin ein gültiges Wort
- konstruieren das Wort ist aber noch nicht ähm abgeschlossen gültig weil wir noch keine Null gelesen haben weil wir noch nicht die zweite Bedingung ähm
- erfüllt haben wir können aber auf jeden Fall bereits sicher bereits feststellen dass wir eine beliebige Anzahl weiterer Einsen lesen können nach der ersten 1
- das wird noch nicht zu einem vollständigen wortfen aber es wird diese Wörter akzeptieren wir erstmal ähm lesen Sie ein und bleiben im Zustand Q1
- behaftet so wenn wir jetzt ausgehen wenn wir uns im Zustand Q1 befinden haben wir schon festgestellt wir können beliebige
- Anzahlen von Einsen lesen was noch nicht zu dem akzeptierenden Wort führt aber sobald wir die erste Null lesen haben wir ein poteniell
- akzeptanzfähiges Wort erreicht da wir haben eins am Anfang und wir haben eine 0 gelesen gehen über inen neuen Zustand Q2 und diesen Zustand Q2 muss ich jetzt
- als akzeptierenden Endzustand gestalten weil wenn die Null der letzte Buchstabe sein sollte wir dann das Wort akzeptieren wir
- wissen bei der Konstruktion des Automaten nicht wann der letzte Buchstabe gelesen wird weil wir immer nur einen Buchstaben zur gleichen Zeit
- sehen aber wenn wir eine Null sehen dann ist das Wort potentiell akzeptierbar da wir im Zustand Q1 wissen die eins am Anfang wurde gelesen und im Zustand Q2
- wissen wir es wurde eine Null gelesen so wenn wir jetzt eine weitere Null lesen dann bleibt das Wort offensichtlich akzeptierbar ja wir haben
- die Null am Schluss wir haben noch mal die Null am Schluss noch mal die Null am Schluss das Wort bleibt akzeptierbar wenn wir hingegen aus dem Zustand Q2
- ausgehend eine 1 lesen dann war's das wieder mit der akzeptierbarkeit des Wortes weil dann eine ein am aktuellen Schluss des Wortes steht und wir
- entsprechend wieder zum Zustand Q1 zurückgehen müssen so damit haben wir jetzt aber sämtliche
- Fälle abgehandelt die im Automaten auftreten können wir haben beim Übergang von q0 nach qtap mit einer Null den Fall berücksichtigt dass eine Null sich am
- Anfang des Wortes befindet und es nicht mehr zu einem gültigen Wort kommen kann wenn wir ein Lesen von q0 ausgehend dann haben wir die Möglichkeit geschaffen
- beliebig viele einzen zu lesen was uns potenziell ein akzeptierbares Wort ergeben kann aber noch eine Null erfordert und wenn wir von Q1 ausgehend
- eine Null gelesen haben gehen wir in einen akzeptierenden Zustand über wir bleiben in diesem akzeptierenden Zustand solange Nullen kommen wenn die Null der
- letzte Buchstabe ist befindet sich da Automat im akzeptierenden Endzustand und das Wort wird akzeptiert wenn hingegen eine 1 Auftritt im Zustand Q2 dann wird
- das Wort nicht mehr akzeptierbar dann steht das aktuell letzter Buchstabe ein 1 am Ende des Wortes und wir gehen wieder in den Zustand Q1 zurück wenn
- dann wieder eine Null kommt als neuer letzter Buchstabe dann wird das Wort wieder akzeptabel lassen Sie mich diese
- automatenkponenten zusammenfassen in einen gesamtautomaten wir hatten begonnen beim Startzustand q0 hatten gesagt wenn
- eine 1 am Anfang nee wenn eine Null Entschuldigung wenn eine Null am Anfang gelesen wird dann ist das Wort nicht mehr in eine akzeptable Form zu bringen
- wir gehen also über in den Zustand qtrap der beliebige Zeichen des Alphabets liest aber den Automaten nie mehr in einen akzeptierenden Endzustand führt
- wenn wir eine ein lesen gehen wir über in den Zustand Q1 der beliebig viele einzen lesen kann potentiell ein akzeptables Wort noch
- noch empfangen kann aber eine Null braucht und wenn diese Null Auftritt gehen wir über in den akzeptierend nzustand Q2 gekennzeichnet
- durch eine doppelte außenumrandung der beliebige Nullen lesen darf im akzeptierenden Zustand bleibt und durch Lesen einer 1 wieder in
- den Zustand Q1 zurückgeworfen wird weil dann eine 1 am Ende des Wortes steht überprüfen wir kurz ob es ähm der Automat vollständig ist sie sehen hier
- für q0 gibt's genau einen Übergang für 0 und für 1 für qtap gibt's genau einen Übergang für 0 und 1 für Q1 existiert genau ein Übergang für 0 und 1 und für
- Q2 existiert genau ein Übergang für 0 und 1 also erfüllt der Automat die vollständigkeitskriterien
- ähm anhand der Überlegung die wir gemacht haben ist jetzt sollte auch klar sein dass der Automat die gewünschte Sprache akzeptiert überprüfen wir das
- kurz anhand zweier Wörter zum einen das Wort 01 0 0 bei diesem Wort wird der Automat
- folgende zustandssequenz durchlaufen wir starten im Zustand q0 lesen den Buchstaben 1 gehen über nach Q1 lesen den Buchstaben 0 gehen über nach Q2
- lesen die zwe ull und lesen die dritte ull bleiben also im Zustand Q2 verhaftet und akzeptieren das Wort die zustandsequenz diesem Fall ist Q1 dann
- q0 dann Q1 dann Q2 dann Q2 und nochmals Q2 also das Wort wird akzeptiert weil sich da Automat nach lesen des letzten Buchstab
- in einem akzeptierten Endzustand befindet wenn wir hingegen das Wort 0 100 betrachten dann sehen wir der Automat
- startet wieder bei q0 liest den ersten Buchstaben 0 liest die folgende 1 liest die folgende ull und landet im Zustand Q trap erführt den Zustand die
- Zustandsübergänge von q0 nach Q trap nach Q trap aus nee noch mal nach qtraap wir lesen bei diesem Übergang die
- erste Null wir lesen bei diesem Übergang die mittlere 1 wir lesen bei diesem Übergang die letzte Null befinden uns aber nach dem Lesen des Wortes im
- Zustand qtraap qtraap ist ein nicht akzeptierende nzustand oder kein akzeptierender nzustand und entsprechend wird das Wort abgelehnt also wenn
- sich hierbei um den Automaten M3 handelt dann gilt formal betrachtet das Wort 0 100 ist kein Element der Sprache des automatens M3 so
- wie das der Fall sein soll und das Wort 100 ist ein Element der Sprache des automatens M3 also der Automat akzeptiert
- tatsächlich genau die Wörter die wir akzeptieren möchten und kennt deshalb die gewünschte Sprache lassen Sie mich ein weiteres
- Beispiel betrachten bei dem ich die Sprache für die ich einen endlichen Automaten konstruieren möchte Wied das semiformal angegeben habe wir betrachten
- jetzt eine neue Sprache l die sich zusammensetzt aus allen Wörtern der Form ab hoch n mit der Eigenschaft dass N eine natürliche Zahl sein soll also n
- echt größer als 0 sein s zur Erinnerung ich definiere in dieser Vorlesung die natürlichen Zahlen ohne die Zahl 0 also 1 2 3 4 bis beliebig groß was sie
- möglicherweise etwas überrascht ist diese Schreibweise hier ab hoch n sie sind aus der Arithmetik gewohnt wenn A und B natürliche Zahlen wären oder
- irgendwelche Zahlen weren a b angenommen A und B sind reelle Zahlen dann würde gelten ab hoch n ist a hoch n mal B hoch n
- technisch gesehen nutze ich h n aus dass A und B miteinander komutieren das also a mal b = b mal a ist das seid aber mal als Detail dahingestellt diese diesen
- Zusammenhang kennen sie aus der Schulmathematik und der ist auch für Zahlen vollkommen korrekt allerdings spreche ich im Fall dieses
- automaens nicht von Zahlen sondern ich spreche von den Buchstaben a und b ich betrachte also ein Sprache über dem Alphabet
- a b und wenn ich von Buchstaben und nicht von Zahlen spreche dann erinnern Sie sich an die definitionsfolie aus der
- ersten Vorlesung bei der ich ihnen eingeschafft habe bitte prägen Sie sich diese Definitionen ein dann wissen sie das exponentition also hoch N stellen
- nicht numerische exponentiation bedeutet sondern n nfe konkattination also nfaches hintereinander schreiben sie erinnern sich an die Schreibweise σ hoch
- n das bedeutet die n Buchstaben aus dem Alphabet Sigma also nichts anderes als Sigma und so weiter bis ma und das ganze n mal
- entsprechend kann man das auf ab hoch n anwenden bei ab hoch 1 muss ich ab einmal hintereinander wiederholen das
- entspricht also ab bei ab hoch 2 muss ich die Zeichenkette ab zal wiederholen das entspricht also
- ab ab der Zeichenkette ab ab und dann geht's und so weiter und sofort weiter ab hoch 3 ist eine dreifache Wiederholung bedeutet also ab ab ab und
- sprich die Zeichenketten die wir erkennen wollen sind immer in der Form ab ab ab ab ab ab ab ab und so weiter beliebiger
- Länge machen wir uns also dran einen Automaten einen dea m zu konstruieren der diese Sprache hier erkennt die konkattination von
- Abis und gemäß unserer bisherigen nomenklaturischen Definition soll also gelten die Sprache des geschwungene l für language des deterministischen
- endlichen Automaten m ist die Menge aller Wörter l die wie hier gegeben definiert ist wir beginnen unsere Arbeit wieder
- bei einem Startzustand q0 wenn ich als ersten Buchstaben ein B lese dann ist klar da kann kein gültiges
- Wort mehr draus werden ja wenn am Anfang B steht dann kann keine zeichenk ab ab ab draus entstehen also wenn wir hier im ersten Schritt ein B lesen dann gelangen
- wir in den trap Zustand qtap der beliebige Buchstaben aus dem Alphabet Sigma also a und b ist akzeptiert der aber nie mehr
- aus dem nicht akzeptierenden nzustand rausführt wenn wir von q0 ausgehen den gegen ein a lesen dann kann sein dass wir ein vollständiges Wort
- erzeugen gehen in den Zustand Q1 über der Zustand Q1 ist noch kein akzeptierend nzustand weil uns fehlt ein B am Schluss wir haben das a am Anfang
- uns fehlt ein B am Schluss aber wenn wir von diesem Zustand Q1 ausgehen jetzt ein B lesen kommen wir in den neuen Zustand Q2 und in diesem Zustand Q2 sehen wir
- das erste akzeptable Wort nämlich ab machen also Q2 zu einem akzeptierenden nzustand wenn wir von Q1 ausgehend haben
- wir noch eine zweite Möglichkeit ausem B können wir ein a lesen wenn wir in Q1 ein a lesen haben wir die Zeichenkette AA sobald die Zeichenkette AA irgendwo
- im Wort Auftritt gibt's keine Möglichkeit mehr dass die Zeichenkette die Form ab ab ab besitzt also mssen wir auch hier ist Schicht im Schacht da kann
- es kein gültiges Wort mehr werden also gehen wir von Q1 in den trap Zustand über wenn ein a gelesen wird der wiederum sämtliche verbleibenden Zeichen
- liest aber immer nicht akzeptieren bleibt so damit haben wir den einfachsten Fall ab behandelt das kürzeste erkennbare
- Wort wird akzeptiert wir müssen uns jetzt noch drum sorgen dass auch ab ab ab ab ab und so weiter erkannt werden dass also wenn von diesem Zustand aus
- ein A und ein B gelesen wird diese Wörter erkannt werden so die Wörter können jetzt beliebig lang werden wir können also nicht eine nicht weitere
- Ketten anfügen hier noch ein a lesen in den Zustand Q3 dann ein B lesen in den Zustand Q4 der akzeptiert die Kette weiter verlängern und so weiter und so
- fort damit würden wir Probleme bekommen mit der Definition des endlichen automatens wir dürfen nur endlich viele Zustände verwenden um eine unendlich
- große Sprache zu erkennen ja diese Sprache hier ist unendlich groß nachdem es unendlich viele natürliche Zahlen gibt sind unendlich viele Wörter in der
- Sprache enthalten nichts desto weniger müssen wir mit endlich vielen Zuständen diese unendlich große Sprache erkennen und da sehen sie bereits dass endliche
- Automaten zwar sehr einfach sind aber trotzdem schon ein sehr interessantes berechnungskonzept weil sie mit endlich großem Aufwand unendlich große Mengen
- entscheiden können so ich lösche diese dieses Anhängsel weg da haben wir uns überlegt das kann nicht zum Erfolg
- führen wir müssen also mit endlich mit den vorhandenen oder mit endlich vielen Zuständen die weiteren Wörter erkennen und das ist aber möglich indem wir wenn
- wir von Q2 ausgehen und ein a Lesen wieder in den Zustand Q1 zurückgehen ja wir sind dann nicht mehr
- bei einem akzeptablen Wort beispielsweise können wir dann das Wort ab a betrachten wenn nach ab a die Eingabe aus wäre müsste das Wort
- abgelehnt werden weil nicht in der Form ab ab ab ist wenn wir hingegen ein weiteres B lesen also ab B ab kommen wir wieder in den
- akzeptierenden nzustand wir kennen also ab ab ab und wir erkennen genauso die dreifache hintereinander die dreifache Wiederholung ab ab ab und sie sehen
- diesen Kreis diesen Zyklus einen Kreis in dem Automaten bezeichnet man als Zyklus diesen Zyklus kann ich jetzt beliebig oft durchlaufen und kann damit
- immer längere Ketten von ABS erkennen dreifach vierfach fünfach sechsfach damit sind wir am Ende bei der Konstruktion des automatens angelangt
- wir werden wir erkennen alle Wörter die wir erkennen wollen und was genauso wichtig ist wir lehnen alle Wörter ab die wir ablehnen möchten lassen Sie mich
- kurz die Standard Prüfung durchführen ob unser Automat vollständig ist von q0 ausgehend haben wir genau einen Übergang für a genau einen Übergang für B vom
- trapzustand ausgehend gibt's genau einen Übergang für jeden Buchstaben von Q1 ausgehend gibt's einen Übergang für a und einen für B ah und ich sehe Automat
- ist noch nicht vollständig deswegen ist es so wichtig zu überprüfen ob die Automaten vollständig ist sind von Q2 ausgehend haben wir nur einen Übergang
- für a also habe ich vergessen den Fall zu betrachten was passiert wenn wir in Q2 ein B lesen na ja wir hätten dann ein Wort der Form ab B da kann natürlich
- kein gültiges Wort mehr draus werden also müssen wir noch eine Kante von Q2 nach kraap eintragen und sie sehen ich habe ihnen damit jetzt live demonstriert
- wie wichtig es ist diese vermeintlich lästige Überprüfung auf Vollständigkeit vorzunehmen weil selbst wenn man den Automaten Zeichn kann es immer noch
- passieren dass man einen Fall vergisst man ist bei dieser Sprache bei der gegebenen Sprache versucht den
- Automaten etwas anders zu konstruieren ich zeichne das hier mal mit Blau ein sie fangen bei einem Zustand q0 an der nicht nur der stzustand des automatens
- ist sondern auch gleichzeitig ein akzeptierender nendzustand legen dann den abzyklus so an beliebige Wiederholungen
- von ab zu einem akzeptierenden Endzustand führen und bringen entsprechend die trapzustände in den Automaten ein hier gelangen Sie den
- trapzustand wenn Sie ein B Lesen von hier aus gelangen Sie durch Lesen eines a in den trapzustand der Automat ist dann vollständig das wirkt auf den
- ersten Blick als etwas einfachere Lösung die mit weniger Zuständen auskommt als der ursprüngliche Automat allerdings ist das Problem dass dieser dieser Automat
- erkennt zwar alle Wörter der blaue Automat erkennt jedes Wort das der schwarze Automat erkennt aber er erkennt ein zusätzliches Wort der blaue Automat
- erkennt das Wort EPS das leere Wort wenn sie dem Automaten keine Eingabe geben beginnt der Automat im Zustand q0 liest kein keinen Buchstaben beendet seine
- Arbeit und akzeptiert die Eingabe akzeptiert also das leere Wort das leere Wort ist nichts anderes als heiß das Wort
- ab hoch 0 wenn ich ab n0 mal hintereinander schreibe erhalte ich das leere Wort also wäre wenn mich diesen Automaten als m Strich
- bezeichne wäre die Sprache die der blaue Automat m Strich erkennt die Sprache von M Strich wäre sehr ähnlich es wäre die Menge aller konkatinierten Fragmente ab
- mit der Eigenschaft n Element aus n0 also den natürlichen Zahlen einschließlich das Wortes das der Ziffer Null und hier liegt dann der Unterschied
- zwischen dem schwarzen und den blauen Automaten der blaue erkennt alles was der schwarze erkennt erkennt aber ein zusätzliches Wort dass der schwarze
- ablehnt fürs Erkennen einer Sprache sind aber nicht nur die Wörter relevant die der Automat erkennt sondern genauso auch die Wörter die der Automat
- ablgt wir haben mler eine sehr stringente eine sehr mathematische Charakterisierung unserer deterministischen endlichen Automaten
- erreicht wir können mit fünf verschiedenen Komponenten alles angeben was den Automaten ausmacht aus welchen Komponenten er sich zusammensetzt und
- wie diese zusammenspielen das wenn sie an einen mechanischen Vorgang denken definiert die Statik des ganzen Gebildes ja sie
- bauen ein Auto das Auto setzt sich zusammen aus einer gewissen Anzahl von Reifen aus ein L gerade aus einer Karosserie aus einer gewissen ansah von
- Scheiben sie können beispielsweise die Farbe der Karosserie variieren sie können die Größe der Reifen variieren sowas wde alles angegeben in unserem
- fünftupel wenn es sowas für ein Auto gäbe dieses fünftupel sagt aber nichts drüber aus wie das Auto fährt und entsprechend haben wir bei unseren
- endlichen Automaten jetzt genau definiert wie die Black Box aussieht der der Automat ist diese
- Blackbox ist unser fünftupel Q Sigma Delta q0 und F wir haben aber bislang nicht mathematisch sauber definiert was
- eigentlich passiert wenn ich ein Wort W in den Automaten eingebe und wieder Automat dann zu seiner Entscheidung ja Wort akzeptieren ja Wort in der Sprache
- oder Nein Wort ablehnen Wort nicht in der Sprache kommt ich habe Ihnen anschaulich erläutert wie das ganze funktioniert ich ich habe Ihnen ja
- vorgeführt ich fange bei dem und dem Zustand an ich fahre dann im Endeffekt mit dem Finger oder mit dem Stift oder mit geeigneten Mitteln meine Übergänge
- im Automaten nachstreiche die Z die Buchstaben ab die ich bereits gelesen habe und komme dann irgendwann auf einen akzeptierenden Endzustand oder nicht
- aber das wäre noch nicht ausreichend um eineer Maschine zu erklären wie ein Automat funktioniert wenn wenn Sie ein Programm schreiben wollten ein
- C-Programm oder Java prramm oder Pascal prramm das einen Automaten entsprechend simuliert dann müssten sie nicht nur die Definition des automatens die Zustände
- und so weiter an das Programm übergeben sondern sie müssten auch eindeutig festlegen wie der Automat auf neue Wörter reagiert
- wie Wörter durchlaufen werden und wie formal betrachtet die Entscheidung getroffen wird ob ein Wort akzeptiert wird oder
- nicht was wir festhalten können zunächst ist wenn Sie ein Wort in den Automaten eingeben ein Wort W das sich von mir aus den Buchstaben W1
- W2 und W3 zusammensetzt die Buchstaben W sollen natürlich oder müssen jeweils ein Element aus dem Alphabet des Automaten sein dann durchläuft der Automat eine
- Sequenz von Zuständen wir beginnen in einem stzustand im stzustand q0 lesen dann den Buchstaben W1 und
- gehen über in einen neuen Zustand Q wir lesen den Buchstaben W2 gehenüber in einen Zustand Q Schlange und lesen den Buchstaben Q3 und gehen über in einen
- Zustand Q Schlange Schlange also sie sehen wenn wir drei Buchstaben als Eingabe lesen dann durchlaufen wir eine Sequenz von vier Zuständen natürlich
- sind die Zustände q0 Q Schlange Q doppelschlange und q ohne Schlange Elemente aus der zustandsmenge Q das kann man etwas verallgemeinen wenn wir
- sagen wir lesen ein Wort W dessen Länge n Buchstaben beträgt also wenn das Wort W Struktur hat Buchstabe 1
- Buchstabe 2 und so weiter bis Buchstabe n dann durchlaufen wir eine Kette aus n + 1 Zuständen ja Wort hat drei Buchstaben wir durchlaufen vier Zustände
- Wort hat vier Buchstaben wir durchlaufen fünf Zustände W hat fünf Buchstaben wir durchlaufen sechs Zustände und so weiter wir wissen jetzt erstmal nicht welche
- Zustände wir durchlaufen das hängt natürlich vom Automaten ab aber wir wissen wir werden eine zustandssequenz und nachdem wir die genauen Zustände
- nicht kennen bezeichne ich die Zustände jetzt R0 R1 R2 und so weiter bis rn durchlaufen die Buchstaben wie i sind weiterhin alle Elemente des Alphabet
- sigσma und die zuständig R sind alle samt Elemente des der zustandsmenge Q so das können wir für jeden Automaten festhalten unabhängig von dessen
- Struktur unabhängig V eingegebenen Wort unabhängig davon ob das Wort akzeptiert wird oder nicht werden wir für jeden für jedes Wort aus n Buchstaben 1 bis n
- immer n + 1 zuständig Durchlaufen von R0 bis rn also ich halte fest Wort hat n
- buchstauen folgt draus der Automat durchläuft n + 1
- Zustände schauen wir also wie wir die eben gemachten Überlegungen nutzen können um den Rechenvorgang die Dynamik des automatens formal zu beschreiben die
- Statik ist die Zusammensetzung aus Zuständen aus Alphabeten und so weiter die immer gleich ist unabhängig von der Eingabe die Dynamik des Automaten ist
- die Reaktion des automatens auf ein gegebenes eingabewort welche zustandsketten werden durchlufen wird das Wort akzeptiert oder nicht wir
- fangen an die Eingangssituation formal zu beschreiben wir haben angenommen m ist ein deterministischer endlicher Automat also wir gehen davon aus dass
- wir irgendein 5 DUP m haben das einen deterministischen endlichen Automaten repräsentiert wir haben eine Eingabe W die sich wie besprochen aus n Buchstaben
- zusammensetzt und die Buchstaben sind natürlich aus dem Alphabet so und jetzt müssen wir uns ein Kriterium überlegen wann der Automat
- ein Wort akzeptiert und wann der Automat ein Wort nicht akzeptiert für dieses Kriterium dürfen wir lediglich die Elemente verwenden die in der statischen
- Definition im fünftupel der Definition des autom enthalten sind wir sagen m akzeptiert die Eingabe W zuerst mal vom gesunden Menschenverstand her wann
- akzeptiert der Automat die Eingabe wie wenn er plangemäß die ganzen Übergänge durchläuft wenn er vom statzustand ausgt
- die ganzen Übergänge durchläuft und wenn er zum Schluss in dem akzeptierenden Endzustand landet etwas formaler gesprochen akzeptiert Automat m die
- Eingabe W wenn es eine Sequenz aus Zuständen gibt R0 bis rn diese Sequenz fängt an bei Index 0 das Wort beginnt bei Index 1 also wir durchlaufen einen
- Zustand mehr als wir Buchstaben haben wie besprochen und diese zustandssequenz muss ein paar Bedingungen erfüllen damit
- das Wort akzeptiert wird das sind zwei Bedingungen oder die drei Bedingungen sind eigentlich relativ offensichtlich ja die erste Bedingung sagt der Automat
- beginnt im stzustand das ist ihnen klar da gibt's ja ein stzustand wenn sie aber ein Programm schreiben das so den Automaten simuliert dann müssen Sie dem
- Programm explizit sagen die Reise beginnt im stadzustand der Computer kann das nicht mit irgendeinem gesunden Menschenverstand
- ableiten der nächste Punkt besagt der Automat verhält sich in jedem Schritt gemäß der übergangsfunktion das klingt wieder relativ offensichtlich ist es
- aber nicht weil sie müssen das dem Programm explizit mitteilen das Programm weiß das wie um nicht vom gesunden Menschenverstand her und der dritte
- Punkt ist wieder genauso offensichtlich der sagt die Erkennung muss in einem Endzustand enden in dem akzeptierenden Endzustand enden wenn m die Eingabe
- akzeptieren soll so damit haben wir jetzt das was wir bis langang mit dem gesunden Menschenverstand betrachtet haben zumindest malim ersten Schritt auf
- drei wiederum relativ offensichtliche Kriterien runtergebrochen diese drei kriter kann man jetzt aber sehr leicht mathematisch
- präziser ausformulieren mit der ganzen Vorbereitung die ich hier gemacht habe und diese mathematische Ausformulierung dient dann dazu dass sie
- sehr leicht ein Programm schreiben können das so den Automaten die Dynamik von dem Automaten simuliert lassen Sie mich wieder da rein nach die drei
- informellen informell spezifizierten Bedingungen durch mathematisch präzise Bedingungen ersetzen zum einen derut beginnt im stzustand wie könnte ich das
- mathematisch präzise aufschreiben so der Automat beginnt im statzustand bedeutet dass der erste Zustand in dieser Kette R0 bis n der
- statzustand sein muss und das ist nicht anderes als R0 ist q0 ja erste Zustand ist der Startzustand soweit so einfach der Automat verhält sich in jedem
- Schritt gemäß der übergangsfunktion das ist ab wieder klar sie haben ein Zustand sie Buchstaben und kommen in einen neuen Zustand den die übergangsfunktion
- vorgibt das schreibt man sauber soohin und da sind wir jetzt wieder biss sie bei der indexschlacht wenn sie sich im eten Zustand befinden dann lesen Sie den
- Buchstaben der einen Index weiter ist nämlich den Buchstaben I + 1 ja wenn sie sich im nullten Zustand befinden lesen Sie den Buchstaben B1 sie befinden sich
- im nullten Zustand und lesen den Buchstaben 1 und gehen in den ersten Zustand über also wenn i = 0 ist befinden sie sich hier im
- Zustand R0 lesen den Buchstaben W1 und gehen über in den Zustand R1 der Übergang muss natürlich gemess der übergangsfunktion stattfinden sie dürfen
- nichts erfinden das kommt auch ganz gerne in Klausuren vor dass man dann plötzlich Übergänge erfindet die der Automat machen darf die aber nicht in
- der übergangsfunktion festgelegt sind er muss sie natürlich an seine Definition halten wenn sie jetzt vom ersten Zustand ausgehend den nächsten Buchstaben lesen
- ist das der Buchstabe W2 und der führt sie in den Zustand R2 jetzt ist also I = 1 sie fangen an im Zustand R1 lesen den Buchstaben W2 und
- gehen über in den Zustand R2 und das geht dann so weiter vom Zustand R2 ausgehend lesen Sie den Buchstaben W3 und gehen in den Zustand
- R3 und so weiter und so fort bis sie ganz am Ende angelangt sind im Zustand R n- 1 im vorletzten
- Zustand dort den letzten Buchstaben WN lesen und dann in den Zustand rn übergehen ja wenn sie das alles gemäß der Definition der übergangsfunktion
- machen dann sehen sie dass sie für alle is von 0 bis n- 1 genau das hinschreiben was die übergangsfunktion innen vorgibt also ich habe jetzt in dieser Zeile das
- zusammengefasst was wir gemacht haben indem wir entweder mit dem Finger oder mit dem Stift oder wie auch immer die einzelnen Übergänge durchlaufen sind
- haben das ist sehr kompakt in dieser Bedingung zusammengefasst wenn Sie sich jetzt mit den Indizes ein bisschen verwirrt fühlen dann schauen sie das
- daheim einmal no in Ruhe an gehen sie los von i = 0 dann schreiben Sie es hin für i= 1 dann schreiben Sie es hin für i= 2 und und so weiter und Sie werden
- sehen da kommt nichts anderes raus als was sie die ganze Zeit machen mit dem Automaten nur halt in der sehr komprimierten mathematischen
- Darstellung die letzte Bedingung die Erkennung endet in einem Endzustand und damit meine ich natürlich die Erkennung endet in einem
- akzeptierenden Endzustand damit das auch ganz klar ist die Erkennung endet in einem akzeptierenden
- Endzustand da müssen wir nur den letzten Zustand betrachten in der Kette der letzte Zustand ist dieser Zustand rn in diesem Zustand befindet sich der Automat
- nachdem man den letzten Buchstaben gelesen hat und dieser Zustand muss ein akzeptierender nzustand sein wie könnte man das mathematisch präzise
- aufschreiben wir schreiben das auf als rn ist ein Element aus F ich habe mehrere potenielle akzeptierende die nzustände es reicht mir natürlich wenn
- ich in einem ein dieser Endzustände bin das kann aussuchen es ist egal welchen akzeptierend Endzustand ich erreiche solange der Automat irgendeinen
- akzeptierten nzustand erreicht und die mathematische Formulierung ist rn ist ein Element aus F so und wenn sie jetzt hergehen und ein Programm schreiben dann
- können Sie diese drei Bedingungen sehr leicht implementieren das ist eine einfache Zuweisung das sagen sie okay unser erster Zustand der nullte Zustand
- ist der stzustand das muss immer der Fall sein dann können sie was sie hier stehen haben ist im Endeffekt eine vorschleife sie gehen vor i = 0 bis n- 1
- also sie würden ein Programm schreiben vor i = [Musik] 0 n- 1 und schauen dann in jedem Schritt
- nach was steht in meiner übergangsfunktion drin also sie schreiben hier r0ppelk g q0 sie schauen dann was steht in meiner
- übergangsfunktion drin wenn ich Imen Zustand bin und den I plus ersten Zustand lese da rufen Sie diese Funktion auf die Funktion liefert
- Ihnen dann den neuen Zustand zurück das ist der Zustand r I + 1 hier ist die vorschleife zu Ende nend vor und hier testen Sie dann nur ist
- rn Element aus F ma wir if davor if rn ist Element aus F den accept
- els reject also was hier da steht ist nichts anderes diese drei Bedingungen sind nichts anderes als noch mal ein sehr kompakt dargestelltes Programm halt
- in etwas mathematischer Schreibweise statt in Programmiersprachen Schreibweise um jeden x beliebigen endlichen Automaten simulieren zu können
- so und damit haben wir jetzt nicht nur eine mathematisch präzise Definition der Statik des Automaten also der Komponenten aus denen sich der
- zusammensetzt sondern wir haben auch eine mathematisch präzise Definition der Dynamik des automatens
- also sämtlicher Arbeitsschritt die der Automat unternimmt und können jetzt den Automaten mit beliebigen Mechanismen mit beliebigen Programmiersprachen und so
- weiter simulieren wenn s jetzt an eine der ersten Folien zurückdenken bei denen ich Ihnen verschiedene Rechenmodelle gezeigt habe haben wir jetzt sofort eine
- möglich an der Hand um zu zeigen dass Programmiersprachen mindestens genauso mächtig sind wie endliche Automaten indem sie in ihre
- lieblingsprogrammiersprache hergehen diesen Algorithmus implementieren und damit sehen alles was er endlicher Automat kann kann auch die
- Programmiersprache C oder kann auch die Programmiersprache Pascal und so weiter also steht schon mal fest dass Programmiersprachen genauso mächtig sind
- wie endliche Automaten das ist denke ja relativ relativ offensichtlich ohne das ganze Form Gedöns klar aber so ist das wie man das mathematisch sauber zeigt
- andersrum betrachtet haben sie natürlich gewisse Schwierigkeiten es wird ihnen nicht gelingen mit einem endlichen Automaten eine Programmiersprache zu
- simulieren da stoßen sie sehr schnell an Grenzen kann ja jeder mal daheim probieren aber das ist relativ klar dass das nicht geht also können wir jetzt
- abschließend festhalten wir haben jetzt den ersten Schritt vollzogen bei unserer Suche nach einem allgemeinen Computer nach nach ein mathematisch definierten
- Computer wir haben jetzt ein erstes einfaches Rechenmodell dass wir wirklich durch und durch mathematisch definieren können D können wir die Statik
- mathematisch definieren da können wir die Dynamik mathematisch definieren wir können jetzt versuchen Aussagen drüber zu machen was dieses Rechenmodell kann
- und was nicht und wir können vor allem die Grenzen dieses Rechenmodells feststellen und jedes Mal wenn wir an die Grenzen des Rechenmodells gelangen
- werden dann können wir das entsprechend erweit bis wir am Ende des Tages am Schluss der Vorlesung auf das kommen werden was ein
- allgemeines Rechnermodell ist als kleine Vorschau möchte nur sagen es ist erstaunlich wenig Unterschied zwischen diesem Pillepalle
- automatenmodell und dem was man unter einem allgemeinen Rechner versteht nur so kurz als Vorschau die wesentliche Erweiterung die wir machen werden ja wir
- haben jetzt ein Band das nur von links nach rechts gelesen werden kann die zwei
- wesentlichen Erweiterungen die wir bei diesem Rechnermodell machen werden müssen ist dass man das Band nicht nur von ähm rechts nach links sondern auch
- von links nach rechts schieben darf dass sie also beliebig auf dem Band hin und her fahren darf das ist die erste Erweiterung und die zweite Erweiterung
- ist dass ich hier nicht nur Buchstaben lesen darf sondern dass ich auch Buchstaben schreiben darf aber das sind die einzigen beiden Erweiterungen die
- notwendig sein werden um von diesem einfachen einfachsten Modell zu demem vollständigen Rechnermodell zu gelangen nichts desto weniger wird uns das noch
- den restlichen Teil des Semesters Kosten also sie sehen da ist schon einige mathematische Schwierigkeit dazwischen aber die grundlegenden Elemente sind
- jetzt auf jeden Fall schon vorhanden
Zum Nachlesen
Automat (Informatik)Ein Automat oder eine abstrakte Maschine ist in der Informatik, speziell in der Automatentheorie, das Modell eines digitalen, zeitdiskreten Rechners.
Endlicher AutomatEin endlicher Automat (EA, auch Zustandsmaschine, Zustandsautomat; englisch finite state machine, FSM) ist ein Modell eines Verhaltens, bestehend aus …
Akzeptor (Informatik)Ein Akzeptor ist in der theoretischen Informatik ein spezieller endlicher Automat. Er zeichnet sich dadurch aus, dass er im Gegensatz zu einem Transduktor …
Nichtdeterministischer endlicher AutomatEin nichtdeterministischer endlicher Automat (NEA; englisch nondeterministic finite automaton, NFA) ist ein endlicher Automat, bei dem es für den …