Übung Basismodul Computerlinguistik

Hausaufgabe 06

02.12.21

Freiwillige Abgabe als .py-Datei (bei mehreren Dateien als .zip komprimiert) an e.nie@campus.lmu.de bis 09.12.2021.

1. Aufgabe

In dieser Aufgabe soll das vollständige Traversieren durch einen Automat geübt werden. Dieses wird wichtige werden, wenn für das Perfekte Hashing die Zustands- und Labelzahlen berechnet werden müssen.

a) Beschaffe dir zuerst eine Automat-Klasse. Hierbei kannst du die Automate-Klassen aus den vorherigen Hausaufgaben verwenden. Das kann ein herkömmlicher Automat wie in Hausaufgabe 03 sein, oder ein Lexikonautomat, wie aus der 5. Hausaufgabe.

b) Erweitere den Automaten um eine Methode language(self), die alle akzeptierten Wörter des Automaten mittels return als Liste oder Set zurückgibt, oder diese Liste mittels yield als Generator generiert. Wenn Du einen Lexikon-Automaten verwendest, dann sollen die Wörter in alphabetischer Reihenfolge ausgegeben werden.

c) Teste deine Methode, indem Du einen Beispielautomaten erzeugst und die Sprache ausgeben lässt.