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

Ähnliche Dokumente
Grundlagen der Künstlichen Intelligenz

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

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

Einführung in Heuristische Suche

Grundlagen der Künstlichen Intelligenz

Uninformierte Suche in Java Informierte Suchverfahren

Grundlagen der KI + Reasoning Agents

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

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

Einführung in Suchverfahren

3. Problemlösen durch Suche

8. Uninformierte Suche

9. Heuristische Suche

Vorlesung Datenstrukturen

Datenstrukturen & Algorithmen

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

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

39.1 Alpha-Beta-Suche

9. Übung Algorithmen I

Bäume, Suchbäume und Hash-Tabellen

Breiten- und Tiefensuche in Graphen

Smart Graphics: Methoden 2 Suche

KI und Sprachanalyse (KISA)

Vorlesung 4 BETWEENNESS CENTRALITY

10 Graphenalgorithmen in Java

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Baumsuche, Partielle Ordnungen und eine neue Familie uninformierter A

Algorithmische Methoden zur Netzwerkanalyse

Suchen und Sortieren Sortieren. Heaps

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

14. Rot-Schwarz-Bäume

4 Greedy-Algorithmen (gierige Algorithmen)

Algorithmen und Datenstrukturen Kapitel 10

Grundlagen der Künstlichen Intelligenz

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Seminararbeit. Thema : Suchverfahren. Autor : Sven Schmidt

Wissensbasierte Systeme

Algorithmen und Datenstrukturen 2

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Binärbäume. Prof. Dr. E. Ehses,

Informatik II, SS 2014

Rationale Agenten Rationalität

Wissensbasierte Systeme

Referat zum Thema Huffman-Codes

Algorithmen II Vorlesung am

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

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

Algorithmen und Datenstrukturen

Praktikum Planare Graphen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Schnelle und genaue Routenplanung

4. Kreis- und Wegeprobleme Abstände in Graphen

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Grundlagen der Künstlichen Intelligenz

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Algorithmen und Datenstrukturen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Graphen: Datenstrukturen und Algorithmen

Customization (Zuschneiden)

Algorithmen & Datenstrukturen 1. Klausur

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Seminar künstliche Intelligenz

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

1 topologisches Sortieren

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen SS07

Kombinatorische Optimierung

Teil V. Generics und Kollektionen in Java

11.1 Grundlagen - Denitionen

Übungen zu Kognitive Systeme I

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Graphalgorithmen Knotentraversierung Breitensuche, (Breadth first search) Erst alle Knoten im Abstand i von s, dann i+1,...

Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Geometrische Algorithmen

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme

Verbesserungsheuristiken

Informatik II, SS 2014

Universität des Saarlandes

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Nichtdeterministische Platzklassen

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Grundlagen der Programmierung

ADS: Algorithmen und Datenstrukturen 2

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

5 Zwei spieltheoretische Aspekte

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Datenstrukturen und Algorithmen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

DATENSTRUKTUREN UND ALGORITHMEN

Transkript:

Grundlagen der Künstlichen Intelligenz 17. März 2014 8. Klassische Suche: Breitensuche und uniforme Kostensuche Grundlagen der Künstlichen Intelligenz 8. Klassische Suche: Breitensuche und uniforme Kostensuche Malte Helmert Universität Basel 17. März 2014 8.1 Blinde Suche 8.2 Breitensuche: Einführung 8.3 BFS-Tree 8.4 BFS-Graph 8.5 Eigenschaften der Breitensuche 8.6 Uniforme Kostensuche 8.7 Zusammenfassung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 1 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 2 / 35 Klassische Suche: Überblick 8. Klassische Suche: Breitensuche und uniforme Kostensuche Blinde Suche Kapitelüberblick klassische Suche: 3. 5. Einführung 6. 9. Basisalgorithmen 6. Datenstrukturen für Suchalgorithmen 7. Baumsuche und Graphensuche 8. Breitensuche und uniforme Kostensuche 9. Tiefensuche und iterative Tiefensuche folgende Kapitel: heuristische Algorithmen 8.1 Blinde Suche M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 3 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 4 / 35

