Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Anfangszustand/Determinismus

+2 Punkte
105 Aufrufe
Hallo,

ich habe eine Frage zu dieser Aufgabe (Nr. 42 a) aber auch zu den Kellerautomaten allgemein:

Zu dieser Aufgabe: Nach meinem Verständis besteht die Sprache die hier abgebildet werden soll auch aus dem Leeren Wort. Müsste dann nicht auch ein Übergang (s0, Lambda, k0) --> (e0, k0)  definiert werden ? In der Automatendeklaration wird zwar auch s0 als Endzustand aufgeführt, müsst nicht jedoch (im Hinblick auf determinismus) dazu ein Übergang spezifiizier werden ?

Noch eine allgemeine Frage: Manchmal "arbeitet" der Keller-Automat zunächst im Zustand s0 (s0 kein Endzustand) meherere Iterationen manchmal wird aber auch direkt in der ersten Deklaration in einen Zustand s1 überführt und in dem dann Schleifen "gedreht". Für mich stellt es jedoch keinen Unterschied dar, ob ich den Zustand s0 gleich sinnvoll nutze oder zuerst in s1 überführe und dann dort arbeite. Nach welchen kriterien wird diese rein Formale Überführung [ z.B. (s0, a, k0) --> (s1, a) ; (s1, a, a) --> (s1, aa) anstatt (s0, a, ko) --> (s0,a); (s0,a,a) --> (s0,a) ] durchgeführt oder ist dies willkürlich ? Es ist immer noch eindeutig entscheidbar bei welchen Kombinationen von s,a,k der Zustand in einen eindeutigen Folgezustand gewechstelt wird.

 

Vielen Dank :)
Gefragt 7, Jan 2016 in KEL-AE von uudji uudji Lernwillige(r) (380 Punkte)  

Eine Antwort

+1 Punkt

Hey uudji,

du hast richtig erkannt, dass das leere Wort akzeptiert werden muss. Da s0 ein Endzustand ist und der Automat kein Wort abzuarbeiten hat, wird das leere Wort auch wirklich akzeptiert.
Eine Überführung muss nicht definiert werden, der Automat in der Musterlösung ist deterministisch (siehe Definition des KA auf Folie 4 Kapitel 3 der Vorlesung).

Zu deiner allgemeinen Frage: Das kommt natürlich ganz auf die Sprache an, ob ein Zustandswechsel nach dem ersten Zeichen notwendig ist. Falls dieser nicht notwendig sein sollte, spielt es keine Rolle ob in s0 mehrere Iterationen durchgeführt werden oder nach dem ersten Zeichen der Zustand gewechselt wird. Der Automat würde die gleiche Sprache akzeptieren und es wäre eine, wie du sagtest, "formale Überführung".
In dieser Aufgabe ist dies jedoch NICHT so. Angenommen deine genannte Überführung (s0, a, ko) → (s0,a) würde zur Zustandsüberführungsfunktion des Automaten gehören, dann wüde der Automat das Wort a akzeptieren, da s0 ein Endzustand ist. Dabei ist a kein Wort der Sprache.
Du merkst, der Grund liegt hier in der Akzeptanz des leeren Wortes: Der Automat springt nach dem Einlesen des ersten Zeichens in den Zustand s1, da dieser kein Endzustand ist  um das Wort (das nun gewiss aus mindestens einem Zeichen besteht) auf die Erfüllung der Bedingungen zu überprüfen.

Viele Grüße
Ashvin

Beantwortet 7, Jan 2016 von uxdiu uxdiu Tutor(in) (101,710 Punkte)  
Bearbeitet 7, Jan 2016 von uxdiu uxdiu
...