Intelligente Systeme. Suche

Ähnliche Dokumente
Künstliche Intelligenz

Intelligente Systeme

Einführung in Heuristische Suche

Künstliche Intelligenz

Uninformierte Suche in Java Informierte Suchverfahren

Künstliche Intelligenz

Wissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften

Informierte Suchverfahren

Übersicht. Künstliche Intelligenz: 3. Problemlösen durch Suche Frank Puppe 1

Startzustand. Mögliche heuristische Funktionen:

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

Beispiele. mit. Beispiel 2.3. Suche einen Weg von nach. Tiefensuche bzw. Breitensuche.

Zustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche

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

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

Uninformierte Suche in Java Informierte Suchverfahren

Grundlagen der Künstlichen Intelligenz

Übersicht. Informierte (heuristische) Suche. Algorithmus Bester-Zuerst-Suche. Bester-Zuerst-Suche

9. Heuristische Suche

3. Problemlösen durch Suche

Einführung in Suchverfahren

Übungsblatt 2 Lösungen

Kapitel 5: Suchverfahren: Backtracking

Einführung in die Methoden der Künstlichen Intelligenz

9.1 Tiefensuche. Grundlagen der Künstlichen Intelligenz. 9.1 Tiefensuche. 9.2 Iterative Tiefensuche. 9.3 Blinde Suche: Zusammenfassung

WS 2009/10. Diskrete Strukturen

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Algorithmen und Datenstrukturen 2-1. Seminar -

EDM, Algorithmen und Graphenspeicherung

Algorithmen und Datenstrukturen

13.1 Einführung Einführung. Grundlagen der Künstlichen Intelligenz Gierige Bestensuche 13.3 A Weighted A. 13.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Wissensbasierte Suche

Lösungshinweise zu Blatt 8 und Blatt 9 GIN2-SS04

10. Übungsblatt zu Algorithmen I im SS 2010

Algorithmen & Komplexität

ADS Vorlesung, SS06 Prof. Dr. Wolfram Conen Mai 2006

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

Grundlagen der Informatik

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

Gliederung. Tiefensuche. Kurz notiert. Zur Motivation: Breitensuche. Seminar Systementwurf Ralf Cremerius

Wissensbasierte Systeme 3. Problemlösen durch Suche

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Vorlesung 4 BETWEENNESS CENTRALITY

Algorithmen und Datenstrukturen

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Einführung in die Methoden der Künstlichen Intelligenz

Algorithmen und Datenstrukturen

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

NP-vollständige Probleme

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Heuristische Suchverfahren

Graphenalgorithmen I

Algorithmen und Datenstrukturen 1-5. Seminar -

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Übungsblatt 2 Lösungen

Informatik II Prüfungsvorbereitungskurs

Graphdurchmusterung, Breiten- und Tiefensuche

15. Elementare Graphalgorithmen

9 Minimum Spanning Trees

Lernmodul 7 Algorithmus von Dijkstra

Informatik II Prüfungsvorbereitungskurs

3.2 Generischer minimaler Spannbaum-Algorithmus

Algorithmen & Komplexität

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Fortgeschrittene Netzwerk- und Graph-Algorithmen

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

9. Übung Algorithmen I

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen

Sokoban. Knowledge Engineering und Lernen in Spielen. Mark Sollweck Fachbereich 20 Seminar Knowledge Engineering Mark Sollweck 1

Theoretische Informatik 1

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

Transkript:

Intelligente Systeme Suche Michael Schroeder www.biotec.tu-dredsen.de/schroeder

Lehrbuch Folien basieren auf Russell und Norvig: Künstliche Intelligenz: Ein Moderner Ansatz. Dank an Prof. Fürnkranz für die Folienvorlagen By Michael Schroeder, Biotec 2

Graphen und Netzwerke Facebook: Bekanntschaften Dbpedia: Wissensnetz (Subjekt-Prädikat-Objekt Tripel) Google: Wissensnetz (aus Webseiten) GoPubMed: Hierarchie von Konzepten IBM deep blue: Schachspiel als Baum Navigationssysteme: Straßennetz NASA Deep Space One: Netzwerk aus Komponenten Software Engineering: Zustandsdiagramme Automatentheorie: Transitionssysteme Bioinformatik: Proteininteraktionsnetze Ökologie: Räuber-Beute Netze Elektrotechnik: Schaltkreise By Michael Schroeder, Biotec 3

