Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Endlicher Automat

Ein endlicher Automat (EA, auch Zustandsmaschine, Zustandsautomat; englisch finite state machine, FSM) ist ein Modell eines Verhaltens, bestehend aus …

Inhalt6 Abschnitte
  1. 1. Grundidee und Funktionsweise
  2. 2. Darstellung und Hauptklassen
  3. 3. Moore- und Mealy-Automaten
  4. 4. Mathematisches Modell
  5. 5. Beispiele, Optimierung und Testfolgen
  6. 6. Umsetzung in Hardware und Software

Grundidee und Funktionsweise

Ein endlicher Automat (EA), auch Zustandsmaschine oder Zustandsautomat genannt, ist ein Modell für das Verhalten eines Systems. Er besteht aus Zuständen, Zustandsübergängen und Aktionen. „Endlich“ bedeutet, dass die Menge der möglichen Zustände endlich ist. Endliche Automaten sind ein Spezialfall von Automaten und werden unter anderem für digitale Schaltungen, Steuerungen, Software sowie für Wort- und Spracherkennung verwendet.

Ein Zustand kann Informationen über die bisherige Verarbeitung enthalten: Er spiegelt wider, auf welchem Weg das System seit dem Start dorthin gelangt ist. Ein Zustandsübergang führt vom aktuellen Zustand in einen neuen Zustand, sobald die dafür festgelegten Bedingungen beziehungsweise Eingaben vorliegen. Der nächste Zustand und die Ausgabe eines EA sind somit Funktionen der Eingabe und des aktuellen Zustands.

Aktionen bilden die Ausgaben des Automaten. Man unterscheidet vier Arten:

  • Eine Eingangsaktion wird beim Eintreten in einen Zustand ausgeführt, unabhängig davon, über welchen Übergang dieser erreicht wurde.
  • Eine Ausgangsaktion wird beim Verlassen eines Zustands ausgeführt.
  • Eine Eingabeaktion hängt vom aktuellen Zustand und von der Eingabe ab.
  • Eine Übergangsaktion wird während eines bestimmten Zustandsübergangs ausgeführt.

Beim Testen eines solchen Systems sollen alle Zustände und Übergänge unter Berücksichtigung aller möglichen Eingaben überprüft werden. Einfache Abläufe lassen sich auch durch Tabellen, Matrizen oder Programmablaufpläne darstellen; endliche Automaten eignen sich jedoch auch zur Modellierung größerer und komplizierterer Szenarien.

Darstellung und Hauptklassen

Ein endlicher Automat kann als Zustandsübergangsdiagramm dargestellt werden. Dabei stehen Kreise für Zustände; im Kreis befindet sich jeweils der Zustandsname. Pfeile zwischen den Kreisen stellen Transitionen, also Zustandsübergänge, dar. An jedem Pfeil stehen die Bedingungen, unter denen der Übergang erfolgt.

Eine weitere Darstellungsform ist die Übergangs- oder Zustandsübergangstabelle. Sie ordnet jeder Kombination aus momentanem Zustand und Eingabesymbol den nächsten Zustand zu. Zustandstabellen können zusätzlich die vollständigen Informationen über die Ausgaben enthalten.

Grundsätzlich werden zwei Gruppen unterschieden:

  • Akzeptoren erkennen und akzeptieren Eingaben. Das Ergebnis wird durch den erreichten Zustand signalisiert. Als Eingaben dienen gewöhnlich Symbole oder Buchstaben. Ein Beispiel ist ein Automat, der das Wort „gut“ erkennt. Akzeptoren kommen vor allem in der Wort- und Spracherkennung zum Einsatz.
  • Transduktoren erzeugen abhängig von Zustand und Eingabe Ausgaben und werden vor allem für Steuerungsaufgaben verwendet.

Außerdem unterscheidet man deterministische und nichtdeterministische Automaten. Bei einem deterministischen endlichen Automaten (DEA) existiert für jeden Zustand und jede mögliche Eingabe genau ein Übergang. Bei einem nichtdeterministischen endlichen Automaten (NEA) kann es für eine Eingabe keinen, einen oder mehrere Übergänge geben. Ein EA mit nur einem Zustand heißt kombinatorischer EA und verwendet ausschließlich Eingabeaktionen.

Moore- und Mealy-Automaten

