Endlicher Automat


Endlicher Automat
Abb. 1: Beispiel eines EA der eine Tür beschreibt

Ein endlicher Automat (EA, auch Zustandsmaschine, englisch finite state machine (FSM)) ist ein Modell eines Verhaltens, bestehend aus Zuständen, Zustandsübergängen und Aktionen.

Ein Automat heißt endlich, wenn die Menge der Zustände, die er annehmen kann (später S genannt), endlich ist. Ein EA ist ein Spezialfall aus der Menge der Automaten. Ein Zustand speichert die Information über die Vergangenheit, d.h. er reflektiert die Änderungen der Eingabe seit dem Systemstart bis zum aktuellen Zeitpunkt. Ein Zustandsübergang zeigt eine Änderung des Zustandes des EA und wird durch logische Bedingungen beschrieben, die erfüllt sein müssen, um den Übergang zu ermöglichen. Eine Aktion ist die Ausgabe des EA, die in einer bestimmten Situation erfolgt. Es gibt vier Typen von Aktionen

Eingangsaktion
Ausgabe wird beim Eintreten in einen Zustand generiert
Ausgangsaktion
Ausgabe wird beim Verlassen eines Zustandes generiert
Eingabeaktion
Ausgabe wird abhängig von aktuellem Zustand und Eingabe generiert
Übergangsaktion
Ausgabe wird abhängig von einem Zustandsübergang generiert

Ein EA kann als Zustandsübergangsdiagramm wie in Abbildung 1 dargestellt werden. Zusätzlich werden mehrere Typen von Übergangstabellen (bzw. Zustandsübergangstabellen) benutzt. Die folgende Tabelle zeigt eine sehr verbreitete Form von Übergangstabellen: die Kombination aus dem aktuellen Zustand (B) und Eingabe (Y) führt zum nächsten Zustand (C). Die komplette Information über die möglichen Aktionen wird mit Hilfe von Fußnoten angegeben. Eine Definition des EA, die auch die volle Ausgabeinformation beinhaltet, ist mit Zustandstabellen möglich, die für jeden Zustand einzeln definiert werden (siehe auch virtueller EA).

   Momentaner Zustand/
Bedingung
Zustand A Zustand B Zustand C
Bedingung X ... ... ...
Bedingung Y ... Zustand C ...
Bedingung Z ... ... ...
Übergangstabelle

Die Definition des EA wurde ursprünglich in der Automatentheorie eingeführt und später in der Computertechnik übernommen.

Zustandsmaschinen werden hauptsächlich in der Entwicklung digitaler Schaltungen, Modellierung des Applikationsverhaltens (Steuerungen), generell in der Softwaretechnik sowie Wort- und Spracherkennung benutzt.

Inhaltsverzeichnis

Klassifizierung

Generell werden zwei Gruppen von EA unterschieden: Akzeptoren und Transduktoren.

Akzeptoren

Abb. 2: EA vom Typ Akzeptor: erkennt das Wort „gut“

Sie akzeptieren und erkennen die Eingabe und signalisieren durch ihren Zustand das Ergebnis nach außen. In der Regel werden Symbole (Buchstaben) als Eingabe benutzt. Das Beispiel in der Abbildung 2 zeigt einen EA, der das Wort „gut“ akzeptiert. Akzeptoren werden vorwiegend in der Wort- und Spracherkennung eingesetzt.

Transduktoren (Transducer)

Transduktoren generieren Ausgaben in Abhängigkeit von Zustand und Eingabe mit Hilfe von Aktionen. Sie werden vorwiegend für Steuerungsaufgaben eingesetzt, wobei grundsätzlich zwei Typen unterschieden werden:

