Kognitive Systeme 1 Inhalt Einbringen von Domänenwissen

Werbung
Inhalt
Kognitive Systeme 1
1
Heuristiken
2
Der A∗ -Algorithmus
3
Eigenschaften von Heuristiken
4
Anwendung: Routenplanung
Heuristische Suche
Dr.-Ing. Bernd Ludwig
Lehrstuhl für Künstliche Intelligenz
Friedrich-Alexander-Universität Erlangen-Nürnberg
12.11.2009
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
1 / 36
Einbringen von Domänenwissen
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
2 / 36
Einbringen von Domänenwissen
Intuitiv sucht man den kürzesten Weg in der richtigen Richtung.
Nach wie vor gegeben ist die Modellierung des Problems als
Suchgraph.
Die Länge eines Wegs ist eine positive reelle Zahl, der kürzeste
Weg hat die Länge 0, zwei Wege sind immer über ihre Länge
vergleichbar.
Wie kann welches Domänenwissen in die Suche eingebracht
werden?
Domänenwissen
Regeln, wie der Suchraum expandiert werden kann
Bewertung einer Expansion durch Kosten für Knoten und Kanten
Bewertungsfunktionen sind numerisch leicht handhabbar.
Sind reelle Zahlen der Wertebereich, findet man immer ein
eindeutiges Minimum und kann Bewertungen verschiedener
Expansionen immer vergleichen.
Mehrdimensionale Wertebereiche sind viel schwieriger.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Die Richtung zum Ziel (0 ≤ φ ≤ 360) spielt auch eine Rolle.
Kapitel 4
3 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
4 / 36
Einbringen von Domänenwissen
Definitionen zu Heuristiken
Die Richtung ist problematisch als Bestandteil einer
Bewertungsfunktion:
I
I
Definition (Bewertungsfunktion (Heuristik))
Links- und Rechtsdrehungen können sich gegenseitig aufheben.
Man kann sich beliebig oft im Kreis drehen.
Formal ist – für uns zunächst – eine Heuristik eine Funktion
f̂ : RN → R.
f̂ bildet N Parameter eines Knotens n im Suchraum auf eine
Schätzung der Kosten ab, mit denen ein definiertes Ziel von n aus
erreicht werden kann.
Besser ist eine Relaxation der Bewertung:
I
I
In der Entfernung zum Ziel ist die Richtung implizit enthalten: je
weiter man entgegen der Richtung zum Ziel fährt, desto größer
wird die Entfernung.
Die Entfernung unterscheidet nicht zwischen gleicher Weglänge,
aber unterschiedlicher Richtung.
Definition (Tatsächliche Kosten)
Die tatsächlich entstehenden Kosten, um auf einem Pfad von n zum
Ziel zu gelangen, werden durch die Funktion f : RN → R.
Beispiel:
Tatsächliche Kosten: Weglänge (in auf der Autobahn zu fahrenden
Kilometern) von einer Ausfahrt zu einer anderen
I
Geschätzte Kosten: Luftlinie von einer Ausfahrt zu einer anderen
Die Gesamtkosten sind durch Aufaddieren darstellbar.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
5 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
6 / 36
A∗ -Suche: Minimierung der Gesamtpfadkosten
Definitionen zu Heuristiken
Definition (Bisherige Kosten und Restkosten)
Eine A∗ -Heuristik (kurz: Heuristik) hat die Form:
f̂ (x) = ĝ(x) + ĥ(x)
ĝ(x) sind die geschätzten bisherigen Kosten vom Startknoten bis zum
Knoten x.
ĥ(x) sind die geschätzten Restkosten von n zum Ziel.
Die tätsachlichen Kosten müssen sich analog zerlegen lassen:
f (x) = g(x) + h(x)
Bewertungsfunktion hat zwei Komponenten:
bisher angefallene Kosten vom Start zum aktuellen Knoten n: g(n)
Beispiel:
Schätzung für die Kosten von n zum Ziel: h(n)
Bisherige Kosten: Weglänge (in auf der Autobahn zu fahrenden
Kilometern) vom Start zu einer Ausfahrt
Bewertungsfunktion f (n) = g(n) + h(n)
Restkosten: Luftlinie von einer Ausfahrt zum Ziel
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
7 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
8 / 36
Algorithmus für die A∗ -Suche
Anforderungen an Heuristiken
Das Beispiel (Luftlinie und Richtung) macht deutlich, dass es gut,
weniger gut oder sogar überhaupt nicht geeignete
Bewertungsfunktionen gibt.
Die Eignung einer Bewertungsfunktion hängt auch von der zu
optimierenden Größe (z.B. Fahrzeit, Fahrweg, Benzinverbrauch)
ab.
Wie kann sichergestellt werden, dass ein Suchverfahren
tatsächlich auch eine optimale Lösung findet?
Welche Anforderungen stellt dieses Ziel an eine brauchbare
Heuristik?
Wie funktioniert ein Algorithmus, der eine optimale Lösung
berechnet?
Der Algorithmus von D IJKSTRA zur Suche des kürzesten Pfads
addiert Kosten. Kann diese Idee übernommen werden?
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
9 / 36
A∗ -Algorithmus
astar(source, target)
g(source) = 0; open = {source}; close = {};
while(not open.isEmpty()) {
remove min with the smallest f-value from open;
if (min == target) return getWay(min);
close.insert(min);
for each successor s of min {
if (s not in open and s not in close) {
open+={s}; saveWay(s); g(s)=g(min)+cost(min,s);
}
else if (g(min) + cost(min, s) < g(s)) {
g(s) = g(min) + cost(min, s); saveWay(s);
if (s in close) {
open.insert(s); close.remove(s)
}
}
}
}
return fail
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Optimistische Heuristiken
Optimistische Heuristiken
Beispiel:
Definition (Optimistische Heuristik)
10 / 36
Eine Heuristik heißt optimistisch, wenn sie nie Restkosten schätzt, die
über den tatsächlichen Kosten liegen.
m
Luftlinie: 5
tatsächlich: 5,5
Kapitel 4
Schätzfunktion sei die Luftlinie zwischen zwei Knoten.
Im ersten Schritt ergibt sich die Warteschlange
Luftlinie: 3
tatsächlich: 4
([m], 3), ([g], 4)
im nächsten Schritt:
g
([g, m], 4 + 5), ([g], 4)
Bei der Expansion von ([g, m], 4 + 5) werden die tatsächlichen
Kosten 4 + 5.5 = 9.5 ermittelt.
Da nun ein Endknoten erreicht ist, wird die Lösung ausgegeben.
Die Lösung ist optimal!
n
Luftlinie: 4
tatsächlich: 10
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
11 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
12 / 36
Optimale Lösungen dank optimistischer Heuristiken
Optimale Lösungen dank optimistischer Heuristiken
Zulässigkeit eines Suchgraphen
Der Beweis wird mittels vollständiger Induktion über die Anzahl der
Expansionsschritte geführt.
Jeder Knoten im Graphen hat 0 ≤ k < ∞ Nachfolger.
Jede Kante hat Kosten c mit c > > 0. Dabei ist eine für alle
Kanten feste Zahl.
Basisfall: n0 wird gerade expandiert
Für alle Knoten n gilt: ĥ(n) ≤ h(n) (ĥ ist optimistisch).
Wir zeigen damit:
Theorem
A∗
Nach jedem Schritt von
gibt es einen Knoten
mit folgenden Eigenschaften:
1
n∗
2
Es gibt einen optimalen Pfad von n0 zu n∗ .
3
f̂ (n∗ ) ≤ f (n0 )
n∗
auf der Open-Liste
Kognitive Systeme 1
n0 ist auf der Open-Liste.
2
Als Startknoten ist n0 natürlich auf einem optimalen Pfad vom
Start zum Ziel.
3
f̂ (n0 ) = ĝ(n0 ) + ĥ(n0 ) = ĥ(n0 ) ≤ h(n0 ).
Wir nutzen hier die Tatsachen aus, dass
I
I
liegt auf einem optimalen Pfad zum Ziel.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
1
die tatsächlichen Kosten des Startknotens 0 sind und
ĥ optimistisch ist.
ALSO: Im Basisfall ist die Aussage des Satzes erfüllt, wenn n0 als der
gesuchte Knoten n∗ genommen wird.
Kapitel 4
13 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
Optimale Lösungen dank optimistischer Heuristiken
Optimale Lösungen dank optimistischer Heuristiken
Induktionsannahme: Nach m − 1 ≥ 0 Expansionsschritten gibt es
einen Knoten n∗ , der die Anforderungen des Satzes erfüllt.
Schwieriger Fall:
n∗ wird expandiert.
n∗ steckt irgendwo in der Warteschlange. Beim nächsten
Expansionsschritt tritt einer der beiden Fälle auf:
Einer seiner Nachfolger muss die Eigenschaften (1), (2) und (3)
erfüllen.
Einfacher Fall: n∗ steht nicht am Anfang, wird also überhaupt nicht
expandiert, sondern irgendein anderer Knoten.
n∗
Alle Nachfolger von n∗ kommen auf die Open-Liste.
bleibt also auf der Open-Liste.
Einer von ihnen (nennen wir ihn nm ) hat die kleinsten Kosten.
Die Eigenschaften (1), (2) und (3) aus dem letzten
Expansionsschritt gelten immer noch.
Deshalb erweitert die Kante durch n∗ zu nm den optimalen Pfad
zu n∗ optimal.
Wir nehmen also denselben Knoten n∗ wie bisher, weil der alle
gesuchten Eigenschaften erfüllt.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
14 / 36
Kapitel 4
Das erfüllt die Anforderungen (1) und (2) für nm .
15 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
16 / 36
Optimale Lösungen dank optimistischer Heuristiken
Optimale Lösungen dank optimistischer Heuristiken
Mit dem Theorem über optimale Pfade beweisen wir die
Vollständigkeit und Korrektheit von A∗ :
Die Kosten für nm werden wie folgt geschätzt:
Theorem
f̂ (nm ) = ĝ(nm ) + ĥ(nm )
∗
Bei einem zulässigen Suchgraphen termininert A∗ immer und findet zu
einem Startknoten n0 einen optimalen, d.h. kosten-minimalen, Pfad
genau dann, falls der auch existiert.
∗
≤ g(n ) + cost(n , nm ) + h(nm )
= g(nm ) + h(nm )
= f (nm ) ≤ f (n0 )
Dass die Termininierung garantiert ist, beweisen wir per Widerspruch.
Die letzte Ungleichung gilt, weil die tatsächlichen Kosten für einem
optimalen Teilpfad von n0 zum Ziel nicht größer sein können als
die Kosten für den ganzen Pfad.
Sei also angenommen, es gebe einen Suchgraphen mit einem
Startknoten n0 , und A∗ terminiere nicht. Dann werden unendlich
lange Knoten expandiert.
nm wird das neue n∗ .
Da – wegen der Zulässigkeit des Suchgraphen – kein Knoten
unendlich viele Nachfolger hat, gibt es aber nur endlich viele
Expansionsschritte, weil Knoten nicht mehrfach besucht werden.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
17 / 36
Optimale Lösungen dank optimistischer Heuristiken
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
18 / 36
Optimale Lösungen dank optimistischer Heuristiken
Zur Korrektheit überlegen wir, dass A∗ nur terminiert, wenn entweder
die Open-Liste leer ist, oder
ein Zielknoten erreicht wurde.
Nach dem eben gezeigten Theorem gibt es in jedem dieser
Schritte einen Knoten n∗ mit f̂ (n∗ ) ≤ f (n0 ).
Fall 1:
Weil die tatsächlichen Kosten an Kanten immer positiv sind, bleibt
bei jedem Schritt f̂ (n∗ ) mindestens konstant und übersteigt
irgendwann f (n0 ).
Dies widerspricht aber der Optimalitätseigenschaft von n∗ .
A∗ muss also auf jedem zulässigen Suchgraphen terminieren.
Bei leerer Open-Liste gibt es keine Kante zu einem Zielknoten (sonst
wäre sie ja nicht vorzeitig leer). A∗ erkennt dies korrekterweise.
Fall 2:
Falls ein Zielknoten ns erreicht wurde, nehmen wir – für einen
Widerspruchsbeweis – an, der Pfad sei nicht optimal. Daraus folgt:
f (ns ) > f (n0 )
f̂ (ns ) = ĝ(ns ) + ĥ(ns ) = ĝ(ns ). ĥ(ns ) = 0, da ns ein Zielknoten ist.
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
19 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
20 / 36
Optimale Lösungen dank optimistischer Heuristiken
Nicht optimistische Heuristiken
m
Einen Schritt früher gab es noch n∗ mit f (n∗ ) ≤ f (n0 ), da n∗ nach
dem ersten Theorem auf einem optimalen Pfad liegt.
A∗ sucht jetzt den kosten-minimalen Nachfolger von n∗ . Soll dies
ns sein, muss f̂ (ns ) ≤ f (n0 ) gelten.
Luftlinie: 5
tatsächlich: 5,5
g
n
Der Pfad nach ns ist aber suboptimal. Also: f̂ (ns ) ≤ f (n0 ) < f (ns ),
also ĝ(ns ) < g(ns ).
In einem Zielknoten gilt aber (weil immer der kosten-minimale
Nachfolger gewählt wurde) ĝ(ns ) = g(ns ).
Per Konstruktion des Algorithmus wird ns also doch nicht erreicht! Es
muss also einen anderen, besseren Nachfolger von n∗ geben.
Luftlinie: 3
tatsächlich: 4
Luftlinie: 4
tatsächlich: 10
Eine vorsichtige Schätzung könnte die Reststrecke (rote Linie) mit
der dreifachen Luftlinie abschätzen.
Für (n, g) gilt also: ĥ(n) > h(n)
Expansion ab n ergibt also folgende Warteschlange:
([m], 9), ([g], 12)
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
21 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Nächster Expansionsschritt: m hat die beste Bewertung.
Es gibt nur den Nachfolger g.
Die Warteschlange schaut jetzt so aus:
Als Beispiel nehmen wir die folgende
Restkostenschätzung an:
Knoten x
n
a
b
c
g
([g], 12), ([g, m], 4 + 15)
Der Pfad [g, m] hat die Bewertung 4 + 15, weil die tatsächlichen
Kosten von n nach m 4 betragen und die Kosten von m nach g mit
3 · 5 = 15 geschätzt werden.
Im nächsten Schritt wird das Element ([g], 12) bearbeitet.
g ist der Zielknoten, also wird der Pfad n → g als Lösung
ausgegeben.
Seine tatsächlichen Kosten betragen 10, die des Pfads
n → m → g aber nur 9.
Es wurde also ein nicht-optimaler Pfad gewählt.
Sollen wir weitersuchen? Dann haben wir wieder eine
uninformierte Suche!
Kognitive Systeme 1
22 / 36
“Backtracking” bei A∗
Nicht optimistische Heuristiken
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kapitel 4
Kapitel 4
23 / 36
ĥ(x)
11
4
6
3
0
h(x)
11
6
6
3
0
Tatsächliche Kosten sind die Entfernungen
zwischen zwei Knoten, wie an den Kanten annotiert.
Ausgangslage:
I
I
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Startknoten: n
Zielknoten: g
Kognitive Systeme 1
Kapitel 4
24 / 36
“Backtracking” bei A∗
“Backtracking” bei A∗
Bei Start ab n findet folgender erster Expansionsschritt statt:
a:
b:
open
closed
Alle bisherigen Schätzungen über a müssen revidiert werden!
f̂ (a) = 5 + 4 = 9
f̂ (b) = 4 + 6 = 10
(a, 9); (b, 10)
n
Dazu wird a von der Closed-Liste genommen und wieder in die
Open-Liste eingefügt.
open
c, a
closed n, b
Expansion von a:
nächster Expansionsschritt:
c:
f̂ (c) = 5 + 3 + 3 = 11
open
(b, 10); (c, 11)
closed n, a
g:
f̂ (g) = 4 + 3 + 3 = 10
open
g, a
closed n, b, c
Als nächster Knoten wird b expandiert.
Letzter Schritt:
c : f̂ (c) = 4 + 3 + 3 = 10
g : Zielknoten
Es gibt nun einen besseren Pfad durch b nach g!
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
25 / 36
“Backtracking” bei A∗
Kapitel 4
26 / 36
Um Backtracking zu vermeiden, muss
Ist die Heuristik dafür verantwortlich?
f̂b (g) ≥ f̂a (g) ⇐⇒ ĥb (g) − ĥa (g) ≥ ĝa (g) − ĝb (g)
Gibt es Heuristiken, die Backtracking vermeiden können?
Analyse der beiden Pfade durch c:
Die Kosten für den Pfad [n, a, c, g] seien f̂a (g), die Kosten für den
Pfad [n, b, c, g] seien f̂b (h).
f̂b (g) < f̂a (g) ⇐⇒ ĥb (g) + ĝb (g) < ĥa (g) + ĝa (g)
Die Differenz der Restkosten ist also kleiner als die Differenz der
tatsächlichen Kosten.
Kapitel 4
Die Restkostenschätzung darf nicht zu optimistisch sein!
Die tatsächlichen Kosten entstehen durch Aufaddieren von Kosten
für Kanten, also von Pfaden der Länge 1.
ĥb (g) − ĥa (g) < ĝa (g) − ĝb (g)
Kognitive Systeme 1
gelten. Die optimale Lösung wird also je schneller gefunden, desto
eher der Pfad mit den kleinstmöglichen Kosten identifiziert wird.
ĝa (g) − ĝb (g) ist die Summe der Kosten für Kanten, die nicht den
beiden Pfaden gemeinsam sind.
Wir haben berechnet:
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
“Backtracking” bei A∗
Welche Ursache führt zum Backtracking?
Also:
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
27 / 36
Unterscheiden sich Pfad 1 und Pfad 2 zum Knoten g nur um eine
Kante (x, a), gilt:
ĝ1 (g) − ĝ2 (g) = c(x, g)
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
28 / 36
Vermeiden des “Backtracking”
Nicht monotone Heuristiken
Entfernung: 8
kein Stau
Damit in diesem Fall “Backtracking” vermieden wird, muss gelten:
f̂2 (g) ≥ f̂1 (g) ⇐⇒ ĥ1 (g) − ĥ2 (g) ≤ ĝ2 (g) − ĝ1 (g) = c(x, g)
Entfernung: 2
kein Stau
g
Damit haben wir eine Anforderung an eine Heuristik hergeleitet,
mit der “backtracking” vermieden werden kann.
Definition (Monotone Heuristik)
Entfernung: 8
Stau
Das Monotoniekriterium kann als Analogon zur
Dreiecksungleichung angesehen werden.
Die Luftlinie ist ein Beispiel für eine monotone Heuristik.
Kognitive Systeme 1
Kapitel 4
ĥ(x) =
29 / 36
Nicht monotone Heuristiken
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
d(x, g)
v · (2 − P(Stau in x))
Kognitive Systeme 1
Kapitel 4
30 / 36
Monotone Heuristiken sichern lokal optimale Pfade
Gilt die Anforderung für alle Kanten eines Pfads, wachsen die
Kosten längs des Pfads streng monoton:
Die Restkostenschätzung für n beträgt:
ĥ(n) =
n
v ist die mittlere Geschwindigkeit, die auf allen Strecken gefahren
wird.
Tatsächliche Kosten:
d(x, g)
g(x) =
v
Restkostenschätzung:
Eine Heuristik heißt monoton, wenn für alle Kanten (x, y ) im
Suchgraphen gilt:
ĥ(x) − ĥ(y ) ≤ c(x, y )
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
m
8
8
8
=
=
v · (2 − P(Stau in n))
(2 − 1)v
v
ĥ(a) − ĥ(b) ≤ c(a, b)
a
ĥ(b) − ĥ(c) ≤ c(b, c)
Die Restkostenschätzung für m beträgt:
ĥ(m) =
8
8
4
=
=
v · (2 − P(Stau in m))
(2 − 0)v
v
Also:
b
h(b)
h(a)
ĥ(a) − ĥ(c) ≤ c(a, c) + c(b, c) = ĝ(c)
Damit ist das Monotoniekriterium
Also:
ĥ(n) ≤ cost(n, m) + ĥ(m)
c
d
nicht erfüllt, da
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
A∗ wählt zum Knoten x also den Nachfolger y , der
ĝ(x) + c(x, y ) + ĥ(y ) minimiert.
Jetzt gibt es kein Backtracking mehr!
8
2 4
> +
v
v
v
Kognitive Systeme 1
f̂ (a) = 0 + ĥ(a) ≤ ĝ(c) + ĥ(c) = f̂ (c)
Kapitel 4
31 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
32 / 36
Monotone Heuristiken sichern lokal optimale Pfade
Monotone Heuristiken sichern lokal optimale Pfade
j
1
ni+1
hat die niedrigsten Kosten, denn für alle anderen Knoten ni+1
(2 ≤ j ≤ K ) gilt:
Theorem
A∗ hat bei Verwendung einer monotonen Heuristik einen optimalen
Pfad nach n gefunden, sobald n expandiert wird.
Beweis:
Besteht der Pfad nur aus dem Start n0 , ist nichts zu zeigen.
=
durch ni und dann durch den Nachfolger von ni mit minimalem
j
c(ni , ni+1
) oder
nicht einmal durch ni sondern durch irgendeinen anderen Knoten,
falls es einen optimalen Pfad überhaupt gibt.
Im nächsten Schritt wird der Knoten mit der Nummer k = 1
expandiert oder überhaupt keiner der Nachfolger.
33 / 36
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Zusammenfassung
Klasse für A∗ -Suche
Unsere Analyse von Heuristiken für A∗ -Stern läßt sich in folgendem
Fazit zusammenfassen:
package graph;
Kognitive Systeme 1
Kapitel 4
34 / 36
import java.util.Enumeration;
Eigenschaften von Heuristiken
Die Verwendung von Heuristiken bezweckt eine Reduktion des
Suchaufwands gegenüber der uninformierten Suche.
public class AStarGraph extends ALGOGraph {
public void initSearch(ALGOPlacemarkNode startNode,
ALGOPlacemarkNode targetNode) {
}
Die Reduktion soll erreicht werden, indem Domänenwissen in
eine Bewertungsfunktion (Heuristik) einfliesst.
public boolean solutionFound() { ... }
Eine optimistische Heuristik reicht, um eine optimale Lösung, d.h.
einen Pfad mit minimalen Kosten von Start zu Ziel, zu finden.
Eine monotone Heuristik bewirkt, dass auch jeder Teilpfad der
Lösung optimal ist.
Kognitive Systeme 1
0
Fazit: Der optimale Pfad verläuft also entweder
j
j
j
j
j
f̂ (ni+1
) = ĝ(ni+1
) + ĥ(ni+1
) = g(ni ) + c(ni , ni+1
) + ĥ(ni+1
)
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
=
Die Ungleichung gilt, weil die Heuristik monoton ist.
Jeder Knoten wird in die Open-Liste eingefügt mit dem Gewicht
Kapitel 4
j
j
1
1
g(ni ) + c(ni , ni+1
) + ĥ(ni+1
) − g(ni ) − c(ni , ni+1
) − ĥ(ni+1
)
j
j
1
1
c(ni , ni+1
) − c(ni , ni+1
) + ĥ(ni ) − c(ni , ni+1
) − ĥ(ni ) + c(ni , ni+1
)
j
ni hat die Nachfolger ni+1
(1 ≤ j ≤ K < ∞).
Kognitive Systeme 1
=
j
j
1
1
c(ni , ni+1
) − c(ni , ni+1
) + ĥ(ni+1
) − ĥ(ni+1
) ≥
Induktionsannahme: Es seien bereits i Knoten expandiert, der
letzte sei ni .
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
j
1
f̂ (ni+1
) − f̂ (ni+1
)
Kapitel 4
public boolean noSolution() { ... }
}
35 / 36
public void nextStep() { ... }
Dr.-Ing. Bernd Ludwig (Lehrstuhl KI)
Kognitive Systeme 1
Kapitel 4
36 / 36
Herunterladen