1. Einführung und Begriffsbildung

Ähnliche Dokumente
Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Grundbegriffe der Informatik

Einführung in die Informatik

4. Modellieren und Diagrammarten

Kapitel 3 Ereignisdiskrete Systeme (III)

Das aktuelle Objekt der Klasse AMPEL gibt an die Objekte gruen, gelb und rot der Klasse LAMPE die Botschaft, die Methode aus() aufzurufen.

Einführung in die Informatik Turing Machines

Lexikalische Programmanalyse der Scanner

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Einführung in die Informatik Turing Machines

Grundbegriffe der Informatik Tutorium 10

Grundbegriffe der Informatik Tutorium 11

2.6 Verdeutlichung verwendeter Begriffe

Test Ereignisdiskrete Systeme

1 Endliche Automaten mit Ausgabe

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Software Engineering Ergänzung zur Vorlesung

Berechenbarkeitstheorie 1. Vorlesung

4.2.4 Reguläre Grammatiken

Prüfung Programming, Automation, Computation

5.2 Endliche Automaten

Probeklausur Lösungen

Das Informatik-Kochstudio Sortieren Alltagsalgorithmen Komplexe Algorithmen... 55

18 E N D L I C H E AU T O M AT E N erstes beispiel: ein getränkeautomat

Theoretische Informatik I

1 Eliminieren von ɛ-übergängen

A8: Prinzipien der Datenverarbeitung (14)

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

6 Schaltwerke und endliche Automaten

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Berechenbarkeit. Script, Kapitel 2

Die mathematische Seite

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Formale Sprachen und endliche Automaten

Theoretische Grundlagen der Informatik

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Deterministische endliche Automaten - Wiederholung

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

PDA, Übergangsfunktion

Turing Maschinen II Wiederholung

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Grundbegriffe der Informatik Tutorium 33

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Systemmodellierung. Teil Ereignisdiskrete Systeme

Theoretische Informatik. Berechenbarkeit

VL-03: Turing Maschinen II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Automaten und formale Sprachen Klausurvorbereitung

Kurz-Skript zur Theoretischen Informatik I

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

Kapitel 1: Die ersten Schritte 1

(Prüfungs-)Aufgaben zu formale Sprachen

ALP I Turing-Maschine

Grundlagen der Theoretischen Informatik

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

Schatzsuche - Endliche Automaten

Reguläre Sprachen und endliche Automaten

Endliche Automaten. Endliche Automaten 1 / 115

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Theoretische Informatik I

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 3288

Kapitel 2: Formale Sprachen Gliederung

Beispiel zum Schaltungsentwurf mithilfe endlicher Automaten Ein Zähler modulo 3 mit Reset

Mikrocontroller: Einführung

Automaten und Formale Sprachen SoSe 2013 in Trier

GTI ÜBUNG 11 AUTOMATEN

Einführung in die Theoretische Informatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden.

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Theoretische Grundlagen der Informatik

Grundlagen der Technischen Informatik. 13. Übung

, SS2012 Übungsgruppen: Do., Mi.,

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Transkript:

