wissensbasierte systeme i tu mÜnchen institut für ... · wir nehmen nun weiter an, daß es eine...

51
Wissensbasierte Systeme I Wissensbasierte Systeme I TU MÜNCHEN Institut für Informatik A. Schweikard Bearbeitet von W. Meixner 1

Upload: lydieu

Post on 21-Jun-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Wissensbasierte Systeme I

TU MÜNCHEN

Institut für Informatik

A. Schweikard

Bearbeitet von W. Meixner

1

Page 2: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Inhalt

1 Begriff Künstliche Intelligenz

Turing−Test

Diskussion

Beispiele

2 Suchstrategien

Wegsuche in Graphen

A*−Verfahren, Analyse heuristischer Suche

Anwendungen

3 Und/Oder−Bäume

Lösungsgraphen

Schachprogramme, Minimax−Verfahren,

Alpha−Beta Verfahren, S*−Verfahren

4 Plangenerierende Systeme

STRIPS

Hierarchische Planung

5 Wissensverarbeitung mit Logik

Resolution in PROLOG

Auswahlstrategien für Klauseln

6 Probabilistisches Schließen

Hypothesennetze in Expertensystemen

Kausale Netze

Beispiele, Spracherkennung

2

Page 3: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Literatur

D. R. Hofstadter, D. C. Dennet, The Mind´s I, Basic Books, New York, 1981.

(Dt: Einsicht ins Ich, dtv: München, 1992.)

l. Kanal, V. Kumar, Search in Artificial Intelligence, Springer, Berlin, 1988.

P. Levi, G. Lohmann, Skript Wissensbasierte Systeme, Inst. f. Informatik, TU München,

1993.

R. E. Neapolitan, Probabilistic Reasoning in Expert Systems, New York: Wiley, 1990.

N. J. Nilsson, Principles of Artificial Intelligence,Springer: Berlin, 1980.

J. R. Searle et al., Minds, Brains and Programs, The Behavioral and Brain Sciences, 417−457,

1980.

J. Pearl, Heuristics, Addison Wesley, Reading, Mass., 1985

J. Pearl, Probabilistic Reasoning in Intelligent Systems, Addison Wesley, Reading, Mass.,

1988.

R. Penrose, Shadows of the Mind, Oxford University Press, 1994.

P. H. Winston, Artificial Intelligence, 3rd Ed., Addison Wesley, Reading, Mass.:1990.

3

Page 4: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Kapitel 1: Der Begriff Künstliche Intelligenz

Künstliche Intelligenz (KI) ist der Name für ein Teilgebiet der Informatik, dessen Ziel es ist,

auf Computern intelligentes Verhalten nachzubilden. Was aber ist unter intelligentem

Verhalten zu verstehen? Wie kann man feststellen, ob sich ein Computer intelligent verhält?

Bei den Auffassungen über die Bedeutung des Begriffs Künstliche Intelligenzˆ lassen sich

zwei Hauptrichtungen identifizieren:

1. schwache KIˆ

2. starke KIˆ

Schwache KIˆ:

Der Computer ist nur ein Instrument zur Untersuchung kognitiver Prozesse. Das Ziel ist,

kognitive Prozesse durch Simulation in einem Computer zu verstehen.

Starke KIˆ:

Der Computer ist nicht nur ein Instrument zu Untersuchung kognitiver oder geistiger

Prozesse, vielmehr sind die richtig programmierten Prozesse im Computer an sich geistige

Prozesse. Man kann Computern, die mit den richtigen Programmen ausgestattet sind,

Verstehen und andere kognitive Leistungen zusprechen. Der Computer simuliert nicht nur

Intelligenz, sondern er ist intelligent.

Um zu testen, ob ein Computer intelligent ist, wurden Tests und Szenarien entwickelt

(Turing−Test, Schanks System, Searle´s Szenario, usw.). Die Bedeutung dieser Tests

hinsichtlich einer Präzisierung des Intelligenzbegriffs wird aber kontrovers beurteilt.

Turing−Test

In einem Zimmer befinden sich ein Mensch (A) und ein Computer (B). In einem anderen

Raum befindet sich ein weiterer Mensch (C). C kann nicht in den anderen Raum sehen, aber

es gibt eine Datenleitung dorthin, über die er mit A und B kommunizieren kann. Er weiß, daß

einer seiner Gesprächspartner ein Mensch, und der andere ein Computer ist, er weiß aber

nicht, welcher von beiden der Mensch ist. Er muß durch geschickte Fragen herausfinden,

welcher seiner Gesprächspartner der Mensch ist. Dabei versucht der Computer, C zu täuschen,

während B versucht, C zu helfen. Wenn es dem Computer gelingt, C zu täuschen, dann ist er

intelligent.

4

Page 5: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

A

Mensch

B

C

Mensch Computer

These: Der Computer ist intelligent, wenn er C täuschen kann.

Schanks System

Zur Diskussion, ob Verstehen prinzipiell durch Rechner nachgebildet werden kann, hat

Schank ein Programm entwickelt (Skript−Programm), das nur einfache Geschichten über

Restaurants verarbeiten und Fragen zu diesen Geschichten beantworten kann.

Beispiel:

Geschichte 1

Ein Gast im Restaurant bestellt einen Hamburger. Als das Essen gebracht wird, sieht der Gast,

daß der Hamburger angebrannt ist. Wütend und ohne zu bezahlen verläßt der Gast das

Restaurant.

Geschichte 2

Ein Gast bestellt einen Hamburger. Als das Essen gebracht wird, ist der Gast sehr zufrieden.

Beim Verlassen des Restaurants legt er einTrinkgeld auf den Tisch.

Schanks Programm wird nun gefragt: Hat der Gast den Hamburger gegessen?

Im Fall von Geschichte 1 antwortet das Programm mit nein˜, im Fall von Geschichte 2 mit

ja˜, obwohl die Frage in keiner Geschichte explizit beantwortet wurde.

Das Programm basiert nur auf einer Darstellung verschiedener Situationen und Szenen in

Restaurants (Skripten) und geeigneter (sequentieller) Ablaufsteuerung.

5

Page 6: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

These der starken KI:

Schanks Script−Programm versteht die Geschichten in der gleichen Weise wie ein Mensch.

Das Programm erklärt, was menschliches Verstehen bedeuted.

Gegenthese:

Es besteht ein prinzipieller Unterschied zwischen dem Programm und menschlichem

Verstehen.

Searle´s Szenario

Die Gegenthese vertritt J. Searle. Er behauptet, daß menschliches Verstehen nicht

nachgebildet werden kann. Schanks Programm simuliertˆnur Verstehen der Geschichten. Zur

Untermauerung dieser Gegenthese entwirft Searle das Szenario ’Chinesisches Zimmer’. Es

soll auf den genannten prinzipiellen’ Unterschied hinweisen.

Szenario:Searle sitzt allein in einem Raum. Von außen werden ihm eine Geschichte sowie

Fragen zu dieser Geschichte in chinesischer Sprache/Schrift hereingereicht. Außerdem erhält

er eine Anleitung in Englisch, die ihm angibt, wie er einen Text in chinesischer Sprache

bearbeiten soll, wobei die Anleitungen beispielweise in Tabellenform ihm nur angeben, wie er

mit chinesischen Zeichen umgehen soll: auf Zeichen A antworte mit Zeichen X. Den

eigentlichen Inhalt erfährt er dadurch nicht. Diese Anleitungen ermöglichen es ihm, auf die

Fragen zu der Geschichte korrekt zu antworten. D.h. Searle liefert Antworten, die einem

Chinesen richtig und sinnvoll erscheinen, obwohl er selbst von der Geschichte nichts

verstanden hat. Searle simuliert, chinesisch zu verstehen.

Searle´s Fazit: Durch Simulation von intelligentem Verhalten erzeugt man keine Intelligenz.

Man könnte nun den Turing−Test mit Searle´s Szenarium kombinieren zu einem chinesischen

Turing−Test: ein Turing−Test mit Fragen und Antworten in chinesisch. Nun müßte aber nach

Turing der Simulation doch Intelligenz zugesprochen werden. Anders formuliert, falls die

Testperson einen chinesischen Turing−Test besteht, dann versteht die Testperson chinesisch.

Hier eine weitere Antwort auf Searle´s Szenario: Ein einzelnes Neuron versteht auch keine

Geschichten. In demselben Sinne ist auch die Versuchsperson nur Teil eines Gesamtsystems.

6

Page 7: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Schließlich könnte man sogar zu dem Schluß kommen, daß tatsächlich die Versuchsperson

keineswegs chinesisch versteht, wohl aber das Gesamtsystem.

Eliza

J. Weizenbaum hat ein einfaches Programm geschrieben, das einen syntaktisch richtigen

Dialog mit einem Menschen führen kann. Simuliert wird eine psychotherapeutische Sitzung,

in der das Programm die Rolle des Psychotherapeuten übernimmt. Weizenbaum wollte mit

diesem Programm demonstrieren, daß es sinnlos ist, Programmen menschliche Intelligenz

zuzusprechen, auch wenn Programme gelegentlich die Illusion von Intelligenz bei Menschen

hervorrufen. Hier ein Ausschnitt eines Sitzungsprotokolls.

I am the psychotherapist. Please describe your problems. Each time you are finished talking,

type RET twice.

Can you ask me a question?

Why do you say can I ask you a question?

I would like you to ask me something

Is it because of your plans that you say you would like me to ask you something?

No, I want to see whether you understand questions

What makes you believe you might want to see whether?

Grenzen mathematischer Beweisbarkeit

Man kann die Frage stellen, ob beispielweise die Fähigkeit des mathematischen Beweisens auf

Computern nachgebildet werden kann. Wir betrachten eine Menge von Regeln, die bei

mathematischen Beweisen benutzt werden.