Graph G=(V,E) Graph: Ist V eine Menge von Knoten (Vertices, Einzahl Vertex) und E VxV eine Menge von Kanten (Edges), dann ist G=(V,E) ein Graph Baum (Graph ohne Kreise) Gerichteter Graph Gewichteter Graph By Michael Schroeder, Biotec 4

Zustandsraum Zustand, Startzustand, Endzustand Aktionen, Zustandsübergang By Michael Schroeder, Biotec 5

Problemmodellierung Navigation Roboter Schiebepuzzle Damenproblem Entitätenerkennung (HMM) Relationsextraktion (Multiples Sequenzalignment) By Michael Schroeder, Biotec 6

Problemmodellierung: Navigation Startzustand: Arad Zielzustand: Bukarest Aktionen: Fahrt in nächste Stadt Lösung: Folge von Städten Kosten = Distanz, Zahl der Städte, Zeit,... By Michael Schroeder, Biotec 7

Problemmodellierung: Roboter Startzustand: Links und rechts Staub Zielzustand: Links und rechts kein Staub Aktionen: Links, Rechts, Sauge Lösung: Folge von Aktionen Kosten = Distanz, Zahl der Aktionen, Dauer,... By Michael Schroeder, Biotec 8

Problemmodellierung: Schiebepuzzle Startzustand: s.u. links Zielzustand: s.u. rechts Aktionen: verschiebe Zahl Lösung: Folge von Verschiebungen Kosten = Zahl der Verschiebungen,... By Michael Schroeder, Biotec 9

Problemmodellierung: Damenproblem Startzustand: s.u. links Zielzustand: Damen können sich nicht schlagen Aktionen: Bewege Dame By Michael Schroeder, Biotec 10

Problemmodellierung: Entitätenerkennung (HMM) Startzustand: S Zielzustand: E Zustände: Wort ist Person (P), Ort (L), Anderes (O) Kosten = Wahrscheinlichkeit für Wortfolge gegeben Zustandsfolge By Michael Schroeder, Biotec 11

Problemmodellierung: Relationsextraktion (Multiples Sequenzalignment) Problem: Alignment von Zeichenketten peter, petra, pitr Startzustand: Alignment von drei leeren Zeichenketten Zielzustand: Alignment der drei Zeichenketten Aktion: Konsumieren von Zeichen in den Zeichenketten Kosten = Größte Übereinstimmung der Zeichenketten peterpet-ra pit-r- By Michael Schroeder, Biotec 12

Suchverfahren Einfache Suche Breitensuche Tiefensuche Tiefenbegrenzte Suche Iteratives Vertiefen Bestensuche Gierige (greedy) Suche A* By Michael Schroeder, Biotec 13

Suchverfahren Expandiere Knoten im Suchbaum bis Ziel gefunden Strategie: In welcher Reihenfolge? By Michael Schroeder, Biotec 14

Suchbaum By Michael Schroeder, Biotec 15

Suchbaum By Michael Schroeder, Biotec 16

Suchbaum Tiefe Blätter By Michael Schroeder, Biotec 17

Baumsuche Blätter = [Startknoten] While Blätter nicht leer: Nächster = pop(blätter) If Nächster = Zielknoten then return Nächster For all Folgeknoten von Nächster Füge Folgeknoten der Liste Blätter hinzu Return failure pop gibt erstes Element aus Liste zurück und entfernt dieses aus Liste Pfad? Pfadkosten? Tiefe? By Michael Schroeder, Biotec 18

Suchstrategie Welche Reihenfolge bei Expansion? Bewertung: Vollständigkeit: Wird Lösung gefunden? Zeitkomplexität: Zahl expandierter Knoten Speicherkomplexität: Max. Zahl von Knoten im Speicher Optimalität: Lösung mit bester Bewertung? b: maximaler Verzeigungsgrad (branching factor) d: Tiefe der besten Lösung (depth) m: Maximale Tiefe des Zustandsraumes (kann unendlich sein) By Michael Schroeder, Biotec 19

Breitensuche Blätter = Schlange FIFO (first in, first out) By Michael Schroeder, Biotec 20

Breitensuche Blätter = Schlange FIFO (first in, first out) By Michael Schroeder, Biotec 21

Breitensuche Blätter = Schlange FIFO (first in, first out) By Michael Schroeder, Biotec 22

Breitensuche Blätter = Schlange FIFO (first in, first out) By Michael Schroeder, Biotec 23

