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

Schöne Ferien!
 

 

keller-automat

+2 Punkte
291 Aufrufe
http://info2.aifb.kit.edu/qa/?qa=blob&qa_blobid=1187491473163801459

ich habe ne video geschaut und habe erst ein automat gemacht um ein einfacher und klarer es zu machen.

den link ist dese https://www.youtube.com/watch?v=UtwbfE0rCYU&list=PLt6jZ7OSaZOXQpcETvMlc3jeIISi0gYGO&index=2

Das habe ich erstens gemacht damt ich zur der ersten Lösung komme. ist meine automat vielleicht fasch ?

danle nochmal
bezieht sich auf eine Antwort auf: Lösungsvorschlag
Gefragt 3, Jan 2016 in KEL-AE von ugemt ugemt Eins-Komma-Null-Anwärter(in) (1,960 Punkte)  

Eine Antwort

+1 Punkt

Hallo ugemt,

der Lösungsvorschlag ist falsch (fehlerhafte/nicht erreichbare Übergänge, nicht mal das Testwort ist erkennbar und erst recht nicht die gesamte Sprache) und nicht vollständig, sowie nicht eindeutig als Kellerautomat erkennbar.

Das primäre Problem scheint allerdings die Allgemeinheit des Kellerautomaten zu sein, denn ein Kellerautomat soll die gesamte Sprache erkennen, nicht nur das Testwort (dieses wird also zur Erstellung des Kellerautomaten nicht sonderlich beachtet). Ein Kellerautomat wird i.d.R. wie folgt definiert:

KA =  (E, S, K, $\delta$, $s_0$ ,$k_0$ , F) mit:

E ist Eingabealphabet, also alle Zeichen die der KA ´liest´

S ist die Menge der Zustände

K ist das Kelleralphabet, also alle Zeichen die in den Kellergeschrieben werden können (und gelesen)

$\delta$ ist die Überführungsfunktion, welche den Folgezustand und den Kellereintrag in Abhängigkeit vom Zustand, gelesenen Zeichen und oberstem Kellerzeichen angibt (Bsp: $(s_0, a, k_0) -> (s_1, ak_0)$ bedeutet, dass im Zustand $s_0$, bei Lesen vom Zeichen a und oberstem Kellerzeichen in den Keller ak0 geschrieben wird (a kommt also „obendrauf“) und in den Zustand s1 überführt wird.

$s_0$ ist der Anfangszustand

$k_0$ ist das unterste Kellerzeichen (Indikator, dass der Keller leer ist)

und F die Menge der Endzustände.

Als kleiner Tipp zur Erstellung von einfachen Kellerautomaten (o.B.d.A.):

Ein einfacher KA soll oftmals eine Sprache erkennen, welche eine Art „Wendepunkt” aufweist (hier: $(ab)^i (ba)^i$, wobei der „Wendepunkt“ zwischen den beiden Klammern liegt). I.d.R. kommen nach dem Wendepunkt k-mal soviele Zeichen wie vor dem Wendepunkt (hier genauso viele nur in umgekehrter Reihenfolge).

Dieser Kellerautomat kann also einfach gesagt den vorderen Teil eines Wortes nacheinander in den Keller schreiben und danach (ab dem Wendepunkt) für jede richtigen k Zeichen (hier 1) wiederrum ein Zeichen aus dem Keller löschen (Beachte: die Reihenfolge und erlaubte Zeichen müssen beachtet werden). Vereinfacht erkennt der KA also die Sprache, sobald der Keller wieder leer ist und das Wort komplett gelesen wurde.

Die kleine Hilfe ist natürlich nicht auf alle Kellerautomaten übertragbar, sondern soll lediglich die ersten Male die Erstellung eines einfachen Kellerautomaten unterstützen. Natürlich gibt es in den Vorlesungsunterlagen/ -aufzeichnungen genauere und umfangreichere Erläuterungen zu Kellerautomaten.

Weiterhin viel Erfolg,

Marvin (Tutor)

Beantwortet 4, Jan 2016 von ucdxg ucdxg Tutor(in) (103,890 Punkte)  
Bearbeitet 5, Jan 2016 von ucdxg ucdxg
ist dierser automat richtig ;

δ:{(s0,a,k0)−>(s0.ako);
(s0,b,a)−>(s0,ba)
(s0,a,b)−>(s0,ab)
(s0,b,b)−>(s1,λ)
(s1,a,a)−>(s1,λ)
(s1,λ,k0)−>(se, k0)}
lösung
...