Annahme: die Gesamtmenge solcher Regeln kann formal (z.B.als Algorithmus) in einer

bestimmten (hinreichend allgemeinen) Sprache dargestellt werden.

Wir bezeichnen diese Formalisierung mitF. Wir konstruieren nun ausF selber eine Aussage,

für die gilt:

1. A ist beweisbar korrekt

2. A kann aber nicht durch F hergeleitet werden.

Zur Konstruktion nehmen wir eine (hinreichend allgemeine) SpracheS an, in der alle

AlgorithmenC formuliert werden können, die eine natürliche Zahln als Eingabe verarbeiten.

Wir betrachten lediglich die Aussage, ob ein AlgorithmusC für eine Eingaben hält oder nicht

7

Page 8: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

hält. Wir suchen nun für möglichst viele AlgorithmenC und Eingabenn Beweise für die

Aussage C(n) hält nichtˆ.

Wir nehmen nun weiter an, daß es eine inS formulierbare MethodeF gibt, diese Beweise zu

finden. Genauer, wir nehmen einen AlgorithmusF(C,n) als gegeben an, der, falls er

überhaupt anhält, beweist, daßC(n) nicht hält. WieF aussieht, darüber wird nichts ausgesagt,

z.B. könnte F nur nachsehen, ob in C(n) eine Schleife der Form

loop: goto loop

vorkommt. Es wird nicht gefordert, daßF selber immer hält. (F kann beiC(x) halten, falls

x=3, und nicht halten, fallsx=4.) Es wird übrigens auch nicht die Umkehrung gefordert, daß

also F immer hält, falls C(n) nicht hält.

Gefordert wird nur, daßF ’korrekt’ ist. D.h. fallsF(C,n) hält, dann ist die Ausgabe vonF ein

korrekter Beweis dafür, daß C(n) nicht hält.

Falls nunS, wie angenommen, hinreichend allgemein ist, gibt es einen AlgorithmusNC, der

alle Algorithmen der angenommenen Art durchnummeriert. D.h., für jeden AlgorithmusC

gibt es eine natürliche Zahli, so daßC=NC(i) bzw. C(n)=NC(i,n). Wir konstruieren nun

einen Algorithmus E durch

E(n) = F(NC(n),n).

Es gibt nun einen Index k, sodaß

E = NC(k).

Aussage 1: E(k) hält nicht.

Denn würdeE(k) halten, dann folgt ausE(k) = F(NC(k),k) = F(E,k), daßE(k) hält, was

offensichtlich ein Widerspruch ist.

Aussage 2: Aussage 1 ist mit F nicht beweisbar.

8

Page 9: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Denn könnte man mit F beweisen, daß E(k) nicht hält, so müßte ja F(E,k)=E(k) halten.

Hypothese (Penrose):

Aus der Konstruktion folgt,

daß mathematisches Beweisen nicht auf

Computern nachgebildet werden kann.

Einwände:

− wenn A wirklich beweisbar korrekt ist, kann die Methode zum Beweis vonA auch in

F einbezogen werden

Gegenmeinung hierzu: Gezeigt wird, daß für jede solche Formalisierung F eine

(nicht mit F beweisbare) Aussage A konstruiert werden kann

− Die obige Konstruktion ist bestenfalls ein Paradox über formale Systeme

Trotzdem gibt es gegen die Hypothese von Penrose weitere Einwände:

1. Die genannte Konstruktion beweist sicherlich, daß das zugrundliegende algorithmische

Modell nicht erklärt, wie menschliche Intelligenz mathematische Beweise hervorbringt.

Dieses kann also intelligentes mathematisches Beweisen nicht erklären. Kann aber daraus

geschlossen werden, daß es kein Modell für das mathematische Beweisen gibt, das auf

Computern nachgebildet werden kann?.

2. Es ist keineswegs sicher, daß Menschen immer zwingend einen Beweis einer Aussage

finden, selbst wenn dieser existiert. Offensichtlich benutzt auch menschliche Intelligenz

Suchverfahrenˆ, die z.B. sehr wohl auch auf Zufallˆ beruhen können und damit nicht

algorithmisch nach dem oben zugrundegelegten Modell sind. Warum sollte es aber von

vornherein unmöglich sein, diese Suchverfahren auf Computer nachzubilden?.

9

Page 10: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Pragmatische KI und wissensbasierter Ansatz

Die Pragmatische KI vermeidet den Begriff künstliche Intelligenzˆ und spricht statt dessen

von Wissenverarbeitungˆ oder wissensbasierten Systemenˆ. Sie geht aus von der in den

siebziger Jahren gemachten Beobachtung, daß Menschen schwierige und theoretisch kaum

faßbare Probleme vor allem durch gleichzeitigen und massiven Einsatz vonheterogenem

Wissen über den Problemgegenstand lösen. Heterogenes Wissen kann z.B. räumliches Wissen,

Wissen über zeitliche Abläufe, Wissen über kausale Zusammenhänge sein usw.. Wir werden

dazu einige Beispiele betrachten. Die pragmatische KI entwickelt daher Methoden zur

Verarbeitung von stark heterogenen Daten mit allgemeinen Prinzipien.

Kennzeichen wissensbasierter Systeme sind:

− Allgemeine Inferenzmechanismen

− Austauschbares Wissen

− Verwendung von Standardmethoden wie

¯ Suche in geeigneten Suchräumen

−heuristisch

−zufallsgestützt

¯ Adaption und Lernenˆ

Anwendungen:

Expertensysteme,

Robotik,

Natürlichsprachliche Systeme,

Bildverstehen

Beispiele:

Medizinische Diagnosesysteme

Wissen stammt aus unterschiedlichen Quellen:

Epidemologie, Statistik, Patientendaten

Bildverarbeitung

Gegeben ein Grauwertbild.

Entscheide, ob auf dem Bild ein Hund abgebildet ist, etc.

10

Page 11: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Mit dem massiven Einsatz von Wissen versucht man insbesondere der Tatsache zu begegnen,

daß häufig die Suchräume, in denen nach Problemlösungen gesucht wird, bei weitem zu groß

sind, um eine vollständige Suche durchzuführen. Das zur Einschränkung von Suchräumen

herangezogene Hintergrundwissen nennt man in diesem Zusammenhang Heuristik.

Beispiele für räumliches bzw. zeitliches Wissen:

Fertigungsprozesse

Verschnittminimierung, Wegplanung

Halterungen, Stabilität, Erreichbarkeit und geometrische Realisierbarkeit

Ablaufplanung, Zeitplanung

1. Fertigungsprozesse:

Gesucht wird eine bestimmte Folge von Bewegungen, zum Zusammensetzen eines Produkts

aus Teilen

2. Verschnittminimierung:

Gegeben: Stoffbahn S, nach rechts ’unbegrenzt’.

Lege Teile T1,...,Tn so, daß Verschnitt minimiert wird.

11

Page 12: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

T1

T2

T3

T4

S

3. Wegplanung:

Bestimme einen Weg in einem Labyrinth.

Plane eine Folge von kollisionsfreien Bewegungen für einen Fertigungsprozeß

4. Zeitliche Planung:

Ablaufplanung und Zuteilung, Stundenplan

Ein Experte für Verschnittminimierung benutzt Heuristik, z.B. Fülle Hohlräume zwischen

größeren Teilen mit kleineren Teilenˆ. Heuristik ist i.a. schwer formalisierbar.

Probleme der Anwendung wissensbasierter Systeme

Der Anwender (menschlicher Experte) versteht nur in begrenztem Umfang, wie das System

intern arbeitet. (Beispiele: Eliza−Programm, Schachprogramme. Bei Schachprogrammen gibt

die Kenntnis der internen Verarbeitung Vorteile.) Unvollständiges Verständnis der

Arbeitsweise kann zu naiven Interpretationen der Ergebnisse

führen. Für medizinische Expertensysteme kann häufig keine Garantie über die Korrektheit

von Schlußfolgerungen gegeben werden. Systeme werden mit Erklärungskomponenten

versehen. Es kann aber sein, daß die Erklärungen selbst schwer nachvollziehbar sind oder

weitere Fehler verursachen.

12

Page 13: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Anforderungen für Anwendbarkeit:

Interaktive Antwortzeiten. Aber viele naive KI−Verfahren sind exponentiell.

Korrektheit des Ergebnisses muß garantiert werden können. Häufig nur durch geeignete

Formulierung oder Vereinfachung der Problemstellung erreichbar

Interne Arbeitsweise des Systems muß nachvollziehbar sein.

Um diesen Anforderungen gerecht zu werden, wird beim Entwurf wissensbasierter Systeme

häufig einpragmatischer Ansatzgewählt, das ist die Beschränkung auf Aussagen, die für den

Anwender nachvollziehbar sind, und bei denen auf Grund der Spezifikation der Verfahren die

Korrektheit der Ausgabe garantiert werden kann.

13

Page 14: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Kapitel 2: Suchstrategien

Die Lösung vieler Probleme läßt sich als Suche in Graphen modellieren. Der Graph stellt

dabei Beziehungen zwischen Objekten dar. Wir betrachten die folgenden typischen

Suchprobleme:

Gegeben sei ein Graph.

Wegsuche: Finde einen Weg von einem Anfangsknoten A zu einem Zielknoten B als Folge

von Kanten, die A mit B verbindet.

Zusammenhang: Finde eine Zusammenhangskomponente in einem Graphen, die bestimmte

Knoten enthält.

Beispiel Wegsuche:

Wir betrachten ein Beispiel zur Wegsuche für Objekte in einem Hindernisraum. Die Aufgabe

ist, ein Objekt (Roboter) von einem Anfangspunkt zu einem Zielpunkt zu bewegen, ohne

anzustoßen.

Szenario:

