contents previous up next
Previous: Tasks Up: Kontrollmechanismen Next: Analyse- oder Parsingstrategien

Agenden und Suchstrategien

In der bisherigen Beschreibung der aktiven Chart-Analyse wurde kein Algorithmus definiert, sondern ein Algorithmenschema. Die Reihenfolge, in der verschiedene Tasks ausgeführt werden (z. B. Einfügen neuer Kanten in die Chart oder Bearbeiten von Paaren aktiver und inaktiver Kanten entsprechend der fundamentalen Regel (siehe S. gif)), wurde noch nicht festgelegt. Erst durch die Angabe einer Auswahlreihenfolge für den jeweils nächsten zu bearbeitenden Task, die die Suchstrategie im Raum der Alternativen bestimmt, wird die Beschreibung zu einem Algorithmus. Als Suchstrategien können die klassischen Varianten ,, Tiefe-Zuerst-Suche'' und ,,Breite-Zuerst-Suche'' verwendet werden, aber auch eine Suchstrategie, die gewisse Eigenschaften der Alternativen zur Bewertung heranzieht, ist denkbar, wie z. B. die ,,Beste-Zuerst-Strategie''.

Eine einmal gewählte Suchstrategie muß nicht während des gesamten Analyseverfahrens beibehalten werden, sondern kann durchaus gewechselt werden.

Die Breite-Zuerst-Suchstrategie hat im Compilerbau einige Erfolge erzielen können. Daher wird sie auch häufig für den kontextfreien Teil der Chart-Analyse verwendet. Es ist jedoch hervorzuheben, daß man unabhängig von der gewählten Suchstrategie immer dieselben Resultate erzielt. Dies gilt selbst dann, wenn die Suchstrategie während der Analyse gewechselt wurde. Lediglich die Reihenfolge, in der Teilergebnisse erzielt werden, kann sich ändern. Voraussetzung dafür ist, daß keine der verwendeten Suchstrategien die Agenda modifizieren darf, indem sie Tasks löscht und damit ihre Ausführung verhindert, und daß die Analyse erst dann abgeschlossen ist, wenn die Agenda keine Tasks mehr enthält.

Sucht man alle möglichen grammatikalischen Zerlegungen eines Satzes, ist es allerdings wesentlich produktiver, den Suchraum selbst genauer zu betrachten als einzelne Suchstrategien zu untersuchen, da verschiedene Suchstrategien lediglich unterschiedliche Numerierungen des Suchraums liefern. [MCP87]