Endliche Automaten 1. Einführung und Begriffsbildung 1.1. Warum Automaten? Unsere Zeit wird von Automaten geprägt und die Szenarien der Zukunft werden von ihnen beherrscht. Was kennzeichnet einen Automaten? Wir erwarten von Automaten, dass auf Knopfdruck, gelegentlich nach Geldeinwurf, eine oder mehrere Aktionen selbstständig ablaufen. Der Ablauf wird häufig, tendenziell zunehmend, elektronisch gesteuert. Die Vielfalt hinsichtlich der Art und Komplexität dieser Geräte ist riesig. Das Spektrum in unserem Alltag reicht von der Waschmaschine, dem Warenautomaten oder der Ampelanlage bis zum heimischen PC. Viele Beispiele sind erst bei genauer Betrachtung als Automaten zu erkennen: Eine Stoppuhr, die Steuerung eines Aufzugs, ja sogar ein simpler Ein-/Aus- Schalter können als Automat verstanden werden. Ein Automat muss auch nicht zwangsläufig materiell sein. Es gibt Simulationen für Lehr- und Forschungszwecke, wie z.b. JavaFSM, das z.b. der Modellierung beim Chipdesign dient. Unser Ziel ist es, die typischen Eigenschaften von Automaten kennen zu lernen. Welche prinzipiellen Gemeinsamkeiten, welche grundlegenden Eigenschaften gibt es, unabhängig von der Bauart und der spezifischen Bestimmung? Ein Automat, in dieser Art auf das Wesentliche reduziert, bildet die Grundlage einer ergiebigen Modellbildung in der Informatik. Im Folgenden sollen Begriff und Darstellung von Automaten, wie man sie in der Informatik verwendet, vorbereitet werden. Die Theorie der endlichen Automaten bildet einen Einstieg in die Betrachtungsweise der Informatik. Ausgehend von Alltagsbeispielen (Getränke- / Fahrkartenautomat) sollen zunächst allereinfachste Maschinen der Begriffsbildung dienen. An verschiedenartigen Beispielen wird danach das Konzept angewendet und in Simulationen ausgebaut. Wir beschränken uns auf deterministische Automaten, d.h. solche mit eindeutig definierten Übergängen. Da es zu jedem endlichen Automaten einen äquivalenten deterministischen gibt, halten wir es für richtig, von vorne herein diese zur Modellierung heranzuziehen. Über die Eingabefolgen, die von endlichen Automaten akzeptiert werden, wird im zweiten Teil die Beschäftigung mit formalen Sprachen eingeleitet. Dieses Thema wird jedoch über die regulären Sprachen hinaus nicht weiter vertieft. Wenn das Modell der endlichen Automaten ausgeschöpft ist, wenden wir uns im dritten Teil als Erweiterung den Turing-Maschinen zu. Mit ihrer Hilfe gelangen wir bis an die Grenzen der Berechenbarkeit. Auf dem Weg zu diesen Zielen kommt man mit weiteren wichtigen Gebieten der Informatik in Berührung. Von diesen haben wir der Graphentheorie und der Lehre von den Algorithmen jeweils eine eigene Beschreibung gewidmet. Auf die Abbildung von Automaten in einer Programmiersprache haben wir verzichtet, weil so die Automatentheorie an den Anfang des Kurslehrgangs gestellt werden kann und es andererseits ergiebigere Themen zum Erlernen von Programmiersprachen gibt. Seminargruppe Informatik Seite 1 von 19 2005

1.2. Waren-Automaten An zwei einfachen Modellen, ein Fahrscheinautomat und ein Getränkeautomat, die einigermaßen realistisch und doch einfach genug sind, sollen die charakteristischen Eigenschaften eines Automaten herausgearbeitet werden. Anhand dieser konkreten Automaten werden die für die Automatentheorie benötigten Begriffe erarbeitet. Die sind dabei als Orientierung gedacht. 1.2.1. Modell eines Fahrscheinautomaten Die Bedienung des Automaten erfolgt als Eingabe mit der Maus oder durch Tastendruck. Man kann 1 oder 2 einwerfen, dann eine Erwachsenen- oder Kinderkarte wählen oder das eingeworfene Geld zurückgeben lassen. Die Entnahme der Tickets oder des Rückgelds ist Aufgabe des Benutzers; sie erfolgt im Programm beim nächsten Mausklick. Der Ende-Button beendet die Simulation und gehört nicht zum Automaten. Das Modell des Fahrscheinautomaten liegt als ausführbare Datei Fahrkart.exe vor. Abb. 1. 1 1. Erprobe die Funktionsweise des Fahrscheinautomaten. 2. Was geschieht, wenn nach Eingabe von 2 die Taste für eine Erwachsenenkarte gedrückt wird? 3. Skizziere eine Folge von Eingaben, die zum Erwerb einer Kinderkarte führen. 4. Notiere die Reaktionen auf die verschiedenen Eingaben. Passiert immer dasselbe, wenn man einen bestimmten Knopf drückt? 5. Wovon hängt es ab, was nach dem Drücken der K-Taste passiert? 6. Welche Informationen über zurückliegende Handlungen muss der Automat speichern, um korrekt zu reagieren? 7. Welche Ausgaben sind möglich? Seminargruppe Informatik Seite 2 von 19 2005