Breitensuche Vollständig (wenn b endlich) Zeitaufwand: Jede Ebene hat b mal mehr Knoten als vorherige Jeder Knoten wird expandiert Ziel in Ebene d bedeutet: Speicheraufwand: 1+b+b 2 +b 3 +...+b d ( + b d+1 ) b ( ) = O bd+1 ( ) Jeder Knoten bleibt im Speicher O(b d+1 ) Optimal By Michael Schroeder, Biotec 24

Breitensuche b = 10, 10,000 nodes/sec, 1000 bytes/node Tiefe Knoten Zeit Speicher 2 1100.11 secs 1 MB 4 111 100 11 secs 106 MB 6 10 7 19 mins 10 GB 8 10 9 31 hours 1 TB 10 10 11 129 days 101 TB 12 10 13 35 years 10 PetaBytes 14 10 15 3523 years 1 ExaByte By Michael Schroeder, Biotec 25

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 26

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 27

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 28

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 29

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 30

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 31

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 32

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 33

Tiefensuche Blätter = Schlange LIFO (last in, first out) By Michael Schroeder, Biotec 34

Tiefensuche Blätter = Schlange LIFO (last in, first out) By Michael Schroeder, Biotec 35

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 36

Tiefensuche Blätter = Stapel LIFO (last in, first out) By Michael Schroeder, Biotec 37

Tiefensuche Nicht Vollständig, wenn unendliche Tiefe oder Schleifen Vollständig, wenn endlich und Scheifenprüfung Zeitaufwand: Jeder Zweig, also max. Tiefe m: Schlecht, wenn m>>d O( b m ) Speicheraufwand: Linear in Pfadlänge: O(m b) Nicht optimal By Michael Schroeder, Biotec 38

Tiefenbeschränkte Suche Knoten mit Tiefe >t werden nicht expandiert Unvollständig, wenn d>t Nicht optimal Zeitaufwand O(b t ) Speicheraufwand O(b t) Wie kann Vollständigkeit erreicht werden? Erhöhe t sukzeszive By Michael Schroeder, Biotec 39

Iteratives Vertiefen

Iteratives Vertiefen

Iteratives Vertiefen Vollständig (wenn es keine unendlichen Pfade gibt) Zeitaufwand (d +1) 1+ d b+ ( d 1)b 2 +...+2 b d 1 +1 b d = ( d i+1) b i = O(b d ) d i=0 Speicheraufwand O(b d) Optimal By Michael Schroeder, Biotec 42

Zusammenfassung BS TS TBS IV Vollständig Ja Nein Ja, für t d Ja Zeit b d+1 b m b t b d Speicher b d+1 bm bt bd Optimal Ja Nein Nein Ja b Verzeigungsfaktor, d Tiefe der Lösung, m Tiefe des Baumes, t Tiefenbeschränkung By Michael Schroeder, Biotec 43

Baum vs. Graph By Michael Schroeder, Biotec 44

Graphsuche Blätter = [Startknoten] For all Knoten visited(knoten) = false While Blätter nicht leer: Nächster = pop(blätter) If Nächster = Zielknoten then return Nächster visited(nächster)=true For all Folgeknoten von Nächster If not visited(folgeknoten) then Füge Folgeknoten der Liste Blätter hinzu Return failure pop gibt erstes Element aus Liste zurück und entfernt dieses aus Liste Pfad? Pfadkosten? Tiefe? Vorgänger? By Michael Schroeder, Biotec 45

Suchverfahren Einfache Suche Breitensuche Tiefensuche Tiefenbegrenzte Suche Iteratives Vertiefen Bestensuche Gierige (greedy) Suche A* By Michael Schroeder, Biotec 46

Motivation Von Dresden nach Brüssel? Dresden bietet Flüge nach Moskau, Frankfurt, Düsseldorf,... Breitensuche: Dresden-Moskau-Brüssel: 3876km Beste Lösung: Dresden-Frankfurt-Brüssel: 692km Moskau Brüssel Frankfurt Dresden Breitensuche nutzt keinerlei Bewertung Wie lassen sich Knoten, Pfade, Lösungen bewerten? Wie lassen sich diese Bewertungen optimieren? By Michael Schroeder, Biotec 47

Motivation Durchschnittliche Lösungstiefe für Schiebepuzzle ist 22 Breitensuche expandiert ca. 3x10 10 Knoten Breitensuche nutzt keinerlei Bewertung Wie lassen sich Knoten, Pfade, Lösungen bewerten? Wie lassen sich diese Bewertungen optimieren? By Michael Schroeder, Biotec 48