8. Klassische Suche: Breitensuche und uniforme Kostensuche Blinde Suche Blinde Suche 8. Klassische Suche: Breitensuche und uniforme Kostensuche Blinde Suche Blinde Suchalgorithmen: Beispiele In den folgenden beiden Kapiteln betrachten wir blinde Suchalgorithmen: blinde Suchalgorithmen Blinde Suchalgorithmen verwenden keine Informationen über Zustandsräume ausser dem Black-Box-Interface. Sie werden auch uninformierte Suchalgorithmen genannt. vergleiche: heuristische Suchalgorithmen (ab Kapitel 10) Beispiele für blinde Suchalgorithmen: Breitensuche ( dieses Kapitel) uniforme Kostensuche ( dieses Kapitel) Tiefensuche ( nächstes Kapitel) tiefenbeschränkte Suche ( nächstes Kapitel) iterative Tiefensuche ( nächstes Kapitel) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 5 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 6 / 35 8. Klassische Suche: Breitensuche und uniforme Kostensuche Breitensuche: Einführung 8. Klassische Suche: Breitensuche und uniforme Kostensuche Breitensuche: Einführung Breitensuche 8.2 Breitensuche: Einführung Breitensuche expandiert Knoten in Erzeugungsreihenfolge (FIFO). z. B. Open-Liste als verkettete Liste oder Deque A A A A B C B C B C B C D E F G D E F G D E F G D E F G durchsucht Zustandsraum ebenenweise findet immer flachsten Zielzustand zuerst M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 7 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 8 / 35

