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.)

Warum wird das leere Wort nicht akzeptiert?

1 Pluspunkt 0 Minuspunkte
229 Aufrufe

Hallo, 

ich verstehe hier aber nicht warum das leere wort nicht auch vom KA akzeptiert wird, das doch steht w Element (a,b,$)*. Der stern bedeutet, dass das leere Wort akzeptiert wird oder?

Außerdem wollte ich fragen ob meine Variante auch stimmt:

(s0,a,k0) --> (s1,ak0)

(s0,b,k0) --> (s1,bk0)

(s1,a,a) --> (s1,aa)
(s1,a,b) --> (s1,ab)
(s1,b,b) --> (s1,bb)
(s1,b,a) --> (s1,ba)
(s1,$,k0) --> (s3,k0) ( warum wird hier in der Musterlösung nicht in den Endzustand s2 gewechselt?)
(s1,$,a) --> (s2,a)
(s1,$,b) --> (s2,b)
(s2,b,b) --> (s3,lambda)
(s2,a,a) --> (s3,lambda)
(s3,lambda,k0) --> (s3,k0)
 
s3 ist mein Endzustand. 
 
Vielen Dank im Voraus.
bezieht sich auf eine Antwort auf: Zustandswechsel
Gefragt 31, Dez 2015 in KEL-AC von ukdxs ukdxs Lernwillige(r) (1,350 Punkte)  
Bearbeitet 3, Jan 2016 von Lukas König

Eine Antwort

1 Pluspunkt 0 Minuspunkte
Hey ukdxs,

zunächst mal zu deiner ersten Frage: Bei der Sprachdefinition ist es extrem wichtig, dass du diese immer komplett betrachtest und nicht anhand vom * bzw. + im ersten Teil schon davon ausgehst, dass das leere Wort in der Sprache ist bzw. nicht. Im linken Teil werden die Zeichen definiert aus denen die Wörter bestehen (hier a,b,\$) und zunächst das leere Wort eingeschlossen. Für sämtliche Wörter aus dieser Menge muss die Bedingung die folgt jedoch noch zutreffen (Palindrom mit Dollar-Zeichen in der Mitte). Nur dann sind sie auch Wörter der Sprache. Da dies für das leere Wort nicht zutrifft, gehört es auch nicht zu der Sprache.

Nun zu deinem Automaten:
Die Zustandsüberführungsfunktionen für s2 sind nicht korrekt. Sobald das erste Zeichen nach dem Dollar-Zeichen mit dem letzten Zeichen vor dem Dollar-Zeichen übereinstimmt, springt dein Automat in s3 ohne restlichen Zeichen zu überprüfen. Man darf hier also nicht direkt in den Endzustand springen.
Zudem ist deine letzte Funktion einer Art Endlosschleife für den Automaten. Ist er in s3 und k0 im Keller, bleibt er in s3 und änder nicht im Keller. Und die Funktion wird wieder ausgeführt. Daher wird bei der Musterlösung ein weiterer Zustand als Endzustand genutzt. In diesen könnte man, meiner Meinung nach, wenn der Automat in s1 ist, \$ eingelesen wird und k0 im Keller steht auch direkt springen.

Ich hoffe ich konnte deine Fragen beantworten!

Viele Grüße
Ashvin
Beantwortet 2, Jan 2016 von uxdiu uxdiu Tutor(in) (101,710 Punkte)  
Bearbeitet 4, Jan 2016 von Marlon Braun
...