der entwurf und die realisierung eines a*-verfahrens zur lösung des frachtoptimierungsproblems

12
OR Spektrum (1990) 12:207-218 ORSpektmm Springer-Verlag 1990 Der Entwurf und die Realisierung eines A*-Verfahrens zur LSsung des Frachtoptimierungsproblems Herbert Kopfer Freie Universit~tBerlin, FachbereichWirtschaftswissenschaften, LehrgebietWirtschaftsinformatik, Corrensplatz2, D-1000 Berlin 33 Eingegangenam 21. Dezember 1988 / In revidierterForm angenommen am 1. Dezember 1989 Zusammenfassung. Gegenstand des Beitrags ist die Ent- wicklung eines A*-Verfahrens zur LSsung des Frachtopti- mierungsproblems. Der Beitrag schildert einerseits die zentralen Entwurfsentscheidungen, die zur Entwicklung eines A*-Verfahrens getroffen werden mt~ssen, und pr~i- sentiert andrerseits ein konkretes A*-Verfahren zur Frachtoptimierung. Das Frachtoptimierungsverfahren wird vorgestellt, indem die Ergebnisse der Entwurfsent- scheidungen ft~rdieses Verfahren beschrieben werden. Die zentralen Entwurfsentscheidungen bestehen in der Defini- tion eines Zustandsraums, der Formulierung einer heuri- stischen Funktion und in einer eventuell zus~itzlichen problemspezifischen Modifikation der Operatoren des Zustandsraums. Das entwickelte Verfahren dient gleich- zeitig zur exakten und suboptimierenden L6sung des Frachtoptimierungsproblems. Summary. Subject of this paper is the development of an A* algorithm for the minimization of freight charged in the area of commercial road transportation. The paper describes the most important decisions for the design of an A* algorithm, and presents a concrete algorithm for the above problem. The presented algorithm is described by a specification of the results of the design decisions. The most important design decisions are the definition of a state space, of a heuristic function, and of some problem- specific modifications of the operators of the state space. The developed algorithm can be used for the exact and the approximate optimization of the given problem. 1. Einleitung Methoden der Kt~nstlichen Intelligenz (KI) werden in zunehmendem MaBe auch auf Problemstellungen aus dem Bereich des Operations Research (OR) angewendet. Zu den am h~iufigsten verwendeten Methoden gehSren die KI-Sprachen (z. B. Lisp und Prolog), Techniken zur Wissensrepr~isentation (z. B. in Expertensystemen) und die KI-Suchmethoden. Gegenstand dieses Artikels ist die Verwendung von KI-Suchmethoden zur Entwicklung eines L6sungsverfahrens fiir ein konkretes kombinatori- sches Optimierungsproblem: Es wird ein Graphensuch- verfahren (vgl. z. B. [14]) zur Optimierung der Frachtko- sten im gewerblichen Gt~terfernverkehr vorgestellt. Das entwickelte Verfahren stellt eine Alternative zu den mit klassischen OR-Methoden entwickelten Frachtoptimie- rungsverfahren dar. Die Optimierung der Frachtkosten im gewerblichen Gtiterfernverkehr wird nachfolgend als Frachtoptimie- rungsproblem (FOP) bezeichnet. Das FOP ist ein Umla- deproblem mit inhomogenen Gt~tern, wobei die Kosten- funktion durch die RKT-Frachtfunktion definiert ist. Da die Zielfunktion als Summe von Frachtfunktionen nicht- konkav und nichtkonvex ist, handelt es sich bei dem FOP um ein Transportproblem, dessen LSsungsaufwand h6her ist als z.B. der LSsungsaufwand des NP-vollst~indigen Fixkosten-Umladeproblems (vgl. [5]). Zur praxisgerech- ten L6sung des FOP miissen kleine Problemstellungen (bis zu 70rte) exakt optimiert werden, w~ihrend ft~r gr6Bere Probleme sehr gute suboptimale L6sungen ermit- telt werden mfissen. Die Verwendung yon KI-Graphen- suchverfahren scheint besonders vielversprechend zu sein, da diese Verfahren in gleicher Weise mit nur einer einzigen Implementierung sowohl ft~r die exakte Optimierung als auch ft~r die effiziente suboptimierende L6sung yon Problemstellungen geeignet sind. Zur L6sung des FOP wurden bereits mehrere Verfah- renstypen verwendet. Die bisher entwickelten Verfahren 16sen das FOP mehr oder weniger zufriedenstellend. Die meisten dieser Verfahren betrachten eine vereinfachte Problemstellung mit homogenen Gfitern und mit der Einschr~inkung, dab nur eine einzige Tarifart verwendet werden darf. Daher sind sie nicht ohne weiteres mit dem hier vorgestellten Verfahren vergleichbar. Im einzelnen handelt es sich um folgende Verfahren bzw. Verfahrens- typen: -gemischt-ganzzahlige Optimierung und L6sung mit dem Optimierungssystem APEX III (vgl. [7]), - Branch-and-Bound-Verfahren (vgl. [3] und [8]),

Upload: herbert-kopfer

Post on 10-Jul-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

OR Spektrum (1990) 12:207-218 ORSpektmm �9 Springer-Verlag 1990

Der Entwurf und die Realisierung eines A*-Verfahrens zur LSsung des Frachtoptimierungsproblems Herbert Kopfer Freie Universit~t Berlin, Fachbereich Wirtschaftswissenschaften, Lehrgebiet Wirtschaftsinformatik, Corrensplatz 2, D-1000 Berlin 33

Eingegangen am 21. Dezember 1988 / In revidierter Form angenommen am 1. Dezember 1989

Zusammenfassung. Gegenstand des Beitrags ist die Ent- wicklung eines A*-Verfahrens zur LSsung des Frachtopti- mierungsproblems. Der Beitrag schildert einerseits die zentralen Entwurfsentscheidungen, die zur Entwicklung eines A*-Verfahrens getroffen werden mt~ssen, und pr~i- sentiert andrerseits ein konkretes A*-Verfahren zur Frachtoptimierung. Das Frachtoptimierungsverfahren wird vorgestellt, indem die Ergebnisse der Entwurfsent- scheidungen ft~r dieses Verfahren beschrieben werden. Die zentralen Entwurfsentscheidungen bestehen in der Defini- tion eines Zustandsraums, der Formulierung einer heuri- stischen Funktion und in einer eventuell zus~itzlichen problemspezifischen Modifikation der Operatoren des Zustandsraums. Das entwickelte Verfahren dient gleich- zeitig zur exakten und suboptimierenden L6sung des Frachtoptimierungsproblems.

Summary. Subject of this paper is the development of an A* algorithm for the minimization of freight charged in the area of commercial road transportation. The paper describes the most important decisions for the design of an A* algorithm, and presents a concrete algorithm for the above problem. The presented algorithm is described by a specification of the results of the design decisions. The most important design decisions are the definition of a state space, of a heuristic function, and of some problem- specific modifications of the operators of the state space. The developed algorithm can be used for the exact and the approximate optimization of the given problem.

1. Einleitung

Methoden der Kt~nstlichen Intelligenz (KI) werden in zunehmendem MaBe auch auf Problemstellungen aus dem Bereich des Operations Research (OR) angewendet. Zu den am h~iufigsten verwendeten Methoden gehSren die KI-Sprachen (z. B. Lisp und Prolog), Techniken zur Wissensrepr~isentation (z. B. in Expertensystemen) und die KI-Suchmethoden. Gegenstand dieses Artikels ist die

Verwendung von KI-Suchmethoden zur Entwicklung eines L6sungsverfahrens fiir ein konkretes kombinatori- sches Optimierungsproblem: Es wird ein Graphensuch- verfahren (vgl. z. B. [14]) zur Optimierung der Frachtko- sten im gewerblichen Gt~terfernverkehr vorgestellt. Das entwickelte Verfahren stellt eine Alternative zu den mit klassischen OR-Methoden entwickelten Frachtoptimie- rungsverfahren dar.

Die Optimierung der Frachtkosten im gewerblichen Gtiterfernverkehr wird nachfolgend als Frachtoptimie- rungsproblem (FOP) bezeichnet. Das FOP ist ein Umla- deproblem mit inhomogenen Gt~tern, wobei die Kosten- funktion durch die RKT-Frachtfunktion definiert ist. Da die Zielfunktion als Summe von Frachtfunktionen nicht- konkav und nichtkonvex ist, handelt es sich bei dem FOP um ein Transportproblem, dessen LSsungsaufwand h6her ist als z.B. der LSsungsaufwand des NP-vollst~indigen Fixkosten-Umladeproblems (vgl. [5]). Zur praxisgerech- ten L6sung des FOP miissen kleine Problemstellungen (bis zu 7 0 r t e ) exakt optimiert werden, w~ihrend ft~r gr6Bere Probleme sehr gute suboptimale L6sungen ermit- telt werden mfissen. Die Verwendung yon KI-Graphen- suchverfahren scheint besonders vielversprechend zu sein, da diese Verfahren in gleicher Weise mit nur einer einzigen Implementierung sowohl ft~r die exakte Optimierung als auch ft~r die effiziente suboptimierende L6sung yon Problemstellungen geeignet sind.

Zur L6sung des FOP wurden bereits mehrere Verfah- renstypen verwendet. Die bisher entwickelten Verfahren 16sen das FOP mehr oder weniger zufriedenstellend. Die meisten dieser Verfahren betrachten eine vereinfachte Problemstellung mit homogenen Gfitern und mit der Einschr~inkung, dab nur eine einzige Tarifart verwendet werden darf. Daher sind sie nicht ohne weiteres mit dem hier vorgestellten Verfahren vergleichbar. Im einzelnen handelt es sich um folgende Verfahren bzw. Verfahrens- typen:

-gemischt-ganzzahlige Optimierung und L6sung mit dem Optimierungssystem APEX III (vgl. [7]), - Branch-and-Bound-Verfahren (vgl. [3] und [8]),

Page 2: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

208 H. Kopfer: A*-Verfahren zur Frachtoptimierung

- Konstruktions- und Verbesserungsverfahren gem/ig der klassischen Morphologie heuristischer Verfahren (vgl. [9], [11], [12]).

Suchverfahren aus dem Bereich der KI wurden bislang noch nicht auf das FOP angewendet. Bei diesen Verfahren handelt es sich urn informierte ,,Best-First" Suchstrate- gien, deren bekanntesten Vertreter A* und AO* sind (vgl. [13], [14], [15]). Das Suchverfahren A* operiert auf Graphen, die einen Zustandsraum repr~isentieren, und AO* ist ein Suchverfahren ffir zerlegbare Problemstellun- gen, die in einern Und-Oder-Graphen darstellbar sind. Da ffir Problemstellungen mit mehreren Beladeorten und mehreren Tarifarten eine geeignete Zerlegung des FOP in unabh~ingige Teilproblerne nicht ohne andersweitige ent- scheidende Nachteile gefunden werden konnte, wird nachfolgend nur fiber die Erprobung des Verfahrenstyps A* berichtet. Dabei werden gleichzeitig generelle Hinwei- se zum Entwurf und zur Implernentierung von A*- Verfahren gegeben. Die Hinweise beruhen auf Erfahrun- gen, die beim Entwurf von Suchverfahren fiir Optimie- rungsprobleme in rnehreren Anwendungsbereichen ge- sammelt werden konnten.

Im Kap. 2 wird die Problemstellung der Frachtopti- mierung vorgestellt. Die Verfahrensklasse A* ist Gegen- stand des Kap. 3. Kapitel 4 enth~ilt die Beschreibung eines A*-Verfahrens zur Frachtoptimierung. Die Be- schreibung des Verfahrens orientiert sich an dem Ablauf der Aktivit~iten, die beim Entwurf eines Graphensuch- verfahrens anfallen. Das abschlieBende Kap. 5 enth~ilt einige SchluBbernerkungen zurn Entwurf von Graphen- suchverfahren.

2. Problemstellung

Der gewerbliche Gfiterfernverkehr ist durch eine Vielzahl von Gesetzen und Verordnungen geregelt. Insbesondere ist die Fracht als Entgelt far den Gatertransport nach den Bestimmungen des Reichskraftwagentarifs (RKT) zu be- rechnen. Der RKT legt die H6chst-/Mindestentgelte far eine Bef6rderungsleistung fest. Er darf also in keiner Weise unterschritten werden. Die Kosten ffir die Durch- ffihrung eines Bef6rderungsauftrages werden sendungs- weise berechnet. Unter einer Sendung ist hierbei eine Menge von Einzelgiitern zu verstehen, die gemeinsam mit einern LKW zwischen zwei Orten transportiert werden. Die Fracht einer Sendung ist bis auf eine eventuell zu beracksichtigende Marge eindeutig festgelegt. Freiheits- grade bei der Berechnung der Frachtkosten entstehen, wenn der mit einem LKW durchzufahrende Bef6rde- rungsauftrag mehrere Teilauftr~ige umfagt. Insgesamt sind dann bei der Abwicklung des Bef6rderungsauftrages mehrere Beladeorte und/oder Entladeorte zu berficksich- tigen. In solchen F~illen erlauben die Tarifvorschriften die Sendungsgestaltung so vorzunehmen, dab sich eine mini- male Gesamtfracht ergibt. Mit Sendungsgestaltung ist dabei die Festlegung yon Sendungen (d. h. Gfitertranspor- ten) gemeint, und zwar derart, dab alle Teilauftrgge erffillt werden. Die der Berechnung der Frachtkosten einer Sendung zugrundeliegenden Tarif-Formeln weisen eine

starke Kostendegression bei steigender Transportmenge und zunehmender Entfernung auf. Daher wird dutch das Zusammenlegen von Teilauftr/igen auf gemeinsame Transportwege in vielen FNlen eine erhebliche Kostener- sparnis erzielt. Es sei betont, dab der Tarif lediglich die Berechnung der Frachtkosten regelt, nicht aber die Durchffihrung des physischen Transports.

Im einzelnen mug die Sendungsgestaltung eines Bef6r- derungsauftrages nach den folgenden Regeln vorgenom- men werden:

(1) Sendungen darfen nur zwischen Beladeorten und/ oder Entladeorten von Teilauftrfigen definiert werden; d.h. das Einfahren imaginfirer Belade- oder Entladeorte ist nicht erlaubt. (2) Die Gfiter der Teilauftr:ige mfissen fiber die durch die Sendungen definierten Transportverbindungen von ihren Beladeorten zu ihren Entladeorten gelangen. (3) Die zu transportierenden Gfiter einer Sendung beste- hen aus den Gatern aller Teilauftr/ige, die fiber den Transportweg der Sendung abgerechnet werden. (4) Ffir jeden Teilauftrag existieren Sendungen derart, dab der Transport der Gater des Teilauftrages von dem Beladeort zu dem Entladeort des Teilauftrages durchge- ffihrt werden kann.

Bei formaler Betrachtung erweist sich das FOP als ein Umladeproblem mit nichtlinearer Zielfunktion und inhomo- genen Giitern. Die Beladeorte stellen die Angebotsknoten des Umladeproblems dar, und die Nachfrageknoten erge- ben sich aus den Entladeorten des FOP. Da es sich bei dem FOP um ein Problem mit inhomogenen Gatern handelt, genfigt es nicht, ffir alle Knoten der Problemstellung entsprechende Mengenbilanzen (im homogenen Sinne) zu erffillen, sondern es muB sichergestellt werden, dag s~mt- liche Gfiter von ihren Beladeorten fiber zu realisierende Transportverbindungen zu ihren Bestimmungsorten ge- langen.

Die Zielfunktion des FOP ergibt sich durch Anwen- dung der Berechnungsvorschriften des RKT. Der Ziel- funktionswert einer LSsung entspricht den Frachtkosten der entsprechenden Sendungsgestaltung und besteht aus der Summe der Frachtkosten der festgelegten Sendungen. Die Frachtkosten einer einzelnen Sendung h~ingen ab yon der Entfernung der beteiligten Orte, der zu bef6rdernden Transportmenge und der Art der zu bef6rdernden Gfiter. Durch das Zusammenlegen von Teilauftr~igen entstehen u. U. Sendungsgestaltungen, welche vorsehen, dab Gfiter unterschiedlicher Arten gemeinsam mit einer Sendung bef6rdert werden. Far die Berechnung der Frachtkosten von Sendungen mit unterschiedlich tarifierten Gfitern gelten besondere Vorschriften: Es werden die Frachtko- sten far die Bef6rderung der Giiter einer speziellen Gfiterart anteilig zu dem Tarif ffir das Gesamtgewicht s~imtlicher Gfiter der Sendung berechnet, und anschlie- gend werden die Frachtkosten far alle auftretenden Gfiterarten addiert. Aufgrund der speziellen Struktur der RKT-Frachtfunktion kann durch eine Erh6hung des Gesamtgewichts der Sendung eventuell eine Reduzierung der Frachtkosten erzielt werden. In diesem Fall mug das Gewicht far diejenige Gfiterart erhSht werden, die ohne-

Page 3: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

H. Kopfer: A*-Verfahren zur Frachtoptimierung 209

1600

1200

L L

= 800

u -

400

1000 5000

I I

I

10000

Gewichfs- 3328 8096 11899 grenzen:

i i

15000

[ 1 I

' 20000 ' 25;00 Gewichf x [kg]

18155 2209/+ 23778

Abb. 1. Angenfiherte Rkt-Frachtfunktion fiir 350 km und Klasse A/B

hin das gr6gte Gewicht unter allen an der Sendung beteiligten Gi]terarten aufweist.

Die RKT-Frachtkosten werden nicht ft~r das tats~ichli- che Gewicht, sondern ffir das sogenannte frachtpflichtige Gewicht einer Sendung berechnet. Das frachtpflichtige Gewicht stellt einen diskretisierten Wert dar, der als Repr~isentant seines Gewichtsintervalls ffir die Frachtbe- rechnung zugrunde gelegt wird. Daher besitzt die RKT- Funktion in Abh~ingigkeit von dem Gewicht die Form einer Treppenfunktion. Durch die Vernachl~issigung der Diskretisierung der Gewichte erhglt man eine approxi- mierte Frachtfunktion mit einem stfickweise linearen Verlauf. In der Abb. 1 ist der Verlauf der approximierten Frachtfunktion ffir eine Entfernung von 350 km und die Gt~terart A/B dargestellt. Die Frachtfunktion aus Abb. 1 besteht abwechselnd aus einem linear ansteigenden Ko- stenbereich und einem konstanten Kostenbereich. Da eine Erh6hung des Gewichts nicht zu einer Verminderung der Frachtkosten ft~hren sol1, mug die Frachtfunktion mono- ton wachsend sein, und somit ergeben sich die konstanten Kostenbereiche der RKT-Funktion. In den linear anstei- genden Kostenbereichen werden die Frachtkosten FKs nach folgender Vorschrift berechnet:

FKs = (a + e * b) * C *g/100 + c,

wobei: a , b -

e -

C _

g -

C -

Entfernungs- und teilweise gewichtsabhgngiger Parameter, Frachtsatzbildende Entfernung in km, ergibt sich durch Diskretisierung der tatsfichlichen Entfer- nung, Parameter fftr die Giiterart und die Gewichtsklas- se~

