Kellerautomat: doppelt soviele a's wie b's?
2004-01-30 10:12
Sleepy
Hi!
Bin beim Googlen auf Euer Forum gestoßen und ich muss sagen, das scheint eine ziemlich coole Angelegenheit zu sein. Ich studiere in Bremen, aber ich hoffe mal es ist trotzdem in Ordnung wenn ich Euch eine kurze Frage stelle.
In einer Übung sollen wir einen Kellerautomaten bauen, der folgende Sprache erkennt:
L = {w element {a,b}* | w enthält doppelt so viele a's wie b's}
Mit zwei Gruppen haben wir gestern darüber nachgedacht wie man diesen Automaten am besten baut. Das ganze hat etwa zwei Stunden gedauert (Ganz schön nervig, wenn die Kommunikation dabei nur aus "er liest ein a (b) schreibt ein a (nix) in den Stack und geht über zu …" besteht) und dazu geführt, dass wir einen Automaten mit 5 Zuständen und 17 Übergängen hatten. Gestern Abend habe ich dann mal etwas herumgesucht und ein Programm (JFLAP) gefunden mit dem ich testen konnte, ob es funktioniert. Dabei stellte ich dann fest, dass "baa" und "aba" erkannt wurden, "aab" allerdings zum Beispiel überhaupt nicht.
Das kann eigentlich alles nicht so kompliziert sein, wie wir uns das gemacht haben, aber mir fehlt irgendwie der zündende Gedanke, wie man da am schlausten vorgeht.
Falls mir da jemand einen kleinen Tipp geben könnte, würde ich mich sehr freuen.
Bin beim Googlen auf Euer Forum gestoßen und ich muss sagen, das scheint eine ziemlich coole Angelegenheit zu sein. Ich studiere in Bremen, aber ich hoffe mal es ist trotzdem in Ordnung wenn ich Euch eine kurze Frage stelle.
In einer Übung sollen wir einen Kellerautomaten bauen, der folgende Sprache erkennt:
L = {w element {a,b}* | w enthält doppelt so viele a's wie b's}
Mit zwei Gruppen haben wir gestern darüber nachgedacht wie man diesen Automaten am besten baut. Das ganze hat etwa zwei Stunden gedauert (Ganz schön nervig, wenn die Kommunikation dabei nur aus "er liest ein a (b) schreibt ein a (nix) in den Stack und geht über zu …" besteht) und dazu geführt, dass wir einen Automaten mit 5 Zuständen und 17 Übergängen hatten. Gestern Abend habe ich dann mal etwas herumgesucht und ein Programm (JFLAP) gefunden mit dem ich testen konnte, ob es funktioniert. Dabei stellte ich dann fest, dass "baa" und "aba" erkannt wurden, "aab" allerdings zum Beispiel überhaupt nicht.
Das kann eigentlich alles nicht so kompliziert sein, wie wir uns das gemacht haben, aber mir fehlt irgendwie der zündende Gedanke, wie man da am schlausten vorgeht.
Falls mir da jemand einen kleinen Tipp geben könnte, würde ich mich sehr freuen.