1.2.2. Modell eines Getränkeautomaten Zunächst müssen Geldstücke in Form von 1, 2, oder 0,50 eingeworfen werden. Danach kann entweder der Geldrückgabe- Knopf, der Warenausgabe-Knopf oder das Warenausgabe Fach bei ausreichendem Geldbetrag betätigt werden. Das Rückgeld- Fach und der Ende-Knopf können je nach Situation betätigt werden. Das Modell des Getränkeautomaten liegt als Java-Applet vor. Gestartet wird das Applet mit Hilfe der Datei automaten.html und dort den Link einfacher Getränkeautomat anklicken. (Hinweis: Zum Ausführen des Applets wir ein neuerer Browser benötigt. Außerdem muss entweder das Java Development Kit (JDK ) oder das Java Runtime Environment (JRE) von Sun Microsystem ab der Version 1.2 installiert sein). Abb. 1.2 1. Erprobe die Funktionsweise des Getränkeautomaten (automaten.html in einem Browser öffnen und dort den Link einfacher Getränkeautomat anklicken). 2. Was geschieht, wenn nach Eingabe von 1,50 der Warenausgabeknopf gedrückt wird? 3. Skizziere eine Folge von Eingaben, die zum Erwerb eines Getränks führen. 4. Notiere die Reaktionen auf die verschiedenen Eingaben. Passiert immer dasselbe, wenn man einen bestimmten Knopf drückt? 5. Wovon hängt es ab, was nach dem Drücken des Geldrückgabeknopfs passiert? 6. Welche Informationen über zurückliegende Handlungen muss der Automat speichern, um korrekt zu reagieren? 7. Welche Ausgaben sind möglich? 1.2.3. Erweiterter Getränkeautomat Man kann jetzt auch 10 Ct Münzen einwerfen und den Automaten bis zu einem Betrag von 10 füttern. 1. Erbrobe die Funktionsweise des erweiterten Getränkeautomaten (automaten.html in einem Browser öffnen und dort den Link erweiterter Getränkeautomat anklicken). 2. Skizziere verschiedene Eingabefolgen, die zum Erwerb eines Getränks führen. 3. Welche Informationen über zurückliegende Handlungen muss der Automat speichern, um korrekt zu reagieren? Vergleiche ihre Anzahl mit der Anzahl der Informationen des ersten Getränkeautomaten. 4. Welche Ausgaben sind möglich? Seminargruppe Informatik Seite 3 von 19 2005

1.3. Einfachste Automaten Zunächst wollen wir äußerst einfache Automaten betrachten, um die Möglichkeiten zu ihrer Darstellung zu kennen zu lernen. Diese Automaten können mit Simulationsprogrammen wie JavaFSM dargestellt werden. Gegebenenfalls können hier auch Programme selbst geschrieben werden. 1.3.1. Ein-/Aus-Schalter 2 Zustände {s 0, s 1 }, Eingabe {e, a} a s 0 e s 1 e a e a s 0 s 1 s 0 s 1 s 1 s 0 Zustandstafel Programm EinAus.exe Dieser Automat besitzt auch eine Ausgabe: Je nach Schaltzustand erscheint das "Licht" in der Kreisfläche weiß oder schwarz. Seminargruppe Informatik Seite 4 von 19 2005

1.3.2. Ampel Die Ampel hat 4 Zustände {grün, gelb, rot, rot-gelb}, die durch Eingabe des Taktes {T} ineinander überführt werden. Zustandsdiagramm grün T gelb T T rot-gelb T rot Programm Ampel.exe grün gelb T gelb rot Zustandstafel rot rot-gelb rot-gelb grün Aufgabe Ein Plattenspieler hat 2 Schalter für Ein-Aus-Schalten und die Wahl der Geschwindigkeit. Eingabe ist {P, G}, die Zustände sind { z aus, z 33, z 45 }. Gib die Zustandstafel an und erstelle ein Zustandsdiagramm. Seminargruppe Informatik Seite 5 von 19 2005