Abb. 3: EA vom Typ Transduktor: Moore-Modell
Moore-Automat
Im Moore-Modell werden nur Eingangsaktionen benutzt, d. h., die Ausgabe (Γ) hängt nur vom Zustand (S) ab (S → Γ). Das Verhalten eines Moore-Automaten ist dadurch, verglichen mit dem Mealy-Modell, einfacher und leichter zu verstehen. Das Beispiel in Abbildung 3 zeigt einen Moore-Automaten, der eine Aufzugtür steuert. Die Zustandsmaschine kennt zwei Befehle, „aufmachen“ und „zumachen“, die von einem Benutzer eingegeben werden können. Die Eingangsaktion (E:) im Zustand „Aufgehend“ startet einen Motor, der die Tür öffnet, und die Eingangsaktion im Zustand „Zugehend“ startet den Motor in entgegengesetzter Richtung. Die Eingangsaktionen in den Zuständen „Auf“ und „Zu“ halten den Motor an. Sie signalisieren außerdem die Situation nach außen (z.B. zu anderen EA).
Abb. 4: EA vom Typ Transduktor: Mealy-Modell
Mealy-Automat
Im Mealy-Modell werden Eingabeaktionen benutzt, d. h., die Ausgabe (Γ) hängt von Zustand (S) und Eingabe (Σ) ab (S × Σ → Γ). Der Einsatz von Mealy-Automaten führt oft zu einer Verringerung der Anzahl zu berücksichtigender Zustände. Die Funktion des EA ist dadurch komplexer und oft schwieriger zu verstehen. Das Beispiel in der Abbildung 4 zeigt einen Mealy-EA, der das gleiche Verhalten wie der EA im Moore-Beispiel aufweist. Es gibt zwei Eingabeaktionen (I:): „starte den Motor, um die Tür zu schließen, wenn die Eingabe 'zumachen' erfolgt“ und „starte den Motor in entgegengesetzter Richtung, um die Tür zu öffnen, wenn die Eingabe 'aufmachen' erfolgt“.

Moore- und Mealy-Automaten sind gleichwertig. Der eine kann in den jeweils anderen überführt werden. In der Praxis werden meistens Mischmodelle benutzt.

Eine weitere Klassifizierung der EA wird durch die Unterscheidung zwischen deterministischen (DEA) und nicht-deterministischen (NEA) Automaten gemacht. In den deterministischen Automaten existiert für jeden Zustand genau ein Übergang für jede mögliche Eingabe. Bei den nicht-deterministischen Automaten kann es keinen oder auch mehr als einen Übergang für die mögliche Eingabe geben.

Ein EA, der nur aus einem Zustand besteht wird als kombinatorischer EA bezeichnet. Er benutzt nur Eingabeaktionen.

Die Logik des EA

Abb. 5: Die Logik eines EA

Der nächste Zustand und die Ausgabe des EA ist eine Funktion der Eingabe und des aktuellen Zustandes. Abbildung 5 zeigt den Ablauf der Logik.

Das mathematische Modell

Es gibt unterschiedliche Definitionen, je nach Typ des EA. Ein Akzeptor (oder auch deterministischer Automat) ist ein 5-Tupel (Σ, S, s0, δ, F), wobei:

  • Σ ist das Eingabealphabet (eine endliche nicht leere Menge von Symbolen),
  • S ist eine endliche nicht leere Menge von Zuständen,
  • s0 ist der Anfangszustand und ein Element aus S,
  • δ ist die Zustandsübergangsfunktion: δ: S x Σ → S,
  • F ist die Menge von Endzuständen und eine (möglicherweise leere) Teilmenge von S.

Ein Transduktor ist ein 6-Tupel (Σ, Γ, S, s0, δ, ω), wobei:

  • Σ ist das Eingabealphabet (eine endliche nicht leere Menge von Symbolen),
  • Γ ist das Ausgabealphabet (eine endliche nicht leere Menge von Symbolen),
  • S ist eine endliche nicht leere Menge von Zuständen,
  • s0 ist der Anfangszustand und ein Element aus S,
  • δ ist die Zustandsübergangsfunktion: δ: S x Σ → S,
  • ω ist die Ausgabefunktion.

Falls die Ausgabefunktion eine Funktion von Zustand und Eingabealphabet ist (ω: S x Σ → Γ), dann handelt es sich um ein Mealy-Modell. Falls die Ausgabefunktion nur vom Zustand abhängt (ω: S → Γ), dann ist es ein Moore-Automat.

Optimierung

Ein EA wird optimiert, indem die Zustandsmaschine mit der geringsten Anzahl von Zuständen gefunden wird, die die gleiche Funktion erfüllt. Dieses Problem kann zum Beispiel mit Hilfe von Färbungsalgorithmen gelöst werden.

Siehe auch: Minimierung eines DEA

Implementierung

Hardware

In digitalen Schaltungen werden EA mit Hilfe von speicherprogrammierbaren Steuerungen, logischen Gattern, Flip-Flops oder Relais gebaut. Eine Hardwareimplementation benötigt normalerweise ein Register, um die Zustandsvariable zu speichern, eine Logikeinheit, die die Zustandsübergänge bestimmt und eine zweite Logikeinheit, die für die Ausgabe verantwortlich ist.

Software

In der Softwareentwicklung werden meist folgende Konzepte verwendet, um Applikationen mit Hilfe von Zustandsmaschinen zu modellieren bzw. implementieren:

Darstellung endlicher Automaten