Der Roboter erkennt Landmarken,d.h. die Landmarken sind für ihn unterscheidbar und die

Landmarke Zielˆ kann identifiziert werden. In jeder Stellung ist nur eine Teilmenge der

Landmarken sichtbar. Der Roboter kann sich ohne anzustoßen nur direkt zu Landmarken

bewegen, die für ihn sichtbar sind.

Suchmethode:

Landmarken werden als Knoten eines Graphen dargestellt. Landmarken, die gegenseitig

sichtbar sind werden durch Kanten im Graphen verbunden. Der folgende Plan stellt die

geometrische Anordnung der Landmarken und deren gegenseitige Sichtbarkeit dar.

14

Page 15: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

S

A

D

B

E

C

F

Z

O

Der Startknoten sei S, der Zielknoten Z. Der Roboter, der sich in einer Landmarke X befindet,

sieht nur diejenigen Landmarken Y, die in dem folgenden Sichtbarkeitsgraphen durch eine

Kante mit X verbunden sind.

Sichtbarkeitsgraph:

S

A

D

B

E

C

F

Z

Die Knotenmenge wird als Liste von Knoten (S, Z, A,....,F) dargestellt. Die Kanten werden

dargestellt als Liste von Paaren (X,Y) mit Knoten X, Y. Gibt es eine Kante (X,Y), dann

heissen X und Y

direkt verbundenˆ.

Aufgabe: berechne eine Liste L mit L = (S = X1,...,Xk = Z). Dabei muß gelten: Xi, Xi+1 sind

direkt verbunden.

Zur Lösung der Aufgabe wird dem Graphen ein Suchbaum zugeordnet. Ein einzelner

Baumknoten stellt dabei einen ganzen (zyklenfreien) Pfad vom Anfangsknoten bis zu einem

Knoten X im Graphen dar. Ein Baumknoten (Pfad) bekommt die Bezeichnung des

Graphknotens, zu dem der entprechende Pfad vom Anfangsknoten aus führt. Die Baumwurzel

erhält damit die Bezeichnung des Anfangsknotens. Jeder Baumknoten besitzt nur einen

Vorgänger und ein kompletter Pfad im Graph kann aus einem Baumknoten rekonstruiert

werden. Im Suchbaum kommen Knotennamen eventuell mehrmals vor. Dies entpricht dem

Umstand, daß zu einem Graphknoten eventuell mehrere Pfade im Graphen führen.

15

Page 16: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Demgegenüber gibt es für jeden Baumknoten nur einen Pfad, der dorthin führt (im

ursprünglichen Graphen möglicherweise mehrere!)

Suchbaum

S

AD

B D

C E E

D F

Z

FB

C Z

A E

B B

EC

F

A

F

C

Z

Z

Für die Lösung der Wegsuche kommen nur Pfade ohne Zyklen in Frage. Entsprechend enthält

der obige Suchbaum keine Baumpfade, in denen die Bezeichnung eines Knotens zweimal

vorkommt.

Suchbaum mit Schleife:

S

A

B D

C E A

...

......

Wir betrachten ein zweites Beispiel. Der Suchraum ist hier gegeben durchZuständeˆ

(Situationen) eines Puzzlespiels. Gegeben sind Ausgangs− und Zielzustand. Die Aufgabe ist,

den Zielzustand über einen Weg˜ mit dem Ausgangszustand zu verbinden.

16

Page 17: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Beispiel 9er−Puzzle:

2 8 31 6 47 5

28

31

64

7 5

Anfangs− zustand

End− zustand

Suchbaums:

2 8 3 1 ¯ 4 7 6 5

2 8 3 1 6 4 7 5 ¯

2 8 3 ¯ 1 4 7 6 5

2 ¯ 3 1 8 4 7 6 5

2 8 3 1 4 ¯ 7 6 5

2 8 3 1 6 4 7 ¯ 5

2 8 3 1 6 4 ¯ 7 5

¯ ¯ ¯¯ ¯ ¯

¯ 2 3 1 8 4 7 6 5

2 3 ¯ 1 8 4 7 6 5

1 2 3 ¯ 8 4 7 6 5

2 3 4 1 8 ¯ 7 6 5

1 2 3 8 ¯ 4 7 6 5

1 2 3 7 8 4 ¯ 6 5

¯ ¯ ¯¯ ¯ ¯

Der Lösungspfad ist fettgedruckt.

Bei einer konkreten Anwendung ist im allgemeinen der Graphimplizit gegeben, z.B. durch

die Geometrie der Räume, in denen der Roboter sich bewegen soll. Wird der Roboter in eine

Startmarke gesetzt mit dem Auftrag, sich zu einer Zielmarke zu bewegen, dann hat er

zunächst nur die Möglichkeit, zu einer der momentan sichtbaren Landmarken zu gehen. Die

eingeschlagenen Wege allerdings wird er in einem Suchbaum protokollieren. D.h., daß der

Suchbaum zur Laufzeit generiert wird. Nun gibt es aber verschiedene Strategien, den

17

Page 18: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Suchbaum zu generieren. Im folgenden wollen wir zunächst die sogenannteBreitensucheund

die Tiefensuche vorstellen und diskutieren.

Breitensuche

Wir abstrahieren nun von dem Beispiel der Wegsuche eines Roboters in einem Raum mit

Hindernissen. Es sei nun ein Graph gegeben z.B als Liste von Knoten und einer Funktion, die

zu jedem Knoten eine Liste seiner Nachbarknoten liefert. Außerdem sei ein Startknoten S und

ein Zielknoten Z ausgezeichnet. Der Suchbaum wird nunschichtenweiseerzeugt, d.h., daß

stets sämtliche Nachfolger von Knoten einer Schicht erzeugt werden bevor weitere Knoten

erzeugt werden. Die erste Schicht besteht nur aus dem Startknoten. Diese Strategie nennen

wir Breitensuche. Wir veranschaulichen diese Methode durch folgende Graphik und

definieren anschließend eine Prozedur, die die Breitensuche implementiert.

18

Page 19: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Erzeugung des Suchbaums mit Breitensuche:

S

AD

B D

C E E

D F

Z

FB

C Z

A E

B B

EC

F

A

F

C

Z

Z

Prozedur Breitensuche

Eingabe: Graph G, Start S, Ziel Z.

1. Initialisiere Liste L von Baumknoten. L enthält nur den Startknoten S.

Solange Ende noch nicht erreicht ist, wiederhole:

2. Setze P := erstes Element von L.

Prüfe, ob P ein Zielknoten Z ist.

Falls ja, Ende.

Prüfe, ob L leer ist. Falls ja, Ende.

Lösche erstes Element in L.

(a) füge alle Nachbarn von P (im Graphen) ans Ende von L an.

(b) Lösche diejenigen neuen Knoten am Ende von L, die Pfade mit

Schleifen darstellen.

Ist L beim Ende des Algorithmus leer, ohne daß die Zielbedingung erreicht wurde, dann gibt

es keinen Pfad von S nach Z. Wenn umgekehrt es einen Weg vom Startknoten zum

Zielknoten gibt, dann wird er gefunden. Die Breitensuche ist also in diesem Sinne vollständig.

Die obige Prozedur Breitensuche enthält noch keine Operationen zum Aufbau des

Suchbaums. Der Suchbaum muß während der Suche aufgebaut/gespeichert werden. Wenn für

jeden Baumknoten dessen unmittelbarer Vorgänger gespeichert wird, dann ist die Berechnung

des Pfades möglich, der zu einem erreichten Knoten führt. Die Berechnung diese Pfades ist

notwendig zur Erkennung von Schleifen. Dies ist der Sinn von

19

Page 20: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Schritt 2 b, Erkennen (Löschen) von Pfaden mit Schleifen:.

Zur Vermeidung von Schleifen muß P aus der Liste L gelöscht werden, wenn in dem

Pfad zu P bereits ein Baumknoten enthalten ist, die gleiche Bezeichnung trägt.

Bei ungewichteten Graphen (das sind Graphen, in denen bei der Längenberechnung der Pfade

alle Kanten mit dem gleichen Gewicht, z.B. der Länge 1 eingehen) erhält man mit obiger

Prozedur auch einen minimalen (in der Länge kürzesten) Weg zum Zielknoten!

Die Ergebnisliste E enthält beim Ende des Algorithmus offensichtlich alle Baumknoten, die

Pfade zum Ziel darstellen. Falls nun die Gewichtung der Kanten im Graphen als sogenannte

Kostenfunktion vorliegt, können die Kostenˆ (Gewicht, Länge) jedes Ergebnispfades

berechnet und der kostengünstigste Pfad ausgewählt werden. Das Verfahren ist aber sehr

ineffizient.

Tiefensuche

Die Breitensuche wird dann problematisch, wenn die Knoten hinreichend oft mehrere

Nachfolgeknoten haben und der gesuchte Knoten in einer tiefen Schicht liegt, denn die

Suchtiefeˆ wächst nur logarithmisch mit der Knotenzahl (beim vollständigen Binärbaum).

Hier ist die Tiefensuche eine Alternative zur Breitensuche. Die Tiefensuche wird in dem

folgendem Bild veranschaulicht.

Erzeugung des Suchbaums mit Tiefensuche:

S

AD

B D

C E E

D F

Z

FB

C Z

A E

B B

EC

F

A

F

C

Z

Z

Bei gleichem Aufwand erreicht man unter Umständen eine größere Suchtiefe. Der Nachteil

der Tiefensuche ist das Problem, daß sich i.a. die Tiefensuche bei unendlichen Graphen im

falschen Ast verläuft und dann nicht terminiert. Man beschränkt deshalb häufig die

20

Page 21: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Tiefensuche auf einemaximale Suchtiefe.Wird die maximale Suchtiefe erreicht, dann erfolgt

ein Rücksprung im Baum (Backtracking)