Bewertung Navigation: Distanzen Schiebepuzzle: Anzahl falschliegender Zahlen Summe Manhattandistanz jeder Zahl zur korrekten Position Dame: Anzahl Bedrohungen Multiples Sequenzalignment Anzahl Übereinstimmungen in Zeichenketten By Michael Schroeder, Biotec 49

Idee Sortiere zu expandierende Knoten gemäß Bewertung Nutze Heuristik. Eureka = Ich finde Heuristikfunktion h schätzt Kosten von Knoten zum Ziel By Michael Schroeder, Biotec 50

Navigationsheuristik Heuristik ist Luftliniendistanz zum Ziel Euklidische Distanz d ij = v u t nx k=1 (x ik x jk ) 2 By Michael Schroeder, Biotec 51

Navigationsheuristik Heuristik ist Luftliniendistanz zum Ziel Erde ist keine Scheibe? Distanz By Michael Schroeder, Biotec 52

Rumänien 176 By Michael Schroeder, Biotec 53

Gierige Suche Expandiere Knoten mit geringster Distanz zum Ziel zuerst By Michael Schroeder, Biotec 54

Gierige Suche By Michael Schroeder, Biotec 55

Gierige Suche

Gierige Suche By Michael Schroeder, Biotec 57

Gierige Suche By Michael Schroeder, Biotec 58

Gierige Suche Vollständigkeit: Schleifen! Von Iasi nach Fagaras Iasi-Neamt-Iasi-Neamt-... By Michael Schroeder, Biotec 59

Gierige Suche Vollständig, wenn auf Schleifen getestet wird Zeitaufwand: O(b m ) wie Tiefensuche Aber: Perfekte Heuristik = Lösung in d Schritten Speicheraufwand: Wie Zeit Optimalität: Nein! By Michael Schroeder, Biotec 60

Gierige Suche Gierige Suche findet lokales Optimum (A* findet globales Optimum) By Michael Schroeder, Biotec 61

Motivation Von Dresden nach Brüssel? Dresden bietet Flüge nach Moskau, Frankfurt, Düsseldorf,... Breitensuche: Dresden-Moskau-Brüssel: 3876km Gierige Suche: Dresden-Düsseldorf-Amsterdam-Brüssel: 824km Beste Lösung: Dresden-Frankfurt-Brüssel: 692km Amsterdam Brüssel Düsseldorf Frankfurt Dresden Gierige Suche bewertet bisherige Kosten nicht A* tut dieses... By Michael Schroeder, Biotec 62

A* Suche Evaluiere vollständige Pfadkosten Bisherige Kosten: g(n) Abschätzung der Kosten bis zum Ziel: h(n) Gesamtbewertung: f (n) = g(n)+h(n) By Michael Schroeder, Biotec 63

A*

A*

A*

A*

A* Pitesti wird expandiert, obwohl Bukarest bereits gefunden wurde

A*

A* Suche Vollständigkeit (es sei denn, es gibt unendlich viele Knoten mit f(n)<f(g)) Zeitaufwand Abhängig von Abweichung der Heuristik von den wahren Kosten Speicheraufwand: Alle Knoten bleiben im Speicher. Verbesserung? Optimalität?

Zulässige Heuristik Eine zulässige Heuristik unterschätzt Kosten, d.h. h(n) h*(n), wobei h* die echten Kosten sind h(zielknoten)=0 h(n) 0 Luftliniendistanz ist zulässig Schiebepuzzle Anzahl der falschpositionierten Zahlen zulässig? Manhattandistanz zulässig? K*=26, h Man =18, h fpz =8 By Michael Schroeder, Biotec 71

A* ist optimal Wenn die Heuristik h* zulässig ist, so ist A* Baumsuche optimal Beweis: Sei O eine optimale Lösung mit Kosten K* und N eine nichtoptimale Lösung mit Kosten K K* < K Für jeden Knoten n im Pfad O gilt: f(n) = g(n)+h(n) K* Somit gilt, f(n) K* < K Damit würde nicht optimale Lösung N erst gewählt, nachdem jeder Knoten n auf dem optimalen Pfad expandiert wird By Michael Schroeder, Biotec 72

