Wie löst man diese Aufgabe in Informatik?
Hi,
Im Unterricht haben wir mit theoretischer Informatik und endlichen Automaten begonnen. Mein Lehrer hat uns ein Beispiel mit einem Lachautomaten gezeigt, bei dem aber nur ha/haha/hahaha/... ausgegeben werden kann. Dann hat er uns die Aufgabe gegeben, dass wir diesen Automaten so umgestalten/ erweitern sollen, damit er zusätzlich auch hi/hihi/hihihi/... und ho/hoho/hohoho/... ausgeben kann. Wir hatten keine Zeit mehr und nur einer hat es oberflächlich an die Tafel gemalt... als ich dann nachgefragt habe, konnte es mir selbst der Lehrer nicht erklären. Um es zu verstehen möchte ich die Aufgabe aber lösen, habe aber noch nicht mal einen Ansatz. Kann mir jemand helfen? Und geht das überhaupt? Es soll doch ein endlicher Automat sein. es ist auch ein Bild von der Lachmaschine bei der Aufgabe soll das Ausrufezeichen aber nicht Teil des Eingabealphabets sein.
Schonmal Danke, wenn mir jemand helfen kann!!!
PS das ist KEINE (!) Hausaufgabe

2 Antworten
Ich würde den Automat so lösen.
Am Anfang wird entschieden welche Wortverlängerung (ho,hi,ha) genommen wird. Diese (und nur diese) kann anschließend immer wieder hinter das Wort gepackt werden um den akzeptierenden Zustand zu erreichen.

Hi :)
Also erst mal, dein Automat sieht für mich ziemlich falsch aus.
Den Teil nach "q1" bräuchte es eigentlich nicht (q0 wäre dann der Endzustand).
Aber zur Frage :
Da eine Mischung ala "hahiho" nicht erlaubt ist, müsste man einfach eine verzweigung machen. also einen Zustand für a, einen für o, usw.
Dementsprechend müsste man dann eine Schleife machen
Das mit dem leeren Wort ist nur ein Nebeneffekt. Weniger Zustände machen das ganze aber effektiver und man blickt schneller durch
warum "ziemlich falsch"... der von dir vorgeschlagene Automat ist halt einfach anders, weil er zusätzlich zu unterschiedlich langem Lachen auch noch Schweigen (leeres Wort) akzeptieren würde. Davon steht aber nirgends was.
Und das "!" wäre dann auch nicht mit drin.