8. Klassische Suche: Breitensuche und uniforme Kostensuche Breitensuche: Einführung Breitensuche: Baumsuche oder Graphensuche? Breitensuche kann ohne Duplikateliminierung (als Baumsuche) BFS-Tree oder mit Duplikateliminierung (als Graphensuche) BFS-Graph durchgeführt werden. 8.3 BFS-Tree Wir betrachten beide Varianten. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 9 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 10 / 35 Erinnerung: generischer Baumsuchalgorithmus BFS-Tree (1. Versuch) Erinnerung aus Kapitel 7: Generische Baumsuche open := new OpenList open.insert(make root node()) n = open.pop() open.insert(n ) Breitensuche ohne Duplikateliminierung (1. Versuch): BFS-Tree (1. Versuch) open := new Deque open.push back(make root node()) n = open.pop front() open.push back(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 11 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 12 / 35

BFS-Tree (1. Versuch): Diskussion BFS-Tree (2. Versuch) Breitensuche ohne Duplikateliminierung (2. Versuch): Das ist schon fast ein brauchbarer Algorithmus, aber er verschwendet etwas Zeit: In einer Breitensuche ist der erste erzeugte Zielknoten auch immer der erster expandierte Zielknoten. (Warum?) Daher ist es effizienter, den Zieltest bereits durchzuführen, wenn ein Knoten erzeugt wird (nicht erst, wenn er expandiert wird). Wieviel Zeit spart das? BFS-Tree (2. Versuch) open := new Deque open.push back(make root node()) n = open.pop front() if is goal(s ): return extract path(n ) open.push back(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 13 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 14 / 35 BFS-Tree (2. Versuch): Diskussion BFS-Tree (endgültige Version) Breitensuche ohne Duplikateliminierung (endgültige Version): Wo ist der Bug? BFS-Tree if is goal(init()): return open := new Deque open.push back(make root node()) n = open.pop front() if is goal(s ): return extract path(n ) open.push back(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 15 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 16 / 35

8. Klassische Suche: Breitensuche und uniforme Kostensuche BFS-Graph 8. Klassische Suche: Breitensuche und uniforme Kostensuche BFS-Graph Erinnerung: generischer Graphensuchalgorithmus Erinnerung aus Kapitel 7: Generische Graphensuche 8.4 BFS-Graph open := new OpenList open.insert(make root node()) closed := new ClosedList n = open.pop() if closed.lookup(n.state) = none: closed.insert(n) open.insert(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 17 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 18 / 35 8. Klassische Suche: Breitensuche und uniforme Kostensuche BFS-Graph Anpassung der generischen Graphensuche für Breitensuche 8. Klassische Suche: Breitensuche und uniforme Kostensuche BFS-Graph BFS-Graph (Breitensuche mit Duplikateliminierung) Anpassung der generischen Graphensuche für Breitensuche: analoge Anpassungen zu BFS-Tree (Deque als Open-Liste, früher Zieltest) da Closed-Liste hier nur zur Duplikaterkennung dient, nicht zur Verwaltung von Knoteninformationen, reicht eine Mengen-Datenstruktur aus aus denselben Gründen, warum frühe Zieltests sinnvoll sind, sollten wir Duplikattests gegen die Closed-Liste und Updates der Closed-Liste so früh wie möglich vornehmen M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 19 / 35 BFS-Graph if is goal(init()): return open := new Deque open.push back(make root node()) closed := new HashSet closed.insert(init()) n = open.pop front() if is goal(s ): return extract path(n ) if s / closed: closed.insert(s ) open.push back(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 20 / 35

8. Klassische Suche: Breitensuche und uniforme Kostensuche Eigenschaften der Breitensuche 8. Klassische Suche: Breitensuche und uniforme Kostensuche Eigenschaften der Breitensuche Eigenschaften der Breitensuche 8.5 Eigenschaften der Breitensuche Eigenschaften der Breitensuche: BFS-Tree ist semi-vollständig, aber nicht vollständig (Warum?) BFS-Graph ist vollständig (Warum?) BFS (beide Varianten) ist optimal, wenn alle Aktionen dieselben Kosten haben (Warum?), aber nicht im allgemeinen Fall (Warum nicht?) Aufwand: folgende Folien M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 21 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 22 / 35 8. Klassische Suche: Breitensuche und uniforme Kostensuche Eigenschaften der Breitensuche Breitensuche: Aufwand 8. Klassische Suche: Breitensuche und uniforme Kostensuche Eigenschaften der Breitensuche Breitensuche: Beispiel für den Aufwand Das folgende Ergebnis gilt für beide BFS-Varianten: Satz (Zeitaufwand der Breitensuche) Sei b der maximale Verzweigungsgrad und d die minimale Lösungslänge des gegebenen Zustandsraums. Sei b 2. Dann beträgt der Zeitaufwand der Breitensuche 1 + b + b 2 + b 3 + + b d = O(b d ) Erinnerung: wir messen Zeitaufwand in erzeugten Knoten Es folgt, dass der Speicheraufwand beider BFS-Varianten ebenfalls O(b d ) ist (falls b 2). (Warum?) Beispiel: b = 10; 100 000 Knoten/Sekunde; 32 Bytes/Knoten d Knoten Zeit Speicher 3 1 111 0.01 s 35 KiB 5 111 111 1 s 3.4 MiB 7 10 7 2 min 339 MiB 9 10 9 3 h 33 GiB 11 10 11 13 Tage 3.2 TiB 13 10 13 3.5 Jahre 323 TiB 15 10 15 350 Jahre 32 PiB M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 23 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 24 / 35

8. Klassische Suche: Breitensuche und uniforme Kostensuche Eigenschaften der Breitensuche BFS-Tree oder BFS-Graph? Was ist besser, BFS-Tree oder BFS-Graph? Vorteile von BFS-Graph: vollständig viel (!) effizienter, wenn es viele Duplikate gibt Vorteile von BFS-Tree: einfacher weniger Overhead (Zeit/Platz), wenn wenige/keine Duplikate 8.6 Uniforme Kostensuche Schlussfolgerung BFS-Graph ist normalerweise zu bevorzugen, es sei denn wir wissen, dass es im gegebenen Zustandsraum vernachlässigbar wenige Duplikate gibt. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 25 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 26 / 35 Uniforme Kostensuche Erinnerung: generischer Graphensuchalgorithmus Breitensuche optimal, wenn alle Aktionskosten gleich sonst Optimalität nicht garantiert Beispiel: Abhilfe: uniforme Kostensuche expandiere immer Knoten mit minimalen Pfadkosten (n.path cost alias g(n)) Implementierung: Prioritätswarteschlange (Min-Heap) für Open-Liste M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 27 / 35 Erinnerung aus Kapitel 7: Generische Graphensuche open := new OpenList open.insert(make root node()) closed := new ClosedList n = open.pop() if closed.lookup(n.state) = none: closed.insert(n) open.insert(n ) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 28 / 35

Uniforme Kostensuche Uniforme Kostensuche: Diskussion Uniforme Kostensuche open := new MinHeap ordered by g open.insert(make root node()) closed := new HashSet n = open.pop min() if n.state / closed: closed.insert(n) open.insert(n ) Anpassung der generischen Graphensuche für uniforme Kostensuche: hier wären frühe Zieltests/frühe Updates der Closed-Liste keine gute Idee. (Warum nicht?) wie in BFS-Graph reicht eine Menge für die Closed-Liste aus eine Baumsuchvariante ist möglich, aber selten: dieselben Nachteile wie BFS-Tree und im allgemeinen nicht einmal semi-vollständig (Warum nicht?) Anmerkung: identisch mit Dijkstras Algorithmus für kürzeste Pfade in gewichteten Graphen! M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 29 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 30 / 35 Uniforme Kostensuche: Verbesserungen Eigenschaften der uniformen Kostensuche (1) Mögliche Verbesserungen: wenn Aktionskosten kleine Ganzzahlen sind, sind Bucket-Heaps oft effizienter zusätzliche frühe Duplikatstests für erzeugten Knoten können Speicheraufwand reduzieren und Laufzeit verbessern oder verschlechtern Eigenschaften der uniformen Kostensuche: uniforme Kostensuche ist vollständig (Warum?) uniforme Kostensuche ist optimal (Warum?) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 31 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 32 / 35

Eigenschaften der uniformen Kostensuche (2) 8. Klassische Suche: Breitensuche und uniforme Kostensuche Zusammenfassung Eigenschaften der uniformen Kostensuche: Zeitaufwand hängt von Verteilung der Aktionskosten ab (keine einfachen und genauen Schranken). Sei ε := min a A cost(a) und gelte ε > 0. Seien c die optimalen Lösungskosten. Sei b der Verzweigungsgrad und gelte b 2. Dann beträgt der Zeitaufwand höchstens O(b c /ε +1 ). (Warum?) oft eine sehr schwache obere Schranke Speicheraufwand = Zeitaufwand 8.7 Zusammenfassung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 33 / 35 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 34 / 35 8. Klassische Suche: Breitensuche und uniforme Kostensuche Zusammenfassung Zusammenfassung blinde Suchverfahren: verwenden keine Informationen ausser Black-Box-Interface des Zustandsraums Breitensuche: expandiere Knoten in Erzeugungsreihenfolge durchsucht Zustandsraum ebenenweise als Baumsuche oder als Graphensuche möglich Aufwand O(b d ) bei Verzweigungsgrad b, minimale Lösungslänge d (falls b 2) vollständig als Graphensuche; semi-vollständig als Baumsuche optimal bei einheitlichen Aktionskosten uniforme Kostensuche: expandiere Knoten in Reihenfolge aufsteigender Pfadkosten üblicherweise als Graphensuche vollständig und optimal M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 17. März 2014 35 / 35