1.4. Begriffsbildung - Beispiel Fahrscheinautomat 1.4.1. Eingaben Der Benutzer hat folgende Möglichkeiten der Eingabe: Einwurf von 1, Einwurf von 2, Taste für Erwachsenenticket, Taste für Kinderticket, Rückgabetaste. Damit erhält man folgende Menge von Eingaben, das Eingabealphabet: E = { 1, 2, E, K, R } 1.4.2. Zustände Die Reaktion des Automaten auf eine Eingabe ist abhängig vom jeweiligen Zustand. In unserem Fall können die Zustände mit dem zuvor erfolgten Einwurf beschrieben werden. Wenn kein Geld eingeworfen wurde nennen wir den Zustand z0. Zwei 1 -Stücke und ein 2 -Stück ergeben dann z112, wobei die Reihenfolge des Einwurfs unerheblich ist. Die Art der eingeworfenen Münzen ist an der Bezeichnung des Zustands zu erkennen und wird bei der Rückgabe berücksichtigt. In unserem Beispiel erhalten wir die Zustandsmenge: S = { z0, z1, z2, z11, z12, z111, z22, z112, z1111 } s Zustand 1.4.3. Anfangszustand Am Anfang (z.b. nach dem Einschalten) ist der Automat in einem definierten Anfangszustand: s 0 = z0 s 0 Anfangszustand 1.4.4. Endzustände Wenn wir Fehlfunktionen ausschließen und annehmen, dass niemand auf sein Geld verzichtet, gibt es nur einen möglichen Endzustand z0. Es kann auch mehrere Endzustände geben, die Menge der Endzustände: F = { z0 } s F Endzustand Seminargruppe Informatik Seite 6 von 19 2005

1.4.5. Zustandsübergänge Jedem Zustand s und jeder Eingabe e ist eindeutig ein neuer Zustand s' zugeordnet. Diese Zuordnung nennt man Übergangsfunktion. Sie wird meist als Zustandstafel angegeben. δ : (s,e) a s' s e s' Zustandsübergang Für kleine Automaten ist das Zustandsdiagramm, dessen Bestandteile oben dargestellt sind, eine anschauliche Darstellung. Es enthält alle Zustände, alle Übergänge einschließlich der zugehörigen Eingabe, sowie, besonders gekennzeichnet, den Anfangs- und die Endzustände. Dies zusammen ergibt die formale Beschreibung eines endlichen Automaten durch sein Eingabealphabet E, die Zustandsmenge S, den Anfangszustand s 0, die Menge der Endzustände F und die Übergangsfunktion δ : EA = (E, S, s 0, F, δ) 1. In welchen Zustand geht der Automat über, wenn in z2 ein 1 -Stück eingeworfen wird (in z111 die R-Taste gedrückt wird)? 2. Aus welchen Gründen muss man die Zustände z22 und z112 unterscheiden? 3. Warum werden die Zustände z211 oder z121 nicht benötigt? Beschreibung von Automaten Grundsätzlich kann man jeden Automaten auf 4 Ebenen darstellen: Verbale Beschreibung Formale Beschreibung EA = (E, S, s 0, F, δ) mit Angabe des Eingabealphabets, der Zustände und der Überführungsfunktion als Funktionstafel Zustandsdiagramm Simulation mit geeigneter Software (JavaFSM) Gegebenenfalls Kodierung in einer Programmiersprache Seminargruppe Informatik Seite 7 von 19 2005

1.5. Beispiel und (1) - Getränkeautomat Um die Kenntnisse von Automaten und ihrer Beschreibung auf eine breitere Basis zu stellen, sollen die folgenden Beispiele untersucht und die zugehörigen gelöst werden. Die bestehen zum großen Teil darin, die gegebene Darstellung in eine andere zu transformieren oder diese zu ergänzen. Getränkeautomat Entspricht dem Fahrkarten-Automat, ist aber etwas einfacher. E = { 1, GA, R } S = { s0, s1, s2 } s 0 = s0 Dieser Getränkeautomat ist ein Beispiel für einen Automaten mit Ausgabe (Mealy- Maschine), ein Aspekt, der beim Fahrscheinautomaten aus Gründen der Einfachheit nicht thematisiert wurde. Programm Getraenke.exe 1.5.1. Ausgaben Der Getränkeautomat hat die folgende Ausgaben: Die Getränkeflasche (G), das Rückgeld von 1 (r1) oder von 2 (r2). Da bei manchen Übergängen keine Ausgabe erfolgt, gehört auch das leere Zeichen (-) dazu. Die Menge der möglichen Ausgaben ist das Ausgabealphabet: A = { G, r1, r2, - } 1.5.2. Ausgabefunktion Jedem Zustand s und jeder Eingabe e ist eindeutig eine bestimmte Ausgabe a zugeordnet. Diese Zuordnung nennt man Ausgabefunktion. Sie wird meist in der Zustandstafel mit angegeben. γ : (s,e) a a 1 GA R s0 s1, - s0, - s0, - s1 s2, - s1, - s0, r1 s e,a s' s2 s2, r1 s0, G s0, r2 Übergang mit Eingabe und Ausgabe 1. Beschreibe den Automaten (nach ausreichender Erprobung) mit Worten. 2. Zeichne für den Getränkeautomaten ein Zustandsdiagramm. 3. Welche Ergänzungen im Funktionsumfang erscheinen dir sinnvoll? Seminargruppe Informatik Seite 8 von 19 2005