Prozedur Tiefensuche (ohne Backtracking):

1. Inititialisiere Liste L. L enthält nur S.

Solange Ende noch nicht erreicht, wiederhole

2. Setze P := erstes Element von L.

Prüfe, ob P gleich Z ist.

Falls ja, Ende.

Prüfe, ob L leer ist. Falls ja, Ende.

Lösche erstes Element in L.

(a) füge alle Nachbarn von P (im Graphen) an den Anfang von L an.

(b) Lösche die neuen Knoten, die Pfade mit Schleifen darstellen.

Die Tiefensuche beim Puzzleproblem sieht mit Backtracking wie folgt aus. Die Regeln

werden in festgelegter Reihenfolge links, oben, rechts, unten angewendet. Durchgestrichene

Stellungen bedeuten Schleifen. Man erhält keine Lösung falls die Suchtiefe zu gering gewählt

wurde.

Die beiden Methoden der Breiten−bzw. Tiefensuche unterscheiden sich in der Reihenfolge, in

der die Knoten des Suchbaums expandiertˆwerden. UnterExpansioneines Knotens versteht

man die Erzeugung der Liste der Nachfolger dieses Knotens. Im folgenden wird es vor allem

um weitere Strategien gehen, die die Reihenfolge der Expansion von Baumknoten

beeinflussen.

Gradientenmethode (Hill−Climbing)

Die Gradientenmethode befolgt eine einfache Heuristik:

’Nimm die Regel, die Dich dem Ziel am nächsten bringt.’

Falls eine Abstandsfunktionfür Stellungen definiert ist, kann diese Heuristik wie folgt

formuliert werden.

21

Page 22: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Von Stellung P aus gehe zu P’, wenn Abstand (P’,Z) minimal unter den Nachfolgern

von P ist.

Prozedur Hill−Climbing

Eingabe: Graph G, Start S, Zielknoten Z.

1. Initialisiere Liste L von Baumknoten. L enthält nur den Startknoten S.

Solange Ende noch nicht erreicht, wiederhole:

2. Setze P := erstes Element von L.

Prüfe, ob P gleich Z ist.

Falls ja, Ende.

Prüfe, ob L leer ist. Falls ja, Ende.

Lösche erstes Element in L.

(a) füge alle Nachbarn von P an den Anfang von L an.

Sortiere die neuen Knoten nach geschätztem Abstand zum Ziel.

(b) Lösche die neuen Knoten, die Pfade mit Schleifen darstellen.

In dem Puzzle−Beispiel gibt es stets mehrere anwendbare Regeln in jeder Stellung, da das

Leerfeld in bis zu vier Richtungen verschiebbar ist. Man könnte nun den Abstand definieren

als Anzahl von Ziffern, die nach Verschiebung am falschen Platz sind. Falls das Ziel erreicht

ist, hat der Abstand den Wert Null. Das folgende Bild zeigt eine Berechnungssequenz (der

Abstand wird hier negativ gemessen).

3

8

2 8 3

1 6 4

7 5

2 8 3

1

6

4

7 5

2

8

3

1

6

4

7 5

21

6

4

7 5

2

831

6

4

7 5

2

8

3

1

6

4

7 5

− 3 − 3

− 10 − 2

− 4

Wir vergleichen die Methode der Breitensuche mit der Methode Hill−Climbing in dem schon

betrachteten Beispiel der kollisionsfreien Bewegung eines Roboters. In dem entsprechenden

Graphen versehen wir dazu die Knoten mit Entfernungsangaben zum Zielknoten.

22

Page 23: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Vergleich: Hill−Climbing <−> Breitensuche

S

A

D

B

E

C

F

Z

3

3

2

2

1

1

Breitensuche: 22 Knoten werden expandiert, bis Z erreicht wird (siehe Suchbaum).

Hill−Climbing (Betrachte L nach jedem Durchlauf von Schritt 2 in Alg. Hill−Climbing):

(S), (A,D), (B,D), (C,D), (D), (E), (F), (Z)

Ergebnis: 7 Expansionen.

(Beachte: Bei Expansion von A wird D nicht erneut generiert, da eine Schleife

entstehen würde.)

Die Methode Hill−Climbing ist auch für kontinuierliche Suchräume anwendbar, beispielweise

bei der Suche nach geeigneten Parameterwerten zur Einstellung eines Reglers bei k

(unabhängigen) Parametern (k−dimensionaler Suchraum). Wie im diskreten Fall können in

kontinuierlichen Suchräumen Sackgassen auftreten, die dann die Gestalt von lokalenMinimaˆ

haben. Deshalb wird der Algorithmus im Fall kontinuierlicher Suchräume häufig mit

zufallsgestützter Suche kombiniert. Wird eine Sackgasse erkannt, so wird eine zufällige Folge

von Zügen ausgeführt, um aus der Sackgasse herauszukommen.

Variante von Hill−Climbing: Best First

Die Rechtfertigung der Hill−Climbing−Methode liegt darin, daß in jedem Graphen durch die

kürzesten Pfade ein Abstand (Pseudometrik) gegeben ist, bezüglich dessen diese Methode

tatsächlich stets am schnellsten den kürzesten Pfad zum Ziel finden würde. Dieser Abstand

aber ist im allgemeinen nicht primär bekannt. Die Anwendung von Heuristik besteht nun

gerade darin, einen anderen Abstand zu verwenden, der primär bekannt ist und der dem

Abstand der kürzesten Pfade möglichst nahe kommt. Allein die Existenz von Sackgassen

beweist allerdings, daß sich dieser gewählte Abstand von dem genannten optimalen Abstand

offensichtlich erheblich unterscheiden kann. Beispielsweise kann es vorkommen, daß die nach

der Hill−Climbing bestimmten Nachfolger eines Knotens doch tatsächlich und geschätzt

weiter vom Ziel entfernt sind, als der expandierte Knoten selbst. In diesem Fall scheint es

nicht immer gerechtfertigt, trotzdem einen dieser Nachfolger als nächstes zu expandieren,

23

Page 24: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

sondern einen der schon generierten anderen Knoten in der Liste L zu expandieren, der

geschätzt näher am Ziel war, als die neuesten Knoten. Diese Überlegung führt zumBest First

Algorithmus, der alte Pfade mitbewertet. (Die Sortierung erfolgt dann über die gesamte Liste

L.)

Prozedur Best−First

Eingabe: Graph G, Start S, Zielknoten Z.

1. Initialisiere Liste L von Baumknoten. L enthält nur den Startknoten S.

Solange Ende noch nicht erreicht, wiederhole:

2. Setze P := erstes Element von L.

Prüfe, ob P gleich Z ist.

Falls ja, Ende.

Prüfe, ob L leer ist. Falls ja, Ende.

Lösche erstes Element in L.

(a) füge alle Nachbarn von P in L ein.

Sortiere alle Knoten in L nach geschätzem Abstand zum Ziel

(b) Lösche die (neuen) Knoten, die Pfade mit Schleifen darstellen.

Den Unterschied von Hill−Climbing und Best−First−Suche zeigt folgendes Beispiel.

Beispiel:

Graph:

B

S

D

Z

A

C

5

2

76

Die Nummern bei den Knoten sind heuristische Schätzwerte für deren Abstand zum Ziel. Der

Hill−Climbing−Algorithmus expandiert B und C vor D. Er ist dadurch langsamer als der

Best−First−Algorithmus. Wir vergleichen dazu L nach jedem Schleifendurchlauf in 2.:

24

Page 25: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Hill−Climbing im Beispiel:

(S), (A, D), (C,B,D), (B, D) (Bei Expansion von B, lösche C, da Schleife),

(D), (Z)

Best−First im Beispiel:

(S), (A, D), (D,C,B), (Z,C,B)

Best First ist aber nicht generell besserˆals Hill−Climbing. Das folgende Gegenbeispiel zeigt

einen Graph, für den Best−First mehr Knoten expandiert als Hill−Climbing.

Gegenbeispiel:

B

C

S

D1

Z

A32

E14

0

Gegenüberstellung:

Hill−Climbing Best−First

(S) (S)

(A, B) (A,B)

(C,B) (B, C)

(Z,B) (D,E,C)

(E,C)

(C)

(Z)

Eine weitere Variante der Breitensuche ist dieStrahlensuche, die wie die Breitensuche abläuft

mit dem Unterschied, daß nur die m ’besten’ Knoten in L eingefügt werden.

Übersicht:

25

Page 26: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Breitensuche Tiefensuche

Nicht−Det. Suche

Nicht informiert Heuristische Verfahren

Strahlensuche

Hill−Climbing Best−First

Einfache Suchverfahren

Suche optimaler Wege

Während bisher die grundsätzliche Erreichbarkeit eines Zielknotens im Vordergrund stand,

wenden wir uns nun der Suche nach in gewissen Sinne kürzestenˆWegen zu einem Ziel zu.

Wir betrachten dazu gewichtete Graphen, d.h. Graphen, bei denen den Kanten ein Gewicht

zugeordnet ist (beispielweise die Länge der Kanten). DieWeglängeoder Pfadlängeist hier

die Summe der Gewichte der Kanten, die in dem Weg (Pfad) beschritten werden. Die

Weglänge in ungewichteten Graphen kann man als den Spezialfall ansehen, wo jede Kante

das Gewicht 1 hat. Einoptimaler Wegvon Knoten A nach Knoten B ist derjenige unter allen

A und B verbindenden Wegen, der eine kürzeste (gewichtete) Länge hat. Die Optimalität ist

hier im Hinblick auf Weglänge zu sehen und nicht auf Laufzeit (oder minimale Zahl

expandierter Knoten). Allgemeiner kann man fragen nach einem optimalen Weg von einem

Knoten A zu mindestens einem Zielknoten aus einer gegebenen Menge von Zielknoten.