Transduktoren werden insbesondere in Moore- und Mealy-Automaten unterteilt.

Beim Moore-Modell hängt die Ausgabe Γ nur vom Zustand S ab: S → Γ. Es werden Eingangsaktionen verwendet. Dadurch ist das Verhalten meist einfacher und leichter verständlich. Beim Beispiel einer Aufzugtür gibt es die Befehle „aufmachen“ und „zumachen“. Beim Eintritt in den Zustand „Aufgehend“ startet ein Motor zum Öffnen der Tür; im Zustand „Zugehend“ läuft er in der entgegengesetzten Richtung. In den Zuständen „Auf“ und „Zu“ wird der Motor angehalten und die jeweilige Situation nach außen gemeldet.

Beim Mealy-Modell hängt die Ausgabe Γ sowohl vom Zustand S als auch von der Eingabe Σ ab: S × Σ → Γ. Eingabeaktionen können etwa beim Befehl „zumachen“ den Motor zum Schließen und beim Befehl „aufmachen“ in umgekehrter Richtung starten. Mealy-Automaten benötigen häufig weniger Zustände als entsprechende Moore-Automaten, sind aber oft schwieriger zu verstehen.

Wenn das zeitliche Verhalten außer Betracht bleibt, sind Moore- und Mealy-Automaten gleichwertig und können ineinander umgewandelt werden. In der Praxis kommen auch Mischmodelle vor. Beim synchronen Systemdesign in der Digitalelektronik bestehen jedoch wichtige Unterschiede hinsichtlich der Zahl der Zustände und der zeitlichen Eigenschaften der erzeugten Kontrollsignale.

Mathematisches Modell

Ein deterministischer Akzeptor wird als 5-Tupel (Q, s, Σ, F, δ) beschrieben:

  • Q ist die endliche Zustandsmenge.
  • s ist der Startzustand mit s ∈ Q.
  • Σ ist das endliche Eingabealphabet, also die Menge der zulässigen Eingabesymbole.
  • F ist die Endzustandsmenge mit F ⊂ Q.
  • δ ist die Übergangsfunktion. Sie kann durch eine Automatentafel oder einen Zustandsübergangsgraphen dargestellt werden.

Ein Transduktor wird als 7-Tupel (Σ, Γ, S, s₀, F, δ, ω) definiert. Σ ist ein endliches, nicht leeres Eingabealphabet und Γ ein endliches, nicht leeres Ausgabealphabet. S ist eine endliche, nicht leere Zustandsmenge, s₀ ∈ S der Anfangszustand und F ⊂ S die Endzustandsmenge. Die Zustandsübergangsfunktion lautet δ: S × Σ → S. Die Ausgabefunktion ω legt die Ausgabe fest.

Gilt ω: S × Σ → Γ, hängt die Ausgabe von Zustand und Eingabe ab; es handelt sich um ein Mealy-Modell. Gilt dagegen ω: S → Γ, hängt die Ausgabe nur vom Zustand ab; dies ist ein Moore-Modell.

Beispiele, Optimierung und Testfolgen

Das abstrakte Beispiel besitzt die Zustandsmenge S := {q₁, q₂, q₃}, den Startzustand q₁, das Eingabealphabet Σ := {a, b} und das Ausgabealphabet Γ := {0, 1}. Seine Übergangsfunktion ist festgelegt durch δ(q₁,a)=q₃, δ(q₁,b)=q₂, δ(q₂,a)=q₁, δ(q₂,b)=q₂, δ(q₃,a)=q₁ und δ(q₃,b)=q₂. Für die Ausgabefunktion gelten ω(q₁,a)=0, ω(q₁,b)=1, ω(q₂,a)=1, ω(q₂,b)=1, ω(q₃,a)=0 und ω(q₃,b)=0.

Ein stark vereinfachter Verkaufsautomat hat die Zustände w („warten auf Bezahlung“), a („Bezahlung ausgeführt, warten auf Warenauswahl“) und r („Ware ausgegeben, warten auf Warenentnahme“). Seine Eingabesymbole sind p für „bezahlen“, s für „Ware auswählen“, t für „Ware entnehmen“ und c für „Kauf abbrechen“. Die Übergänge lauten δ(w,p)=a, δ(a,s)=r, δ(a,c)=w und δ(r,t)=w.