1.6. Beispiel und (2) - Aufzugs-Steuerung Steuerung eines Aufzugs Der Aufzug soll durch die abgebildeten Tasten in seinem Innern gesteuert werden. Eine oder mehrere Etagen können gewählt werden, wobei die Wahl der aktuellen Etage ignoriert wird. Die Taste für "Fahren" startet die Simulation. Eigenschaften des Automaten: Jeder Zustand wird durch das aktuelle Stockwerk und die Fahrtrichtung bestimmt. S = { 0, 1, 2, -1 }, wobei -1 das 1. Stockwerk mit Fahrtrichtung nach unten darstellt. Die Eingabe erfolgt als Tripel von gewählten Etagen ( 1 / 0 steht für Checkbox gesetzt / nicht gesetzt ) in der Reihenfolge: Erdgeschoss, 1. Etage, 2. Etage. E = { (0,0,0), (0,0,1),..., (1,1,1) } Anfangszustand ist Erdgeschoss s 0 = 0 Alle Zustände können Endzustände sein F = S Der Übergang der Zustände ergibt sich aus der Regel, dass der Fahrstuhl in der 1. Etage mit erster Priorität seine Fahrtrichtung beibehält. Der Aufzug "fährt" jeweils nur eine Etage weit, dann kann eine neue Eingabe erfolgen oder auch Eingaben, die noch nicht ausgeführt sind, gelöscht werden. 1. Gib alle möglichen Eingaben an. Erläutere, was die Eingabe (0,1,1) bedeutet. 2. Welche Eingaben bewirken a) in keinem Zustand, b) in allen Zuständen eine Veränderung? 3. In welchen Zuständen führen die Eingaben (110) und (100) zum gleichen Resultat? 4. Stelle in einem Teildiagramm alle Zustände und alle Übergänge von und nach Zustand "2" dar. 5. Gib die Spalte der Übergangsfunktion an, die zur Eingabe (101) gehört. 6. Erweitere die Fahrstuhlsteuerung auf 4 Etagen. Seminargruppe Informatik Seite 9 von 19 2005

1.7. Beispiel und (3) - Stoppuhr Stoppuhr Dieser Automat ist in seiner Funktionsweise einer in die Armbanduhr integrierten Stoppuhr nachempfunden. Obwohl er nur 2 Eingabemöglichkeiten besitzt, ist er wegen der Möglichkeit der Zwischenzeitnahme ziemlich komplex. Kurz beschrieben dient die Eingabe S zum Starten/Stoppen der Uhr (auch im Hintergrund); R schaltet die Anzeige aus/ein und zeigt damit die Zwischenzeit/aktuelle oder zuletzt gemessene Zeit und stellt, wenn die Uhr gestoppt ist, alles zurück (Reset). Zum Verständnis kann ein Zustandsdiagramm, das man gemeinsam entwickelt, wesentlich beitragen. Zustandsdiagramm ZUSDE R ZUSDZw R Z0 S S S S Display zeigt Zwischenzeit R S ZULDL R R ZULDZw Uhr läuft Beschreibung der Zustände: Z0 Startzustand (Uhr steht, Display zeigt 0) ZULDL Uhr läuft, Display läuft ZULDZw Uhr läuft, Display zeigt Zwischenzeit ZUSDZw Uhr steht, Display zeigt Zwischenzeit ZUSDE Uhr steht, Display zeigt Endzeit 1. Gib die Übergangsfunktion als Tabelle an. 2. Umrande im Diagramm mit verschiedenen Farben die Zustände, in welchen die Uhr läuft und in denen das Display die Zwischenzeit zeigt. 3. Vergleiche die gegebene Stoppuhr mit einer einfachen Version, wie man sie im Sport häufig verwendet, die keine Zwischenzeit anzeigt und 3 Tasten hat. 4. Modelliere eine Schachuhr. Seminargruppe Informatik Seite 10 von 19 2005