Tutorial AutoEdit

Mit AutoEdit können Sie endliche Automaten, Kellerautomaten sowie Turing-Maschinen konstruieren, simulieren und transformieren. Weil die Konstruktion verschiedener Automatentypen unterschiedliche Herangehensweisen fordern, gehen wir im Folgenden von der Konstruktion eines endlichen Automaten aus. Besonderheiten bei der Konstruktion von Kellerautomaten und Turing-Maschinen werden im Anschluss erläutert.

Erstellen eines endlichen Automaten

Unter "Typ" können Sie den Automatentyp festlegen, den Sie erstellen wollen (Abb.1). Wenn Sie Ihren Automatentyp festgelegt haben, können Sie anschließend unter "Alphabet" die möglichen Eingabezeichen bestimmen. Es können auch wieder Zeichen aus dem Alphabet gelöscht werden. Definitionsgemäß ist hierbei zu beachten, dass ein Alphabet eine nicht-leere Menge ist und somit mindestens ein Zeichen existieren muss! Oft benutzte Alphabete - wie a, b, c - sind hier auch per Voreinstellung verfügbar. Wollen Sie ein Alphabet komplett zurücksetzen, so genügt ein Klick auf "leeren". Diese Schaltfläche befindet sich oben rechts vom Alphabet.(Abb.2)

Abb1

Abb. 1: Auswahl eines Automatentyps

Abb2

Abb. 2: Vordefinierte Alphabete

Die Übergangstabelle

Die Übergangsfunktion des Automaten kann nun sowohl mit einer Tabelle, als auch in Form eines Graphen konstruiert werden. Für beide Möglichkeiten gibt es eine Registerkarte mit den entsprechenden Funktionen. Wenn Sie eine Übergangstabelle erstellen, können Sie zuerst die Zustände mit "Neuer Zustand" erstellen und benennen. Außerdem können Sie Startzustand und Endzustände bestimmen. Die Auswahl für den Startzustand befindet sich unten links.

Um Übergänge zu erstellen, müssen Sie die entsprechende Schaltfläche klicken, nachdem Sie den Zustand, dargestellt durch ein graues Rechteck, markiert haben. Der markierte Zustand ändert dann seine Farbe. Beachten Sie, dass Sie immer den Zustand anwählen müssen, von dem der Übergang ausgeht! Beachten Sie auch, dass Sie von einem Zustand nicht mehr Übergänge erstellen können, als Zustände vorhanden sind.

Die zu einem Übergang gehörenden Alphabetzeichen werden als Label hinzugefügt. Dazu müssen Sie vorher den Übergang markiert haben. Bei endlichen Automaten kann es nur so viele Label geben, wie Alphabetzeichen vorhanden sind.

Abb3

Abb. 3: Beispiel für eine Übergangstabelle

Der Übergangsgraph

Unter "Übergangsgraph" können Sie Zustände und Übergänge grafisch dargestellt sehen und Sie haben die Möglichkeit, auch dort selbige zu erstellen, zu löschen oder zu editieren. Dazu stehen Ihnen die Schaltflächen über der Grafik zur Verfügung. Diese haben dieselbe Anordnung und Funktion, wie auch in der Übergangstabelle, allerdings gibt es hier zum Umschalten von Endzustand oder nicht-Endzustand noch eine weitere.
Symbol1Wenn der Button für neue Zustände eingerastet ist, so erzeugen Sie mit jedem Klick auf die Arbeitsfläche einen Zustand. Mit Entfernen können sie wieder gelöscht werden.
Symbol2 Wenn der Button für neue Übergänge eingerastet ist, klicken Sie nacheinander auf Ausgangs- und Folgezustand, um einen Übergang zu erzeugen.
Symbol3 Markieren Sie anschließend den Übergang, um dann mit einen Klick auf das Label-Button die Alphabetzeichen zuzuordnen (Abb.4).
Symbol4 Auch das Löschen einzelner Elemente ist leicht per Knopfdruck möglich.
Symbol5 Wenn ein Zustand markiert ist, können Sie mit dieser Schaltfläche ganz einfach umschalten, ob dieser Zustand ein Endzustand ist oder nicht.
Symbol6 Wenn Sie das Design nicht im Standard-Format haben wollen, sondern den gesamten Graphen in einem bestimmten Schema darstellen wollen, so können Sie mit dieser Schaltfläche das Layout eines Zustands, Übergangs oder Labels auf alle anderen Elemente des Graphen kopieren, um so schnell zu einem einheitlichen Aussehen zu kommen.
Symbol7 Mit dieser Schaltfläche können Sie die Ausrichtung ihrer Elemente automatisch vornehmen. Dabei werden Zustände in bestimmte Raster geschoben und Übergänge, sowie Labels entsprechend den Voreinstellungen zurecht gerückt.
Symbol8 Sie haben auch die Möglichkeit, während Sie einen Automaten konstruieren, diesen auf Gültigkeit zu prüfen. So erfahren Sie mit einem Klick, ob der Automat fehlerhaft ist oder nicht.
Symbol9 Wenn Sie den Graphen direkt weiterverwenden wollen, können Sie ihn hier exportieren. Näheres dazu wird im Folgenden noch erläutert.
Einstellungen - vor allem für das Design - von Zuständen, Übergängen und Labelbeschriftungen können mit einer Tabelle "Eigenschaften" im linken unteren Fenster festgelegt werden.