Definition: Ein Suchverfahren heißtzulässig, falls es immer den kürzesten Weg liefert, sofern

dieser existiert.

Satz: Die Breitensuche ist zulässig für ungewichtete endliche Graphen.

Beweis:

Terminierung: Die Breitensuche erzeugt einen Suchbaum, in dem jeder Baumknoten einem

schleifenfreien Pfad entspricht. Zwei verschiedene Baumknoten entsprechen dabei

verschiedenen Pfade. Da in einem endlichen Graphen nur endlich viele verschiedene

schleifenfreie Pfade existieren, ist der Suchbaum endlich. Also muß der Algorithmus

terminieren, auch wenn kein Pfad zum Ziel führt.

Kürzester Pfad: Sei X ein Baumknoten. Dann bezeichnen wir die Tiefe von X im Suchbaum

mit T(X). X entspricht einem Pfad im Graphen der Länge T(X). In L sind zu jedem Zeitpunkt

nur zwei verschiedene Arten von Knoten: k Knoten mit T(X) = s und k’ Knoten mit T(X) =

26

Page 27: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

s+1 (für geeignetes s. k oder k’ können 0 sein). Alle Knoten mit T(X) = s stehen vor allen

Knoten mit T(X) = s + 1. Bevor Knoten mit T(X) = s + 1 expandiert werden, sind alle Knoten

mit T(X) = s expandiert worden. D.h., daß alle Pfade mit Länge s vor Pfaden mit Länge s+1

betrachtet werden. Somit wird ein kürzester Pfad zum Ziel sicherlich vor längeren Pfaden

betrachtet. Der erste kürzeste Pfad, der gefunden wird führt zum Ende des Algorithmus.

Tiefensuche, Hill−Climbing und auch Best−First für ungewichtete Graphen sind nicht

notwendigerweise zulässig.

Für die Suche nach kürzesten Wegen in gewichteten Graphen haben wir bereits die

Modifizierte Breitensuche kennengelernt. Dieses Verfahren ist allerdings offensichtlich

ineffizient, weil der Algorithmus erst abbricht, wenn der vollständige Suchbaum aller Pfade

(vom Start zum Ziel) in einem Graphen erzeugt worden ist. Wir stellen nun effiziente

Verfahren für die Suche nach kürzesten Wegen in gewichteten Graphen vor.

Definition: Sei X ein Baumknoten. Dann bezeichnen wir mit g(X) die Summe der

Kantengewichte, ausgehend von S, entlang des durch X dargestellten Pfades im Graphen.

Betrachten wir zunächst den folgenden Graphen (Bild) mit gewichteten Kanten. Die

Zielknoten seien ZF und ZR. Zu ZR führt ein optimaler Pfad.

S

ZRZF

9 7

Dieses Beispiel zeigt, daß eine (unmodifizierte) Breitensuche (Breitensuche ohne g−Funktion)

bei gewichtetenGraphen nicht zulässig ist. Diese würde den Knoten ZF als Ergebnis liefern,

weil ZF zuerst in die Liste L eingetragen wird. Optimal ist aber nur ZR.

ZR würde allerdings dann als Ziel erkannt werden, wenn die (ganze) Liste L der zu

expandierenden Baumknoten nach jedem Schleifendurchlauf nach aufsteigendem g−Wert

sortiert wird. Dieser Gedanke liegt dem folgenden Algorithmus zugrunde.

27

Page 28: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Prozedur B1 (Branch−and−Bound)

1. Initialisiere L := [S].

Solange Ende noch nicht erreicht, wiederhole:

2. P := erstes Element von L.

Falls P Zielknoten oder L leer, Ende.

Lösche erstes Element in L.

(a) Expandiere P,

das liefert Knoten X1,...,Xn.

(b) Lösche Schleifen.

(c) Berechne g(Xi) für i = 1,...,n.

Füge X1,...,Xn so in L ein, daß L nach aufsteigendem Wert von g

sortiert ist.

Bevor wir die Zulässigkeit des Branch−and−Bound Algorithmus beweisen, wollen wir in

einigen Fallbeispielen mögliche Berechnungssequenzen aufzeigen.

Fall1: L = (R, F)

S

R F

ZR ZF

9

7 7

10

ZR wird zuerst expandiert, d.h. der richtige Zielknoten wird ausgegeben.

Fall 2: L= (F, R)

S

R F

ZR ZF

9

6 8

8

28

Page 29: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Warum findet B1 auch in diesem Fall den ’richtigen’ Zielknoten ZR ? Der Grund ist: Es gilt

g(R) < g(ZF). Wegen g(R) < g(ZF) wird R expandiert, bevor die Zielbedingung für ZF

geprüft wird.

Fall 3: L = (R1, F)

S

R1F

ZR ZF

9

48

10

R2

3

In diesem Fall wird F expandiert bevor R2 expandiert wird, d.h., daß tatsächlich das Ziel ZF

in der Liste L steht bevor das optimale Ziel ZR in der Liste steht. Dies führt aber nicht zum

Abbruch des Algorithmus, weil das erste Listenelement zu diesem Zeitpunkt immer noch R2

ist. Damit wird zunächst R2 expandiert, wodurch ZR nun in die Liste kommt, und zwar

wegen der Sortierung nach g−Werten sogar an die erste Stelle. Damit wird ZR erkannt und

der Algorithmus wird mit dem gewünschten Ergebnis abgebrochen.

Feststellung: Gelte g(X) < g(Y) für irgendwelche Baumknoten X, Y. Dann wird

− X expandiert, bevor die Zielbedingung für Y ausgewertet wird und

− die Zielbedingung wird zuerst für X, dann für Y ausgewertet.

− die Suche endet erst, wenn ein Zielknoten Z erreicht wurde und alle noch in L

liegenden Pfade einen höheren g−Wert haben als Z.

Satz: B1 ist zulässig.

Beweis:

Sei S=X1,...,Xk ein kürzester Weg von S zu irgend einem optimalen Zielknoten Z=Xk.

Unterbehauptung: Zu jedem Zeitpunkt liegt wenigstens einer der Knoten X1,..., Xk in L.

Dies gilt sicherlich zum Startzeitpunkt. Wenn zu einem anderen Zeitpunkt ein Xi eines

kürzesten Weges nach Z, das in der Liste L ist, bearbeitet wird, dann ist Xi entweder selbst

der Zielknoten und der Algorithmus endet. Andernfalls wird Xi sicher danach expandiert und

es ist somit jeder Nachfolger von Xi in der Liste, also auch der Nachfolger X(i+1). Daraus

folgt die Unterbehauptung.

29

Page 30: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Angenommen nun, der Algorithmus prüft die Zielbedingung für einen falschen (nicht−

optimalen) Zielknoten ZF. Zu diesem Zeitpunkt liege Xi in L.

Dann gilt g(ZF) > g(Z). Damit folgt g(Xi) <= g(Z) < g(ZF). Da L aber sortiert wurde, bevor

die Zielbedingung für ZF ausgewertet wird, kann ZF nicht vorne stehen wegen g(Xi) < g(ZF).

Widerspruch! Daraus folgt der Satz.

Datenstrukturen für Branch−and−Bound

Neben einer Liste L mit entsprechenden Listenoperationen benötigt der Algorithmus den

Zugriff auf alle bereits expandierten Baumknoten, um entscheiden zu können, ob bei

Expansion eines Knotens eine Schleife entsteht und demzufolge ein neuer Nachfolger wieder

aus der Liste gelöscht werden muß. Da diese Knoten i.a. nicht mehr in der Liste L stehen,

muß der Suchbaum gesondert repräsentiert werden. Dies kann durch eine rückwärts

verzeigerte Liste SL geschehen, für die einige Grundoperationen zur Verfügung stehen

müssen.

Operationen für Liste L: Löschen des ersten Knotens

Anfügen neuer Knoten ans Ende von L

Sortieren

Liste SL: Rückwärts verzeigert.

Operationen für SL: Zurückverfolgen eines Pfads mit Test, ob Knoten in der

Zeigerkette

Einfügen neuer Knoten

Die Beziehung zwischen Suchbaum und der Datenstruktur SL werden verdeutlicht in der

folgenden Graphik.

Suchbaum: Liste SL:

A

S

D

7

B

8

D

4

S A D B D ...

30

Page 31: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Der Branch−and−Bound−Algorithmus konnte als Modifikation der Breitensuche aufgefaßt

werden. Wir betrachten nun eine zweite Modifikation der Breitensuche, die zunächst die

Verkleinerung der Liste L zum Ziel hat. Die Liste L kann nämlich mehrere verschiedene

Baumknoten enthalten, die lediglich verschiedene Pfade zu ein und demselben Graphknoten

darstellen, d.h. mit dem gleichen Graphknoten markiert sind. Für die Suche nach kürzesten

Pfaden sind aber nur diejenigen Pfade zu einem Graphknoten X von Bedeutung, die einen

kürzesten Pfad zu X darstellen, denn Teilpfade eines optimalen Pfades (z.B. eines optimalen

Zielpfades) sind auch optimal (Prinzip der dynamischen Programmierung).

Prinzip der ’Dynamische Programmierung’

Teilpfade eines optimalen Pfads sind auch optimal.

Anwendung im Branch−and−Bound Verfahren:

Stellen zwei Pfade den gleichen Zustand (Graphknoten) dar,

behalte nur den (Baum−)knoten mit geringerem Gewicht g.

31

Page 32: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Prozedur B2 (Branch−and−Bound mit ’dynamischer Programmierung’)

1. L := (S).

Wiederhole bis Ende:

2. P := erstes Element von L.

Falls Zielbedingung (P) oder Leer (L) Ende.

Lösche erstes Element in L.

(a) Expandiere P,

liefert X1,...,Xn.

