04.09.02. endlicher Automat – Vertiefung

Gegeben sei der folgende endliche Automat:

Automat über dem Alphabet {a, b}, der alle Wörter mit einer geraden Anzahl an a's akzeptiert.

Dieser Automat akzeptiert die Sprache aller Sequenzen über dem Alphabet {a,b}, die eine gerade Anzahl von a’s beinhalten.

Repräsentiere diesen Automaten in Prolog und schreibe ein Prädikat fsa_accept/1, das als Argument eine Liste nimmt und gelingt, wenn die Liste eine von dem Automaten akzeptierte Sequenz ist.

?- fsa_accept([a,b,a,a,b,b,a]).
true.
?- fsa_accept([a,a,c]).
false.
?- fsa_accept([a,b]).
false.

Teil dieser Aufgabe ist auch, sich das Datenformat, in dem der Automat in Prolog repräsentiert wird, auszudenken! fsa_accept ruft also andere Prädikate auf, die man auch selbst implementieren muss.

Bearbeite die folgenden Fragen, um der Lösung einen Schritt näher zu kommen!

Wie könnte eine Übergangsfunktion des Automaten in der Wissensbasis aussehen?

Nun brauchen wir ein Prädikat fsa, welches von fsa_accept aufgerufen wird. Was genau sollte dieses machen?

Jetzt, da wir wissen, was das Prädikat fsa machen soll, müssen wir schauen wie genau wir dies implementieren!

Nach den Informationen der letzten Fragen, wie müsste nun das Prädikat informal aussehen?

Noch keine Kommentare eingereicht. Bitte hilf uns diese Aufgabe zu verbessern.

Schreibe einen Kommentar