NameLegt den Namen des Zustands fest
FinalStateBestimmt, ob der Zustand ein Endzustand ist
Left Position horizontal
Top Position vertikal
ColorFarbe des Zustand-Symbols
RadiusGröße des Zustand-Symbols
LineColorFarbe der Linien und Rahmen
LineWidthDicke der Linien und Rahmen
FontColorFarbe der Beschriftung
FontSizeSchriftgröße
FromAusgangszustand des Übergangs
TargetZielzustand des Übergangs
ArrowSizeAuswahl der Pfeilgröße eines Übergangs
DrawVerticalBestimmt die Darstellungsart der Zeichen
ReadZu lesendes Eingabezeichen

Abb4

Abb. 4: Hinzufügen von Labels per Übergangsgraph

Besonderheiten für Kellerautomaten

Wollen Sie einen Kellerautomaten konstruieren, so gibt es einige Unterschiede zu beachten. Zuerst haben Sie bei der Alphabet-Bestimmung ein zusätzliches Stack-Alphabet, welches Sie direkt unterhalb des normalen Alphabets editieren können.

Der nächste Unterschied folgt in der Übergangstabelle. Dort müssen Sie bei Kellerautomaten ein Stack-Vorbelegungszeichen bestimmen. Außerdem brauchen die Labels nun mehr Angaben. Es muss nicht nur das gelesene Alphabetzeichen zu einem Übergang bestimmt werden, sondern auch das Top of Stack (jenes Zeichen, welches ganz oben auf dem Stack liegt) und das Push, also jenes Zeichen, welches dabei auf den Stack gelegt wird. Aus diesem Grund ist nun die Labelanzahl pro Übergang nicht mehr auf die Anzahl der Alphabetzeichen beschränkt.

Bei dem Übergangsgraph ist der gleiche Unterschied in der "Eigenschaften"-Tabelle zu finden, in der bei der Einstellung für ein Label, die Zeilen Write und TopOfStack hinzukommen. Write ist äquivalent zu "Push".

Besonderheiten für die Turing-Maschine

Auch die Unterschiede von einer Turing-Maschine entspringen ihrer Definition. So finden Sie hier das Bandalphabet unterhalb des üblichen Alphabets. In der Übergangstabelle finden Sie unten links eine Einstellung für das Band-Vorbelegungszeichen.

Bei der Bestimmung der Labels gibt es hier das vom Band gelesene Zeichen, sowie das Zeichen, mit dem es überschrieben wird. Eine Turing-Maschine hat in jedem Schritt die Möglichkeit, die Leserichtung nach links oder nach rechts zu ändern, oder aber auf dem aktuellen Zeichen zu verbleiben. Auch das muss im Label eingetragen werden. Daraus folgt - wie auch beim Kellerautomaten - keine Begrenzung der Labels auf die Anzahl der Alphabetzeichen.

Auch hier sind diese Unterschiede im Übergangsgraph wiederzufinden. Die Eigenschaften-Tabelle enthält bei der Auswahl eines Labels einen Eintrag "Write" und einen Eintrag "Direction". Write bestimmt das auf das Band zu schreibende Zeichen und Direction legt die Leserichtung der Turing-Maschine fest.

Verwendung

Wenn Sie Ihren Automaten nun erstellt haben, können Sie verschiedene Grafiken als Grafik-Datei oder HTML weiterverwenden. Die Funktionen werden unter der Registerkarte "Exportieren" bereitgestellt. Sie haben die Auswahl zwischen HTML-Ausgabe und drei verschiedenen Grafikformaten. Für Ihren Graphen bekommen Sie noch zwei weitere Grafikformate zur Auswahl.

Schließlich können Sie Ihren Automaten ausführlich testen, indem Sie mit Eingabewörtern das Verhalten des Automaten nachvollziehen können. Dabei wird Ihnen jeder einzelne Schritt angezeigt. Für die Geschwindigkeit dieser Schritte gibt es einen Schieberegler. Auch ein Einzelschrittmodus ist verfügbar. Dazu müssen Sie nur vor dem Automatentest das Häkchen unter der Start-Schaltfläche aktivieren. Dann bestimmen Sie per Mausklick die Geschwindigkeit. Um einen Durchlauf abzubrechen, können Sie jederzeit "Stop Simulation" anwählen. Wenn der Automat bis zum Ende gelaufen ist, stoppt der Automat in einem Endzustand oder in einem anderen Zustand, was durch die entsprechende Farbe, rot oder grün, gekennzeichnet wird. Vorsicht, bei Turing-Maschinen kann es Endlos-Schleifen geben! Wenn der Automat überhaupt nicht stoppt, wird das nicht automatisch erkannt (Halteproblem). Sollte etwas nicht stimmen, kann der Einzelschrittmodus helfen, eine Fehlerquelle aufzudecken. Wenn alles in Ordnung ist, haben Sie auch noch die Möglichkeit, den Automaten in VCC zu verwenden oder ihn in Scheme-Code zu überführen.

Abb5Abb6
Abb. 5: Automat stoppt im EndzustandAbb. 6: Automat stoppt nicht im Endzustand

Wir wünschen Ihnen viel Spaß beim Nutzen des Editors!