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