Intelligente Systeme

Ähnliche Dokumente
9. Heuristische Suche

Künstliche Intelligenz

Startzustand. Mögliche heuristische Funktionen:

Informierte Suchverfahren

13.1 Einführung Einführung. Grundlagen der Künstlichen Intelligenz Gierige Bestensuche 13.3 A Weighted A. 13.

Künstliche Intelligenz

Grundlagen der Künstlichen Intelligenz

Heuristische Suche. Uninformierte (blinde) Suchverfahren. erzeugen systematisch neue Knoten im Suchbaum und führen jeweils den Zieltest durch;

Wissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften

3. Übung Künstliche Intelligenz

Uninformierte Suche in Java Informierte Suchverfahren

3. Problemlösen durch Suche

Künstliche Intelligenz

Übersicht. Künstliche Intelligenz: 3. Problemlösen durch Suche Frank Puppe 1

Einführung in die Methoden der Künstlichen Intelligenz

Beispiele. mit. Beispiel 2.3. Suche einen Weg von nach. Tiefensuche bzw. Breitensuche.

Uninformierte Suche in Java Informierte Suchverfahren

Einführung in Heuristische Suche

Einfacher Problemlösungsagent. Übersicht. Begriffsdefinitionen für Einfach-Probleme

Sokoban. Knowledge Engineering und Lernen in Spielen. Mark Sollweck Fachbereich 20 Seminar Knowledge Engineering Mark Sollweck 1

8.1 Blinde Suche. Grundlagen der Künstlichen Intelligenz. Klassische Suche: Überblick. 8. Klassische Suche: Breitensuche und uniforme Kostensuche

Intelligente Systeme. Suche

Grundlagen von Decision Support und Expertensystemen

Übersicht. Informierte (heuristische) Suche. Algorithmus Bester-Zuerst-Suche. Bester-Zuerst-Suche

Einführung in die Methoden der Künstlichen Intelligenz

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Zustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche

Algorithmen und Datenstrukturen 2

Intelligente Systeme

Grundlagen der Künstlichen Intelligenz

Übungsblatt 2 Lösungen

2 Problemlösen und Suche

Lösungshinweise zu Blatt 8 und Blatt 9 GIN2-SS04

Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.

Künstliche Intelligenz

2 Problemlösen und Suche

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Heuristische Suchverfahren

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

EDM, Algorithmen und Graphenspeicherung

Kapitel 5: Suchverfahren: Backtracking

9.1 Tiefensuche. Grundlagen der Künstlichen Intelligenz. 9.1 Tiefensuche. 9.2 Iterative Tiefensuche. 9.3 Blinde Suche: Zusammenfassung

Algorithmen und Datenstrukturen 1

Grundlagen der KI 1. Einführung

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Theoretische Informatik 1

Einführung in Suchverfahren

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Wissensrepräsentation und Problemlösung

ADS: Algorithmen und Datenstrukturen 2

Planen als heuristische Suche

Betriebswirtschaftliche Optimierung

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Betriebliche Optimierung

Schnelle und genaue Routenplanung

Vorlesung Datenstrukturen

10. Übungsblatt zu Algorithmen I im SS 2010

Programmierkurs Prolog, SS 2000

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Das Steinerbaumproblem

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Datenstrukturen und Algorithmen D-INFK

Backtracking mit Heuristiken

Übung Algorithmen und Datenstrukturen

Einführung in die Künstliche Intelligenz SS 18 Prof. Dr. J. Fürnkranz, Prof. Dr. K. Kersting

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Transkript:

Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune {rudolf.kruse,christian.braune}@ovgu.de Institut für Intelligente Kooperierende Systeme Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01. Dezember 2016

Warum heuristische Suchalgorithmen? Suchprobleme werden häufig durch eine Baumsuche gelöst. Eine uninformierte Suche muss im schlechtesten Fall alle Knoten des Baumes expandieren. Unter Ausnutzung von Problemwissen (Mutmaßungen/Heuristiken) kann der Rechenaufwand meistens reduziert werden. R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 2 / 21

Übersicht 1. Bestensuche Greedy-Suche 2. A*-Algorithmus

Bestensuche Idee: nutze Bewertungsfunktion für jeden Knoten Schätzung, wie wünschenswert/begehrt Knoten ist Somit: Expansion des am wünschenswertesten (noch nicht expandierten) Knotens Implementierung: fringe = Queue absteigend sortiert nach Begehrtheit Spezialfälle: Greedy-Suche, A*-Algorithmus R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 3 / 21

Beispiel: Routenplanung mit Schrittkosten in km Oradea 71 Neamt Zerind 87 75 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 80 Timisoara Rimnicu Vilcea 111 142 Lugoj Pitesti 211 97 70 98 Mehadia 146 101 85 Urziceni 75 Drobeta 120 138 Bucharest 90 Craiova Giurgiu Vaslui Hirsova 86 Eforie Luftlinie nach Bukarest Arad 366 Bukarest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 4 / 21

