Kognitive Systeme 1 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 Inhalt 1 Heuristiken 2 Der A∗ -Algorithmus 3 Eigenschaften von Heuristiken 4 Anwendung: Routenplanung Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 2 / 36 Einbringen von Domänenwissen Nach wie vor gegeben ist die Modellierung des Problems als Suchgraph. 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 Kapitel 4 3 / 36 Einbringen von Domänenwissen Intuitiv sucht man den kürzesten Weg in der richtigen Richtung. 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. Die Richtung zum Ziel (0 ≤ φ ≤ 360) spielt auch eine Rolle. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 4 / 36 Einbringen von Domänenwissen Die Richtung ist problematisch als Bestandteil einer Bewertungsfunktion: I I Links- und Rechtsdrehungen können sich gegenseitig aufheben. Man kann sich beliebig oft im Kreis drehen. Besser ist eine Relaxation der Bewertung: I 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. Die Gesamtkosten sind durch Aufaddieren darstellbar. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 5 / 36 Definitionen zu Heuristiken Definition (Bewertungsfunktion (Heuristik)) 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. 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 Geschätzte Kosten: Luftlinie von einer Ausfahrt zu einer anderen Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 6 / 36 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) Beispiel: Bisherige Kosten: Weglänge (in auf der Autobahn zu fahrenden Kilometern) vom Start zu einer Ausfahrt Restkosten: Luftlinie von einer Ausfahrt zum Ziel Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 7 / 36 A∗ -Suche: Minimierung der Gesamtpfadkosten Bewertungsfunktion hat zwei Komponenten: bisher angefallene Kosten vom Start zum aktuellen Knoten n: g(n) Schätzung für die Kosten von n zum Ziel: h(n) Bewertungsfunktion f (n) = g(n) + h(n) Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 8 / 36 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 Algorithmus für die A∗ -Suche 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 Kapitel 4 10 / 36 Optimistische Heuristiken Beispiel: m Luftlinie: 5 tatsächlich: 5,5 Luftlinie: 3 tatsächlich: 4 g n Luftlinie: 4 tatsächlich: 10 Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 11 / 36 Optimistische Heuristiken Definition (Optimistische Heuristik) Eine Heuristik heißt optimistisch, wenn sie nie Restkosten schätzt, die über den tatsächlichen Kosten liegen. Schätzfunktion sei die Luftlinie zwischen zwei Knoten. Im ersten Schritt ergibt sich die Warteschlange ([m], 3), ([g], 4) im nächsten Schritt: ([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! Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 12 / 36 Optimale Lösungen dank optimistischer Heuristiken Zulässigkeit eines Suchgraphen 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. Für alle Knoten n gilt: ĥ(n) ≤ h(n) (ĥ ist optimistisch). Wir zeigen damit: Theorem Nach jedem Schritt von A∗ gibt es einen Knoten n∗ auf der Open-Liste mit folgenden Eigenschaften: 1 n∗ liegt auf einem optimalen Pfad zum Ziel. 2 Es gibt einen optimalen Pfad von n0 zu n∗ . 3 f̂ (n∗ ) ≤ f (n0 ) Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 13 / 36 Optimale Lösungen dank optimistischer Heuristiken Der Beweis wird mittels vollständiger Induktion über die Anzahl der Expansionsschritte geführt. Basisfall: n0 wird gerade expandiert 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 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. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 14 / 36 Optimale Lösungen dank optimistischer Heuristiken Induktionsannahme: Nach m − 1 ≥ 0 Expansionsschritten gibt es einen Knoten n∗ , der die Anforderungen des Satzes erfüllt. n∗ steckt irgendwo in der Warteschlange. Beim nächsten Expansionsschritt tritt einer der beiden Fälle auf: Einfacher Fall: n∗ steht nicht am Anfang, wird also überhaupt nicht expandiert, sondern irgendein anderer Knoten. n∗ bleibt also auf der Open-Liste. Die Eigenschaften (1), (2) und (3) aus dem letzten Expansionsschritt gelten immer noch. Wir nehmen also denselben Knoten n∗ wie bisher, weil der alle gesuchten Eigenschaften erfüllt. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 15 / 36 Optimale Lösungen dank optimistischer Heuristiken Schwieriger Fall: n∗ wird expandiert. Einer seiner Nachfolger muss die Eigenschaften (1), (2) und (3) erfüllen. Alle Nachfolger von n∗ kommen auf die Open-Liste. Einer von ihnen (nennen wir ihn nm ) hat die kleinsten Kosten. Deshalb erweitert die Kante durch n∗ zu nm den optimalen Pfad zu n∗ optimal. Das erfüllt die Anforderungen (1) und (2) für nm . Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 16 / 36 Optimale Lösungen dank optimistischer Heuristiken Die Kosten für nm werden wie folgt geschätzt: f̂ (nm ) = ĝ(nm ) + ĥ(nm ) ≤ g(n∗ ) + cost(n∗ , nm ) + h(nm ) = g(nm ) + h(nm ) = f (nm ) ≤ f (n0 ) 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. nm wird das neue n∗ . Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 17 / 36 Optimale Lösungen dank optimistischer Heuristiken Mit dem Theorem über optimale Pfade beweisen wir die Vollständigkeit und Korrektheit von A∗ : Theorem 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. Dass die Termininierung garantiert ist, beweisen wir per Widerspruch. Sei also angenommen, es gebe einen Suchgraphen mit einem Startknoten n0 , und A∗ terminiere nicht. Dann werden unendlich lange Knoten expandiert. 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 18 / 36 Optimale Lösungen dank optimistischer Heuristiken Nach dem eben gezeigten Theorem gibt es in jedem dieser Schritte einen Knoten n∗ mit f̂ (n∗ ) ≤ f (n0 ). 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. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 19 / 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. Fall 1: 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 20 / 36 Optimale Lösungen dank optimistischer Heuristiken 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. 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. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 21 / 36 Nicht optimistische Heuristiken m Luftlinie: 5 tatsächlich: 5,5 Luftlinie: 3 tatsächlich: 4 g n 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 22 / 36 Nicht optimistische Heuristiken Nächster Expansionsschritt: m hat die beste Bewertung. Es gibt nur den Nachfolger g. Die Warteschlange schaut jetzt so aus: ([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! Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 23 / 36 “Backtracking” bei A∗ Als Beispiel nehmen wir die folgende Restkostenschätzung an: Knoten x n a b c g ĥ(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∗ Bei Start ab n findet folgender erster Expansionsschritt statt: a: b: open closed f̂ (a) = 5 + 4 = 9 f̂ (b) = 4 + 6 = 10 (a, 9); (b, 10) n Expansion von a: c: f̂ (c) = 5 + 3 + 3 = 11 open (b, 10); (c, 11) closed n, a Als nächster Knoten wird b expandiert. c : f̂ (c) = 4 + 3 + 3 = 10 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∗ Alle bisherigen Schätzungen über a müssen revidiert werden! Dazu wird a von der Closed-Liste genommen und wieder in die Open-Liste eingefügt. open c, a closed n, b nächster Expansionsschritt: g: f̂ (g) = 4 + 3 + 3 = 10 open g, a closed n, b, c Letzter Schritt: g : Zielknoten Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 26 / 36 “Backtracking” bei A∗ Welche Ursache führt zum Backtracking? Ist die Heuristik dafür verantwortlich? 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). Wir haben berechnet: f̂b (g) < f̂a (g) ⇐⇒ ĥb (g) + ĝb (g) < ĥa (g) + ĝa (g) Also: ĥb (g) − ĥa (g) < ĝa (g) − ĝb (g) Die Differenz der Restkosten ist also kleiner als die Differenz der tatsächlichen Kosten. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 27 / 36 “Backtracking” bei A∗ Um Backtracking zu vermeiden, muss f̂b (g) ≥ f̂a (g) ⇐⇒ ĥb (g) − ĥa (g) ≥ ĝa (g) − ĝb (g) gelten. Die optimale Lösung wird also je schneller gefunden, desto eher der Pfad mit den kleinstmöglichen Kosten identifiziert wird. Die Restkostenschätzung darf nicht zu optimistisch sein! ĝa (g) − ĝb (g) ist die Summe der Kosten für Kanten, die nicht den beiden Pfaden gemeinsam sind. Die tatsächlichen Kosten entstehen durch Aufaddieren von Kosten für Kanten, also von Pfaden der Länge 1. 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” 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) Damit haben wir eine Anforderung an eine Heuristik hergeleitet, mit der “backtracking” vermieden werden kann. Definition (Monotone Heuristik) Eine Heuristik heißt monoton, wenn für alle Kanten (x, y ) im Suchgraphen gilt: ĥ(x) − ĥ(y ) ≤ c(x, y ) Das Monotoniekriterium kann als Analogon zur Dreiecksungleichung angesehen werden. Die Luftlinie ist ein Beispiel für eine monotone Heuristik. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 29 / 36 Nicht monotone Heuristiken Entfernung: 8 kein Stau m Entfernung: 2 kein Stau g Entfernung: 8 Stau n v ist die mittlere Geschwindigkeit, die auf allen Strecken gefahren wird. Tatsächliche Kosten: d(x, g) g(x) = v Restkostenschätzung: ĥ(x) = Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) d(x, g) v · (2 − P(Stau in x)) Kognitive Systeme 1 Kapitel 4 30 / 36 Nicht monotone Heuristiken Die Restkostenschätzung für n beträgt: ĥ(n) = 8 8 8 = = v · (2 − P(Stau in n)) (2 − 1)v v Die Restkostenschätzung für m beträgt: ĥ(m) = 8 8 4 = = v · (2 − P(Stau in m)) (2 − 0)v v Damit ist das Monotoniekriterium ĥ(n) ≤ cost(n, m) + ĥ(m) nicht erfüllt, da 2 4 8 > + v v v Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 31 / 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: a ĥ(a) − ĥ(b) ≤ c(a, b) ĥ(b) − ĥ(c) ≤ c(b, c) Also: b h(b) h(a) ĥ(a) − ĥ(c) ≤ c(a, c) + c(b, c) = ĝ(c) Also: c d f̂ (a) = 0 + ĥ(a) ≤ ĝ(c) + ĥ(c) = f̂ (c) A∗ wählt zum Knoten x also den Nachfolger y , der ĝ(x) + c(x, y ) + ĥ(y ) minimiert. Jetzt gibt es kein Backtracking mehr! Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 32 / 36 Monotone Heuristiken sichern lokal optimale Pfade 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. Induktionsannahme: Es seien bereits i Knoten expandiert, der letzte sei ni . j ni hat die Nachfolger ni+1 (1 ≤ j ≤ K < ∞). Jeder Knoten wird in die Open-Liste eingefügt mit dem Gewicht j j j j j f̂ (ni+1 ) = ĝ(ni+1 ) + ĥ(ni+1 ) = g(ni ) + c(ni , ni+1 ) + ĥ(ni+1 ) Im nächsten Schritt wird der Knoten mit der Nummer k = 1 expandiert oder überhaupt keiner der Nachfolger. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 33 / 36 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: j 1 f̂ (ni+1 ) − f̂ (ni+1 ) = j j 1 1 g(ni ) + c(ni , ni+1 ) + ĥ(ni+1 ) − g(ni ) − c(ni , ni+1 ) − ĥ(ni+1 ) = 1 c(ni , ni+1 ) 1 c(ni , ni+1 )− j c(ni , ni+1 ) − j c(ni , ni+1 ) + j − ĥ(ni+1 ) j c(ni , ni+1 ) 1 ĥ(ni+1 ) 1 + ĥ(ni ) − c(ni , ni+1 ) − ĥ(ni ) + ≥ = 0 Die Ungleichung gilt, weil die Heuristik monoton ist. Fazit: Der optimale Pfad verläuft also entweder 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. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 34 / 36 Zusammenfassung Unsere Analyse von Heuristiken für A∗ -Stern läßt sich in folgendem Fazit zusammenfassen: Eigenschaften von Heuristiken Die Verwendung von Heuristiken bezweckt eine Reduktion des Suchaufwands gegenüber der uninformierten Suche. Die Reduktion soll erreicht werden, indem Domänenwissen in eine Bewertungsfunktion (Heuristik) einfliesst. 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. Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 35 / 36 Klasse für A∗ -Suche package graph; import java.util.Enumeration; public class AStarGraph extends ALGOGraph { public void initSearch(ALGOPlacemarkNode startNode, ALGOPlacemarkNode targetNode) { } public boolean solutionFound() { ... } public boolean noSolution() { ... } public void nextStep() { ... } } Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive Systeme 1 Kapitel 4 36 / 36