03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

308 15 Programmierung von Suchverfahren<br />

Das durchgeführte Suchverfahren läßt sich insgesamt wie folgt beschreiben:<br />

Ham<br />

Nachfolger-Sammler:<br />

m1. m 1. m 1.<br />

a) (Ham)<br />

b) (Koe Ful Ber)<br />

.<br />

.<br />

Koe<br />

. .<br />

Ful<br />

. .<br />

Ber<br />

c) (Kar Mai Mue Dre)<br />

m2. m 2. m 2. m 2.<br />

.<br />

.<br />

.<br />

.<br />

. .<br />

. .<br />

Kar<br />

Mai<br />

Mue<br />

Dre<br />

Hinweis: In dem Graphen haben wir durch die eingekreisten Nummern die Reihenfolge<br />

gekennzeichnet, in der die möglichen Nachfolger bestimmt werden.<br />

ˆ Bei diesem Suchverfahren wird ein gerichteter Graph – als Suchgraph – aufgebaut,<br />

der aus Knoten besteht, die durch gerichtete Kanten miteinander verbunden<br />

sind. Jede Kante legt die Nachfolgerbeziehung zwischen zwei Knoten<br />

fest.<br />

Ein Knoten ohne Vorgänger – wie in diesem Fall “Ham” – wird Startknoten (Wurzelknoten)<br />

genannt. Ein direkter Nachfolger wird als “Knoten 1. Grades” bezeichnet,<br />

ein direkter Nachfolger eines Knotens 1. Grades als “Knoten 2. Grades”, usw. Ein<br />

Knoten, der einen Zielzustand – wie z.B. der Knoten “Mue” – beschreibt, wird<br />

Zielknoten genannt. Die Lösung des Suchverfahrens entspricht einem Weg, der den<br />

Startknoten mit dem Zielknoten verbindet. Um von einem Knoten die zugehörigen<br />

Nachfolgerknoten zu erhalten, muß der Knoten expandiert werden, d.h. zur jeweiligen<br />

Station sind die zugehörigen direkten Nachfolgerstationen zu bestimmen.<br />

Hinweis: Da in diesem Netz jeder Knoten – mit Ausnahme des Abfahrtsortes – einen<br />

Vorgängerknoten hat, wird der Suchgraph auch Baum genannt.<br />

Iterative Lösung von PROB-11<br />

Im Hinblick auf den oben als Struktogramm angegebenen Lösungsplan vereinbaren<br />

wir in der Klasse “Suchverfahren” die Methode “alleNachfolger:” wie folgt:<br />

alleNachfolger: sammlerVonStationen<br />

| nachfolgerSammler |<br />

nachfolgerSammler := OrderedCollection new.<br />

sammlerVonStationen do: [:einObjekt|<br />

nachfolgerSammler addAll: einObjekt bereitstellenDirektverbindung].<br />

∧ nachfolgerSammler<br />

Die Methoden “verbindungIter:” und “verbindung:iter:” vereinbaren wir in der<br />

Form

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!