Greedy-Suche Bewertungsfunktion h(n) (Heuristik): Schätzung der Kosten von n zum nächsten Ziel Z.B. h LL (n) = Luftlinienabstand von n nach Bukarest Greedy-Suche expandiert Knoten der am nächsten am Ziel scheint R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 5 / 21

Beispiel: Greedy-Suche Arad 366 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 6 / 21

Beispiel: Greedy-Suche Arad Sibiu Timisoara Zerind 253 329 374 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 6 / 21

Beispiel: Greedy-Suche Arad Sibiu Timisoara Zerind 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 176 380 193 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 6 / 21

Beispiel: Greedy-Suche Arad Sibiu Timisoara Zerind 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 380 193 Sibiu Bucharest 253 0 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 6 / 21

Greedy-Suche: Eigenschaften Vollständig: Nein, kann in Schleifen hängenbleiben, z.b. Iasi Neamt Iasi Neamt... Ja, für endliche Räume bei Vermeidung sich wiederholender Zustände im Pfad Zeit: O(b m ), mit guter Heuristik drastische Verbesserung Speicher: O(b m ) (behält jeden Knoten im Speicher) Optimal: nein R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 7 / 21

Übersicht 1. Bestensuche 2. A*-Algorithmus Ablauf Anpassung des Tiefenfaktors Eigenschaften Heuristiken

A*-Algorithmus Idee: Vermeide Expansion bereits teuer expandierter Pfade Bewertungsfunktion f (n) = g(n) + h(n) g(n) bereits aufgenommene Kosten um n zu erreichen h(n) geschätzte Kosten von n zum Ziel f (n) geschätzte Gesamtkosten des Pfades durch n zum Ziel A*-Algorithmus benutzt zulässige Heuristik Also, h(n) h (n) wobei h (n) wahren Kosten von n Auch verlangt: h(n) 0, also h(g) = 0 für beliebiges Ziel G Z.B. h LL (n) überschätzt wirkliche Wegstrecke nie! Satz: A*-Algorithmus ist optimal. R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 8 / 21

Beispiel: A*-Algorithmus Arad 366=0+366 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

Beispiel: A*-Algorithmus Arad Sibiu 393=140+253 Timisoara Zerind 447=118+329 449=75+374 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

Beispiel: A*-Algorithmus 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 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

Beispiel: A*-Algorithmus Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad Fagaras 646=280+366 415=239+176 Oradea 671=291+380 Rimnicu Vilcea Craiova Pitesti Sibiu 526=366+160 417=317+100 553=300+253 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

Beispiel: A*-Algorithmus Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad 646=280+366 Fagaras Oradea 671=291+380 Rimnicu Vilcea Sibiu Bucharest Craiova Pitesti Sibiu 591=338+253 450=450+0 526=366+160 417=317+100 553=300+253 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

Beispiel: A*-Algorithmus Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad 646=280+366 Fagaras Oradea 671=291+380 Rimnicu Vilcea Sibiu Bucharest Craiova Pitesti Sibiu 591=338+253 450=450+0 526=366+160 553=300+253 Bucharest Craiova Rimnicu Vilcea 418=418+0 615=455+160 607=414+193 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 9 / 21

A*-Algorithmus: Gegeben Startzustand z 0 Menge O = {o 1,..., o n } von Operationen: liefern zu gegebenem Zustand Nachfolgezustand i.a. nicht alle Operationen auf alle Zustände anwendbar Operation liefert speziellen Wert (undefiniert) statt neuem Zustand, falls nicht anwendbar Reellwertige Funktion costs: liefert für jede o i O zugehörigen Kosten u.u. hängen Kosten vom Zustand ab (costs kann auch zweistellig sein) Reellwertige Heuristikfunktion h Funktion goal stellt fest, ob Zustand = Ziel R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 10 / 21

A*-Algorithmus: Ablauf I 1. Erzeuge (gericht.) Graphen G = {V, E} mit V := {z 0 }, E := (G stellt den besuchten Teil des Suchraums und die besten bekannten Wege zum Erreichen eines Zustandes dar) 2. Erzeuge Menge open mit open := {z 0 } (open enthält die erreichten Zustände mit noch nicht erzeugten Nachfolgern) 3. Erzeuge leere Menge closed (closed enthält die erreichten Zustände mit bereits erzeugten Nachfolgern) 4. Erzeuge Abbildung g : V IR mit z 0 0 und sonst undefiniert (sog. Tiefenfaktor g: gibt Kosten der besten gefundenen Operationenfolgen zum Erreichen eines Zustandes von z 0 an) R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 11 / 21