Die allgemeinen Regeln für das Zeichnen eines Zustandsübergangsdiagramms sind wie folgt:

  • Kreise stellen Zustände dar. Im Kreis steht der Name des Zustands.
  • Pfeile zwischen Zuständen stellen die Transitionen dar. Auf jedem Pfeil steht, welche Bedingungen den Übergang ermöglichen.

Siehe auch

Literatur

  • John E. Hopcroft, Jeffrey Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. 2. Auflage. Addison-Wesley, Bonn, München 1990, ISBN 3-89319-181-X. 
  • Peter Sander, Wolffried Stucky, Rudolf Herschel: Automaten, Sprachen, Berechenbarkeit. Teubner, Stuttgart 1992, ISBN 3-519-02937-5
  • Ferdinand Wagner: Modeling Software with Finite State Machines: A Practical Approach. Auerbach, Boca Raton 2006, ISBN 0-8493-8086-3
  • Zvi Kohavi: Switching and Finite Automata Theory. McGraw-Hill, New York 1978, ISBN 0-07-035310-7 (englisch)
  • Arthur Gill: Introduction to the Theory of Finite-state Machines. McGraw-Hill, New York 1962 (englisch)
  • Heinz-Dietrich Wuttke, Karsten Henke: Schaltsysteme – Eine automatenorientierte Einführung. Pearson Studium, München 2003, ISBN 3-8273-7035-3

Weblinks


Wikimedia Foundation.

Synonyme:

Schlagen Sie auch in anderen Wörterbüchern nach:

  • endlicher Automat — baigtinis automatas statusas T sritis automatika atitikmenys: angl. finite automaton; finite state machine vok. endlicher Automat, m; Finalautomat, m rus. конечный автомат, m pranc. automate final, m; automate fini, m; automate terminal, m;… …   Automatikos terminų žodynas

  • Deterministischer endlicher Automat — Ein deterministischer endlicher Automat (DEA, engl.: deterministic finite state machine oder deterministic finite automaton (DFA)) ist ein endlicher Automat, der unter Eingabe eines Zeichens seines Eingabealphabetes (den möglichen Eingaben) von… …   Deutsch Wikipedia

  • Deterministischer endlicher automat — Ein deterministischer endlicher Automat (DEA, engl.: DFA=deterministic finite automaton) ist ein endlicher Automat, der unter Eingabe eines Zeichens seines Eingabealphabetes (mögliche Eingaben) von einem Zustand, in dem er sich befindet, in einen …   Deutsch Wikipedia

  • Nicht-deterministischer endlicher Automat — Ein nichtdeterministischer endlicher Automat (NEA, engl: NFA=nondeterministic finite automaton) ist ein endlicher Automat, bei dem es für den Zustandsübergang mehrere Möglichkeiten gibt. Formal kann ein NEA als 5 Tupel definiert werden. Hierbei… …   Deutsch Wikipedia

  • Nichtdeterministischer endlicher Automat — Grafische Darstellung eines NEA Ein nichtdeterministischer endlicher Automat (NEA, englisch: NFA=nondeterministic finite automaton) ist ein endlicher Automat, bei dem es für den Zustandsübergang mehrere gleichwertige Möglichkeiten gibt. Im… …   Deutsch Wikipedia

  • Virtueller endlicher Automat — VFSM Ausführung in der virtuellen Umgebung Ein endlicher Automat, definiert in virtueller Umgebung, heißt Virtueller Endlicher Automat (eng. Virtual Finite State Machine, VFSM). VFSM ist eine Spezifikationstechnik, eingesetzt, um das Verhalten… …   Deutsch Wikipedia

  • Eindeutiger endlicher Automat — Der eindeutige endliche Automat (UFA = unambiguous finite automaton) nimmt seine Stellung zwischen dem deterministischen endlichen Automaten (DEA, engl. DFA) und dem nichtdeterministischen endlichen Automaten (NEA, engl. NFA) ein. Ein UFA ist im… …   Deutsch Wikipedia

  • Automat (Informatik) — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

  • Automat — Maschine; Roboter; Gerät; Aggregat; Anlage * * * Au|to|mat [au̮to ma:t], der; en, en: 1. Apparat, der nach Einwerfen einer Münze Waren ausgibt oder bestimmte Leistungen erbringt: lösen Sie den Fahrschein bitte am Automaten!; Zigaretten am… …   Universal-Lexikon

  • Moore Automat — Ein Moore Automat (benannt nach dem Mathematiker Edward F. Moore (1925 2003)) ist ein endlicher Automat, welcher deterministisch oder nichtdeterministisch sein kann. Im Gegensatz zum Mealy Automaten hängt seine Ausgabe ausschließlich von seinem… …   Deutsch Wikipedia