(b) Lösche Pfade mit Schleifen.

(c) Berechne g(Xi) für i = 1,...,n.

Füge X1,...,Xn in L ein, falls nicht in (b) gelöscht.

Sortiere L nach g.

(d) Lösche neue Knoten in der Liste L, falls deren Markierung im

Suchbaum schon vorher bei einem Knoten aufgetreten sind, und einen

niedrigeren g−Wert haben.

Lösche gegebenenfalls diese vorherigen Knoten aus dem Suchbaum,

falls nämlich ein neuer Knoten einen niedrigeren g−Wert hat.

Die Löschoperationen in (d) scheinen auf den ersten Blick nicht ganz unproblematisch. Was

bedeutet es, einen Knoten aus dem Suchbaum zu löschen? Falls der Knoten in der Liste L

steht, ist diese Operation klar. Was aber muß man tun, wenn der Knoten bereits expandiert

wurde? Muß man dann alle Nachfolger dieses Knotens in der Liste Löschen? Tatsächlich

kann, wie wir bei der Diskussion der benötigten Datenstrukturen sehen werden, dieser Fall

nicht eintreten und die Anweisung kann wie folgt ausgeführt werden:

(d´) ...

Lösche gegebenenfalls diese vorherigen Knoten aus Liste L,

falls nämlich ein neuer Knoten einen niedrigeren g−Wert hat.

Zunächst aber beweisen wir den wichtigen

Satz: B2 ist zulässig für endliche Graphen.

Beweis:

Sei S = X1,...,Xn ein optimaler Pfad zu einem Ziel.

Unterbehauptung: ’Zu jedem Zeitpunkt’ liegt einer der Knoten Xi in L.

32

Page 33: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

(’Zu jedem Zeitpunkt’ heißt hier: Immer, wenn Ende−Bedingung berechnet wird.)

Sei U ein neuer Baumknoten und es gelte: Xi und U stellen den gleichen Graphknoten dar.

Fall 1: g(Xi) <= g(U). Dann wird nur U gelöscht, und Xi bleibt in L. Die Unterbehauptung

gilt also.

Fall 2: g(U) < g(Xi). Tatsächlich ist dieser Fall gar nicht möglich, denn dann der Pfad

X1,...Xn kein optimaler Pfad wie folgende Überlegung zeigt. Sei S = U1,...,Uk = U Pfad zu U

im Graphen.

Wir verwenden folgende Notation: Falls A, B direkt verbunden, sei

w(A, B) := Gewicht der Graphkante von A nach B.

Dann gilt

g(Xi) = w(X1,X2) + ... + w(Xi−1,Xi) > w(U1, U2) + ... + w(Uk−1,Uk) = g(U).

Dann ist aber

w(X1,X2) + ... + w(Xn−1,Xn) = w(X1,X2) + ... + w(Xi−1,Xi) +

w(Xi,Xi+1) + ... + w(Xn−1,Xn)

> w(U1,U2) + ... + w(Uk−1,Uk) +

w(Xi,Xi+1) + ... + w(Xn−1,Xn),

d.h. X1,...,Xn nicht optimal.

Der Satz folgt nun leicht.

Das folgende Beispiel zeigt einige Schritte des Algorithmus.

Beispiel 1:

Pfade b, b’ zu Knoten B mit g(b) < g(b´).

Fall 1: b wird zuerst gefunden.

b = (S, D, B), b’ = (S, A, B).

33

Page 34: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

S

A

DB

5

4

4

9

A

S

D

5 4

A

S

D

8

B

5

A

S

D

8

B

14

B

Fall 2: b’ wird zuerst gefunden.

b’ = (S, A, B), b = (S, D, B).

34

Page 35: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

S

A

DB

3

4

4

9

Branch−and−Bound mit dynamischer Programmierung expandiert nie mehr Knoten als

Branch−and−Bound allein, häufig weniger.

35

Page 36: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Beispiel 2:

S

B C

E F

Z

A

D

3

4 4

5 5

42

4 3

Schritt 1:

A

S

D

3 4

Schritt 2: Der zweite mit D markierte Knoten wird gelöscht.

A

S

D

7

4

B

8D

Schritt 3:

A

S

D

7

B D

8 9

A E

6

Schritt 4:

A

S

D

7

B D

8 9

A E 6

11

B F

10

36

Page 37: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Schritt 5:

A

S

D

7 B D

8 9

A E 6

11

B F

1011

C E

12

Schritt 6: Ohne dynamische Programmierung würde jetzt der gelöschte Knoten D (mit g−

Wert 8) expandiert. Überflüssig! Mit dynamischer Programmierung wird stattdessen F

expandiert, dies liefert den Pfad S−D−E−F−Z.

Datenstruktur für Suchbaum bei dynamischer Programmierung

Wir kommen nun noch einmal zurück auf die Löschoperation in (d) bzw. (d´). Für (d)

benötigen wir die folgende zusätzliche Operation auf dem Suchbaum bzw. der Liste SL:

Prüfe, ob Knoten nicht nur in der Zeigerkette zum Startknoten (Schleife?),

sondern im ganzen bisher expandierten Baum schon vorhanden ist.

Diese Operation muß dann ausgeführt werden, wenn eine Expansion einen Knoten b liefert

mit einem g−Wert g(b) < g(b´), wo b´ ein schon erzeugter Knoten des Suchbaums ist. Falls

nun b´ bereits expandiert ist, dann müssen alle Nachfolger von b´ in der Liste L gefunden und

mit b´ ebenfalls gelöscht oder umgekettet werden. Die folgende Behauptung zeigt, daß der

letztere Fall nicht eintreten kann mit der Konsequenz, daß die Datenstruktur für den

Suchbaum nicht mit einer Vorwärtsverzeigerung ausgestattet werden muß. Die

Rückwärtsverzeigerung der Liste SL reicht aus.

Behauptung: B2 expandiert nie einen sub−optimalen Knoten.Wir präzisieren wie folgt:

Sei b = (S=X1,..., Xk=B) ein optimaler Pfad zu einem Knoten B und b’ = (S=Y1,..., Ym=B)

ein weiterer Pfad zu Graphknoten B, sodaß g(b) < g(b’). Dann werden nie die Nachfolger

von b’ erzeugt.

Beweis: Angenommen Branch−and−Bound mit dynamischer Programmierung expandiert b’.

Zu diesem Zeitpunkt liege Xi in L.

37

Page 38: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Dann gilt: g(Xi) < g(b) < g(b’). −> Behauptung.

Der A*−Algorithmus

Die Überlegung, die uns von den einfachen Algorithmen der Breiten− bzw. Tiefensuche bei

ungewichteten Graphen zur Gradientenmethode geführt hat, kann analog auch ausgehend von

den Algorithmen für gewichtete Graphen erfolgreich versucht werden. Wieder ist das

Problem, die kürzesten Wege in einem gewichteten Graphen zu finden. Nun aber nehmen wir

an, daß uns eine heuristische Überlegung, z.B. aus den Gegebenheiten eines Modells heraus,

eine plausible Abschätzung h(X) der tatsächlichen Kosten (=minimale Pfadlänge) jedes

Knotens X zu einem Zielknoten Z (oder einer Menge von Zielknoten) zur Verfügung steht.

Wir betrachten also eine zusätzliche Schätzfunktion h, wobei

