Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres Wissen und Schließen VI Lernen VII Kommunizieren, Wahrnehmen und Handeln Informierte (heuristische) Suche - Bester-Zuerst-Suche, A*-Suche - Heuristische Bewertungsfunktionen - Speicher-begrenzte Suche - Iterative Verbesserungsverfahren (Hill-Climbing, Simulated Annealing) Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 1 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 2 Bester-Zuerst-Suche Algorithmus Bester-Zuerst-Suche Idee: Expandiere immer den "besten" Knoten zuerst. Berücksichtige das Prinzip im allgemeinen Suchalgorithmus: - Expandiere den Knoten, der am nächstem zu einem Ziel ist. - Expandiere den Knoten, dessen Pfad zu einem Ziel mutmaßlich am kürzesten ist. Verbrauche möglichst wenig Speicherplatz ( Hill-Climbing) Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 3 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 4
Greedy-Suche Einführung einer neuen Funktion: h(n) = Geschätzte Kosten (des billigsten Pfades) vom Knoten n zum Ziel Greedy-Suche: Bester-Zuerst-Suche mit Evaluationsfunktion h Nachteile: Nicht optimal (z.b. Luftlinien-Heuristik, im Bsp. Arad Bukarest) Gefahr von unendlichen Pfaden (aber gering) Speicherkomplexität wie Breitensuche schlechte worst-case Zeitkomplexität O (b m ) [m = maximale Tiefe des Suchbaumes] Varianten: Hill-Climbing, wenn nur der beste Pfad gemerkt wird. Beam-Search, wenn begrenzte Anzahl von Pfaden (Beams) gemerkt werden. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 5 Luftlinie als Heuristik Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 6 Beispiel: Greedy-Suche A*-Suche Idee: Berücksichtige Entfernung zum Ziel h(n) und bisherigen Aufwand g(n) bezüglich eines Knotens n: f(n) = g(n) + h(n) und wähle niedrigste geschätzte Kosten eines Pfades durch n. Wenn h die Kosten zum Ziel nie überschätzt, ist h zulässig (admissible). A*: Bester-Zuerst-Suche mit zulässiger Funktion h in: f(n) = g(n) + h(n) Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 7 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 8
Beispiel A* - Suche Monotonie Die f-kosten eines Pfades können niemals sinken (falls doch, ist das bedeutungslos und kann ignoriert werden) Beispiel für Monotonie: sei f(n) = g(n) + h(n) = 7 = 3 + 4 und f(n') [n' Nachfolger von n] = g(n') + h(n') = 6 = 4 + 2, dann wissen wir, dass die Schätzung f(n) die bessere ist, da h die tatsächlichen Kosten zum Ziel nicht überschätzen darf. -> f(n') = max (f(n), g(n') + h(n')). 2. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 9 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 10 Monotonizität Wünschenswert wäre es, wenn die berechneten f-kosten entlang eines Pfades nicht sinken würden. Das gilt, wenn die h-kosten in dem Sinne immer sinken, dass die h-kosten von n kleiner als die h-kosten von einem Nachfolger n' von n + die Kosten irgendeines Weges [c(n,a,n') = costs von n über action a nach n'] von n nach n' d.h. h(n) c(n,a,n') + h(n') Wenn diese Dreiecksungleichung gilt, erfüllt die heuristische Funktion h die Forderung der Monotonizität oder Konsistenz Obwohl strikter als Zulässigkeit, wird Konsistenz von fast allen zulässigen Funktionen erfüllt (z.b. Luftlinie). Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 11 Optimalität der A*-Suche A* ist vollständig & optimal (d.h. 1. gefundener Pfad ist bester). Beweisidee für Optimalität: A* expandiert Knoten im Bereich um den Startknoten, die den jeweils geschätzten f-werten entsprechen. Da die f-werte monoton wachsen, wachsen auch die Bereiche, bis ein Zielknoten darin enthalten ist. Falls f* die Kosten des optimalen Pfades sind, gilt: A* expandiert alle Knoten n deren f(n) < f* sind, und manche, für die f(n) = f*. Alle Knoten außer dem ersten Zielknoten müssen höhere f-kosten und so auch höhere g-kosten haben (da dann h(n) = 0), d.h. sie können nicht optimal sein. Leider benötigt die A*-Suche exponentiell viel Speicherplatz. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 12
Verschiedene f-konturen bei A* - Suche Heuristische Funktionen Heuristik für Kürzeste Wege: Luftlinie 8-Puzzle: Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 13 Komplexität ohne Heuristik: Typische Pfadlänge zur Lösung: 20 Typischer Verzweigungsfaktor: 3 ca. 3 20 = 3,5 10 9 Pfade, allerdings nur 9! = 362 880 Zustände 2 zulässige Heuristiken: h 1 : Anzahl der Kästchen auf falschem Feld. h 2 : Summe der Entfernungen der Kästchen von ihrer Zielposition Frage: Ist h 2 immer besser als h 1? Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 14 Effekt heuristischer Funktionen Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 15 Erfinden heuristischer Funktionen (1) h 1 und h 2 können als exakte Entfernungsmaße für ein vereinfachtes Problem betrachtet werden: h 1, falls ein Kästchen sich auf jedes Feld bewegen könnte. h 2, falls ein Kästchen sich auf jedes benachbarte Feld bewegen könnte. Oft sind die Kosten einer exakten Lösung für ein vereinfachtes Problem eine gute (zulässige) Heuristik für das ursprüngliche Problem. Bsp.: 8-Puzzle: Normale Regel: Ein Kästchen kann sich auf ein anderes Feld bewegen, wenn dieses benachbart und leer ist. Relaxierung von benachbart und leer. Bsp. Kürzeste Wege: Normale Regel: Man kann nur auf Straßen von einem Ort zum anderen. Relaxierung: man kann fliegen. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 16
Erfinden heuristischer Funktionen (2) ABSOLVER [Prieditis 93] generiert gute Heuristiken automatisch (z.b. erste gute Heuristik für Rubin's Cube). Falls mehrere gute Heuristiken existieren, können diese durch die Maximum-Funktion kombiniert werden. Statistische Informationen können genutzt werden, wieviel eine Heuristik im Durchschnitt das Ziel unterschätzt, aber daraus resultiert dann keine zulässige Heuristik mehr. Oft kann man zwar wichtige Aspekte nennen, die in die Heuristik eingehen sollen, aber nicht deren genauen Wert. Dann kann man dafür parameteradaptive Lernverfahren einsetzen. Muster-Datenbanken Idee: Speichere exakte Lösungen für Teilprobleme, z.b. Lösungen für alle Stellungen der Kästchen 1-4 im 8-Puzzle bezogen auf eine Zielstellung der Kästchen 1-4 Zerlege eine Lösung in Teilprobleme, schaue in der Datenbank die exakten Lösungen der Teilprobleme nach und addiere Anzahl der Züge Zwar gibt es Interaktion zwischen den Teillösungen Aber das Ergebnis ist eine untere Schranke der tatsächlichen Lösung und deswegen eine zulässige Heuristik für A* Beispiel für Teilproblem: Berechnungskosten der Heuristik mitberücksichtigen!!! Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 17 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 18 Lernen heuristischer Funktionen Idee: Bestimme Stellungsmerkmale und ermittle ihre Korrelation in (optimalen) Lösungen mit der tatsächlichen Pfadlänge durch Lernalgorithmen. Dann kann man die Kosten h eines Zustandes n dadurch abschätzen, dass man die Stellungsmerkmale von n ermittelt und durch die gelernte Funktion die Kosten h(n) schätzt. Mehrere Stellungsmerkmale können summiert werden, wenn sie vorher entsprechend gewichtet werden. Speicherbegrenzte heuristische Suche Hauptproblem von A* war der exponentielle Speicherbedarf. Techniken zur Reduktion basieren auf der Übertragung der Idee der iterativen Tiefensuche auf heuristische Suchverfahren, d.h. man merkt sich nicht alles, sondern berechnet manche Zustände mehrfach (aber nicht "zu oft"). Drei Verfahren: IDA*: Iteratives Tiefen-A* RBFS: Recursive Best First Search SMA*: Simplified Memory Bounded A* Benutze soviel Hauptspeicher wie verfügbar ist. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 19 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 20
IDA* (1) Idee: Ähnlich wie die Iterative Tiefensuche einen Pfad nur bis zu einer vorgegebenen Tiefe verfolgt, so wird bei IDA* ein Pfad nur bis zu einer vordefinierten f-kosten-schranke verfolgt. Wenn innerhalb der Schranke keine Lösung liegt, wird die Schranke erhöht und eine komplett neue Suche gestartet. Vorteil: Man muß sich sich nicht mehr alle Knoten merken, sondern nur die, die zu dem aktuellen Pfad gehören (Speicheraufwand nur noch ca. Verzweigungsfaktor * Tiefe) Problem: Wie erhöht man die f-kosten-schranke von einer Iteration zur nächsten? IDA* (2) Lösung1: Nimm den kleinsten f-wert von allen Knoten, deren f-wert außerhalb der f-kosten-schranke lag. Gut, wenn sich die Kosten von einer Runde zur nächsten um "Einheitskosten" (z.b. ganze Zahlen) erhöhen. Nachteil: Wenn sich die f-kosten von einer Runde zur nächsten nur sehr wenig verbessern (z.b. reellwertige Zahlen), dann steigt der Suchaufwand quadratisch. Lösung2: Erhöhe den f-wert um einen konstanten Betrag e Nachteil: Man findet ein suboptimales Ziel, dessen Kosten um maximal e größer als das optimale Ziel sein können. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 21 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 22 RBFS (recursive best-first search) RBFS verfolgt immer einen Pfad wie bei der Tiefensuche, allerdings nur solange, bis ein anderer Knoten einen besseren f-wert aufweist. Dann wird der andere Pfad verfolgt und der bisher aktuelle Pfad vergessen bis auf den erreichten f-wert, der bis zu dem Knoten hochpropagiert wird, der vom anderen Pfad sichtbar ist. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 23 SMA* (1) IDA* erinnert sich von einer Iteration zur nächsten nur an die f- Kosten-Schranke. SMA* merkt sich stattdessen soviele Knoten, wie es Speicher zur Verfügung hat. Problem: Was tun, wenn Speicher voll ist? Lösung: Vergiss den Knoten mit der schlechtesten f-bewertung und merke in dem Vorgänger-Knoten die f-kosten des vergessenen Knoten. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 24
SMA* (2) Eigenschaften von SMA*: Beispiel SMA* - Suche - Ausnutzen allen verfügbaren Speichers. - Vermeiden des Mehrfach-Besuchens von Zuständen soweit Speicher vorhanden ist. - Vollständig, wenn genügend Speicher für den kürzesten Lösungspfad. - Optimal, wenn genügend Speicher für den optimalen Lösungspfad. - Optimal effizient, wenn genügend Speicher für den gesamten Suchbaum (ähnlich wie A*). Ungeklärt, aber wahrscheinlich optimal effizienter Algorithmus bezüglich derselben heuristischen Information und desselben Speicherbedarfs. Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 25 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 26 Beispiel SMA* - Suche Iterative Verbesserungsverfahren Wenn es bei einem Problem nur auf die Lösung selbst, nicht auf den Weg dahin ankommt (z.b. 8-Damen, VLSI-Layout), dann sind iterative Verbesserungsverfahren oft am praktikabelsten. Idee: Starte mit einer vollständigen Konfiguration und verbessere sie durch schrittweise Variationen. Klassen von Algorithmen: - Hill-Climbing - Simulated Annealing - local Beam Search Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 27 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 28
Hill-Climbing-Suche Wähle immer den Nachfolgeknoten mit der besten Bewertung. Wenn nur schlechtere Nachfolger, dann gib aktuellen Knoten als Lösung zurück. Hill-Climbing: Beispiel 8-Damen-Problem links: Ausgehend von einer Start-Konfiguration wird immer der Zug gewählt, der die Anzahl der Konflikte am stärksten reduziert rechts: lokales Minimum bei dem Hill-Climbing "stecken" bleibt. Kein Suchbaum, kein Backtracking Sehr effizient Probleme: - Lokale Maxima - Plateaus - Gebirgskamm (ridge, shoulder) Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 29 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 30 Hill-Climbing Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 31 Verbesserungen von Hill-Climbing Wenn gleichgute Nachfolger, dann wähle per Zufall ("Seitwärtsschritte") Problem: potentielle Endlosschleife in Plateaus Lösung: Begrenzung der Anzahl der Seitwärtsschritte Random-Restart-Hill-Climbing: Starte Hill-Climbing mehrfach von verschiedenen Punkten. Stochastic Hill-Climbing: Wähle nicht den besten Nachfolge- Knoten, sondern eine Verbesserung nach stochastischen Kriterien Erlaube beim Hill-Climbing in kontrollierter Weise auch Verschlechterungen Simulated Annealing (s.u.) Local beam Search: Merke statt einem Knoten eine Menge von k Knoten ("beam"). Von allen Nachfolgern der k Knoten werden wiederum die k besten ausgewählt (kann man gut mit stochastic Hill-Climbing kombinieren, um gewisse Diversivität zu erreichen). Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 32
Simulated Annealing Idee: Start immer von neuen zu suchen, könnte man auch während der Suche kleinere Verschlechterungen in Kauf nehmen. Frage: Wie kann man kleine Verschlechterungen sinnvoll definieren? 1. Benutze eine gewichtete Zufallsfunktion bei der Schrittauswahl: Je schlechter ein Schritt ist, desto unwahrscheinlicher wird er gewählt. 2. Erreiche Terminierung, indem im Laufe der Zeit schlechte Schritte immer unwahrscheinliche werden. Simulated Annealing: Analogie zum allmählichen Gefrieren einer Flüssigkeit Genetische Algorithmen (GA) Variante von stochastischem Beam Search Biologische Metapher der Evolution: Anstatt der Modifikation von einem Vorgänger ("asexuelle Fortpflanzung") werden zwei Vorgänger gemischt ("sexuelle Fortplanzung"). Hauptschritte: Wiederhole n Mal: 1. Select: Auswahl von 2 Lösungen in Population nach Fitness 2. Recombine: Vermischen beider Lösungen zu neuer Lösung 3. Repair: ggf. Reparatur der neuen Lösung 4. Mutate: Modifikation der neuen Lösung durch Mutation Wähle die besten Lösungen aus und starte neue Runde Erfolgsfaktor: Gute Modularisierung erforderlich Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 33 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 34 Graphische Darstellung von GA Beispiel für Rekombination Population Selektion Rekombination Mutation Fitniss-gewichtet Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 35 Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 36
Beispiel für Rekombination mit Reparatur N1 zu A1 N2 zu A2 N3 zu A3 N4 zu A4 N1 zu A2 N2 zu A1 N3 zu A4 N4 zu A3 N1 zu A2 N2 zu A3 N3 zu A1 N4 zu A4-5 -3-2 Elterngeneration N1 zu A1 N2 zu A2 N3 zu A4 N4 zu A3-3 N1 zu A2 N2 zu A3 N3 zu A4 N4 zu A3 Reparatur N1 zu A2 N2 zu A3 N3 zu A4 N4 zu A1 0 Kindergeneration Künstliche Intelligenz: 4. Informierte Suchmethoden Frank Puppe 37