Grundlagen der Künstlichen Intelligenz 5. April 2013 — 8. Suchalgorithmen: Lokale Suche Grundlagen der Künstlichen Intelligenz 8.1 Einleitung 8. Suchalgorithmen: Lokale Suche Malte Helmert 8.2 Lokale Suchverfahren Universität Basel 8.3 Zusammenfassung 5. April 2013 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 1 / 18 Einleitung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 2 / 18 Einleitung Suchprobleme: Überblick Kapitelüberblick klassische Suchprobleme: 8.1 Einleitung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 3 / 18 I Formalisierung von Suchproblemen ( I blinde Suchverfahren ( I Heuristiken ( I Bestensuche ( I Eigenschaften von A∗ ( I Lokale Suche ( M. Helmert (Universität Basel) Kapitel 3) Kapitel 4) Kapitel 5) Kapitel 6) Kapitel 7) dieses Kapitel) Grundlagen der Künstlichen Intelligenz 5. April 2013 4 / 18 8. Suchalgorithmen: Lokale Suche Einleitung 8. Suchalgorithmen: Lokale Suche Lokale Suchverfahren Lokale Suchverfahren Lokale Suchverfahren arbeiten nur mit einem (oder wenigen) aktuellen Knoten, statt systematisch Pfade zu untersuchen. Besonders geeignet für kombinatorische Optimierungsprobleme: I I I Lösung ist ein Zustand, nicht der Pfad dorthin. Es gibt keine Aktionskosten, aber Zielzustände können verschiedene Kosten/Nutzen haben 8.2 Lokale Suchverfahren Definition der Suchnachbarschaft ist frei wählbar, nur Menge der Zustände ist durch die Problemdefinition vorgegeben (und ob sie Lösungen und wie teuer sie sind) Beispiele: I I I Timetabling Konfigurationsprobleme kombinatorische Auktionen Fokus im Folgenden auf solchen Problemen, aber auch für allgemeine klassische Suchprobleme anwendbar M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 5 / 18 Lokale Suchverfahren Lokale Suchverfahren: Ideen M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 8. Suchalgorithmen: Lokale Suche Heuristik schätzt ab, wie weit eine Lösung entfernt ist und/oder wie gut diese Lösung ist I es werden keine Pfade gemerkt, nur Zustände I normalerweise ein aktueller Zustand sehr speicherfreundlich (dafür nicht vollständig oder optimal) Lokale Suchverfahren Aufgabe: Platziere 8 Damen so, dass sie sich nicht bedrohen Heuristik: Anzahl Damenpaare, die sich bedrohen Nachbarschaft: bewege eine Dame in ihrer Spalte 18 12 14 13 13 12 14 14 I oft Initialisierung mit zufälligem Zustand 14 16 13 15 12 14 12 16 I schrittweise Verbesserung durch Bergsteigen“ (hill-climbing) ” 14 12 18 13 15 12 14 14 15 14 14 13 16 13 16 14 17 15 14 16 16 16 18 15 15 15 14 17 12 14 17 Grundlagen der Künstlichen Intelligenz 6 / 18 Beispiel: 8-Damen-Problem I M. Helmert (Universität Basel) 5. April 2013 5. April 2013 7 / 18 M. Helmert (Universität Basel) 18 14 14 14 13 15 16 12 18 Grundlagen der Künstlichen Intelligenz 5. April 2013 8 / 18 4 8. Suchalgorithmen: Lokale Suche SEARCH Lokale Suchverfahren Hill-Climbing 8. Suchalgorithmen: Lokale Suche Lokale Suchverfahren Beispiel: Hill-Climbing für 8-Damen-Problem Eine mögliche Variation von Hill-Climbing: wähle zufällig eine Spalte und setze Dame dort auf Feld mit minimal vielen Konflikten. function H ILL -C LIMBING( problem) returns a state that is a local maximum current ← M AKE -N ODE(problem.I NITIAL -S TATE) loop do neighbor ← a highest-valued successor of current if neighbor.VALUE ≤ current.VALUE then return current .S TATE current ← neighbor Figure 4.2 2 3 2 3 1 The hill-climbing search algorithm, which is the most basic local search technique. At 2 2 3 3 1 2 2 3 Hier alseach Maximierung formuliert. step the currentvon nodeQualität is replaced(value) by the best neighbor; in this version, that means the neighbor with the von highest VALUE, but if a heuristic cost estimate h is used, we would find the neighbor with the Minimierung Kosten/Heuristik analog. lowest h. Gute lokale Suchverfahren kombinieren oft Zufall (Exploration) mit Heuristik (Exploitation). function S IMULATED -A NNEALING( problem, schedule) returns a solution state Grundlagen der Künstlichen Intelligenz 5. April 2013 inputs: problem, a problem schedule, a mapping from time to “temperature” M. Helmert (Universität Basel) ← M AKE -N ODE(problem.I NITIAL -S TATE) 8. Suchalgorithmen: current Lokale Suche for t = 1 to ∞ do T ← schedule(t) if T = 0 then return current next ← a randomly selected successor of current ∆E ← next .VALUE – current .VALUE if ∆E > 0 then current ← next else current ← next only with probability e∆E/T 9 / 18 Lokale Suchverfahren Probleme von lokalen Suchverfahren I 0 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 10 / 18 Lokale Suchverfahren Beispiel: lokales Minimum im 8-Damen-Problem Lokales Minimum: Lokale Minima: 4.5 The simulated annealing algorithm, a version of stochastic alleFigure Nachbarn schlechter als aktueller Zustand I Zustand hat 1 Konflikt I alle Nachbarn haben mindestens 2 hill climbing where some downhill moves are allowed. Downhill moves are accepted readily early in the annealing schedule and I Algorithmus bleibt auf diesem Zustand stecken then less often as time goes on. The schedule input determines the value of the temperature T as a I = lokale Maxima, wenn es um Maximierung von function of time. Nutzen/Qualität geht statt um Minimierung von Kosten I Plateaus: viele Nachbarn gleich gut wie aktueller Zustand; keiner besser I keine Führung zum Zielzustand möglich 8 Massnahmen: zufällige Bewegung, Breitensuche oder Neustart M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 11 / 18 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 12 / 18 8. Suchalgorithmen: Lokale Suche Lokale Suchverfahren Performance-Zahlen für 8-Damen-Problem current ← M AKE -N ODE(problem.I NITIAL -S TATE) loop do neighbor 8. Suchalgorithmen: Lokale Suche ← a highest-valued successor of current if neighbor.VALUE ≤ current.VALUE then return current .S TATE current ← neighbor Lokale Suchverfahren Simulierte Abkühlung Figure 4.2 The hill-climbing search algorithm, which is the most basic local search technique. At each step the current node is replaced by the best neighbor; in this version, that means the neighbor Simulierte Abkühlung (simulated annealing) ist ein lokales with the highest VALUE, but if a heuristic cost estimate h is used, we would find the neighbor with the lowest h. Suchverfahren, bei dem systematisch Rauschen“ injiziert wird: ” erst viel, dann immer weniger. I Problem hat 88 ≈ 17 Millionen Zustände. I Nach zufälliger Initialisierung findet Hill-Climbing in etwa 14% der Fälle direkt eine Lösung. I Im Durchschnitt nur etwa 4 Schritte! I bessere Verfahren: Seitwärtsbewegung“ (Schritte ohne ” Verbesserung) erlauben und Anzahl Schritte beschränken I Bei max. 100 erlaubten Schritten: Lösung in 94% der Fälle, im Durchschnitt 21 Schritte zur Lösung function S IMULATED -A NNEALING( problem, schedule) returns a solution state inputs: problem, a problem schedule, a mapping from time to “temperature” current ← M AKE -N ODE(problem.I NITIAL -S TATE) for t = 1 to ∞ do T ← schedule(t) if T = 0 then return current next ← a randomly selected successor of current ∆E ← next .VALUE – current .VALUE if ∆E > 0 then current ← next else current ← next only with probability e∆E/T Figure 4.5 The simulated annealing algorithm, a version of stochastic hill climbing where some downhill movesin arebestimmten allowed. Downhill Anwendungen, moves are accepted readily earlyVLSI-Layout. in the annealing schedule and Sehr erfolgreich z. B. then less often as time goes on. The schedule input determines the value of the temperature T as a function of time. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 13 / 18 Lokale Suchverfahren M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 8. Suchalgorithmen: Lokale Suche 14 / 18 Lokale Suchverfahren 8 Genetische Algorithmen Selektion, Mutation und Kreuzung Die Evolution findet sehr erfolgreich gute Lösungen. Viele Varianten: Wie wird selektiert? Wie wird gekreuzt? Wie wird mutiert? Idee: Simuliere Evolution durch Selektion, Kreuzen und Mutation von Individuen. Zutaten: I Kodierung von Zuständen durch einen String von Symbolen (oder Bits) I Fitness-Funktion: bewertet die Güte von Zuständen (entspricht Heuristik) I Eine Bevölkerung von k (z. B. 10–1000) Individuen“ ” (Zuständen) Selektion anhand von Fitness-Funktion; anschliessend Paarung Bestimmung von Punkten, an denen gekreuzt wird, dann Rekombination Beispiel 8-Damen-Problem: Kodierung als String von 8 Zahlen. Fitness ist Anzahl nicht-attackierender Paare. Population besteht aus 100 derartigen Zuständen. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 Mutation: String-Elemente werden mit bestimmter Wahrscheinlichkeit verändert. 15 / 18 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 16 / 18 8. Suchalgorithmen: Lokale Suche Zusammenfassung 8. Suchalgorithmen: Lokale Suche Zusammenfassung Zusammenfassung 8.3 Zusammenfassung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 17 / 18 I lokale Suchverfahren betrachten einen oder wenige Zustände auf einmal und versuchen, schrittweise Verbesserungen zu erzielen I besonders häufig im Einsatz für kombinatorische Optimierungsprobleme, wo der Pfad zum Ziel nicht wichtig ist, sondern nur der gefundene Zielzustand I Simuliertes Abkühlung und genetische Algorithmen sind komplexere Suchverfahren, die typische Ideen aus der lokalen Suche aufgreifen (Randomisierung, Weiterverfolgung von vielversprechenden Zuständen) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 5. April 2013 18 / 18