Künstliche Intelligenz Vorlesung 4: Suchverfahren Informierte Suche 1/135
WIEDERHOLUNG BISLANG... Uninformierte Strategien: bearbeiten den Suchraum systematisch, aber ohne problemspezifisches Wissen ab. Mehr problemspezifisches Wissen kann die Suche schneller zum Ziel führen. problemspezifisches Wissen??? Was ist das? Heuristiken? 2/135
WIEDERHOLUNG BISLANG... Uninformierte Strategien: bearbeiten den Suchraum systematisch, aber ohne problemspezifisches Wissen ab. Mehr problemspezifisches Wissen kann die Suche schneller zum Ziel führen. problemspezifisches Wissen??? Was ist das? Heuristiken? Heuristiken! Heuristiken bewerten die Güte eines Zustand und steuern dadurch die Suche. 2/135
WIEDERHOLUNG BISLANG... Greedy Suche: Best First, Hillclimbing Allgemeiner Suchalgorithmus mit Tree - Search Noch nicht expandierte Nachfolgerknoten kommen in die Warteschlange Aus der Warteschlange wird geeignet der nächste zu expandierende Knoten ausgewählt. 3/135
WIEDERHOLUNG BISLANG... Allgemeiner Ansatz zur informierten Suche: Best - First -Search Der jeweils bezüglich einer Bewertungsfunktion f (n) beste Knoten in der Warteschlange wird expandiert. Diese Warteschlange ist eine Prioritätswarteschlange Die Bewertungsfunktion f (n) setzt sich aus der Heuristik h(n) und der Geschichte g(n) des Knotens zusammen. 4/135
BEISPIELE Greedy Search: f (n) = h(n) Breitensuche: f (n) = g(n) h(n) sind die geschätzten Kosten von Knoten n zum Ziel (Heuristik) g(n) sind die bisherige Kosten auf dem Weg vom Startknoten bis Knoten n. 5/135
BEISPIEL: GREEDY SUCHE 6/135
BEISPIEL: GREEDY SUCHE KÜRZESTE STRECKE VON LÜBECK NACH BERLIN 7/135
BEISPIEL: GREEDY SUCHE GREEDY SEARCH 8/135
BEISPIEL: GREEDY SUCHE GREEDY SEARCH 9/135
BEISPIEL: GREEDY SUCHE GREEDY SEARCH 10/135
BEISPIEL: GREEDY SUCHE GREEDY SEARCH 11/135
BEISPIEL: GREEDY SUCHE GREEDY SEARCH Gier ist nicht immer gut... Optimalität wird nicht erreicht Greedy Suche nicht vollständig, da Zykel möglich 12/135
INFORMIERTE SUCHE: A -ALGORITHMUS Wir suchen nach einen optimalen Algorithmus. Was lernen wir aus dem Greedy Beispiel? 13/135
INFORMIERTE SUCHE: A -ALGORITHMUS Wir suchen nach einen optimalen Algorithmus. Was lernen wir aus dem Greedy Beispiel? Es reicht nicht aus, nur die verbleibende Entfernung zum Ziel zu betrachten Auch der zurückgelegte Weg ist entscheidend A Suche: f (n) = g(n) + h(n). 13/135
A -ALGORITHMUS Suchproblem Startknoten Zieltest Z Nachfolgerfunktion NF. Annahme: Es gibt nur eine Kante zwischen zwei Knoten. (Graph ist schlicht) Kantenkosten g(n1, N 2 ) R. Heuristik h schätzt Abstand zum Ziel Ziel: Finde kostenminimalen Weg vom Startknoten zu einem Zielknoten 14/135
BEISPIEL: ROUTENSUCHE 15/135
A -ALGORITHMUS Kombination positiver Fakten der Suche mit einheitlichen Kosten Optimalität und Vollständigkeit Sortierte Schlangen Greedy Suchverfahren Geschwindigkeit Sortierung anhand Evaluierung Evaluierungsfunktion f (n) Kostenabschätzung für den Pfad durch Knoten n: f (n) = g(n) + h(n) g(n) - Kostenfunktion vom initialen Zustand bis zum Zustand n h(n) - Heuristische Kostenfunktion vom Zustand n bis zum Zielzustand Minimisierung der gesamt Kosten für ein Pfad 16/135
A -ALGORITHMUS Bedingungen an die Heuristik: Zulässig: Niemals Kosten überschätzen! Der kürzeste Weg von n zum Ziel hat einen größeren Kosten, als der der von der Heuristik abgeschätzt wird. Konsistenz: bewirkt aufsteigende f -Werte entlang jedes Pfades h(n) c(n, n ) + h(n ), für n Nachfolger von n. 17/135
BEISPIEL: DAS RUCKSACK-PROBLEM Volumen W, n Objekte (o 1, o 2,..., o n ), jedes Objekt bringt ein Gewinn p i, i = 1, 2,..., n. o 1 o 2 o 3 o 4 p i 10 18 32 14 w i 1 2 4 3 Lösung: für W = 5 o 1 und o 3 g(n) = p i für ausgewählte Objekte o i h(n) = p j für nicht ausgewählte Objekte und wj W w i Jeder einzelne Knoten ist ein Tupel (p, w, p, f ) mit: p - Gewinn der ausgewählten Objekte (Funktion g(n)) w - Gewicht der ausgewählten Objekte p - maximaler Gewinn der erreicht werden kann aus dem jetzigen Zustand unter Betrachtung des freien Platzes im Rucksack (Funktion h(n)) 18/135
A -ALGORITHMUS Theorem Die Tree-Search Version des A -Algorithmus ist optimal, falls h(n) zulässig ist und die Graph-Search Version ist optimal, falls h(n) konsistent ist. 19/135
BEISPIEL: A -ALGORITHMUS 71 Oradea Neamt Zerind 75 Arad 140 118 Timisoara 111 70 75 Drobeta 151 Sibiu 99 Fagaras 80 Rimnicu Vilcea Lugoj Mehadia 120 Pitesti 211 97 146 101 85 138 Bucharest 90 Craiova Giurgiu 87 Iasi 92 142 98 Urziceni Vaslui Hirsova 86 Eforie 20/135
BEISPIEL: A -ALGORITHMUS (a) The initial state (b) After expanding Arad Arad 366=0+366 Arad Sibiu 393=140+253 Timisoara 447=118+329 Zerind 449=75+374 (c) After expanding Sibiu Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad Fagaras Oradea Rimnicu Vilcea 646=280+366 415=239+176 671=291+380 413=220+193 (d) After expanding Rimnicu Vilcea Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad Fagaras Oradea 646=280+366 415=239+176 671=291+380 Rimnicu Vilcea Craiova Pitesti Sibiu 526=366+160 417=317+100 553=300+253 (e) After expanding Fagaras Arad 21/135
BEISPIEL: A -ALGORITHMUS 22/135
A -ALGORITHMUS Für aufsteigende Funktionen f, können wir sogenannte Kontouren zeichnen: Knoten innerhalb einer Höhenlinie haben kleinere f -Kosten als der Wert der Höhenlinie. h(n) = 0: Kreise um den Startpunkt Umso bessere Heuristiken wir benutzen, werden die Höhenlinien in Richtung Zielzustand verlängert und sind zentriert um den optimalen Pfad. A expandiert alle Knoten, so dass f (n) < C auf der Höhenlinie Manche Knoten expandieren zu f (n) = C Knoten n mit f (n) > C werden nie expandiert Der A -Algorithmus ist optimal effizient für jede konsistente Heuristik! 23/135
BEISPIEL: A -ALGORITHMUS O Z N A T 380 S 400 R L F P I V D M C 420 G B U H E Abbildung 1: Höhenlinien für f = 380, f = 400, f = 420 mit Arad als Startknoten. 24/135
A -ALGORITHMUS REVISITED 25/135
A -ALGORITHMUS REVISITED 26/135
A -ALGORITHMUS Komplexitätsanalyse: Zeitkomplexität: b Verzweigungsfaktor, d max maximale Tiefe, T(n) = 1 + b + b 2 + + b dmax O(b dmax ) Speicherkomplexität: d Tiefe der Lösung, S(n) = 1 + b + b 2 + + b d O(b d ) Vollständigkeit: Ja Optimalität: Ja Vorteile: Expandiert die kleinste Anzahl von Knotem im Baum Nachteile: Verbraucht viel Speicherplatz Anwendungen: Planungsprobleme, Probleme mit partielle Summen (Rucksack, Münzen), Puzzles, Optimale Pfade in Graphen 27/135
BEISPIEL 28/135
BEISPIEL 29/135
BEISPIEL 30/135
BEISPIEL 31/135
BEISPIEL 32/135
BEISPIEL 33/135
BEISPIEL 34/135
BEISPIEL 35/135
BEISPIEL 36/135
BEISPIEL 37/135
BEISPIEL 38/135
BEISPIEL 39/135
BEISPIEL 40/135
BEISPIEL 41/135
BEISPIEL 42/135
BEISPIEL 43/135
BEISPIEL 44/135
BEISPIEL 45/135
BEISPIEL 46/135
BEISPIEL 47/135
BEISPIEL 48/135
BEISPIEL 49/135
BEISPIEL 50/135
BEISPIEL 51/135
BEISPIEL 52/135
BEISPIEL 53/135
BEISPIEL 54/135
BEISPIEL 55/135
BEISPIEL 56/135
BEISPIEL 57/135
BEISPIEL 58/135
BEISPIEL 59/135
BEISPIEL 60/135
BEISPIEL 61/135
BEISPIEL 62/135
BEISPIEL 63/135
BEISPIEL 64/135
BEISPIEL 65/135
BEISPIEL 66/135
BEISPIEL 67/135
BEISPIEL 68/135
BEISPIEL 69/135
BEISPIEL 70/135
BEISPIEL 71/135
BEISPIEL 72/135
BEISPIEL 73/135
BEISPIEL 74/135
BEISPIEL 75/135
BEISPIEL 76/135
BEISPIEL 77/135
BEISPIEL 78/135
BEISPIEL 79/135
BEISPIEL 80/135
BEISPIEL 81/135
BEISPIEL 82/135
BEISPIEL 83/135
BEISPIEL 84/135
BEISPIEL 85/135
BEISPIEL 86/135
SPEZIALFÄLLE Wenn h(n) = 0 für alle Knoten N, dann ist A -Algorithmus dasselbe wie die sogenannte Gleiche-Kosten-Suche Wenn c(n 1, N 2 ) = k für alle Knoten N 1, N 2 und h(n) = 0 für alle Knoten N, dann ist A -Algorithmus gerade die Breitensuche. 87/135
VARIANTE: A o -ALGORITHMUS A o -Algorithmus findet alle optimalen Wege Abänderung am A -Algorithmus: sobald erster Zielknoten mit Wert d expandiert wurde: Füge in Open nur noch Knoten mit g(n) + h(n) d ein Andere Knoten kommen in Closed Stoppe erst, wenn Open leer ist Theorem Wenn die Voraussetzungen für den A -Algorithmus gelten, dann findet der Algorithmus A o alle optimalen Wege von S zum Ziel. 88/135
A -ALGORITHMUS Versionen iterative deepening A (IDA ) memory-bounded A (MA ) simplified memory bounded A (SMA ) recursive best-first search (RBFS) dynamic A (DA ) real time A hierarchical A 89/135
PROBLEME MIT A Speichert alle Knoten erhöhte Speicherkomplexität!!! Ist unpraktisch für Suchprobleme mit sehr großem Suchraum. Es existieren Verfeinerungen, die das Problem der Speicherkomplexität lösen, mit einer kleiner Erhöhung der Zeitkomplexität. 90/135
ITERATIVE DEEPENING A (IDA ) Wir passen die Idee der iterativen Tiefensuche an dem A -Algorithmus an. Die Suche ist gesteuert von der Kostenfunktion f (n) und nicht von der Tiefe Für die nächste Iteration wird der kleinste Wert f (n) des Knoten n, welches die Grenze der letzten Iteration überschreitet gewählt. Sehr oft benutzt in praktische Anwendungen! 91/135
ITERATIVE DEEPENING A (IDA ) Ist analog zu A. Es gibt keine Open/Closed-Listen, nur einen Stack mit Knoten und Wegekosten. Der Wert g(n) wird bei gerichteten Graphen nicht per Update verbessert. Der Knoten n wird nicht expandiert, wenn f (n) > d. Das Minimum der Werte f (n) mit f (n) > d wird das d in der nächsten Iteration. 92/135
ITERATIVE DEEPENING A (IDA ) 93/135
ITERATIVE DEEPENING A (IDA ) 94/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 95/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 96/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 97/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 98/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 99/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 100/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 101/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 102/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 103/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 104/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 105/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 106/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 107/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 108/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 109/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 110/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 111/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 112/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 113/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 114/135
BEISPIEL: ITERATIVE DEEPENING A (IDA ) 115/135
ITERATIVE DEEPENING A (IDA ) Speicherkomplexität: Linear in der Länge des optimalen Weges Problem: Durch Nicht-Speichern der entdeckten Knoten: Eventuell exponentiell viele Pfade ablaufen (Zeit) Wir brauchen einen anderen Algorithmus 116/135
REKURSIVE BEST-FIRST-SUCHE Analog zur Bestensuche aber mit linearem Speicherplatz. Analog zur Tiefensuche: benutzt die f limit Variable um den Wert von f zu verfolgen, entlang des besten alternativen Pfades von jedem Vorgänger des laufenden Knotens. Falls der laufende Knoten über f limit ist, dann geht man rekursiv zum nächsten alternativen Pfad. f (n) wird mit dem Wert des Nachfolgers reinstanziert: der Algorithmus merkt sich das beste Blatt im eliminierten Unterbaum. 117/135
REKURSIVE BEST-FIRST-SUCHE h(n) zulässig, dann RBFS ist optimal. Speicherkomplexität linear: O(bd). Zeitkomplexität: exponential (exzessive Knotenexpansion). 118/135
REKURSIVE BEST-FIRST-SUCHE 119/135
BEISPIEL: REKURSIVE BEST-FIRST-SUCHE (a) After expanding Arad, Sibiu, and Rimnicu Vilcea 447 Sibiu 393 415 Arad Fagaras Oradea Rimnicu Vilcea 415 646 671 413 Arad 366 Timisoara Zerind 447 449 Craiova Pitesti Sibiu 526 417 553 (b) After unwinding back to Sibiu and expanding Fagaras Arad 366 447 Sibiu 393 417 Arad Fagaras Oradea Rimnicu Vilcea 646 415 671 413 417 Timisoara 447 Zerind 449 Sibiu 591 Bucharest 450 (c) After switching back to Rimnicu Vilcea and expanding Pitesti Arad 366 447 Sibiu Timisoara Zerind 393 447 449 447 Arad Fagaras Oradea Rimnicu Vilcea 646 415 450 671 417 447 Craiova Pitesti Sibiu 526 417 553 Bucharest Craiova Rimnicu Vilcea 418 607 615 120/135
SIMPLIFIED MEMORY-BOUNDED A IDA und RBFS expandieren bereits expandierte Knoten mehrfach Verbesserungspotential! Falls Speicherplatz voll, eliminiere das schlechteste Blatt und speichere Pfad von der Wurzel zu dem eliminierten Knoten. 121/135
SMA - SIMPLIFIED MEMORY BOUNDED A Wie A, aber die Größe der Open und Closed-Mengen ist beschränkt. Wenn der Platz verbraucht ist, wird der schlechteste Knoten gelöscht. Schlechtester Knoten: Größter f (n)-wert. 122/135
SUCHE NACH GUTEN HEURISTIKEN Wie findet man gute zulässige Heuristiken? Beispiel: 8-Puzzle 7 2 4 1 2 5 6 3 4 5 8 3 1 6 7 8 Start State Goal State 123/135
SUCHE NACH GUTEN HEURISTIKEN 8-PUZZLE PROBLEM Mittelwert der notwendigen Schritte zum Ziel: 22 Verzweigungsfaktor: ungefähr 3 Kompletter Suchbaum: 3 22 Knoten Anzahl der erreichbaren Zustände ist nur 9!/2 = 181440 15-Puzzle: 10 13 Zustände 124/135
SUCHE NACH GUTEN HEURISTIKEN 8-PUZZLE PROBLEM h 1 Anzahl der Plättchen an falscher Stelle: h 1 = 8 für den initialen Zustand. h 2 Summe der Entfernungen der Plättchen zu ihrem Zielplatz: Manhattan Entfernung h 2 = 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18. Kosten der Ziellösung: 26, also keine Überschätzung, d.h. beide Heuristiken sind zulässig. 125/135
WIE CHARAKTERISIEN WIR DIE GÜTE EINER HEURISTIK? Effektiver Verzweigungsfaktor b : Sei N die Anzahl der von A generierten Knoten für ein Suchproblem Sei d die Tiefe der Lösung b ist der Verzweigungsfaktor eines uniformen Baumes der Tiefe d der N + 1 Knoten enthält. N + 1 = 1 + b + (b ) 2 + + (b ) d. 126/135
BEISPIEL A findet eine Lösung in Tiefe 5 nach 52 Knoten b = 1.92 Eine gute Heuristik hat einen effektiven Verzweigungsfaktor in der Nähe von 1. Teste: 1200 zufällige Probleme h1 und h 2 getestet. h2 besser Auch für kleine Probleme mit z.b. d = 12, A mit h 2 ist 50.000 mal schneller als uninformierte iterative Tiefensuche 127/135
BEISPIEL 128/135
HEURISTIKEN FÜR ALLE PROBLEME? JA! ENTSPANNUNG IST ALLES 129/135
HEURISTIKEN FÜR ALLE PROBLEME? JA! ENTSPANNUNG IST ALLES Entspannung ist eine Vereinfachung des Problems, so dass die Lösung des initialen Problems ist auch eine Lösung des entspannten Problems Wir müssen das entspannte Problem so formulieren, dass eine Lösung schnell zu finden ist Der Kost der optimalen Lösung des entspannten Problems ist eine untere Schranke der Lösung des ursprünglichen Problems und ist somit eine zulässige und monotone Heuristik für das initiale Problem 129/135
BEISPIEL 8-PUZZLE Ein Plättchen kann sich vom Feld A nach Feld B bewegen, falls: A ist mit B senkrecht oder waagerecht benachbart B ist leer. Mögliche Entspannungen: Ein Plättchen kann sich von A nach B bewegen, falls A und B benachbart sind (Manhattan Entfernung). Ein Plättchen kann sich von A nach B bewegen, falls B leer ist. Ein Plättchen kann sich von A nach B bewegen (Heuristik h 1 ). 130/135
MUSTERDATENBANKEN PATTERN DATABASE Ein weiterer Vorgang um zulässige Heuristiken zu erzeugen, ist eine Musterdatenbank zu benutzen. Können aus der Lösung eines Subproblems eines gegebenen Problems hergeleitet werden. 131/135
BEISPIEL 2 4 1 2 5 6 3 54 6 8 3 1 7 8 Start State Goal State Abbildung 2: Subproblem einer 8-Puzzle Instanz. Ziel ist die Plättchen 1, 2, 3 und 4 auf korrekte Felder zu bewegen, die anderen Plättchen interesieren uns nicht. 132/135
BEISPIEL Die Lösung dieses Subproblems ist eine untere Schranke des Kosts der initialen Instanz Es ist viel besser als die Manhattan Entfernung. 133/135
MUSTERDATENBANKEN Speichere genaue Kosten für jegliche Subprobleminstanzen: Im Beispiel: jegliche Konfiguration der 4 Plättchen und des leeren Feldes. Es spielt keine Rolle wo die anderen Plättchen plaziert sind, deren Bewegungen beeinflussen aber den Gesamtkosten. Wir berechnen eine zulässige Heuristik h DB für jeden Zustand der während der Suche getestet wird, indem wir auf das entsprechende Subproblem Konfiguration aus der Datenbank zugreifen. 134/135
MUSTERDATENBANKEN Die Datenbank wird folgendermaßen aufgebaut: Suche rückwärts vom Ziel und speichere den Kost eines jeden Musters Die Kosten dieser Suche ist beglichen über der großen Anzahl der Probleminstanzen, die man löst. Für mehrere Heuristiken nehmen wir das Maximum all dieser Funktionen. 135/135