Bei der Optimierung sucht man eine Zustandsmaschine mit der geringsten Anzahl von Zuständen, die dieselbe Funktion erfüllt. Dafür können beispielsweise Färbungsalgorithmen eingesetzt werden.

Eine Homing-Folge ist eine Eingabefolge, nach der anhand der Ausgaben bestimmt werden kann, in welchem Zustand sich der Automat anschließend befindet. Bei stark zusammenhängenden Zustandsmaschinen lässt sich damit eine Folge finden, die zum Initialzustand zurückführt. Jede minimale Zustandsmaschine besitzt eine Homing-Folge. Im abstrakten Beispiel führen etwa die Ausgaben nach der Eingabe b unabhängig vom Ausgangszustand zur Zustandsmenge {q₂}.

Eine UIO-Folge (Unique-Input-Output-Folge) dient dagegen dazu, aus den Ausgaben zu bestimmen, in welchem Zustand der Automat gestartet ist. Eine solche Folge existiert nicht immer; das Finden einer UIO-Folge ist PSPACE-vollständig. Für das abstrakte Beispiel werden unter anderem q₁: a/0, a/0, b/1; q₂: a/1 und q₃: b/0 angegeben.

Umsetzung in Hardware und Software

In digitalen Schaltungen können endliche Automaten mit speicherprogrammierbaren Steuerungen, logischen Gattern, Flip-Flops oder Relais aufgebaut werden. Eine Hardwareimplementierung benötigt normalerweise ein Register zum Speichern der Zustandsvariablen, eine Logikeinheit zur Bestimmung der Zustandsübergänge, eine zweite Logikeinheit für die Ausgabe sowie einen Taktgeber oder ein Verzögerungsglied. Dadurch lassen sich vorheriger, aktueller und nachfolgender Zustand unterscheiden und nacheinander schalten.

In der Softwareentwicklung werden Anwendungen unter anderem als ereignisgesteuerte endliche Automaten oder als virtuelle endliche Automaten modelliert und implementiert.

Da reale digitale Computer nur eine endliche Speichergröße besitzen, können sie nur eine endliche, wenn auch sehr große Zahl digitaler Schaltzustände annehmen. Deshalb lassen sie sich als Teilmenge der endlichen Automaten auffassen. Für theoretische Untersuchungen ist es jedoch häufig zweckmäßiger, sie leistungsfähigeren Automatenmodellen wie der Turingmaschine zuzuordnen.

Lernvideos zu Endlicher Automat

Weiterlesen

Automat (Informatik) Ein Automat oder eine abstrakte Maschine ist in der Informatik, speziell in der Automatentheorie, das Modell eines digitalen, zeitdiskreten Rechners. Automatentheorie Die Automatentheorie ist ein Teilgebiet der theoretischen Informatik, das sich mit dem Studium von Automaten (Modellrechnern) und mit den von diesen … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Künstliche Intelligenz Künstliche Intelligenz (kurz KI, englisch artificial intelligence, kurz AI) ist ein Forschungs- und Anwendungsgebiet der Informatik. Matrix (Mathematik) In der Mathematik versteht man unter einer Matrix (Plural Matrizen) eine rechteckig angeordnete Tabelle von sogenannten Elementen. Programmablaufplan Ein Programmablaufplan (PAP) ist ein Ablaufdiagramm für ein Computerprogramm, das auch als Flussdiagramm (engl. flowchart) oder Programmstrukturplan … Transduktor (Informatik) Ein Transduktor ist in der theoretischen Informatik ein spezieller endlicher Automat. Er zeichnet sich dadurch aus, dass er im Gegensatz zu einem Akzeptor … Moore-Automat Ein Moore-Automat ist ein endlicher Automat, dessen Ausgabe ausschließlich von seinem Zustand abhängt. Beim Erreichen eines Zustandes wird eine Ausgabe … Mealy-Automat Ein Mealy-Automat ist in der theoretischen Informatik ein deterministischer endlicher Automat, dessen Ausgabe von seinem Zustand und seiner Eingabe abhängt; … Nichtdeterministischer endlicher Automat Ein nichtdeterministischer endlicher Automat (NEA; englisch nondeterministic finite automaton, NFA) ist ein endlicher Automat, bei dem es für den … Computer Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Turingmaschine Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik, das eine abstrakte Maschine definiert. Bei diesem Rechnermodell werden nach …