A* Graphsuche Graphsuche prüft auf Schleifen, somit keine Wiederholungen Bisheriger Pfad möglicherweise schlechter als neuer Pfad Expandiere optimalen Pfad zu gleichen Knoten zuerst Sichergestellt, wenn Kosten monoton steigen = Konsistenz By Michael Schroeder, Biotec 73

Konsistenz Eine Heuristik ist konsistent, gdw. für jeden Knoten n und jeden Folgeknoten n gilt, daß h(n) c(n,n ) + h(n ), wobei c(n,n ) die Kosten für den Übergang von n nach n sind. (Dreiecksungleichung) By Michael Schroeder, Biotec 74

Jede konsistente Heuristik ist zulässig Für alle Knoten n, die zum Ziel G führen, gilt h(n) c(n,g) + h(g) (nach Def. Konsistenz) und c(n,g) + h(g) = h*(n) (Def h*) Mittels Induktion über die Pfadlänge zum Ziel ergibt sich h(n) h*(n) für alle n Nicht jede zulässige Heuristik ist konsistent (z.b. h = Luftlinie, doch für einige Knoten h(n)=0) By Michael Schroeder, Biotec 75

Konsistenz = Monoton steigende Bewertung Ist h konsistent, so sind die Werte f(n) monoton steigend entlang eines Pfades By Michael Schroeder, Biotec 76

A* ist optimal Ist h konsistent, so ist A* optimal Beweis: A* expandiert Knoten in Reihenfolge steigender Bewertungen f A* expandiert alle Knoten mit f(n)<k*, einige mit f(n)=k* und keine Knoten mit f(n)>k* K* = Optimum Höhenlinie f i = Knoten mit f(n)<f i By Michael Schroeder, Biotec 77

Animation der Höhenlinien Wikipedia.org

A* Suche Knoten bleiben im Speicher = Problem Schwellwert K: Überschätzung der wahren Kosten K* Knoten n mit f(n)>k können nicht Teil der optimalen Lösung sein und müssen daher nicht gespeichert werden Je kleiner K-K*, desto weniger Knoten werden besucht Wie lässt sich K bestimmen? Z.B. Nicht optimale Lösung aus gieriger Suche By Michael Schroeder, Biotec 79

Effektiver Verzweigungsfaktor N Knoten besucht, bis zur Lösung in Tiefe d Verteile N Knoten gleichmäßig über Baum der Tiefe d, d.h. suche b*, so daß 1+N = 1+b*+b* 2 +b* 3 +...+b* d Effektiver Verzweigungsfaktor b*=1 ist optimal By Michael Schroeder, Biotec 80

Vergleich A* und iteratives Vertiefen Schiebepuzzle Suchkosten Effektiver Verzweigungsfaktor d IV A* fpz A* Manh. IV A* fpz A* Manh. 2 10 6 6 2,45 1,79 1,79 6 680 20 18 2,73 1,34 1,30 10 47.127 93 39 2,79 1,38 1,22 12 3.644.035 227 73 2,78 1,42 1,24 14-539 113-1,44 1,23 20-7.276 676-1,47 1,27 24-39.139 1.641-1,48 1,26 d=tiefe der Lösung, IV= iteratives Vertiefen, fpz=falsch plazierte Zahlen, Manh.=Manhattandistanz

Zusammenfassung Heuristiken verbessern Suche Gierige Suche = lokales Optimum, nicht vollständig A* = optimal und vollständig Bewertung = Bisherige Kosten + Unterschätzung zum Ziel Schwellwert K = Überschätzung der Kosten erlaubt Knoten zu entfernen, die nicht Teil des Optimums sein können By Michael Schroeder, Biotec 82

Von Dresden nach Brüssel? Dresden bietet Flüge nach Moskau, Frankfurt, Düsseldorf,... Breitensuche: Dresden-Moskau-Brüssel: 3876km Gierige Suche: Dresden-Düsseldorf-Amsterdam-Brüssel: 824km A*: Dresden-Frankfurt-Brüssel: 692km Brüssel Frankfurt Dresden By Michael Schroeder, Biotec 83

Von Dresden nach Innsbruck? Breitensuche: Dresden-Frankfurt-Innsbruck: 759km Gierige Suche: Dresden Frankfurt München Venedig Zürich Salzburg Linz München Frankfurt Innsbruck: Zürich 2288km A*: Dresden-Frankfurt-Innsbruck: 759km Dresden Innsbruck Venedig Linz Salzburg By Michael Schroeder, Biotec 84