h(X) = `geschätztes Gewicht des kürzesten Weges von X zum nächsten Zielknoten´.

Bemerkung:Wir müssen im weiteren stets im Auge behalten, daß h keine Funktion auf der

Menge der Baumknoten (=Pfade im Graphen), sondern auf der Menge der Graphknoten ist.

Wenn wir trotzdem die Funktion h auch auf Baumknoten anwenden, ohne die Schreibweise

für h zu ändern, dann ist das so zu verstehen, daß h auf den einem Baumknoten eindeutig (als

Endpunkt des Pfades) zugeordneten Graphknoten angewandt wird. Dies ist wesentlich zum

Verständnis dieses Abschnitts.

Damit haben wir zwei Maße zur Bewertung von Baumknoten X zur Verfügung, nämlich

einmal den tatsächlichen, bezüglich eines bestimmten Pfades gemessenen Abstand g(X) von

X zum Startknoten und zum anderen den geschätzten Abstand h(X) von X zum nächsten

Zielknoten. Liegt X auf dem kürzesten Weg vom Startknoten zum nächsten Zielknoten und

wäre h tatsächlich exakt, dann wäre f(X) = g(X) + h(X) gleich der Länge des kürzesten Weges

vom Startknoten zum Zielknoten. Für einen Nachfolger Y von X , der vom rechten Wegˆ

(kürzesten Weg) zum Ziel abweicht, würde gelten f(Y) > f(X) und für die richtigenˆ

Nachfolger von X (die also auf dem kürzesten Weg bleiben) ergäbe f ein Minimum. Dies

Überlegung legt nahe, die Bewertungsfunktion f für Baumknoten X zu definieren als

f(X) = g(X) + h(X).

38

Page 39: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Prozedur A* :

1. L := (S).

Wiederhole bis Ende:

2. P := erstes Element von L.

Falls Zielbedingung(P) oder Leer(L) Ende.

Lösche erstes Element in L.

(a) Expandiere P,

liefert X1,...,Xn.

(b) Lösche Pfade mit Schleifen

(c) Berechne f(Xi) = g(Xi) + h(Xi) für i = 1,...,n.

Füge X1,...,Xn in L ein.

Sortiere L nach f.

(d) Lösche neue Knoten aus der Liste L, die im Suchbaum schon

vorher aufgetreten sind, falls vorheriger Knoten niedrigeren g−Wert hat.

Falls neuer Knoten niedrigeren g−Wert hat, aktualisiere

Nachfolger des vorherigen Knotens, und lösche vorherigen

Knoten.

Die Aktualisierung der Nachfolger eines gelöschten Baumknotens in (d) ist notwendig, wenn

dieser Knoten bereits expandiert worden ist. Dann müssen diese Nachfolger in der Liste L

ebenfalls gelöscht werden. Leider hat der A*−Algorithmus nicht die schöne Eigenschaft des

Branch−and−Bound mit dynamischer Programmierung, daß nämlich sub−optimale Knoten

nicht expandiert werden. Dies hat zur Folge, daß die Datenstruktur des Suchbaums neben der

Rückverzeigerung auch eine Struktur für eine effiziente Nachfolgerberechnung enthalten

muß.

Der A*−Algorithmus kann zu einer Reduktion der Anzahl expandierter Knoten führen, wie

das folgende Beispiel zeigt.

39

Page 40: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Beispiel: Einfaches Branch−and−Bound versus B−and−B mit h−Funktion, d.h. A* ohne

dynamische Programmierung.

S

B C

E F

Z

A

D

3

4 4

5 5

42

4 3

S

B C

E F

Z

A

D

10.44.0

6.7

11.0

6.98.9 3.0

Schritt 1 (Mit h−Funktion):

A

S

D

13.4 12.9

Schritt 2:

A

S

D

19.4

A E

12.9

13.4

Schritt 3:

40

Page 41: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

A

S

D

19.4

A E

13.4

17.7

B F

13.0

Schritt 4: F ist jetzt Knoten mit günstigstem f−Wert wird zuerst expandiert und liefert Z.

Branch−and−Bound alleine hätte zuerst A (mit Nachfolger B, D) expandiert.

Wir beweisen nun die Zulässigkeit von A*. Bezeichne h*(X) für einen Knoten X die

tatsächlichen Kosten des kürzesten Weges zu irgend einem Zielknoten. h* ist natürlich i.a.

unbekannt. A* benutzt heuristisch eine Schätzfunktion h. Trotzdem ist A* zulässig (siehe

nachfolgenden Satz), falls gilt

h(X) <= h*(X) für alle X.

Falls diese Bedingung verletzt ist, gilt nicht notwendigerweise, daß A* zulässig ist, wie das

folgende Beispiel zeigt.

Beispiel 1: A* findet kürzesten Weg nicht, weil h ungünstig gewählt wurde.

A

S

B

Z

1

1 3

2

h=99

h=1

h=0

S−A−Z ist kürzester Weg, aber ausgegeben wird S−B−Z.

Beachte: hier gilt nicht h<=h*.

Beispiel 2: wie Beispiel 1, aber ’verbesserte’ h−Funktion.

41

Page 42: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Der Knoten A liegt zwar auf dem richtigem (opt.) Weg, hat aber einen schlechteren h−Wert

(und schlechteren f−Wert!) als Knoten B. Trotzdem wird hier der optimale Weg gefunden, da

h <= h* überall gilt.

A

S

B

Z

1

1 3

2

h=2

h=1

h=0

Zusätzlich zu den Funktionen f, g, h und h* führen wir nun Funktionen f*, g* ein. Sei

f*(X) := tatsächliche Kosten des kürzesten Wegs von S über X zu irgend einem

Zielknoten.

g*(X) := tatsächliche Kosten des kürzesten Wegs zwischen S und X.

Im Unterschied zu f (Funktion auf Baumknoten) ist f* zunächst eine Funktion auf

Graphknoten. Dies gilt auch für g und g*. f*(S) gibt die Kosten eines überhaupt kürzesten

Wegs von S zu irgend einem Zielknoten im Graphen an. Man beachte den Unterschied

zwischen g und g*, aber auch den zwischen f* und h*:

h*(X) gibt nur die tatsächlichen Kosten von X aus(!) zum nächsten Zielknoten im

Graphen an.

Hier einige Eigenschaften dieser Funktionen:

(1) g*(X) <= g(X), für alle (Graph− bzw. Baum−) Knoten X

(2) für einen optimalen Pfad ZR gilt g(ZR) = f*(S)

(3) Liegt X auf einem optimalem Pfad, dann gilt g*(X) = g(X)

(4) f*(X) = g*(X) + h*(X).

42

Page 43: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

(Übung: Beweise Eigenschaften (1) − (4)! Beachte, daß die Anwendung der *−Funktionen auf

Baumknoten eine (kanonische) Abbildung von Baum− in Graphknoten voraussetzen!)

Satz: Falls h(X) <= h*(X) für alle X, dann ist A* zulässig.

Beweis: Sei (S=X1,...,Xk = Z) ein kürzester Weg von S zu irgend einem Zielknoten Z.

Unterbehauptung 1: Zu ’jedem Zeitpunkt’ liegt wenigstens ein Knoten X1,...,Xk in L.

(Beweis von Unterbehauptung 1 wie bei Branch−and−Bound Verfahren).

Wir nehmen nun an, daß das Verfahren die Zielbedingung für einen falschen (nicht−

optimalen) Zielknoten ZF prüft. Zu diesem Zeitpunkt liege Xi in L. Da ZF Zielknoten ist, gilt

h(ZF) = 0. Damit erhalten wir f(ZF) = g(ZF). Da ZF nicht optimal ist, gilt g(ZF) > f*(S), also

f(ZF) > f*(S).

Unterbehauptung 2: f(Xi) <= f*(S).

Mit dieser Unterbehauptung 2 schließt man weiter, daß f(Xi) < f(ZF) gilt, d.h. Xi wird

expandiert bevor die Zielbedingung für ZF geprüft wird, was ein Widerspruch ist. Daraus

folgt dann der Satz.

Beweis Unterbehauptung 2:

f(Xi) = g(Xi) + h(Xi) = g*(Xi) + h(Xi) <= g*(Xi) + h*(Xi) (wegen h<= h*)

= f*(Xi) = f*(S) (da Xi auf opt. Pfad liegt).

Damit ist die Unterbehauptung und der Satz bewiesen.

Gilt nicht h <= h*, oder kann h <= h* für die Anwendung nicht gezeigt werden, so ist nur

vom A−Algorithmus die Rede. Für A−Algorithmen gilt der Satz nicht. Wir kommen nun

zurück auf das Beispiel des 9er−Puzzles und geben für dieses Beispiel eine zulässige h−

Funktion an.

Beispiel: Zulässige h−Funktion für 9er−Puzzle.

Wir definieren:

43

Page 44: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

g−Funktion: Kosten eines Zuges = 1

(Verschiebung des freien Plättchens um ein Feld)

h−Funktion: Anzahl der Plättchen am falschen Platz

(ohne freies Plättchen)

Zulässigkeit: Sind n Plättchen am falschen Platz, so müssen mindestens noch n Züge

ausgeführt werden, also h<= h* für jede beliebige Stellung.

Übersicht

Breitensuche

Branch−and−Bound

dynamische Progr.

zul. Schätzfunktion

A*

Informierte Schätzfunktionen

Die Effizienz eines A*−Algorithmus hängt wesentlich von der Güte der Schätzfunktion h ab,

auf die sich der Algorithmus bezieht. Der Satz über die Zulässigkeit des A*−Algorithmus legt

nahe, für h mindestes die Ungleichung h<=h* zu fordern.

Definition: Eine Funktion h heißt zulässig, falls für alle X gilt: h(X) <= h*(X).

Gilt h = 0, dann ist das von h herrührende A*−Verfahren gleichbedeutend mit einem

(`uninformierten´) Branch−and−Bound. Falls h = h* gilt, dann hätte man das bestmögliche

A*−Verfahren. `Bestmöglich´ heißt in diesem Zusammenhang, daß die geringste Anzahl von

Baumknoten expandiert werden, bis ein Ziel erreicht wird. Von zwei verschiedenen zulässige

Schätzfunktionen h1 und h2 ist i.a. diejenige `besser´, die näher an h* gelegen ist.

Definition: h2 heißt informierter alsh1, falls h2(X) > h1(X) für alle (nicht−terminalen)

Knoten.

44

Page 45: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Man beachte, daß bei zulässigen Funktionen h1< h2 nur für die nicht−terminalen Knoten

gelten kann. (Warum?)

Definition: Ein Suchbaumknoten X heißt (zu einem gewissen Zeitpunkt)offen, falls X in L

liegt.

Ein Suchbaum wird zur Laufzeit aufgebaut. L enthält dann jeweils die Blattknoten des

momentanen Suchbaums. Die offenen Knoten sind dann also die Blattknoten des Baums zu

dem jeweiligen Zeitpunkt. Wir betrachten, wie sich die offenen Knoten zu den expandierten

Knoten in jedem Zeitpunkt verhalten:

Offener Knoten <−> Expandierter Knoten:

− Falls ein Knoten offen ist, sind noch keine Nachfolger erzeugt, der Knoten ist noch

nicht expandiert.

− Bei Expandierung wird offener Knoten aus L gelöscht

Bereits expandierte Knoten werden auch als geschlossene Knoten bezeichnet.

