Material OOP Grundlagen Delphi Software-Technik Bonsai Digitaltechnik Ereignisse Grafik UML Netze Fischertechnik Tipps Werkzeuge Literatur Automaten Sprachen Datenbanken XML Prolog Berechenbarkeit
Pfad: Startseite / Fächer / Informatik / Material
Autor: mk
06.02.2007 18:47
24378
Automatentheorie

Endliche Automaten - Einführung

Eine Denksportaufgabe:

Ein Mann steht mit einem Wolf, einer Ziege und einem Kohlkopf am linken Ufer eines Flusses, den er überqueren will. Er hat ein Boot, das groß genug ist, ihn und ein weiteres Objekt zu transportieren, so dass er immer nur einen der drei mit hinübernehmen kann. Falls der Mann allerdings den Wolf und Ziege unbewacht an einem der Ufer zurückläßt, so wird der Wolf sicherlich die Ziege fressen. Genauso wird, wenn die Ziege und der Kohlkopf unbewacht zurückbleiben, die Ziege den Kohlkopf fressen.

Ist es möglich, den Fluss zu überqueren, ohne dass die Ziege oder der Kohlkopf gefressen werden?

Lösung:

Zur Umsetzung des Problems ist festzustellen, dass die aktuelle Information darin besteht, wer nach jedem Überqueren an den beiden Ufern steht. Es gibt 16 Teilmengen mit den Elementen Mann (M), Wolf (W), Ziege (Z) und Kohlkopf (K).

linkes Ufer rechtes Ufer erlaubter Zustand
0 MWZK x
M WZK -
W MZK x
Z MWK x
K MWZ x
MW ZK -
MZ WK x
MK WZ -
WZ MK -
WK MZ x
ZK MW -
MWZ K x
MWK Z x
MZK W x
WZK M -
MWZK 0 x

Die "Eingaben" für das System sind die durchgeführten Aktionen. Der Mann kann den Fluss alleine überqueren (Eingabe m), mit dem Wolf (Eingabe w), mit der Ziege (Eingabe z) oder mit dem Kohlkopf (Eingabe k). Der Anfangszustand ist MWZK - 0 , und der Endzustand ist 0 - MWZK. Aus dem Anfangszustand MWZK - 0 kann man direkt höchstens in die Zustände WZK - M, WZ - MK, WK - MZ und ZK - MW gelangen, wobei aber nur der Zustand WK - MZ sinnvoll wäre. Mit ähnlichen Überlegungen kann man folgenden Übergangsgraphen (Transitionsdiagramm) aufstellen:

Jetzt ist es leicht zu sehen, dass es zwei gleichermaßen kurze Lösungen gibt, die man durch Suche nach Pfaden vom Anfangszustand zum Endzustand (das ist der mit dem Doppelkreis) finden kann. Es sind dies die Pfade zmwzkmz sowie zmkzwmz , die jeweils 7 Fahrten lang sind. Alle weiteren - unendlich viele - Lösungen enthalten nutzlose Zyklen.

Wo liegt nun der Vorteil dieser Darstellung?

Nun, ich denke das Problem ist so klar und übersichtlich gelöst, dass man bedenkenlos gegen jemand wetten würde, der behauptet, er habe eine Lösung mit 5 Fahrten gefunden. Viel wichtiger ist jedoch die Erkenntnis, dass sich alle Systeme mit endlicher Zustandsmenge auf ähnliche Weise beschreiben lassen. Wir haben eine Struktur gefunden, die weit über die Informatik hinausreicht. Der Beweis soll im folgenden angetreten werden.

So schön das Beispiel ist, so ist es doch ein Spezialfall für Systeme mit endlicher Zustandsmenge: Erstens gibt es nur einen Endzustand - im Allgemeinen sind es mehrere - und zweitens gibt es hier zufällig für jeden Übergang einen Übergang in umgekehrter Richtung, der mit dem gleichen Symbol markiert ist, was im Allgemeinen nicht der Fall sein braucht. Außerdem werden beim Übergang von einem zum anderen Zustand keine Ausgaben produziert, was im Allgemeinen durchaus vorkommen kann.

Ein endlicher Automat ist ein (mathematisches) Modell eines Systems mit diskreten Ein- und Ausgaben. Das System befindet sich in einem aus einer endlichen Anzahl von inneren Konfigurationen - sogenannten "Zuständen".

Definition und Arbeitsweise eines endlichen Automaten

Definition:

Ein endlicher Automat (EA) besteht aus

Arbeitsweise:

Der EA arbeitet in diskreten Schritten. Zu einem gewissen Zeitpunkt befinde er sich im Zustand z. Falls ein Eingabezeichen e vorhanden ist, liest er dieses beim nächsten Takt und geht in den Zustand zneu = fü(z,e) über, wobei er das Zeichen a = fa(z,e) ausgibt. Der Automat beginnt seine Arbeit definitionsgemäß im Startzustand s0. Dieser Vorgang läßt sich verdeutlichen, wenn wir die für den Automaten vorgesehenen Eingaben auf einem Eingabeband, die von ihm erstellten Ausgaben auf einem Ausgabeband und seinen aktuellen Zustand sowie die Funktionen fü und fa in einer Steuereinheit zusammenfassen:

Für solche Automaten, die man auch Transduktoren nennt, müssen wir jetzt allerdings fordern, dass bei jedem Takt der Lesekopf der Steuereinheit um einen Schritt nach rechts auf dem Eingabeband fortschreitet. Ebenso soll sich der Ausgabekopf verhalten.

Valid XHTML 1.0! lokal