Einführung in Heuristische Suche
Beispiele 2
Überblick Intelligente Suche Rundenbasierte Spiele 3
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 4
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 1 5 2 1 5 1 2 3 6 3 6 3 4 5 6 8 4 7 8 4 7 7 8 5
Problem Ein Problem besteht aus 6
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, 7, 5, 8), (1, 2, 3, 4, 6, 0, 7, 5, 8), (1, 0, 3, 4, 2, 6, 7, 5, 8), (1, 2, 3, 4, 5, 6, 7, 0, 8) } 1 2 3 4 5 6 7 8 Beispiel für eine Bewertungsfunktion: f(x) = (x 0-1) 2 + (x 1-2) 2 + (x 2-3) 2 + (x 3-4) 2 + (x 4-5) 2 f(x) + (x 5-6) 2 + (x 6-7) 2 + (x 7-8) 2 + (x 8-0) 2 Constraint: keins 7
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 8
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 9
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. 10
Greedy: Beispiel TSP (II) 11
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 12
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. 13
Tiefensuche Betrachte zuerst immer alle Nachfolger, bevor ein Nachbarknoten betrachtet wird. 14
Beispiel: Labyrinth 15
Beispiel: Labyrinth (II) "Immer an der rechten Wand entlang" = Tiefensuche 16
Breitensuche Betrachte zuerst alle Nachfolger eines Knotens, bevor deren Nachfolger betrachtet werden. 17
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 18
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. 19
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 20
Best First 21
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 22
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) 23
Heuristik des A*-Verfahrens h(n) heißt Heuristik des A*-Verfahrens Für ein zulässiges A*-Verfahren muss gelten: Es gilt außerdem: h(n) h*(n) 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) 24
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" 2 1 5 6 3 8 4 7 25
Beispiel: 8er-Puzzle Manhattan-Distanz, Beispiel: 8 1 5 8 1 5 6 2 4 3 7 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 26
Beispiel: 8er Puzzle 1 7 2 3 4 6 5 8 4 5 1 4 2 3 6 7 5 8 3 5 1 2 3 4 5 6 7 8 0 3 1 2 3 4 6 7 5 8 1 4 2 3 6 7 5 8 2 2 3 1 4 6 7 5 8 4 5 3 1 2 3 4 5 6 7 8 1 1 4 2 3 6 7 5 8 3 +0 +1 +2 +3 5 3 1 4 2 3 5 6 7 8 2 5 27
Überblick Intelligente Suche Rundenbasierte Spiele 28
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) 29
Und-Oder-Graphen Gerichtet 2 Kantensorten Oder-Kanten (normale Kanten) Und-Kanten (werden alle gleichzeitig benutzt) 30
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 (-1) - MAX hat gewonnen DRAW (-0) - unentschieden LOSS (-1) - MIN hat gewonnen 31
Spielbäume MINIMAX-Spiele werden als Und-Oder-Graph modelliert Spielbaum = Entscheidungsbaum eines Spiels MAX MIN MAX 32
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 33
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. 34
Beispiel: Tic Tac Toe - MAX (erster Zug) - MIN 35
MINIMAX-Heuristiken Problem: Bei den meisten Spielen ist der Zustandsraum zu groß um ihn vollständig zu erkunden. Dame: ca. 10 40 Knoten Schach: ca. 10 120 Knoten Lösung: Berechne die möglichen Nachfolgezustände bis zu einer bestimmten Tiefe und verwende eine Heuristik zur Bewertung der Blätter. 36
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 37
Beispiel 10 10 2 10 14 2 20 10 9 14 13 2 1 3 20 10 11 9 12 14 15 13 14 5 2 4 1 3 22 20 21 - MAX-Knoten - MIN-Knoten 38
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) } 39
- -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) 40
Beispiel: - -Suche 10 10 5 10 14 5 10 9 14 5 4 10 11 9 12 14 15 13 14 5 2 4 1 3 22 20 21 - MAX-Knoten - MIN-Knoten 41
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 42