Der folgende Satz besagt, daß ein `besser informierter´ Algorithmus auch weniger Knoten

expandiert.

Satz: Gelte h1(X) < h2(X) für alle Knoten X und seien A1* und A2* die Versionen des

A*−Verfahrens mit den Schätzfunktionen h1 bzw. h2. Außerdem seien

K1 : die Menge der Knoten, die von A* mit h1 als Schätzfunktion (irgendwann) expandiert

werden, und

K2 : die Menge der mit h2 ( irgendwann) expandierten Knoten.

Dann gilt: K2 ist Teilmenge von K1, d.h. A2* expandiert weniger Knoten als A1*

Beweis:

Sei h zulässig. Wir beweisen zunächst die

Unterbehauptung: Falls Knoten U von A* expandiert wird, gilt f(U) <= f*(S)

Beweis der Unterbehauptung:

45

Page 46: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Zu jedem Zeitpunkt gibt es Knoten X auf einem optimalem Weg.

Zum Zeitpunkt, in dem U expandiert wird, sei X0 in L, und X0 liege auf optimalem Weg.

Dann gilt: f(U)<= f(X0), da U expandiert wird (Sortierung!). Damit folgt

f(U) <= f(X0) = g(X0) + h(X0) = g*(X0) + h(X0) (da X0 auf opt. Weg.)

<= g*(X0) + h*(X0) (Zulässigkeit von h)

= f*(X0) <= f*(S). (da X0 auf opt. Weg.)

−> Unterbehauptung

Beweis des Satzes:

Sei X ein Baumknoten, der von A2 expandiert wird. Zu zeigen ist: X wird auch von A1

expandiert.

Induktion über die Baumtiefe von X:

Auf Tiefe 0 liegt nur Startknoten S −> Induktionsanfang.

Gelte nun der Satz für Knoten bis Tiefe k ( d.h. A1 expandiert alle Knoten, die auch A2

expandiert, jedenfalls bis Tiefe k) und X stehe auf Tiefe k+1.

Nach Induktionsannahme hat A1 alle von A2 expandierten Vorgänger von X auch expandiert.

Damit gilt

g1(X) <= g2(X). (Warum?)

Angenommen, A1 expandiert X nicht.Die Induktionsannahme besagt aber,daß mindestens ein

Vorgänger von X durch A1 expandiert wird. D.h., bei Terminierung von A1 liegt X in L.

Dann muß bei Terminierung von A1 folgendes gegolten haben:

f1(X) >= f*(S). (Warum?)

Also g1(X) + h1(X) >= f*(S).

Damit g2(X) + h1(X) >= f*(S) (I)

Nach Unterbehauptung gilt f2(X) <= f*(S). Damit folgt

g2(X) + h2(X) <= f*(S) (II)

Aus (I) und (II) folgt

f*(S) <= g2(X) + h1(X) ² g2(X) + h2(X) ² f*(S),

d.h. statt `<=` gilt sogar überall ’=’. Damit gilt

46

Page 47: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

g2(X) + h1(X) = g2(X) + h2(X)

d.h. h1(X) = h2(X),

entgegen der Voraussetzung h1 < h2 für alle nichtterminalen X. −> Satz.

Bemerkung: A2 ist nur dann ’besser informiert’ als A1, wenn h2(X) > h1(X) für alle Knoten

X. Es reicht nicht, wenn nur gilt h2 >= h1 reicht nicht, wie das folgende Beispiel zeigt!

Beispiel:

S

BZ

h1 = 1

h2 = 1

1

21

S

B Z

f1 = 2f2 = 2

f1 = 2f2 = 2

A1*

L = (Z, B)

f1 = 2 f1 = 2

S

B Z

f1 = 2f2 = 2

f1 = 2f2 = 2

A2*

L = (B, Z)

f1 = 2 f1 = 2

Im vorausgegangenen Beispiel gilt h1(X) <= h2(X) für alle Knoten X. Trotzdem expandiert

A2* Knoten B, und A1* expandiert B nicht! D.h., die Bedingung h1<= h2 reicht nicht, um

die Teilmengenbeziehung bezüglich expandierter Knoten nachzuweisen.

Für jede Anwendung von A* muß h geeignet definiert werden. Die Zulässigkeit ist i.a. nur

garantiert, wenn h<= h*. Damit erhebt sich die Frage, ob diese Bedingung überhaupt in den

47

Page 48: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Anwendungen leicht sicherzustellen ist, d.h., ob man bei der Wahl von h heuristische

Anhaltspunkte für das Gelten dieser Bedingung hat. Tatsächlich hat man für eine große Klasse

von Problemen derartige Anhaltspunkte. Wir betrachten dazu eineEuklidische Wegsuche.Das

Problem sei beispielsweise, den KürzsterWeg zwischen zwei Punkten auf einer Landkarte˜ zu

finden, wobei allerdings die Bewegung auf Straßen eingeschränkt sei. Straßen und

Straßenkreuzungen bilden die Kanten bzw. Knoten im Graphen. Die Kantengewichte seien

die euklidischen Abstände zwischen Knoten. Wir definieren die

h−Funktion: h(X) = d(X, Z), (Luftlinie von X zum Ziel Z)

Es gibt hier nur einen Zielknoten im Graphen. Alle tatsächlichen Wege entlang der Straßen

sind länger als die Luftlinie, d.h., die Zulässigkeitsbedingung h<=h*ist erfüllt.

Monotonierestriktion

Wir haben festgestellt, daß das A*−Verfahren i.a. auch nichtoptimale Teilpfade expandiert (d.

h.natürlich, zunächst öffnet und später expandiert). Erfüllt allerdings h die im folgenden

definierte `Monotonierestriktion´, dann werden nur optimale Pfade expandiert.

Definition (Monotonierestriktion): Sei w(V,N) das Gewicht der Kante von V nach N, wobei

V ein (direkter) Voränger von N ist. Falls die Funktion h für alle direkt verbundenen Knoten

V, N (V ein Vorgänger von N im Suchbaum) die Bedingung

h(V) <= h(N) + w(V,N)

gilt, dann sagt man, daß h die Monotonierestriktion erfüllt.

Beispiel: (Monotonierestriktion beim 9er−Puzzle)

Sei h gegeben durch die Anzahl der im Vergleich zur Zielstellung falschplazierten Plättchen

im 9er−Puzzle. Die Kosten eines Zuges sei 1, d.h. w(V,N) = 1. Dann ist

h(V) <= h(N) + w(V,N),

denn h(V) und h(N) können sich höchstens um 1 unterscheiden und w(V,N) >= 1.

Satz: Falls h die Monotonierestriktion erfüllt ist, werden in dem zu h gehörigen A*−

Verfahren nur

48

Page 49: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

optimale Teilpfade expandiert.

Beweis: Sei (S=X0,...,Xk = X) ein optimaler Pfad zu X.

S

Xl

X

opt. Pfad zu X

nicht opt. Pfad zu X

Xl+1

Wir betrachten den Zeitpunkt, in dem X expandiert wird. Zu zeigen ist g*(X) = g(X) in

diesem Zeitpunkt, denn dann stellt der Baumknoten X den optimalen Pfad dar.

Zu diesem Zeitpunkt sei der Pfad (X0,...,Xk) bis zum Knoten Xl+1 entwickelt, d.h. Xl+1 ist

in L, aber noch nicht expandiert. Außerdem sei der (optimale) Teilpfad (X1,...,Xl+1)

bekannt. D.h. Xl+1 ist also der Knoten, bis zu dem der optimale Pfad bereits bekannt ist (evtl.

gilt sogar Xl+1 = X1, auf jeden Fall wurde ja S expandiert).

Da der optimale Pfad bis zu Xl+1 bekannt ist, gilt

g(Xl+1) = g*(Xl+1). (I)

Diese Gleichung werden zum Beweis der folgenden Unterbehauptung benötigen.

Unterbehauptung: f(Xl+1)<= g*(X) + h(X).

Aus der Unterbehauptung folgt dann der Satz wie folgt:

Es gilt

f(X) <= f(Xl+1 ),

sonst würde Xl+1 und nicht X expandiert.

49

Page 50: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

Damit gilt

f(X) <= f(Xl+1 ) <= g*(X) + h(X).

auf Grund der Unterbehauptung.

Also

g(X) + h(X)<= g*(X) + h(X).

Subtrahiere h(X) auf beiden Seiten: g(X) <= g*(X).

Da auch umgekehrt gilt g*(X)<= g(X)

folgt dann der Satz.

Beweis der Unterbehauptung:

Die Monotonierestriktion liefert

h( Xl+1 ) <= h(Xl+2)+w(Xl+1, Xl+2)

Addiere g*(Xl+1 ) auf beiden Seiten:

g*(Xl+1)+h( Xl+1) <= g*(Xl+1)+h(Xl+2)+w(Xl+1, Xl+2)

Andererseits, da Xl+1 und Xl+2 auf opt. Pfad liegen:

g*(Xl+2) = g*(Xl+1 ) + w(Xl+1 , Xl+2 )

Einsetzen in vorige Gleichung liefert

g*(Xl+1)+h( Xl+1) <= g*(Xl+2)+h(Xl+2)

Mehrfache Anwendung der letzten Gleichung

g*(Xl+1)+h( Xl+1) <= g*(Xl+2)+h(Xl+2)

<= g*(Xl+3)+h(Xl+3)

. . .

<= g*(Xk)+h(Xk)

50

Page 51: Wissensbasierte Systeme I TU MÜNCHEN Institut für ... · Wir nehmen nun weiter an, daß es eine in S formulierbare Methode F gibt, diese Beweise zu finden. Genauer, wir nehmen einen

Wissensbasierte Systeme I

<= g*(X)+h(X)

Insgesamt:

g*(Xl+1)+h( Xl+1) <= g*(X)+h(X)

Aber wie in (I) gezeigt:

g*(Xl+1) = g(Xl+1) ,

da optimaler Pfad zu Xl+1 ja zum betrachteten Zeitpunkt bekannt ist.

Also ist

f(Xl+1) =

g(Xl+1)+h( Xl+1) = g*(Xl+1)+h( Xl+1) <= g*(X)+h(X).

−> Unterbehauptung.

Zusammenfassung: Eigenschaften von A*

− Zulässig, falls h<= h*.

− Je näher die Schätzfunktion h an h* liegt, desto

weniger Knoten werden expandiert,

d.h., je ’informierter’, desto kleiner der Suchbaum.

− Mit Monotonierestriktion (MR) werden nur optimale

Knoten expandiert, d.h.einfach verzeigter Suchbaum reicht aus.

51