Frachtpflichtiges Gewicht in kg, ergibt sich durch Diskretisierung des tats~ichlichen Gewichts, Konstanter Frachtbetrag.

Als Beispiel zur Frachtoptimierung wird abschliel~end eine Problemstellung mit zwei Beladeorten und vier Entlade- orten vorgestellt. Die beiden Beladeorte der Problemstel-

( 1600 (A/B)

/--11319 (AJB, / 106o . (AJB,

/ ~ 0 (F)

~3150(F )

a) Tei[auffr~ge b) opfima[e LiSsung

Abb. 2. Teilauftrfige u n d L 6 s u n g eines Beispiels mi t vier Or t en

lung sind Siegen (S) und Kreuztal (Kr), die Entladeorte sind Bremen (B), Oldenburg (O), Kiel (Ki) und Wilhelms- haven (W). Von dem Beladeort Kr ftihrt ein Teilauftrag zu dem Entladeort O. Dieser Teilauftrag sieht die Bef6rde- rung yon GtRern der Gfiterart F mit einem Gewicht von 3150 kg vor. Von dem Beladeort S ft~hren drei Teilauftr~ige zu anderen Often. Der erste Teilauftrag besteht in der Bef6rderung von 11319kg der Gt~terart A/B zu dem Entladeort B; der zweite Teilauftrag in der Bef6rderung yon 1600 kg zu dem Ort W und der dritte Teilauftrag in der Bef6rderung von 3614kg zu dem Ort Ki. Die vier Teilauftrfige der Problemstellung sind in der Abb. 2 graphisch dargestellt. Im Teil b) der Abbildung befindet sich die Struktur der optimalen L6sung des BeispMs: Es wird eine Sendung mit 3150 kg der Gi]terart F von dem Beladeort Kr nach dem Beladeort S bef6rdert. Die zu transportierenden Grater der Sendung yon S nach B bestehen aus 16533 kg der Gt~terart A/B und 3150 kg der Gt~terart E Die weiteren Sendungen der optimalen L6- sung des Beispiels k6nnen dem L6sungsgraphen in Abb. 2 entnommen werden.

Page 4: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

210 H. Kopfer: A*-Verfahren zur Frachtoptimierung

3. Die Verfahrensklasse A*

In diesem Kapitel wird der prinzipielle Verfahrensablauf des A*-Algorithmus vorgestellt. Zur Konkretisierung des Verfahrensablaufs wird das Prinzip der gestuften Suche eingeft~hrt. Anschliegend wird erl/iutert, welche wesentli- chen Entwurfsentscheidungen zur Entwicklung eines A*- Verfahrens getroffen werden mt~ssen. SchlieBlich wird der Zusammenhang der A*-Verfahren mit entscheidungs- theoretischen L6sungsverfahren betrachtet.

3.1 Prinzipielle Vorgehensweise

Der Verfahrensklasse A* liegt ein Zustandsraum zugrun- de, der durch einen Suchgraphen dargestellt wird. Die Knoten des Suchgraphen repr/isentieren die Zustfinde des Zustandsraumes, und eine gerichtete Kante zwischen zwei Knoten entspricht dem Ubergang zwischen zwei Zustgn- den. Jeder Zustandstibergang ist mit Kosten verbunden. Zur Quantifizierung dieser Kosten gibt es eine Ubergangs- Kostenfunktion c, wobei c(n, n') die Kosten der Kante yon dem Knoten n zu dem Knoten n' bezeichnet. Der Knoten n' wird Nachfolgeknoten von n genannt, und der entspre- chende Zustand heiBt Folgezustand des Zustands n. Zust/inde, die keine Folgezust~inde besitzen, werden als Zielzust/inde bezeichnet und als B1/itter des Suchgraphen repr/isentiert. Der implizite Zustandsraum, bestehend aus allen zul~issigen Zust~inden und allen ZustandsOberg/in- gen, wird rekursiv definiert und ergibt sich wie folgt: Ausgehend von dem Startknoten s (Anfangszustand) werden repetetiv fur alle bereits erzeugten Knoten (er- reichten Zust/inde) s/imtliche Nachfolgeknoten (Folgezu- stgnde) generiert. Zustandsr~iume, denen reale Problem- stellungen zugrundeliegen, besitzen i. a. so viele Zust/inde, dab aus Effizienzgrt~nden nur ein kleiner Teil des Zu- standsraums explizit untersucht werden kann.

Der kleinste Schritt bei der Graphensuche ist die Generierung eines Knotens; d.h. die Erzeugung und Speicherung eines neuen Knotens durch Anwendung einer Operation auf einen bereits vorhandenen Knoten. Ein Knoten heigt generiert, wenn sein entsprechender Zustand wfthrend des Verfahrensablaufes bereits erzeugt und gespeichert wurde. Ein Knoten heiBt expandiert, wenn alle seine Nachfolgeknoten bereits generiert wur- den. Die Expansion eines Knotens ist also die Operation, die in der Generierung aller Nachfolger des Knotens besteht. Generierte, aber noch nicht expandierte Knoten werden als offene Knoten bezeichnet.

Verfahren vom Typ A* benutzen eine ,,Best-First- Strategie", um einen kostengt~nstigsten Weg von dem Startknoten s zu einem aufgrund der Problemstellung spezifizierten Zielknoten z zu finden. Damit bei der Suche nach einem solchen Weg m6glichst wenig Knoten gene- riert werden miissen, verwenden die Verfahren eine Bewer- tungsfunktion, die fiir jeden Knoten die Vorteilhaftigkeit der Expansion des Knotens absch~itzt. Die Bewertungs- funktion f(n) besteht aus der Summe der Zustands- Kostenfunktion g(n) und der heuristischen h-Funktion h(n). Die Funktion g(n) erfagt die Kosten, die bis zum Erreichen des aktuellen Zustandes n bereits entstanden

sind. Sie entspricht den Kosten des gt~nstigsten bisher konstruierten Pfades von dem Startknoten s zu dem Knoten n. Die h-Funktion h(n) betrachtet die Kosten, die vom Zustand n bis zum Erreichen eines Zielzustandes voraussichtlich noch entstehen werden. Sie ist eine Schfit- zung der Kosten eines optimalen Pfades von dem Knoten n zu einem Zielknoten z. Prinzipiell beruht die Best-First- Strategie auf dem folgenden Verfahrensschritt:

- Unter allen offenen Knoten mug derjenige Knoten n ausgew~ihlt werden, der die beste Bewertungf(n) aufweist. Falls n nicht einem Zielzustand entspricht, wird n expan- diert, und somit werden neue zus/itzliche Knoten gene- riert.

Zu Verfahrensbeginn ist nur der Startknoten s vorhanden. Der obige Schritt wird solange wiederholt, bis entweder ein Zielknoten zur Expansion ausgew~ihlt wird oder bis keine offenen Knoten mehr vorhanden sind. Im ersten Fall entspricht der zuletzt ausgew~ihlte Knoten der ge- suchten L6sung. Im zweiten Fall beinhaltet der Zustands- raum keinen zul~issigen Zielzustand. Eine Beschreibung der wesentlichen Verfahrensschritte wird nachfolgend angegeben. Dabei werden die offenen Knoten in der OPEN-Liste und die expandierten Knoten in der CLO- SED-Liste verwaltet.

Der A*-Algorithmus (1) Speichere den Startknoten s in der Open-Liste. (2) Falls die Open-Liste leer ist, beende das Verfahren mit

einer Fehlermeldung, da kein Zielzustand existiert. (3)W~ihle einen Knoten n aus der Open-Liste, der einen

minimalen f-Wert aufweist. Entferne diesen Knoten aus der Open-Liste, und speichere ihn in der Closed- Liste.

(4)Falls n ein Zielknoten ist, beende das Verfahren. Die von dem Verfahren ermittelte L6sung erh/ilt man, indem man die zuvor in Schritt (5) angelegten Zeiger von n aus bis zu dem Startknoten s zurt~ckverfolgt.

(5) Falls n kein Zielknoten ist, expandiere n. Verknt~pfe mit jedem der generierten Nachfolger einen Zeiger, der zurt~ck zu dem expandierten Knoten n zeigt. Behandle jeden der generierten Nachfolger n' nach dem folgen- den Schema: a. Falls n' sich weder in der Open- noch in der Closed-

Liste befindet, ermittle h(n'), und berechne f(n') =g(n') + h(n'), wobei g(n') = g(n) + c(n, n') und g(s) = O.

b. Falls n' sich bereits in der Open-Liste oder in der Closed-Liste befindet, so arrangiere die Zeiger entlang des Pfades yon n' zu dem Startort s derart, dag g(n') einen minimalen Wert erhglt.

c. Falls fiirn' in dem vorhergehenden Schritt (5)b. eine Korrektur der Zeiger vorgenommen werden mugte und n' bereits in Closed abgelegt worden war, so entferne den Knoten n' aus der Closed-Liste und speichere ihn erneut in der Open-Liste.

(6) Gehe zu Schritt (2).

Ein A*-Algorihmus ist exakt optimierend, wenn die heuristische h-Funktion die folgende Ungleichung fiir alle

Page 5: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

H. Kopfer: A*-Verfahren zur Frachtoptimierung 211

Knoten n des Suchgraphen erft~llt (vgl. [13], [14]): h(n) < h*(n).

Dabei bezeichnet h*(n) fiir jeden Knoten n die Kosten eines optimalen Pfades von n zu einem Zielknoten. Eine h- Funktion, welche die obige Ungleichung erft~llt, heiBt zuliissig. Ein A*-Verfahren mit einer zul~issigen h-Funk- tion wird ebenfalls als zul~issig bezeichnet. Wenn die h- Funktion eines Verfahrens unzulgssig ist, so ermittelt das Verfahren LSsungen, die je nach G~ite der h-Funktion mehr oder weniger stark vom Optimum abweichen.

3.2. Prinzip der gestuften Suche

Die Verwendbarkeit exakter Optimierungsverfahren wird durch den ben6tigten Rechenzeitaufwand und den verffig- baren Speicherplatz stark eingeschr~inkt. Die Implemen- tation eines A*-Verfahrens kann nicht eine beliebig groge Anzahl von Knoten verwalten. Daher wird nachfolgend das Prinzip der gestuften Suche eingeft~hrt (vgl.[14]). Wenn die maximale Anzahl der in der Open- oder Closed- Liste speicherbaren Zustfinde erreicht ist, werden in der Open-Liste eine vorher zu definierende Anzahl von Kno- ten mit den besten f-Werten markiert. AnschlieBend werden in der Open-Liste nut noch die markierten Knoten bewahrt und in der Closed-Liste nur doch die Knoten gespeichert, die innerhalb des generierten Suchgraphen auf einem Pfad von einem markierten Knoten zu dem Startknoten s liegen. Auf diese Weise wird frei verfagbarer Speicherplatz geschaffen. Die mit einem gestuften zul~issi- gen A*-Verfahren ermittelte L6sung ist natiirlich nur dann garantiert exakt, wenn wfihrend des Verfahrensab- laufs das Markieren und L6schen von Knoten nicht erforderlich wurde. Ein A*-Verfahren mit gestufter Suche ist also exakt optimierend bis zu einer gewissen Problem- gr6ge und suboptimierend f/ir Problemstellungen ober- halb dieser ProblemgrSge. Der Ubergang von der exakten zur suboptimalen Optimierung erfolgt, wenn der L6- sungsaufwand, gemessen an der Anzahl der generierten Knoten, ein vorgegebenes Mag fiberschreitet.

Die Stufung der Suche bewirkt eine Besehriinkung des Zustandsraums, indem nur noch der meist versprechend- ste Teilbaum des explizit generierten Suchgraphen be- wahrt wird. Dutch Festlegung der Anzahl der speicherba- ren Zust~inde kann das L6sungsverhalten des Verfahrens beeinfluBt werden. Je mehr Knoten gespeichert werden k6nnen, um so h6her ist einerseits der Rechenzeitaufwand und um so besser ist andrerseits die L6sungsqualitM des Verfahrens. Durch die Variation der Anzahl der speicher- baren Knoten und der Anzahl der bei einer Stufung zu bewahrenden Knoten kann das Verfahren nach erfolgter Implementation im nachhinein eingestellt werden, um einen KompromiB zwischen L6sungsqualit/it und L6- sungsaufwand zu erzielen.

3.3. Entwurfsentscheidungen bei der Verfahrensentwicklung

Durch die Beschreibung des impliziten Suchgraphen und die Angabe einer Bewertungsfunktionf(n) sind diefunk- tionalen Aspekte eines Verfahrens vollst/indig spezifiziert;

d.h. der logische Ablauf eines konkreten A*-Verfahrens f~ir eine spezielle Problemstellung ist grunds~itzlich festge- legt. Die zentralen Entwurfsentscheidungen bei der Ent- wicklung eines A*-Verfahrens bestehen in der Definition des Zustandsraumes und der Bewertungsfunktion. Alle weiteren Entwurfsentscheidungen beziehen sich auf nach- gelagerte Aspekte der Realisierung des Verfahrens.

Die Definition des Zustandsraumes entspricht der Mo- dellierung einer Problemstellung durch Abbildung auf einen Suchgraphen. Ublicherweise bieten sich mehrere alternative Suchgraphen ft~r die Modellierung eines Pro- blems an. Bei der Auswahl eines Suchgraphen muB bert~cksichtigt werden, dab die M6glichkeiten zur Formu- lierung und Auswertung heuristischen Wissens von der Beschaffenheit des verwendeten Suchgraphen abhangen. Ferner sind der Verzweigungsfaktor des Graphen und die Komplexit~it der Operatoren fiir das LSsungsverhalten von Bedeutung. Zur Beschreibung des Zustandsraums eines Verfahrens sind folgende Angaben erforderlich.

Meta-Beschreibung yon Zustiinden: Sie dient als Grundlage ft~r die Definition von Zust~inden. Die Meta-Beschreibung legt eindeutig fest, wodurch ein Zustand charakterisiert ist bzw. welche Informationen zur Beschreibung eines Zu- standes ben6tigt werden.

Definition des Anfangszustandes: Sie beschreibt den bei Verfahrensbeginn vorliegenden Zustand. Dadurch wird der Startknoten s des Suchgraphen charakterisiert.

Definition der Operatoren: Durch die Anwendung eines Operators auf einen Zustand wird ein neuer Zustand erzeugt. Die Beschreibung der Operatoren, deren Anwen- dung auf Zust~inde gestattet ist, liefert gemeinsam mit der Festlegung des Anfangszustandes eine Vorschrift f~r die Erzeugung des Zustandsraums.

Charakterisierung yon Zielzustiinden: Sie spezifiziert die Eigenschaften, die von Zielzust/inden des Zustandsraums erfiillt sein mt~ssen.

Definition der Kostenfunktion c: Die Kostenfunction c ordnet jeder Kante des Suchgraphen eine positive reelle Zahl zu. e(n, n') bezeichnet die Kosten der Anwendung eines Operators, der einen dem Knoten n entsprechenden Zustand in einen dem Knoten n' entsprechenden Zustand t~berffihrt.

Die Bewertungsfunktionf besteht aus der Kostenfunktion g.. und der Schgtzfunktion h. Die Funktion gist durch die Ubergangskostenfunktion c(n, n') bereits eindeutig festge- legt. Denn g(n) entspricht der Summe der Kosten aller Kanten eines Pfades P, falls P ein kostengtinstigster Pfad aus der Menge aller bisher konstruierten Pfade von s nach n ist. Zur Beschreibung eines A*-Verfahrens mug also auBer der Definition des Zustandsraums lediglich eine Vorschrift zur Berechnung der h-Funktion angegeben werden. W~ihlt man eine h-Funktion mit h(n)= 0 ffir alle Knoten n, so besteht die Bewertungsfunktion nur aus der Zustandskostenfunktion g, d.h. f = g . In diesem Fall erhNt man ein Verfahren ohne vorausschauende Bewer- tung der Knoten. Solche Verfahren werden uniforme Kostenprozedur genannt. Uniforme Kostenprozeduren

Page 6: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

212 H. Kopfer: A*-Verfahren zur Frachtoptimierung

sind uniformiert, da sie problemspezifisches heuristisches Wissen nicht ausnutzen. Wegen des enorm hohen L6- sungsaufwandes sind sie meist nicht zur Optimierung praktischer Problemstellungen geeignet.

Heuristisches Wissen kann zwecks exaktheitsbewah- render Beschleunigung mit Hilfe von zwei sich erg/inzen- den Techniken bert~cksichtigt werden. Die erste Technik besteht in der Verwendung einer zul~issigen h-Funktion. Die zweite Technik besteht in der Modifikation der Operatoren des Zustandsraumes aufgrund problemspezi- fischen Wissens derart, dab m6glichst wenige Nachfolge- zust~tnde erzeugt werden. Far beide Techniken gilt, dab ein KompromiB angestrebt werden muB zwischen dem von einer Heuristik zus/itzlich verursachten Aufwand und dem Nutzen der Heuristik. Der Nutzen einer Heuristik besteht darin, dab die Anzahl der zu expandierenden Knoten verringert wird. Da die h-Funktion ffir jeden generierten Knoten erneut berechnet werden mug, ist der Aufwand, den die Berechnung eines h-Wertes verursacht, von entscheidender Bedeutung ftir den gesamten L6- sungsaufwand. Ebenso verh/ilt es sich bei den Operatoren; sie werden bei jeder Expansion eines Knotens einmal angewendet. Intelligente Operatoren erkennen in gewis- sen Situationen spezielle Knoten, die nicht zu optimalen Pfaden fiihren k6nnen, und vermeiden daher ihre Gene- rierung. Es wird jedoch ffir jeden zu expandierenden Knoten ein zus~itzlicher Aufwand verursacht. Insgesamt empfiehlt es sich, einen Trade-off zwischen dem pro Knoten zu leistenden Aufwand und der Anzahl der zu generierenden Knoten anzustreben, mit dem Ziel, den gesamten Aufwand zur Ausffihrung des A*-Verfahrens m6glichst gering zu halten.

3.4. Zusammenhang mit entscheidungstheoretischen Verfahren

Im folgenden wird der Zusammenhang von Suchverfah- ren aus der Kiinstlichen Intelligenz (A*- und AO*- Verfahren) mit entscheidungstheoretischen Verfahren der impliziten Enumeration (begrenzte Enumeration, Branch-and-Bound Verfahren, Dynamische Optimie- rung) er6rtert. Alle hier betrachteten Verfahren fi~hren eine unidirektionale Suche auf Zustandsr~iumen durch. Verfahren der Dynamischen Optimierung beginnen mit der L6sung von Einzelproblemen, die unter Ausnutzung des Optimalitfitsprinzips durch Zerlegung einer Problem- stellung entstehen (bottom-up Methode). Die iibrigen Verfahrenstypen starten mit dem Anfangszustand und suchen eine L6sung durch fortw/ihrende Anwendung yon Transformationsoperatoren auf zuvor erreichte Zust~inde (top-down Methode). Zur Repr~isentation von Problem- stellungen werden ein Ausgangszustand und eine endliche Menge von Operatoren definiert, welche darauf abzielen, gegebene Objekte in eine gesuchte LSsung zu transformie- ren. Verfahren vom Typ AO* benutzen zus/itzlich das Prinzip der Problemreduktion. Problemreduktion ist eine L6sungsmethode, die aus der Partitionierung eines Pro- blems in unabhgngige Unterprobleme, dem L6sen der Unterprobleme und der Kombination der L6sungen der Unterprobleme zu einer L6sung des ursprt~nglichen Pro-

blems besteht. Die Methode der Problemreduktion ist rekursiv; dies bedeutet, dab die entstehenden Unterpro- bleme ihrerseits wieder durch Problemreduktion gelSst werden kSnnen.

A*- und AO*-Verfahren kSnnen als generalisierte Branch-and-Bound Verfahren betrachtet werden. Ein Modell zur einheitlichen Beschreibung von Suchverfahren aus der Kfinstlichen Intelligenz und entscheidungstheore- tischen L6sungsverfahren befindet sich in [10]. Unter- schiede zwischen L6sungsmethoden der Entscheidungs- theorie und der Kiinstlichen Intelligenz existieren zumeist bezt~glich der Sichtweise, die der Repr/isentation von Problemstellungen zugrunde liegt (vgl. [11]).

- Verfahren der impliziten Enumeration beruhen auf dem Paradigma des Verzweigens und Beschriinkens (split and prune). Die betrachteten Zust/inde repr/isentieren L6- sungsmengen, wobei die LSsungsmenge des Ausgangszu- stands alle L6sungen einer Problemstellung enthglt. Das Prinzip des Verzweigens besteht darin, dab die Transfor- mationsoperatoren ein zu 16sendes Problem derart in eine Anzahl von Teilprobleme zerlegen, dab jedes dieser Teilprobleme eine geringere Anzahl potentieller L6sun- gen besitzt als das zerlegte Problem. Das Prinzip des Beschr~inkens besteht darin, Zust/inde von dem LSsungs- prozess auszuschliegen (auszuloten). Ein Zustand wird ausgelotet, falls aufgrund irgendwelcher Kriterien er- kannt werden kann, dab seine L6sungsmenge keine gesuchte L6sung enth/ilt. - Im Bereich der Kiinstlichen Intelligenz und insbesonde- re zur Definition von Zustandsr/iumen ftir A*-Verfahren verwendet man meistens das Paradigma des Generierens und Testens (generate and test). Man betrachtet den Verfahrensablauf nicht als einen Verzweigungsprozess, bei dem Elemente aus zuvor definierten L6sungsmengen eliminiert werden, sondern als einen Generierungspro- zess, bei dem st/indig neue Objekte als Bestandteil einer gesuchten LSsung kreiert werden. Zust/inde entstehen durch Anwendung einer Folge yon Transformationsope- ratoren auf den Anfangszustand und stellen teilweise konstruierte L6sungen dar. Jeder Zustand definiert ein Restproblem, das durch Anwendung weiterer Operatoren gel6st werden mug.

Im folgenden skizieren wir einige Unterschiede zwischen A*-Verfahren und typischen entscheidungstheoretischen Branch-and-Bound Verfahren (B&B-Verfahren).

-Darstellung des Zustandsraums durch Graphen: Der Zustandsraum eines B&B-Verfahren wird iiblicherweise mit Hilfe eines Entscheidungsbaums dargestellt. Der Verzweigungsprozess ist in diesem Fall so organisiert, dab jeder Knoten des Entscheidungsbaums h6chstens einen Vorg/inger besitzt. Aus Griinden der Effizienz ist es empfehlenswert, dab die L6sungsmengen der Nachfolger eines Knotens des Entscheidungsbaums disjunkt sind. Im Gegensatz dazu ist es bei A*-Verfahren durchaus tiblich, dag verschiedene Folgen der Anwendung von Operatoren zu gleichen Zustgnden ftihren. Aus diesem Grund besitzt der Suchgraph eines A*-Verfahren i. a. nicht die Struktur eines Baums, sondern die eines allgemeinen gerichteten Graphen, welcher dadurch entsteht, dab gleiche Restpro-

Page 7: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

H. Kopfer: A*-Verfahren zur Frachtoptimierung 213

bleme erkannt und gegebenenfalls nur einmal gel6st werden.

Allerdings k6nnen auch bei dem Verzweigungsprozess eines B &B-Verfahrens unterschiedliche Knoten mit iden- tischen Zust~inden auftreten und durch Identifizierung der entsprechenden Teilprobleme ausgelotet werden. Dies wird als Beschrfinkung durch Dominanz bezeichnet (vgl. [6]). Man beachte, dab die Identifizierung gleicher Zu- st~inde zwar die wiederholte L6sung gleicher Probleme vermeidet, gleichzeitig aber einen zus~tzlichen Aufwand verursacht. - Strategie zur Auswahl eines Knotens: Der Verfahrensa- blauf eines Transformationsverfahrens wird wesentlich bestimmt v o n d e r Auswahl des Knotens, der durch Anwendung von Operatoren verzweigt bzw. expandiert werden soll. Im Zusammenhang mit B&B-Verfahren verwendet man eine von mehreren alternativen Auswahl- regeln; z.B. die Last-In-First-Out Regel (Tiefensuche), die First-In-First-Out Regel (Breitensuche) oder die Mini- mal-Lower-Bound Regel (Bestensuche). Bei A*-Verfah- ren wird im Gegensatz dazu grunds~itzlich die Strategie der Bestensuche verwendet. - Beschriinkung des L6sungsprozesses durch Bounds: Im Verlaufe eines B &B-Verfahrens werden alle Knoten aus- gelotet, deren Lower Bound (im Fall der Minimierung) gr6ger ist als die Kosten der besten bisher gefundenen L6sung. Die Bestimmung eines Lower Bounds entspricht der im Zusammenhang mit A*-Verfahren vorzunehmen- den Bewertung eines Knotens. Bei A*-Verfahren k6nnen Knoten nicht aufgrund eines Vergleichs mit der bisher besten L6sung ausgelotet werden, da die erste vollst~indig generierte L6sung i.a. die gesuchte optimale L6sung darstellt.

Far einen Vergleich des L6sungsverhaltens eines A*- Verfahrens mit dem L6sungsverhalten anderer Suchver- fahren ist die Beschaffenheit der h-Funktion von Bedeu- tung. Eine h-Funktion heigt konsistent, falls die Unglei- chung h(n) < c(n, n') + h(n') fiJr alle Kanten des Suchgra- phen (n, n') erftillt ist. Dabei bezeichnen c die Kostenfunk- tion far die Bewertung der Kanten des Suchgraphen und n' einen direkten Nachfolger des Knotens n.

Ein Verfahren der Bestensuche mit konsistenter h- Funktion dominiert alle anderen exakten Transforma- tionsverfahren, die auf dem gleichen Zustandsraum ope- rieren und die gleiche heuristische Information verwenden (vgl. [2]). Dies bedeutet, dag ein konsistentes A*-Verfah- ren (abgesehen von einer kleinen Menge von Knoten mit h(n) = h*(n)) im Vergleich zu anderen Verfahrensstrate- gien (z. B. Tiefensuche) eine minimale Anzahl von Knoten expandiert. Andererseits entsteht bei A*-Verfahren ein zus~itzlicher Aufwand durch die Verwaltung der Open- und der Closed-Liste.

4. Entwurf eines konkreten Verfahrens zur Frachtoptimierung

Mehrere alternative Problemrepr~sentationen und Ver- fahrensversionen zur Frachtoptimierung wurden unter- sucht. Nachfolgend wird die fiir die Implementierung

eines Verfahrens ausgew~ihlte Version vorgestellt. Die Definition des Zustandsraumes befindet sich in Kap. 4.1. Die Formulierung und die Verwertung problemspezifi- schen heuristischen Wissens werden in Kap. 4.2 behan- delt. Aspekte der Realisierung des Verfahrens sind Gegen- stand des Kap. 4.3.

4.1 Definition des Zustandsraums

Jeder Ort des FOP besitzt eine Ortsnummer, und jeder Teilauftrag wird durch eine Teilauftragsnummer gekenn- zeichnet. Fiir jeden Teilauftrag sind der Beladeort und der Entladeort des Teilauftrages bekannt. Teilauftr~ige, deren Giiter im Laufe des Verfahrens noch nicht an ihrem Bestimmungsort angelangt sind, werden als unerledigt bezeichnet.

Meta-Beschreibung: Fiir jeden Ort der Problemstellung werden die unerledigten Teilauftr~ige angegeben, deren Giiter sich wfihrend des aktuellen Zustandes in dem betreffenden Ort befinden. Fiir Orte, in denen sich keine Giiter unerledigter (d. h. weiterzutransportierender) Teil- auftr~ige befinden, braucht keine Angabe zu erfolgen.

Anfangszustand: Der zu Beginn des Verfahrens vorliegen- de Zustand resultiert aus der Problemstellung und ist dadurch gekennzeichnet, dab die Giiter aller Teilauftr~ige noch in ihrem Beladeort verweilen. Zur Beschreibung des Anfangszustandes werden far jeden Beladeort die Teilauf- tr~ige aufgezfihlt, die den betreffenden Ort als Beladeort besitzen.

Operatoren: Tg sei der unerledigte Teilauftrag, der das h6chste Gewicht aufweist. Der Ort, in dem die Giiter von Tg gem~ig dem Zustand des Knotens n verweilen, werde als Startort bezeichnet. Die Anwendung eines Operators bewirkt, dag die Giiter des Teilauftrages Tg von dem Startort zu einem anderen Ort, dem sogenannten Zielort des Operators, versendet werden. Als Zielort zul~issig sind alle Orte, in denen sich die Giiter des Teilauftrags Tg w~ihrend eines friiheren Zustandes noch nicht befunden haben. Dadurch wird verhindert, dag bei dem Transport von Teilauftr~igen Zyklen entstehen.

Die Operatoren des Zustandsraums bewirken nicht nur eine Bef6rderung des ausgewghlten Teilauftrags Tg, sondern u. U. auch die Bef6rderung weiterer Teilauftr~ige. Ein unerledigter Teilauftrag Tu, der mit Tg einen gemein- samen Beladeort besitzt und dessen Entladeort mit dem ausgewghlten Zielort tibereinstimmt, kann in einer opti- malen L6sung nur fiber den fiir Tg festgelegten Transport- weg TW yon seinem Beladeort zu seinem Entladeort gelangen. Denn anderenfalls erh~Ut man eine Sendungsge- staltung mit zwei alternativen Transportpfaden, die die gleichen Start- und Endknoten besitzen. Dies kann auf- grund der Degression der Kostenfunktion nicht optimal sein. Um den Teilauftrag Tu im weiteren Verlauf des Verfahrens nicht gesondert erledigen zu mtissen, wird Tu von dem fiir Tg anzuwendenden Operator erledigt. Dies geschieht, indem Tu von seinem Beladeort zu seinem Entladeort bef6rdert wird und alle Sendungen auf dem Transporteg TW um den Teilauftrag Tu erg~nzt werden.

Page 8: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

214 H. Kopfer: A*-Verfahren zur Frachtoptimierung

1:2> 1:2>4

n6 l l ~ 4 l:Ii6 :: II: >

nlO n11~ ~n12

�9 o,5 l

n15 1:1>4 (11:1> 4)

n12 n16 n? ~n8 ~n9

i~n14 1 ~ 2 ~ 1~ ~ n14 n8 11:2>4

I n16 1,2 n9

nll

a) Suchgraph b) L6sungen Abb. 3. Suchgraph und L6sungen ftir zwei Be- und zwei Entladeorte

Tu wird in diesem Fall als miterledigter Teilauftrag des fiir Tg anzuwendenden Operators bezeichnet.

Zielzustiinde: Die Zielzustgnde des Zustandsraums sind dadurch gekennzeichnet, dab die Giiter aller Teilauftr~ge in ihren Entladeorten angelangt sind. In einem Zielzu- stand des FOP sind alle Teilauftrgge erledigt.

Kostenfunktion c: Die Kostenfunktion ergibt sich aus der RKT-Frachtfunktion. Die Kosten eines Zustandes Z sind definiert durch die Frachtkosten aller Sendungen, die ausgehend von dem Anfangszustand durch die Anwen- dung von Operatoren bis zum Erreichen des aktuellen Zustandes Z festgelegt wurden. Die Kostenfunktion c(n, n') besteht also aus der Differenz der Kosten des dem Knoten n entsprechenden Zustandes und der Kosten des dem Knoten n' entsprechenden Zustandes.

Abbildung 3 beschreibt den vollstgndigen Suchgraphen far eine kleine Problemstellung mit zwei Beladeorten und zwei Entladeorten. Die Beladeorte werden mit 1 und 2 bezeichnet, und die Entladeorte mit 3 und 4. Die Teilauf- tr~ge werden durch die r6mischen Ziffern I und II gekennzeichnet. Der Teilauftrag I fiihrt von 1 nach 2, und der Teilauftrag II von 2 nach 4. Zur Beschreibung der Operatoren wurde folgende Notation benutzt. I : l > 2 bedeutet, dab der Teilauftrag I von dem Ort 1 zu dem Ort 2 gesendet wird. Ein Zusatz in Klammern zeigt an, dab ein weiterer Teilauftrag bei der Anwendung des Operators miterledigt wurde.

4.2. Problemspezifisches heuristisehes Wissen

Heuristisches Wissen kann einerseits zur exaktheitsbe- wahrenden Beschleunigung von A*-Verfahren dienen und

andererseits zum Entwurf suboptimierender Verfahren. Hier werden prim~ir exaktheitsbewahrende Heuristiken betrachtet. Einige Hinweise zu suboptimierenden Modifi- kationen der Heuristiken folgen abschliegend.

4.2.1. Bestimmung einer heuristischen Funktion. Bei dem Entwurf einer zul~issigen h-Funktion sollten die folgen- den, teils konkurrierenden Anforderungen berticksichtigt werden: h sollte so grog wie m6glich (jedoch kleiner als h*) sein, damit m6glichst wenig Knoten generiert werden; andererseits sollte die Ermittlung des Funktionswertes h(n) m6glichst wenig Aufwand verursachen. Es empfiehlt sich, mehrere h-Funktionen zu definieren, zu evaluieren und eine besonders geeignet erscheinende Funktion aus- zuw~ihlen. Zum Entwurf von zul/issigen h-Funktionen bieten sich grunds~ttzlich zwei bewahrte Vorgehensweisen an:

- die Relaxation des durch einen Knoten definierten Restproblems und L6sung des relaxierten Problems; die optimale L6sung des relaxierten Problems des Knotens n liefert den Wert fiar h (n), - die Verwendung einer angenaherten Zielfunktion, wel- che eine untere Abschatzung der urspriinglichen Zielfunk- tion darstellt; die angenaherte Zielfunktion sollte bedeu- tend einfacher zu handhaben sein als die ursprtingliche Zielfunktion.

Ftir das entwickelte A*-Verfahren zur Frachtoptimierung wurde eine h-Funktion durch eine untere Abschiitzung der Frachtkosten entworfen. Es werden zwei F/ille unterschie- den: Erstens die Absch~itzung der Frachtkosten ftir Trans- portverbindungen, auf denen im aktuellen Zustand noch kein Transport stattfindet, und zweitens fiar Transportver- bindungen, auf denen bereits bestimmte Teilauftr~ge

Page 9: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

H. Kopfer: A*-Verfahren zur Frachtoptimierung 215

g g

Kf 4 - -

Kc r e

i a_

RKT- Frachtfunkl-ion

I

Sg Xm {3ewichf

Abb. 4. Verlauf der SchMzfunktionen Kij und Cij. Xm bezeichnet das ftir den Weft von y maggebliche Mindestgewicht

festgelegt wurden. Im ersten Fall bezeichne Cij(n, x) die Frachtkosten-Sch/~tzfunktion des Knotens n fur den Transport yon Gftern mit dem Gewicht x von dem Ort i zu dem Ort j. Wenn im zweiten Fall bereits Teilauftdi- ge mit dem Gewicht y giber die Verbindung (i, j) trans- portiert werden, so bezeichne die Schgtzfunktion K/j(n, x) die Kosten for die Zunahme des bereits transportier- ten Gewichts y um den Betrag x. Die Sch~itzfunktionen Cij und Kij sollen lineare Funktionen der Variablen x sein mit den Proportionalit/itsfaktoren c und k, wobei c und k die fur eine Untersch~itzung der Frachtkosten maximalen Werte annehmen. (FUr die nachfolgend ver- wendeten Symbole vgl. Abb. 4.) Cij braucht nur in dem Gewichtsintervall von 0 kg bis zu der Summe Sg der Gewicht aller unerledigten Teilauftr~ige definiert wer- den, und Kij nur fur Gewichtswerte oberhalb des Ge- wichts y. Zur Bestimmung von c werden die beiden Frachtfunktionswerte (0 und Kc) der Extrempunkte (0 und Sg) des maggeblichen Intervalls verwendet. FUr k werden die Kosten Kf der auf der Verbindung (i,j) bereits festgelegten Transporte und der Funktionswert fur die Mindestgewichte der RKT-Funktion betrachtet. Der Verlauf der Sch/itzfunktionen ist in Abb. 4 darge- stellt.

Der Wert der h-Funktion eines Knotens setzt sich zusammen aus den beiden Summanden hi und h2. Der erste Summand hi ist eine untere Absch/itzung der Fracht- kosten, die fur den Transport des Teilauftrages Tg zu seinem Bestimmungsort noch anfallen werden. Der zweite Summand h2 ist eine untere Absch~itzung der Kosten fur die Erledigung der fbrigen noch unerledigten Teilauftrfi- ge.

Berechnung von h 1. Tg bezeichne den Teilauftrag, der aufgrund des h6chsten Gewichts bei der Expansion des Vorg/~ngers des Knotens n gew~ihlt wurde. Der Wert von hl berechnet sich zu hi(n) = Cij(n,x), wobei x die Entlademenge von Tg,j den Entladeort von Tg und i den bei der Generierung von n verwendeten Zielort bezeich- net.

Berechnung yon h 2. Die Gfter unerledigter Teilauftr/ige befinden sich noch in ihren Beladeorten. Sie k6nnen fber eine Folge TVi (i = 1 , . . . , n) von Transportverbindungen zu ihren Entladeorten gelangen. Bei der Verwendung der Sch~itzfunktionen Cij und Kij ergeben sich die Kosten fur die Erledigung eines Teilauftrages Tj zu: (cl + ... + c,) * Gj, wobei ci den proportionalen Kostenzuwachs auf der T r a n s p o r t v e r b i n d u n g TVi bezeichnet und Gj das Gewicht

des Teilauftrages Tj. Eine einfach zu berechnende untere Schranke h2 ffr die Erledigung aller unerledigten Teilauf- tr/~ge erhfilt man wie folgt: Der proportionale Kostenzu- wachs der Transportverbindungen wird als Distanz zwi- schen den jeweils beteiligten Orten aufgefa6t. Es bezeich- ne dj(n) ffr jeden Teilauftrag T/den entsprechend diesem Entfernungsbegriff k0rzesten Weg von seinem Beladeort zu seinem Entladeort. Dann besteht h 2 aus der Summe der Produkte d/(n) * Gj fur alle unerledigten Teilauftr/ige. FOr h2 gilt also: h2(n) = ~ dj(n) * Gj.

4.2.2. Modifikation der Operatoren. Zur Beschleunigung des Verfahrens wurden die Operatoren um Regeln mit Wenn-Dann Beziehungen erweitert. Die Regeln spezifizie- ren Bedingungen, die ft~r die Generierung eines Knotens erffllt sein mfssen, oder aber umgekehrt Bedingungen, welche bei der Generierung eines Knotens nicht erffllt sein d~irfen. Die Anwendung solcher Regeln f0hrt zu einer Beschneidung des Suchbaumes. Wenn das Beschneiden des Baumes (beweisbar) nichts an dem Resultat der Suche /indert, hei6t die entsprechende Modifikation exaktheits- bewahrend. Anderenfalls handelt es sich um eine subopti- mierende Modifikation.

Der Entwurf und die Verifikation exaktheitsbewahren- der Modifikationen erweist sich in vielen FNlen als schwierig. Ferner haben exaktheitsbewahrende Regeln oftmals zur Folge, da6 die Operatoren sehr komplizierte Situationen erkennen und komplexe Bedingungen aus- werten m0ssen. Daher mug immer 0berprfift werden, ob der Nutzen einer Modifikation auch tats/ichlich gr66er ist als der eventuell zusatzlich verursachte Aufwand.

Die Regeln, die zur Modifikation der Operatoren des Frachtoptimierungsverfahrens benutzt werden, verrin- gern die Menge der Zielorte, zu denen der ausgew/ihlte Teilauftrag Tg versendet werden daft. Dadurch wird der Suchbaum des Verfahrens beschnitten. Die folgenden drei Bedingungen wurden for eine Modifikation des Frachtop- timierungsverfahrens verwendet:

(1) FUr einen Ort i bezeichne din(i) die minimale Entfer- hung von i zu allen anderen Orten der Problemstellung. Wenn dm(i) gr613er ist als die Entfernung von Startort zu dem Entladeort von Tg, dann kann der Ort i nicht als Zielort gew/~hlt werden. Dies trifft vielfach dann zu, wenn der Startort ein Entladeort ist, der sehr nahe bei dem Entladeort yon Tg liegt. (2) Wenn die Summe der Gewichte aller unerledigten Teilauftrfige geringer als 3000 kg ist, wird jeder unerledig-

Page 10: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

216 H. Kopfer: A*-Verfahren zur Frachtoptimierung

te Teilauftrag direkt zu seinem Entladeort versendet. Diese Regel ist in dem linearen Verlauf (abgesehen von kleinen konstanten Stufen) der RKT-Frachtfunktion bis zu einem Gewicht von 3 Tonnen begriandet und wird bier aufgefiihrt, da durch konstante Stufen eventuell auftre- tende Abweichungen yon Optimum sehr gering sin& (3) Entladeorte, zu denen bereits ein Teilauftrag Ta von einem von Startort verschiedenen Ort versendet wurde, k6nnen nicht als Zielort gew~ihlt werden, wenn Ta den gleichen Beladeort besitzt wie der aktuell schwerste Teil- auftrag Tg.

Regeln zur suboptimierenden Modifikation von Operato- ren eines Zustandsraums wurden im Zusammenhang mit A*-Verfahren bisher nur selten angewendet, obwohl sie ein wirkungsvolles Mittel sind, um problemspezifisches Wissen eines in dem Anwendungsgebiet des Verfahrens bewanderten Spezialisten zu berticksichtigen. Bei der Verwendung suboptimierender Regeln ist jedoch eine gewisse Vorsicht geboten, und deshalb sollte man die Auswirkungen suboptimierender Modifikationen auf die L6sungsqualit/it eines Verfahrens sorgf/iltig analysieren und empirisch evaluieren. Suboptimierende Modifikatio- nen sind besonders fiir die kombinierte Verwendung mit unzul/issigen h-Funktionen geeignet. Die nachfolgenden Beispiele nicht exaktheitsbewahrender Regeln k6nnen ftir eine weitergehende Modifikation des Algorithmus zu einem suboptimierenden Verfahren benutzt werden:

(4) Wenn die Entfernung yon einem Ort i zu dem Entladeort von Tg gr6ger ist als die Entfernung von dem Startort zu dem Entladeort von Tg, dann soll der Ort i nicht als Zielort gew/ihlt werden. (5) Wenn das Gewicht des Teilauftrages Tg mehr als 4000kg betr/igt, soll Tg nicht zu Zielorten versendet werden, an denen weniger als 1000 kg entladen werden miissen. (6) Wenn der vom Startort am weitesten entfernte Ort gleichzeitig die geringste Entlademenge aufweist, soll dieser Ort nicht als Zielort gew/ihlt werden. (7) Falls die Kosten fiar die Bef6rderung des Teilauftrages Tg von Startort zu dem Entladeort yon Tg geringer sind als die Frachtkosten fiir das Versenden aller iibrigen unerledigten Teilauftrgge von Startort zu einem der Entladeorte E der iibrigen unerledigten Teilauftrage, so soll der Entladeort E nicht als Zielort gew/ihlt werden.

4.3. Verfahrensrealisierung

Gegenstand der nachfolgenden Ausfiihrungen sind die Realisierung von A*-Verfahren und die damit verbunde- nen Implementationsentscheidungen. AuBerdem wird die Realisierung und das L6sungsverhalten des vorgestellten Frachtoptimierungsverfahrens betrachtet.

Identifikation der hiiufig auszufiihrenden Teile des Algorith- mus. Ein Programm, welches ein Verfahren der Bestensu- che realisiert, enth~ilt nur wenige besonders ,,performan- ce-kritische" Bereiche. Das Leistungsverhalten des imple- mentierten Verfahrens wird haupts~ichlich yon der Effi- zienz dieser Bereiche beeinfluBt. Die performance-kriti-

schen Bereiche miissen identifiziert werden, damit die entsprechenden Teile des Programms besonders effizient gestaltet werden. Bei dem A*-Verfahren zur Frachtopti- mierung bestehen diese Bereiche aus

- der Berechnung von Frachtkosten, - der Bestimmung der Proportionalit/itsfaktoren c und k und - der Bestimmung minimaler Wege bei der Berechnung eines Wertes der h-Funktion.

Ferner wirken sich die verwendeten Mechanismen fiar die Abspeicherung und das Wiederfinden von Knoten auf das L6sungsverhalten aus.

Information fi~r die Darstellung von Knoten. Die Meta- Beschreibung des Zustandsraums legt fest, welche Infor- mationen zur Identifizierung eines Knotens erforderlich sind. Meistens werden yon den Operatoren des Zustands- raums weitere Informationen ben6tigt.Ferner braucht man zus~itzliche Information, um die Vorg~inger yon Knoten ermitteln und um eine Bewertung der Knoten vornehmen zu kSnnen (g-Funktion, h-Funktion, Auswer- tung von Regeln). Einerseits ist es mSglich, in den Knoten alle ben6tigten Informationen bereit zu stellen; anderer- seits kann man sich damit begniigen, nur fiir den Verfah- rensablauf unbedingt erforderliche Informationen in den Knoten abzuspeichern. Zur Beschreibung eines Knotens n werden in dem zweiten Fall lediglich die Anderungen gespeichert, die sich durch Anwendung des bei der Generierung von n verwendeten Transformationsopera- tors auf einen entsprechenden Vorg/ingerknoten von n ergeben. Zus~itzlich ben6tigte Information muB durch die Auswertung des Pfades von dem betreffenden Knoten zu dem Startknoten s hergeleitet werden. Dies verursacht fiar jeden Knoten einen zus~itzlichen Aufwand, dem eine Ersparnis an Speicherplatz gegeniaber steht. Durch eine Entscheidung fiber die in den Knoten bereitzustellenden Informationen ist es also m6glich, einen Trade-off zwi- schen Speicherplatzbedarf und Rechenzeitaufwand zu erzielen. Hierbei sollten gleichzeitig die gewiinschte An- zahl der speicherbaren Knoten und der damit verbundene EinfluB auf die LSsungsqualit~it beachtet werden.

Bei dem A*-Verfahren zur Frachtoptimierung werden zur Beschreibung eines Knotens die folgenden Informa- tionen gespeichert: die jeweiligen Ortsnummern des Start- ortes und des Zielortes, die Teilauftragsnummer des aktuell zu erledigenden Teilauftrages Tg, die Teilauftrags- nummer eines eventuell miterledigten Teilauftrages Tu und der Wert der Bewertungsfunktionf

Datenstrukturen fiir die Speicherung von Knoten. Jeder generierte und noch nicht durch eine Stufung entfernte Knoten besitzt einen Eintrag in der Open-Liste oder in der Closed-Liste. Die Elemente dieser Listen werden durch die Datenstrukturen der Knoten beschrieben. Die Daten- strukturen ergeben sich aus der Forderung, dab sie alle in einem Knoten bereitzustellenden Informationen enthal- ten mtissen und aus weiteren implementationsspezifischen Gesichtspunkten. So kann es durchaus gtinstiger sein, nur eine Liste ftir alle generierten Knoten anstatt gesonderter Open- und Closed-Listen zu verwalten. Erst aufgrund

Page 11: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

H. Kopfer: A*-Verfahren zur Frachtoptimierung 217

der Datenstrukturen kann man definitiv ermitteln, wieviel Platz die Speicherung eines Knotens in Anspurch nimmt und wieviel Knoten bei der Ausft~hrung des Verfahrens gleichzeitig speicherbar sind.

Liste zur Speicherung von Knoten. In der Open-Liste und der Closed-Liste mt~ssen st~indig neue Elemente gespei- chert und bestimmte Elemente wiedergefunden werden. Die Organisation der Listen ist daher von entscheidender Bedeutung fiir die Effizienz des Verfahrens. Es empfiehlt sich, sowohl die Open-Liste als auch die Closed-Liste dynamisch zu organisieren, und die Vorggnger-Beziehung der Knoten durch Zeiger auf die dynamisch erzeugten Datenobjekte zu realisieren.

Die Implementierung eines zul/issigen A*-Verfahrens zur Frachtoptimierung wurde auf einem Atari-System 520ST§ unter Verwendung der Programmiersprache Pas- cal vorgenommen. Das Verfahren sollte auf einem IBM/ PC mit 640 KB Hauptspeicher portiert werden und auf diesem Rechner innerhalb einer Minute ausffihrbar sein. Deshalb wurde das Verfahren so eingestellt, dab maximal 600 Knoten in der Open-Liste gespeichert werden, keine Beschr~inkungen der Anzahl der Elemente der Closed- Liste existiert und bei Eintreten einer Stufung 5 Elemente der Open-Liste bewahrt werden. Bei dieser Einstellung k6nnen Problemstellungen mit bis zu 80r ten i. a. exakt, d.h. ohne Stufung des Verfahrensablaufs gelSst werden. Der hierzu benStigte Rechenzeitaufwand betrhgt auf dem verwendeten Atari-Rechner etwa 1-3 Min.

Das entwickelte A*-Verfahren ist nut mit solchen Verfahren direkt vergleichbar, die ebenfalls die allgemeine Problemstellung mit inhomogenen Gfitern und unter- schiedlich tarifierten Gt~tern bearbeiten k6nnen. Ein vergleichbares exaktes Verfahren ist verffigbar durch eine funktionale Erweiterung des in [8] beschriebenen Verfah- rens; suboptimierende Verfahren, die zum Vergleich mit dem A*-Verfahren herangezogen werden k6nnen, liegen durch eine entsprechende Erweiterung der in [9] beschrie- benen Verbundverfahren vor. Ein Vergleich der exakten Verfahren ergibt, dab das A*-Verfahren bei exakter LSsung um den Faktor 10-50 schneller ist als die Erweite- rung des Branch-and-Bound-Verfahrens aus [8]. Ein Vergleich des hier vorgestellten Frachtoptimierungsver- fahrens mit den suboptimierenden Verbundverfahren aus [9] ist nicht ohne weiteres mSglich, da die den Verbund bildenden Konstruktions- und Verbesserungsverfahren ein vSllig anderes L6sungsverhalten zeigen als das A*- Verfahren. Das A*-Verfahren erzeugt ftir relativ kleine Problemstellungen bis zu 10 Orten in der Regel zwar die besseren LSsungen, abet das Verbundverfahren ben6tigt viel weniger Rechenzeit. Ffir die Bearbeitung gr6Berer Problemstellungen mit bis zu 15 oder 20 Orten ist das vorgestellte zulgssige A*-Verfahren trotz Stufung nicht brauchbar. Denn die LSsungsqualit~it ist ffir groBe Pro- blemstellungen trotz des enorm hohen Rechenaufwandes geringer als die des Verbundverfahrens. Fiir die Bearbei- tung groger Problemstellungen mit A*-Verfahren ist es daher erforderlich, eine Variante des hier vorgestellten Frachtoptimierungsverfahrens mit einer unzulgssigen h- Funktion zu entwickeln.

5. Schlugbemerkungen

Die vorliegenden Ergebnisse zeigen, dab der A*-Algorith- mus gut zur L6sung des FOP geeignet ist. A*-Verfahren benStigen im Vergleich zu Backtracking-Verfahren zwar sehr viel Speicherplatz, aber die heutzutage verffigbaren Computersysteme besitzen gent~gend SpeicherkapazitM, um die im Verfahrensablauf gesammelten Informationen zu bewahren und gewinnbringend zu verwerten. Das entwickelte Verfahren zur Frachtoptimierung profitiert v o n d e r Ausnutzung problemspezifischen Wissens in Form einer h-Funktion und spezieller Modifikationen der Operatoren. Will man andere inhomogene Umladepro- bleme mit beliebiger Kostenfunktion nach dem gleichen Verfahrensmuster 16sen, so kann man die uniforme Ko- stenprozedur aus Kap. 4.1 als Grundverfahren benutzen und mit problemspezifischen Informationen anreichern.

Bei der Entwicklung von Graphensuchverfahren sind Entscheidungen zu treffen, die eine Auswahl aus einer Menge vieler alternativer MSglichkeiten vornehmen. Dies gilt fiir die weitreichenden Entwurfsentscheidungen bei der Modellierung eines Problems, ftir die Entscheidungen bei der Realisierung des Verfahrens und fur die obigen Implementationsentscheidungen. Die Auswirkungen der Entscheidungen sind sehr schwierig abzusch~itzen, und es ist wegen des enorm hohen Aufwands unm6glich, alle aussichtsreichen Alternativen auf allen Entwicklungsstu- fen zu erproben. Zur Unterstiitzung der Entwurfsaktivitg- ten sollten daher verl/igliche Entscheidungshilfen ffir die Konstruktion heuristischer Verfahren verft~gbar sein. Diesem Ziel dient die Erforschung der folgenden beiden Problembereiche:

Ex-ante Bewertung yon Suchverfahren. Es sollen Grundla- gen ft~r die Bewertung von Suchgraphen, Und-Oder- Graphen und heuristischen Funktionen erarbeitet wet- den. Zun~ichst werden die Vor- und Nachteile spezieller Graphensuchverfahren ft~r die L6sung von Problemstel- lungen aus unterschiedlichen Bereichen (Frachtoptimie- rung, Fliegbandabgleich, Maschinenbelegung und Tou- renplanung) untersucht, um Kriterien zur Bewertung heuristischer Verfahren herzuleiten und empirisch zu erproben. Augerdem sind klassische heuristische OR- Verfahren zur LSsung der gleichen Problemstellungen verfiigbar. Diese Verfahren werden fur eine Beurteilung der Leistungsf/ihigkeit der entwickelten Graphensuchver- fahren herangezogen.

Hilfsmittel zur Erprobung und Erstellung yon Suchverfah- ren. Prolog soil zur Erstellung yon Prototypen eingesetzt werden. L6sungsverfahren der Bestensuche k6nnen mit geringem Aufwand in Prolog realisiert werden. Anderer- seits ist der Rechenzeitbedarf der Verfahrensimplementa- tionen nicht akzeptabel. Implementationen in Prolog dienen insbesondere der Erprobung von Verfahrensmodi- fikationen, welche in der Erweiterung der Expansions- Operatoren um spezielle Regeln mit Wenn-Dann Bezie- hungen bestehen (vgl. Kap. 4.2.2). Auf diese Weise sollen aussichtsreiche Verfahrensvarianten mit relativ wenig Aufwand evaluiert werden. Ein weiteres Ziel ist die Generierung von A*- und AO*-Verfahren aufgrund einer

Page 12: Der Entwurf und die Realisierung eines A*-Verfahrens zur Lösung des Frachtoptimierungsproblems

218 H. Kopfer: A*-Verfahren zur Frachtoptimierung

deskr ip t iven Beschre ibung eines P rob lems und der we- sent l ichen Entwurfsen tsche idungen .

Model le zur Bewer tung sowie Hi l fsmit te l zur Gener ie- rung und E r p r o b u n g von Suchverfahren dienen der Reduz ie rung des En twick lungsaufwandes heur is t ischer Verfahren und der A n p a s s u n g der Verfahren an ein vorgegebenes Anspruchsn iveau .

Literatur

1. Bratko I (1987) Prolog, Programmierung f~r die Kt~nstliche Intelligenz. Addison Wesley. Reading, MA

2. Dechter R, Pearl J (1988) The optimality of A*. In: Kanal L, Kumar V (eds.) Search in artificial intelligence. Springer, Berlin Heidelberg New York, pp 166-199

3. Dehnert G (1979) Ein Branch-and-Bound-Verfahren ftir Distri- butionsprobleme mit nichtkonkaven, degressiven Kostenfunk- tionen. Oper Res Verf 35:89-101

4. Domschke W (1981) Logistik, Band 1: Transport. Oldenbourg, Mt~nchen Wien

5. Domschke W (1982) Logistik, Band 2: Rundreisen und Touren. Oldenbourg, Mtinchen Wien

6. Iberaki T (1977) The power of dominance relations in branch- and-bound algorithms. J ACM 24:264-279

7. Kopfer H (1984) L6sung des Frachtoptimierungsproblems im gewerblichen Giiterfernverkehr - L6sungsaufwand versus L6- sungsqualit~it. Dissertation Bremen

8. Kopfer H (1985) Enumerationsverfahren zur exakten L6sung des KVO-Optimierungsproblems im gewerblichen Giiterfern- verkehr. In: Proceedings der DGOR-Tagung 1984. Springer, Berlin Heidelberg New York

9. Kopfer H (1987) Gezielter Entwurf heuristischer Verfahren zur L6sung des KVO-Optimierungsproblems. In: Proceedings der DGOR-Tagung 1986. Springer, Berlin Heidelberg New York

10. Kumar V, Kanal L (1988) The CDP - a unifying formulation for heuristic search, dynamic programming, and branch-and- bound. In: Kanal L, Kumar V (eds) Search in artificial intelligen- ce. Springer, Berlin Heidelberg New York, pp 1-27

11. Meigner JD (1979) Bausteine zur heuristischen Programmie- rung. Florentz, Miinchen

12. Miiller-Merbach H (1976) Morphologie heuristischer Verfahren. Oper Res 20:69-87

13. Nilsson NJ (1982) Principles of artificial intelligence. Springer, Berlin Heidelberg New York

14. Pearl J (1984) Heuristics, intelligent search strategies for compu- ter problem solving. Addison Wesley, Reading, MA

15. Winston PH (1987) Kt~nstliche Intelligenz. Addison Wesley, Reading, MA