Einführung in Heuristische Suche Steffen Priesterjahn FG Wissensbasierte Systeme Universität Paderborn Dienstag, 3. Juni 2008 Steffen Priesterjahn Beispiele FG Wissensbasierte Systeme Universität Paderborn 2 Steffen Priesterjahn Dienstag, 3. Juni 2008 Überblick Intelligente Suche Rundenbasierte Spiele FG Wissensbasierte Systeme Universität Paderborn 3 Steffen Priesterjahn Dienstag, 3. Juni 2008 Grundlagen • Es muss ein Rätsel / Puzzle / Problem gelöst werden • Wie kann ein Computer diese Aufgabe lösen? • Beispiele: • • • • • • TSP SAT 8er Puzzle 8 Damen Problem, Labyrinth … FG Wissensbasierte Systeme Universität Paderborn 4 Steffen Priesterjahn Dienstag, 3. Juni 2008 Erster Schritt: Analyse des Problems • • • • • Beispiel: 8er Puzzle Spielfeld 3x3-Felder mit jeweils einem Teil (1,…,8,0) Eine Startkonfiguration (zufällig) Eine Zielkonfiguration Übergänge zwischen den Konfigurationen: leeres Feld nach oben, unten, links oder rechts • Gesucht: Folge von Transformation von Start- zu Zielkonfiguration 2 8 1 5 2 6 3 6 4 7 8 FG Wissensbasierte Systeme Universität Paderborn 1 4 5 1 2 3 3 4 5 6 7 7 8 5 Steffen Priesterjahn Dienstag, 3. Juni 2008 Problem Ein Problem besteht aus FG Wissensbasierte Systeme Universität Paderborn 6 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: (8er Puzzle) • Suchraum: S = alle Permutationen aus {1,…,8,0}, die sich durch Transformationen aus (1,2,…,8,0) erreichen lassen • Transformationen, z.B.: t( (1, 2, 3, 4, 0, 6, 7, 5, 8) ) = { (1, 2, 3, 0, 4, 6, (1, 2, 3, 4, 6, 0, (1, 0, 3, 4, 2, 6, (1, 2, 3, 4, 5, 6, 7, 5, 8), 7, 5, 8), 7, 5, 8), 7, 0, 8) } 1 2 3 4 5 6 7 8 • Beispiel für eine Bewertungsfunktion: f(x) = (x0-1)2 + (x1-2)2 + (x2-3)2 + (x3-4)2 + (x4-5)2 f(x) + (x5-6)2 + (x6-7)2 + (x7-8)2 + (x8-0)2 • Constraint: keins FG Wissensbasierte Systeme Universität Paderborn 7 Steffen Priesterjahn Dienstag, 3. Juni 2008 Suchräume • Beinhalten alle möglichen Einzelzustände bzw. Teillösungen eines Problems • Unterschiedliche Modellierungen • Iterativ: • enthält nur Elemente mit vollständigen Lösungskandidaten • Transformationen verändern die Lösungskandidaten • Inkrementell: • Enthält Elemente mit unvollständigen Teillösungen (0 ≤ m ≤ n Komponenten) • Es existiert ein Startelement mit 0 oder 1 Komponent(en) • Jede Transformation fügt eine Komponente hinzu FG Wissensbasierte Systeme Universität Paderborn 8 Steffen Priesterjahn Dienstag, 3. Juni 2008 Greedy Algorithmen • Greedy = gierig • Naiver Lösungsansatz: • Wähle ein/das Startelement • Führe eine Transformation aus, die den meisten momentanen Gewinn (einfache Bewertungsfunktion) bringt • Terminiere wenn • die Maximale Komponentenanzahl erreicht ist. (inkrementell) • eine weitere Transformation keinen Gewinn bringt. (iterativ) • Gute Lösungen für einfache Probleme • Lösung ist meist nicht optimal FG Wissensbasierte Systeme Universität Paderborn 9 Steffen Priesterjahn Dienstag, 3. Juni 2008 Greedy: Beispiel TSP • Traveling Salesman Problem • Suche die kürzeste Rundtour durch mehrere Städte. • NP-vollständig • 20 Städte: (19*… *2*1)/2 Möglichkeiten 60 822 550 204 416 000 Routen • Greedy-Algorithmus: • Starte in einer beliebigen Stadt • Gehe immer zur nächstgelegenen, noch nicht besuchten Stadt. FG Wissensbasierte Systeme Universität Paderborn 10 Steffen Priesterjahn Dienstag, 3. Juni 2008 Greedy: Beispiel TSP (II) FG Wissensbasierte Systeme Universität Paderborn 11 Steffen Priesterjahn Dienstag, 3. Juni 2008 Lokale Suche • Meist iterativer Lösungsraum • Durchsucht den Suchraum, indem immer von einem Element zu einem Nachbarn weitergegangen wird. • Verfahren: • • • • Zufallssuche Hill-Climbing Simulated Annealing Evolutioniäre Algorithmen • "parallele, gesteuerte Zufallssuche" • Nachbarschaft definiert durch Mutation • Steuerung durch Selektion FG Wissensbasierte Systeme Universität Paderborn 12 Steffen Priesterjahn Dienstag, 3. Juni 2008 Graphsearch • Suchräume als Graphen • Lösungskandidaten = Knoten • Transformationen = Kanten • Der so entstanden Graph heißt Zustandsgraph. • Suchbaum • Wähle einen Startzustand = Wurzel • Füge alle neuen Folgezustände des aktuellen Zustands als Nachfolger an • generieren = Knoten das erste Mal erzeugen • explorieren = Knoten bewerten • expandieren = Nachfolger des Knotens anlegen • Es gibt verschieden Arten einen solchen Baum anzulegen. FG Wissensbasierte Systeme Universität Paderborn 13 Steffen Priesterjahn Dienstag, 3. Juni 2008 Tiefensuche • Betrachte zuerst immer alle Nachfolger, bevor ein Nachbarknoten betrachtet wird. FG Wissensbasierte Systeme Universität Paderborn 14 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: Labyrinth FG Wissensbasierte Systeme Universität Paderborn 15 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: Labyrinth (II) "Immer an der rechten Wand entlang" = Tiefensuche FG Wissensbasierte Systeme Universität Paderborn 16 Steffen Priesterjahn Dienstag, 3. Juni 2008 Breitensuche • Betrachte zuerst alle Nachfolger eines Knotens, bevor deren Nachfolger betrachtet werden. FG Wissensbasierte Systeme Universität Paderborn 17 Steffen Priesterjahn Dienstag, 3. Juni 2008 Probleme • Tiefensuche • Es werden erst viele Zweige des Baumes expandiert, bis die Lösung gefunden wird. • Häufig zu aufwendig • Breitensuche • Es werden viele unnötige Zweige parallel mitbetrachtet. • Häufig zu aufwendig FG Wissensbasierte Systeme Universität Paderborn 18 Steffen Priesterjahn Dienstag, 3. Juni 2008 Heuristische Suchverfahren • heuristiko, (alt-)griechisch: "ich finde" • Allgemein: • Intelligentes Schätzen • Gute Daumenregel • Präziser: • Strategie zu Verwendung verfügbaren Wissens zur Kontrolle des Problemlösungsprozesses. • 2 Varianten: • Benutzung vom problembedingtem Wissen und Erfahrung, zur Beschleunigung der Problemlösung. • Beschleunigung der Problemlösung, indem auf Optimalität verzichtet wird. FG Wissensbasierte Systeme Universität Paderborn 19 Steffen Priesterjahn Dienstag, 3. Juni 2008 Graphsearch-Algorithmen • Gebräuchliche Implementation • 2 Listen • OPEN – Liste aller generierten, aber noch nicht expandierten Knoten • CLOSED – Liste alle bereits expandierten Knoten • Bewertungsfunktion f CLOSED OPEN FG Wissensbasierte Systeme Universität Paderborn 20 Steffen Priesterjahn Dienstag, 3. Juni 2008 Best First FG Wissensbasierte Systeme Universität Paderborn 21 Steffen Priesterjahn Dienstag, 3. Juni 2008 Best First (II) • Verzögerte Terminierung bei BF* • Gefundene Lösung muss sich mit den Bewertungen aller Teillösungen auf OPEN messen. • Ein eventuell besserer Lösungspfad kann noch weiterverfolgt werden. • Findet IMMER die bzgl. f optimale Lösung • Die Bewertungsfunktion f bestimmt die Performance des Algorithmus. • f stellt häufig die Kosten dar, um zu einem Zielzustand zu gelangen Minimierung der Kosten • f = Tiefe im Baum Breitensuche FG Wissensbasierte Systeme Universität Paderborn 22 Steffen Priesterjahn Dienstag, 3. Juni 2008 A*-Verfahren • Spezielles BF*-Verfahren • Betrachtet nicht nur bisherige Kosten, sondern schätzt auch zukünftige Kosten ab. • Bisherige Kosten für Knoten n: g(n) • Zukünftige Kosten für Knoten n • Genaue Kosten: h*(n) • Abgeschätzte Kosten: h(n) • Bewertung des Knotens n f(n) = g(n) + h(n) FG Wissensbasierte Systeme Universität Paderborn 23 Steffen Priesterjahn Dienstag, 3. Juni 2008 Heuristik des A*-Verfahrens • h(n) heißt Heuristik des A*-Verfahrens • Für ein zulässiges A*-Verfahren muss gelten: h(n) ≤ h*(n) • Es gilt außerdem: • h(n) = 0 für Lösungen • h(n) = ∞ für Dead-End-Knoten • h(n) ≥ h(n') wenn n' Nachfolger von n ist • Einfachste Heuristik: h(n) = 0 • Beste Heuristik: h(n) = h*(n) FG Wissensbasierte Systeme Universität Paderborn 24 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: 8er Puzzle • Iterativer Lösungsraum • Knoten = Eine Belegung des Spiels • Kanten führen zu Belegungen, die durch Verschieben des leeren Feldes (oben, unten, links, rechts) entstehen • Start mit zufälliger (lösbarer) Belegung • Bisherige Kosten g = Anzahl an Zügen = Tiefe im Entscheidungsbaum • Heuristik h: "Manhattan-Distanz" FG Wissensbasierte Systeme Universität Paderborn 25 2 8 1 5 6 3 4 7 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: 8er-Puzzle • Manhattan-Distanz, Beispiel: 8 2 1 5 6 3 4 7 8 1 5 15 Distanz: 2 + 1 = 3 Distanz: 1 Distanz: 1 + 1 = 2 • Das leere Feld wird nicht betrachtet! • Die Manhattan-Distanz ist immer kleiner als die tatsächlich noch gebrauchte Anzahl an Zügen. • Also: f(n) = Tiefe von n + Manhattan-Distanz FG Wissensbasierte Systeme Universität Paderborn 26 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: 8er Puzzle 1 2 3 7 4 6 5 8 4 5 1 2 3 4 6 7 5 8 1 2 3 4 6 7 5 8 3 5 1 2 3 4 6 7 5 8 2 1 2 3 4 5 6 7 8 1 3 2 3 1 4 6 7 5 8 4 +0 FG Wissensbasierte Systeme Universität Paderborn 1 3 4 2 6 7 5 8 3 5 5 +1 +2 27 1 2 3 4 5 6 7 8 0 3 3 1 2 3 4 5 6 7 8 2 5 +3 Steffen Priesterjahn Dienstag, 3. Juni 2008 Überblick Intelligente Suche Rundenbasierte Spiele FG Wissensbasierte Systeme Universität Paderborn 28 Steffen Priesterjahn Dienstag, 3. Juni 2008 Grundlagen • Wir betrachten rundenbasierte Spiele für 2 Spieler. • Zum Beispiel: • • • • • • Tic Tac Toe Vier Gewinnt Dame Mühle Schach … • Es gibt auch Graphsearch-Verfahren, für solche Probleme. (z.B. General Best First) FG Wissensbasierte Systeme Universität Paderborn 29 Steffen Priesterjahn Dienstag, 3. Juni 2008 Und-Oder-Graphen • Gerichtet • 2 Kantensorten • Oder-Kanten (normale Kanten) • Und-Kanten (werden alle gleichzeitig benutzt) FG Wissensbasierte Systeme Universität Paderborn 30 Steffen Priesterjahn Dienstag, 3. Juni 2008 MINIMAX-Spiele • • • • • 2 Spieler: MIN und MAX Es ist eine Anfangsstellung des Spiels definiert Die Spieler verändern abwechselnd die Spielstellung (Zug) MAX hat immer den ersten Zug Nach endlich vielen Zügen wird stets eine Spielstellung ohne Fortsetzungsmöglichkeiten erreicht • Bewertung der Endstellung: • WIN • DRAW • LOSS FG Wissensbasierte Systeme Universität Paderborn (-1) (-0) (-1) - MAX hat gewonnen - unentschieden - MIN hat gewonnen 31 Steffen Priesterjahn Dienstag, 3. Juni 2008 Spielbäume • MINIMAX-Spiele werden als Und-Oder-Graph modelliert • Spielbaum = Entscheidungsbaum eines Spiels MAX MIN MAX FG Wissensbasierte Systeme Universität Paderborn 32 Steffen Priesterjahn Dienstag, 3. Juni 2008 MINIMAX-Kontenbewertung • MAX-Knoten (MAX ist dran) • • • • WIN - falls ein Nachfolger die Markierung WIN hat DRAW - kein Nachfolger hat WIN und min. Einer DRAW LOSS - falls alle Nachfolger die Markierung LOSS haben Entspricht dem Maximum der Nachfolger • MIN-Knoten (MIN ist dran) • • • • WIN - falls alle Nachfolger die Markierung WIN haben DRAW - kein Nachfolger hat LOSS und min. Einer DRAW LOSS - falls ein Nachfolger die Markierung LOSS hat Entspricht dem Minimum der Nachfolger FG Wissensbasierte Systeme Universität Paderborn 33 Steffen Priesterjahn Dienstag, 3. Juni 2008 Spielstrategie • Eine Spielstrategie für MAX ist ein Spielbaum, der die folgenden Eigenschaften erfüllt: • • • • • Der Startknoten gehört dazu. Für jeden MAX-Knoten gehört ein Nachfolger dazu. Für jeden MIN-Knoten gehören alle Nachfolger dazu. Eine Spielstrategie für MIN wird analog definiert. Bei einer Gewinnstrategie für MAX sind alle Blätter mit WIN markiert. FG Wissensbasierte Systeme Universität Paderborn 34 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: Tic Tac Toe - MAX (erster Zug) - MIN FG Wissensbasierte Systeme Universität Paderborn 35 Steffen Priesterjahn Dienstag, 3. Juni 2008 MINIMAX-Heuristiken • Problem: Bei den meisten Spielen ist der Zustandsraum zu groß um ihn vollständig zu erkunden. • Dame: ca. 1040 Knoten • Schach: ca. 10120 Knoten • Lösung: • Berechne die möglichen Nachfolgezustände bis zu einer bestimmten Tiefe… • …und verwende eine Heuristik zur Bewertung der Blätter. FG Wissensbasierte Systeme Universität Paderborn 36 Steffen Priesterjahn Dienstag, 3. Juni 2008 MINIMAX-Heuristiken (II) • Bewertung mit geordneten Werten (z.B. aus , , ) • MAX will die Bewertung maximieren. • Bewertung der Blätter durch die Heuristik • Innere Knoten • MAX-Knoten: Maximum der Nachfolger • MIN-Knoten: Minimum der Nachfolger FG Wissensbasierte Systeme Universität Paderborn 37 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel 10 10 2 10 14 10 10 9 11 9 2 14 12 14 13 15 13 20 2 14 5 1 2 4 3 1 3 20 22 20 21 - MAX-Knoten - MIN-Knoten FG Wissensbasierte Systeme Universität Paderborn 38 Steffen Priesterjahn Dienstag, 3. Juni 2008 MINIMAX-Algorithmus (Depth First Variante) MINIMAX(n): if is_leaf(n) then return h(n); else foreach n' in successors(n) do v(n') = MINIMAX(n'); h(n) - Heuristik v(n) - Bewertung if nodeType(n) = MAX then return max{ v(n') | n' successors(n) } else return min{ v(n') | n' successors(n) } FG Wissensbasierte Systeme Universität Paderborn 39 Steffen Priesterjahn Dienstag, 3. Juni 2008 --Suche • Die Suche kann beschleunigt werden, indem unnötige Knoten nicht betrachtet werden. • -Schranke • Untere Schranke für MIN-Knoten • Die Nachfolger eines MIN-Knotens n brauchen nicht betrachtet werden, wenn v(n) ≤ • -Schranke • Obere Schranke für MAX-Knoten • Die Nachfolger eines MAX-Knotens n brauchen nicht betrachtet werden, wenn v(n) ≥ FG Wissensbasierte Systeme Universität Paderborn 40 Steffen Priesterjahn Dienstag, 3. Juni 2008 Beispiel: --Suche 10 10 5 10 14 10 10 9 11 9 5 14 12 14 5 15 13 14 5 4 2 4 1 3 22 20 21 - MAX-Knoten - MIN-Knoten FG Wissensbasierte Systeme Universität Paderborn 41 Steffen Priesterjahn Dienstag, 3. Juni 2008 Ausblick • Viele Strategien setzen auf MINIMAX auf • unterstützt durch Datenbanken • unterstützt durch bessere Schätzfunktionen • unterstützt durch risikoreichere Strategieauswahl • Weiterführend: Spieltheorie • Suche nach Nash-Equilibrien • Gleichgewicht aller Spieler • Für keine Spieler ist es von Vorteil seine Strategie zu ändern • Probleme • Equilibrien sind schwer zu bestimmen • Mehrere Equlibrien (nicht alle Pareto-optimal) • Nur bei relativ einfachen Spielen handhabbar FG Wissensbasierte Systeme Universität Paderborn 42 Steffen Priesterjahn Dienstag, 3. Juni 2008