Softwareengineering Endliche Automaten Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law 05.04.2017 se_9_endliche_automaten.ppt
Was sind endliche Automaten? werden u.a. gebraucht um Muster in Zeichenketten zu erkennen. Heißen auch: Statusmaschine Finite State Machine FSM EA 05.04.2017 se_9_endliche_automaten.ppt
Welche Zeichenketten können erkannnt werden? Intuitiv: Zeichenketten, für deren Erkennung man nur ein begrenztes Gedächtnis braucht. Positivbeispiel: Eine Zeichenkette, die zweimal den String "ABBA" enthält. Negativbeispiel: Eine Zeichenkette mit Klammern und gefordert ist korrekte Klammerung (genau so viele Klammern gehen zu wie aufgehen), kann nicht mit einem endlichen Automaten erkannt werden. Präzise: Zeichenketten, die mit regulären Grammatiken erzeugt werden. Reguläre Grammatiken sind mathematisch definiert, siehe http://de.wikipedia.org/wiki/Regul%C3%A4re_Grammatik 05.04.2017 se_9_endliche_automaten.ppt
Wie sieht ein endlicher Automat aus? Ein endlicher Automat kann durch einen Graphen dargestellt werden. Ausdrucksweise: Knoten des Graphen heißen im endlichen Automaten "Zustände", Kanten des Graphen heißen "Transitionen". Ein Zustand ist der Startzustand, ein oder mehrere Zustände sind "Endzustände", jeder Kante ist ein (zu erkennendes) Zeichen zugeordnet. A B B A * Start- zustand S 1 2 3 4 * * * * A * * * End zustand B B A 5 6 * A 7 8 A 05.04.2017 se_9_endliche_automaten.ppt
Ablauf eines endlichen Automaten Zeichenkette wird Zeichen für Zeichen gelesen. Ich beginne im Startzustand Wenn ich ein Zeichen gelesen haben, folge ich der Transition, der dieses Zeichen zugeordnet ist. Wenn ich nach einlesen der Zeichenkette in einem Endzustand bin, dann wurde das Muster erkannt, sonst nicht. Beispiel vorherige Seite: Erkennt Zeichenketten, die zweimal "ABBA" enthalten. 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Hauptprogramm, Aufbau des Automaten 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Hauptprogramm, Aufbau des Automaten und Start 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Speicherung der Transitionen in den Zuständen 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Einlesen der Zeichen 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Zustände 05.04.2017 se_9_endliche_automaten.ppt
Implementierung: Transitionen 05.04.2017 se_9_endliche_automaten.ppt