A*-Algorithmus: Ablauf II 5. Erzeuge Abbildung e : V O für alle Zustände undefiniert (e baut Lösung des Problems auf: e gibt an, durch welche Operationen ein Zustand von seinem Vorgänger aus erreicht wird) 6. Wähle z open mit z { x f (x) = min y open f (y) } wobei f = g + h (wähle erfolgversprechendsten Zustand gemäß h) 7. Falls goal(z), dann Lösung gefunden und somit lese Pfad aus G ab 8. Entferne z aus open, d.h. open := open \ {z} (Nachfolger von z im folgenden Schritt erzeugt) R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 12 / 21

A*-Algorithmus: Ablauf III 9. für alle o O: x := o(z) und c := g(z) + costs(o) falls x, dann falls x / open closed, dann open := open {x}, e(x) := o, g(x) = c erweitere G durch V := V {x} und E := E {(z, x)} falls x open closed und c < g(x), dann e(x) := o g(x) = c ersetze Vorgänger durch E := (E \ {(a, b) b = x}) {(z, x)} falls x closed, dann prüfe rekursiv alle Zustände, die sich von x erreichen lassen und ersetze Vorgänger ggf. durch günstigere Vorgänger R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 13 / 21

A*-Algorithmus: Ablauf IV 10. Nimm Zustand z in closed auf, also closed := closed {z} (Nachfolger von z im vorhergehenden Schritt erzeugt) 11. Falls open leer, dann Problem unlösbar und somit bricht A* ab, andernfalls gehe zu Schritt 6 R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 14 / 21

A*-Algorithmus: Anpassung des Tiefenfaktors Notwendigkeit der Anpassung von Nachfolgezuständen (9.): R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 15 / 21

A*-Algorithmus: Anpassung des Tiefenfaktors Notwendigkeit der (rekursiven) Anpassung aller Zustände (9.): R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 16 / 21

A*-Algorithmus: Eigenschaften Vollständig: ja, solange wie es unendlich mehr Knoten mit f f (G) gibt Zeit: exponentiell in [relativer Fehler in h Länge der Lösung] Speicher: behält jeden Knoten im Speicher Optimal: ja, A* kann nicht f i+1 expandieren bis f i beendet A* expandiert alle Knoten mit f (n) < C A* expandiert einige Knoten mit f (n) = C A* expandiert keine Knoten mit f (n) > C R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 17 / 21

Zulässige Heuristiken z.b. für 8-Puzzle: h 1 (n) = Anzahl der Plättchen an falscher Position h 2 (n) = Summe der Manhattan-/City-Block-Abstände zw. falscher und gewünschter Position jedes Plättchens 7 2 4 1 2 5 6 3 4 5 8 3 1 6 7 8 Start State Goal State h 1 (S) = 6, h 1 für Startzustand (6 Plättchen an falscher Position) h 2 (S) = 4 + 0 + 3 + 3 + 1 + 0 + 2 + 1 = 14, h 2 für Startzustand R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 18 / 21

Dominanz Wenn h 1, h 2 zulässig und h 2 (n) h 1 (n) für alle n, dann h 2 h 1 (h 2 dominiert h 1 ) Somit ist h 2 besser als h 1 Typische Suchkosten: Sei d Tiefe der Lösung mit geringsten Kosten Für d = 14: iterative Tiefensuche ca. 3, 5 10 6 Knoten A (h 1 ) = 539 Knoten, A (h 2 ) = 113 Knoten Für d = 24: iterative Tiefensuche ca. 54 10 9 Knoten A (h 1 ) = 39135 Knoten, A (h 2 ) = 1641 Knoten Satz: Gegeben 2 zulässige Heuristiken h a, h b. h(n) = max{h a (n), h b (n)} ist auch zulässig und dominiert h a, h b. R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 19 / 21

Relaxierte Probleme Wie erzeugt man zulässige Heuristiken? Idee: Konstruktion exakter Lösungen einer relaxierten Version des Problems (Relaxierung: Weglassen oder Lockern von Bedingungen in Optimierungsproblemen), somit Ausnutzung der Kosten dieser Lösung als Heuristik Falls Regeln des 8-Puzzles relaxiert, sodass Plättchen überall hin können, dann kürzeste Lösung mit h 1 (n). Falls Regeln des 8-Puzzles relaxiert, sodass Plättchen zu jedem benachbarten Feld können, dann kürzeste Lösung mit h 2 (n). Kosten der optimalen Lösung eines relaxierten Problems Kosten der optimalen Lösung des realen Problems R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 20 / 21

Zusammenfassung Heuristikfunktionen schätzen Kosten des kürzesten Pfads Gute Heuristiken können Suchkosten dramatisch reduzieren Greedy-Suche expandiert Knoten mit kleinstem h Unvollständig und nicht immer optimal A*-Algorithmus expandiert Knoten mit kleinstem g + h Vollständig und optimal Auch optimal effizient (bis auf Unentschieden, für Vorwärtssuche) Erzeugung zulässiger Heuristiken durch exakte Lösungen relaxierter Probleme R. Kruse, C. Braune IS Heuristische Suchalgorithmen 01.12.2016 21 / 21