3. Problemlösen durch Suche



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

Intelligente Systeme

Wissensbasierte Systeme 3. Problemlösen durch Suche

Künstliche Intelligenz

Intelligente Systeme

Zustände und Knoten. Vorgänger Information: Tiefe = 4 ΣKosten=4 Expandiert: ja. Zustand Aktion: right. Aktion: down

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

Künstliche Intelligenz

1 topologisches Sortieren

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

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

Grundlagen der Künstlichen Intelligenz

Informierte Suchverfahren

Startzustand. Mögliche heuristische Funktionen:

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

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anmerkungen zur Übergangsprüfung

Kapiteltests zum Leitprogramm Binäre Suchbäume

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Wissensbasierte Systeme

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

WS 2009/10. Diskrete Strukturen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

15 Optimales Kodieren

Datenstrukturen & Algorithmen

13. Binäre Suchbäume

Wissensbasierte Systeme

Intelligente Systeme

Kapitel 3: Problemformulierungen in der KI. oder das Problem ist die halbe Lösung

Algorithmen & Datenstrukturen 1. Klausur

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Unterscheidung: Workflowsystem vs. Informationssystem

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Grundlagen der Theoretischen Informatik, SoSe 2008

Guten Morgen und Willkommen zur Saalübung!

Professionelle Seminare im Bereich MS-Office

Programmierkurs Java

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Theoretische Grundlagen der Informatik

Konzepte der Informatik

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Künstliches binäres Neuron

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Grundbegriffe der Informatik

Algorithmen und Datenstrukturen Suchbaum

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

DER SELBST-CHECK FÜR IHR PROJEKT

Algorithmen und Datenstrukturen

Kapitalerhöhung - Verbuchung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Algorithmen und Datenstrukturen 2

Die Post hat eine Umfrage gemacht

Was meinen die Leute eigentlich mit: Grexit?

Anleitung über den Umgang mit Schildern

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

Statuten in leichter Sprache

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Die Lernumgebung des Projekts Informationskompetenz

Internet Explorer Version 6

Programmiertechnik II

Zeichen bei Zahlen entschlüsseln

Summenbildung in Bauteiltabellen mit If Then Abfrage

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Whitebox-Tests: Allgemeines

9 Auto. Rund um das Auto. Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu.

1 Mathematische Grundlagen

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme

Algorithmen und Datenstrukturen

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

Software-Engineering SS03. Zustandsautomat

SharePoint Demonstration

Die Dateiablage Der Weg zur Dateiablage

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

Datensicherung. Beschreibung der Datensicherung

Einführung in. Logische Schaltungen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Software Engineering Klassendiagramme Assoziationen

Step by Step Webserver unter Windows Server von Christian Bartl

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

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

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Woraus besteht ein Bild? (c) Winfried Heinkele

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Tutorium Algorithmen & Datenstrukturen

Kleines Handbuch zur Fotogalerie der Pixel AG

Nicht über uns ohne uns

Wasserfall-Ansätze zur Bildsegmentierung

Primzahlen und RSA-Verschlüsselung

! " # $ " % & Nicki Wruck worldwidewruck

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Transkript:

3. Problemlösen durch Suche Problemlösende Agenten sind zielorientierte Agenten. Zielformulierung Fokussierung des möglichen Verhaltens unter Berücksichtigung der aktuellen Situation Problemformulierung Wie sehen Zustände aus? Welche Aktionen sind relevant? Problemlösung Inspektion möglicher Aktionsfolgen (Lösungen) und Selektion der besten Lösung, Ausführung der entsprechenden Aktionen Einf. in die KI 3 1

Problemlösende Agenten (2) Ein einfacher problemlösender Agent: function SIMPLE-PROBLEM-SOLVING-AGENT( p) returns an action inputs: p, a percept static: s, an action sequence, initially empty state, some description of the current world state g, a goal, initially null problem, a problem formulation state UPDATE-STATE(state, p) if s is empty then g FORMULATE-GOAL(state) problem FORMULATE-PROBLEM(state, g) s SEARCH( problem) action RECOMMENDATION(s, state) s REMAINDER(s, state) return action Einf. in die KI 3 2

Problemformulierung Beschreibung der Zustände Wichtig: nur die relevanten Aspekte Abstraktion Beschreibung der Aktionen, die Zustände ineinander überführen Formulierung des Ziels bestimmte Eigenschaften von Zuständen Bestimmung des Problemtyps, der abhängig ist vom Wissen über Weltzustände und Aktionen Zustände im Suchraum Bestimmung der Suchkosten und der Ausführungskosten (Pfadkosten) Die Problemformulierung ist für die Problemlösung entscheidend. Einf. in die KI 3 3

Beispiel für eine Problemformulierung Gegeben ein n n Brett, bei dem an den beiden diagonal gegenüberliegenden Ecken je ein Feld entfernt wurde (hier 8 8). Ziel: Das Brett mit Dominosteinen, die jeweils zwei benachbarte Felder überdecken, so belegen, dass alle Felder abgedeckt werden. Ziel, Zustandsraum, Aktionen, Vorgehen bei der Suche Einf. in die KI 3 4

Einf. in die KI 3 5

Alternative Problemformulierung Frage: Kann man ein Brett, auf dem es n 2 /2 schwarze und n 2 /2 2 weiße Felder gibt, mit Dominosteinen, die jeweils ein weißes und ein schwarzes Feld überdecken, so belegen, daß alle Felder abgedeckt sind? Einf. in die KI 3 6

Problemformulierung für die Staubsaugerwelt 1 2 3 4 5 6 7 8 Einf. in die KI 3 7

Problemformulierung für die Staubsaugerwelt (2) Zustandsraum: Der Staubsauger befindet sich in einem der beiden Räume. Jeder Raum kann schmutzig sein oder nicht. 8 Weltzustände Aktionen: links (L), rechts(r), saugen(s) Ziel: kein Schmutz in den Räumen Pfadkosten: pro Aktion 1 Einheit Einf. in die KI 3 8

Problemtypen Einzustandsproblem vollständiges Zustandswissen, vollständiges Aktionswissen der Agent weiß immer, in welchem Zustand er sich befindet Mehrzustandsproblem unvollständiges Zustandswissen, vollständiges Aktionswissen oder vollständiges Zustandswissen, unvollständiges Aktionswissen der Agent weiß, in welcher Klasse von Zuständen er sich befindet Kontingenzproblem es ist unmöglich, eine Sequenz von Aktionen zur Lösung des Problems zu finden ohne zur Ausführungszeit Informationen über Zwischenzustände einzuholen Explorationsproblem Zustandsraum und Effekte der Aktionen sind nicht bekannt Einf. in die KI 3 9

Die Staubsaugerwelt als Einzustandsproblem Falls die Umgebung zugänglich ist, weiß der Staubsauger immer, wo er ist und wo es schmutzig ist. Problemlösen bedeutet dann, einen Pfad vom Anfangszustand zu einem Zielzustand zu finden. Einf. in die KI 3 10

L R L R S S L R R L R R L L S S S S L R L R S S Zustände: Die Welt -Zustände 1 8 Einf. in die KI 3 11

Die Staubsaugerwelt als Mehrzustandsproblem Falls die Umgebung unzugänglich aber deterministisch ist, weiß der Staubsauger zwar nicht, in welchem Zustand er sich befindet; trotzdem kann er das Problem lösen. Zustände: Teilmenge der Potenzmenge der Welt -Zustände 1 8 Einf. in die KI 3 12

L R L R S S L R S R L S S R L L R S R S L Einf. in die KI 3 13

Probleme und Lösungen (1) datatype PROBLEM components: initial-state, operators, goal-test, path-cost-function Zustände: Beschreibung durch entsprechende Merkmale Anfangszustände Operatoren Beschreibung von Zustandsübergängen (z.b. durch zweistellige Relationen auf der Zustandsmenge; im Idealfall: Funktionen) Aufbau des Zustandsraums Zieltest Beschreibung des Zielkriteriums in Form relevanter Merkmale Einf. in die KI 3 14

Pfad Probleme und Lösungen (2) Sequenz von Operatoren, die von einem Zustand zu einem anderen führen Pfadkosten Kostenfunktion über Pfade, i.d.r. Summe der Kosten der einzelnen Operatoren des Pfades (Qualitätsmaß für Lösungen) Lösung Pfad von einem Anfangs- zu einem Zielzustand Suchkosten Zeit- und Speicherbedarf, der nötig ist, um eine Lösung zu finden Gesamtkosten = Suchkosten + Pfadkosten Abwägung (trade-off ) Qualität vs. Aufwand Einf. in die KI 3 15

Beispiel: 8er-Puzzle 5 4 51 42 3 6 1 8 68 84 7 3 2 7 6 25 Start State Goal State Einf. in die KI 3 16

Beispiel: 8er-Puzzle (2) Zustände: Beschreibung der Lage der 8 Zahlenkästchen und des Leerkästchens Operatoren: Verschieben des Leerkästchens nach links, rechts, oben, unten Zieltest: Entspricht der aktuelle Zustand dem rechten Bild? Pfadkosten: Jeder Schritt kostet eine Einheit Einf. in die KI 3 17

Beispiel: 8-Damen-Problem Zieltest: 8 Damen auf dem Brett, keine angreifbar Pfadkosten: 0 (nur die Lösung interessiert) Einf. in die KI 3 18

Beispiel: 8-Damen-Problem (2) Darstellung 1 Zustände: beliebige Anordnung von 0 8 Damen Operatoren: setze eine der Damen aufs Brett 64 8 Pfade zu untersuchen Darstellung 2 Zustände: Anordnung von 0 8 Damen in unangreifbarer Position Operatoren: setze eine der Damen soweit wie möglich links unangreifbar aufs Brett sehr viel weniger Pfade (2057), aber u.u. keine Aktion möglich Darstellung 3 Zustände: 8 Damen auf dem Brett, eine in jeder Spalte Operatoren: verschiebe eine angegriffene Dame in derselben Spalte (auf eine unangreifbare Position) Einf. in die KI 3 19

Beispiel: Missionare und Kannibalen Informelle Problembeschreibung: An einem Fluss haben sich 3 Kannibalen und 3 Missionare getroffen, die alle den Fluss überqueren wollen. Es steht ein Boot zur Verfügung, das maximal zwei Leute aufnehmen kann. Es darf nie die Situation eintreten, dass an einem Ufer mehr Kannibalen als Missionare weilen. Finde eine Aktionsfolge, die alle ans andere Ufer bringt. Dieses Beispiel wurde in der ersten Veröffentlichung über Problemformulierungen verwendet [Amarel 68]. Einf. in die KI 3 20

Beispiele für reale Probleme Routenplanung Systemunterstützte Reiseplanung, Flugroutenplanung Travelling Salesman Problem Rundreise, bei der jede Stadt genau einmal besucht werden muss VLSI Design Problem der möglichst effizienten Anordnung von Komponenten auf einem Chip Roboter Navigation Schwierigkeit nimmt mit der Anzahl der Freiheitsgrade extrem zu Typische Probleme: z.b. Fehler bei Wahrnehmungen, unbekannte Umgebungen Montageplanung Planung des Zusammenbaus von komplexen Werkstücken Einf. in die KI 3 21

Suche Schrittweise Entwicklung partieller Lösungen (Operatorfolgen): Ausgehend vom Anfangszustand werden Zustände so lange expandiert (d.h. es werden mögliche Folgezustände erzeugt), bis ein Zielzustand erreicht ist. Aufbau eines Suchbaumes function GENERAL-SEARCH( problem, strategy) returns a solution, or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add the resulting nodes to the search tree end Einf. in die KI 3 22

Suchbäume Suchbäume repräsentieren Ausschnitte aus dem Zustandsraum. Suchknoten Wurzel des Suchbaumes (repräsentiert den Startzustand) Blätter Zustände, die (noch) keine Nachfolger haben Kanten repräsentieren Operatoren Vorsicht: Zustände sollten möglichst nicht mehrmals in Knoten des Suchbaumes vorkommen. Einf. in die KI 3 23

Datenstrukturen datatype NODE components: state, parent-node, operator, depth, path-cost Zustand der entsprechende Zustand aus dem Zustandsraum Elternknoten Vorgänger -Knoten Operator der Operator, durch den der Knoten erzeugt wurde Tiefe Anzahl der Knoten auf dem Pfad von der Wurzel zum Knoten Pfadkosten Pfadkosten bis zum Knoten Einf. in die KI 3 24

Algorithmus Die Suchstrategie bestimmt, welcher Knoten als nächster expandiert wird. Die Menge der Knoten, die noch expandiert werden können, ist als Schlange (queue) organisiert. Operationen: make-queue(elem) empty?(queue) remove-front(queue) queuing-fn(elem,queue) Erzeugen einer Schlange Leerabfrage Abtrennen und Zurückgeben des ersten Elementes Einfügen neuer Elemente Suchstrategie Einf. in die KI 3 25

der uninformierten oder blinden Suche: Suchstrategien keine Information über die Anzahl der Schritte oder die Pfadkosten vom aktuellen Knoten bis zu einem Zielknoten Breitensuche uniforme Kostensuche Tiefensuche tiefenbeschränkte Suche iterative Tiefenssuche bidirektionale Suche im Unterschied dazu: informierte oder heuristische Suche. Einf. in die KI 3 26

Kriterien Vollständigkeit: Wird immer eine Lösung gefunden, sofern es eine gibt? Zeitkomplexität: Wie lange dauert es, bis eine Lösung gefunden ist? Platzkomplexität: Wieviel Speicherplatz benötigt die Suche? Optimalität: Findet das Verfahren immer die beste Lösung? Einf. in die KI 3 27

Breitensuche (1) Expansion der Wurzel Expansion aller Nachfolger der Wurzel Expansion aller Knoten der Tiefe d vor denen der Tiefe d + 1 function BREADTH-FIRST-SEARCH (problem) returns a solution or failure return GENERAL-SEARCH(problem,ENQUEUE-AT-END) Einf. in die KI 3 28

Breitensuche (2) Breitensuche ist eine systematische Suchstrategie. Eigenschaften: Vollständigkeit Breitensuche findet immer eine Lösung, falls eine existiert. Optimalität Breitensuche findet immer die naheliegendste Lösung. Die gefundene Lösung ist immer die beste, vorausgesetzt die Pfadkosten sind eine nicht fallende Funktion der Knotentiefe (z.b. alle Operatoren sind gleich teuer). Einf. in die KI 3 29

Breitensuche (3) Aufwand b der maximale Vezweigungsfaktor (branching factor), d.h. eine Expansion erzeugt maximal b Folgeknoten. d Tiefe des Lösungspfades. Maximale Anzahl zu expandierender Knoten: exponentieller Aufwand: O(b d ). 1 + b + b 2 + b 3 +... + b d Einf. in die KI 3 30

Breitensuche (4) Beispiel Angenommen: b = 10 1000 Knoten / sec können expandiert und getestet werden jeder Knoten benötigt 100 Bytes Depth Nodes Time Memory 0 1 1 millisecond 100 bytes 2 111.1 seconds 11 kilobytes 4 11,111 11 seconds 1 megabyte 6 10 6 18 minutes 111 megabytes 8 10 8 31 hours 11 gigabytes 10 10 10 128 days 1 terabyte 12 10 12 35 years 111 terabytes 14 10 14 3500 years 11,111 terabytes Einf. in die KI 3 31

Beispiel: Routenplanung (1) Oradea Neamt Zerind Arad Iasi Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Lugoj Pitesti Mehadia Urziceni Hirsova Dobreta Craiova Bucharest Giurgiu Eforie Einf. in die KI 3 32

function GENERAL-SEARCH( problem, QUEUING-FN) returns a solution, or failure nodes MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do if nodes is empty then return failure node REMOVE-FRONT(nodes) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes QUEUING-FN(nodes, EXPAND(node, OPERATORS[problem])) end function BREADTH-FIRST-SEARCH (problem) returns a solution or failure return GENERAL-SEARCH(problem,ENQUEUE-AT-END) Einf. in die KI 3 33

Beispiel: Routenplanung (2) (a) The initial state Arad (b) After expanding Arad Arad Sibiu Timisoara Zerind (c) After expanding Sibiu Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Einf. in die KI 3 34

Breitensuche (5) Breitensuche verwendet keine Zusatzinformation über die Nähe eines Knotens zu einem Zielknoten. Einf. in die KI 3 35

Uniforme Kostensuche (1) Die naheliegendste Lösung ist nicht immer die beste. Uniforme Kostensuche ist eine Modifikation der Breitensuche, die immer den Knoten n mit den geringsten Pfadkosten g(n) expandiert. Einf. in die KI 3 36

S 0 S A B C 1 5 15 S S A 1 10 5 B 5 G A B C 5 15 G 11 S 15 5 C (a) (b) A B C G G 11 10 15 Breitensuche entspricht der uniformen Kostensuche für den Fall g(n) = DEPTH(n) Einf. in die KI 3 37

Uniforme Kostensuche (2) Uniforme Kostensuche findet immer die günstigste Lösung, falls g(nachfolger(n)) g(n) für alle n Gibt es Operatoren mit negativen Kosten, liefert nur eine erschöpfende Suche die optimale Lösung. Einf. in die KI 3 38

Beispiel: Routenplanung (3) Arad 118 75 Oradea 71 Neamt Zerind 151 140 Sibiu 99 Fagaras 80 Timisoara Rimnicu Vilcea 111 Lugoj 70 Mehadia 75 Dobreta 120 Craiova Pitesti 211 97 146 101 85 138 Bucharest 90 Giurgiu 87 Iasi 92 142 98 Urziceni Vaslui Hirsova 86 Eforie Straight line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 Pfadkosten? Einf. in die KI 3 39

Tiefensuche (1) Expansion der Wurzel Expansion eines Nachfolgers der Wurzel Expansion von Knoten maximaler Tiefe Einf. in die KI 3 40

Tiefensuche (2) function DEPTH-FIRST-SEARCH (problem) return returns a solution or failure GENERAL-SEARCH(problem,ENQUEUE-AT-FRONT) Eigenschaften: Vollständigkeit Tiefensuche ist nicht vollständig. Optimalität Tiefensuche findet i.a. nicht die beste Lösung. Aufwand Speicherplatz wird nur für einen Pfad benötigt (und die nicht expandierten Knoten). bei Verzweigungsfaktor b und maximaler Tiefe m ist der Speicheraufwand O(b m), der Zeitaufwand O(b m ) Einf. in die KI 3 41

Tiefensuche (3) Für Probleme mit vielen Lösungen ist Tiefensuche i.d.r. besser geeignet als Breitensuche. Tiefensuche ist ungeeignet, wenn die maximale Tiefe sehr groß werden kann. Einf. in die KI 3 42

Tiefenbeschränkte Suche (1) Die maximale Pfadlänge wird fest vorgegeben. Für die Routenplanung mit n Städten reicht eine maximale Tiefe von n 1 aus, um eine Lösung zu finden. Einf. in die KI 3 43

Oradea Neamt Zerind Arad Iasi Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Lugoj Pitesti Mehadia Urziceni Hirsova Dobreta Craiova Bucharest Giurgiu Eforie Einf. in die KI 3 44

Tiefenbeschränkte Suche (2) Im Beispiel: erreichen. Jede Stadt ist von jeder anderen aus in höchstens 9 Schritten zu Bestimme den Durchmesser des Problems. Eigenschaften: Tiefenbeschränkte Suche ist vollständig, aber nicht optimal. Zeit- und Speicheraufwand entsprechen den Aufwänden bei der Tiefensuche. Achtung: vollständig. Bei zu klein gewählter Maximaltiefe ist das Verfahren nicht mehr Einf. in die KI 3 45

Iterative Tiefensuche (1) Iterative Tiefensuche (Iterative Deepening) umgeht das Problem, die richtige Tiefenbeschränkung zu finden dadurch, daß alle möglichen Schranken nacheinander ausprobiert werden. Einf. in die KI 3 46

Limit = 0 Limit = 1 Limit = 2 Limit = 3... Einf. in die KI 3 47

function ITERATIVE-DEEPENING-SEARCH( problem) returns a solution sequence inputs: problem, a problem for depth 0 to do if DEPTH-LIMITED-SEARCH( problem, depth) succeeds then return its result end return failure Einf. in die KI 3 48

Iterative Tiefensuche (2) Iterative Tiefensuche kombiniert Tiefen- und Breitensuche. Das Verfahren ist optimal und vollständig. Frage: Wird durch die zusätzlichen Expansionen der Aufwand erheblich erhöht? Iterative Tiefensuche: (d + 1)1 + (d)b + (d 1)b 2 +... + 3b d 2 + 2b d 1 + 1b d Breitensuche: 1 + b + b 2 + b 3 +... + b d 1 + b d kein großer Unterschied! Einf. in die KI 3 49

Beispiel: b = 10, d = 5 Breitensuche: 1 + 10 + 100 + 1000 + 10000 + 100000 = 111111 Iterative Tiefensuche: 6 + 50 + 400 + 3000 + 20000 + 100000 = 123456 Einf. in die KI 3 50

Iterative Tiefensuche (3) Für b = 10 expandiert Iterative Tiefensuche nur 11% mehr Knoten als Breitensuche. Der Speicheraufwand ist jedoch erheblich niedriger. Zeitaufwand: O(b d ) Speicheraufwand: O(b d) Iterative Tiefensuche ist besonders geeignet bei großen Suchräumen und unbekannter maximaler Suchtiefe. Einf. in die KI 3 51

Bidirektionale Suche Start Goal Einf. in die KI 3 52

Bidirektionale Suche (2) Es werden zwei Suchbäume gleichzeitig entwickelt. Eine Lösung ist gefunden, wenn beide Bäume ein Blatt gemeinsam haben. Vielversprechend: Ist der Verzweigungsfaktor für beide Richtungen gleich, reduziert sich der Aufwand erheblich: Für eine Lösung der Tiefe d ist der Aufwand O(2 b d/2 ) = O(b d/2 ). Beispiel: Für b = 10 und d = 6 erzeugt Breitensuche 1.111.111 Knoten, Bidirektionale Suche dagegen nur 2.222. Hier werden beide Bäume nur bis zur Tiefe 3 entwickelt. Einf. in die KI 3 53

Bidirektionale Suche (3) Rückwärts suchen heißt, Vorgänger von Knoten erzeugen. Sind die Operatoren umkehrbar? Häufig gibt es sehr viele Zielzustände, die nur unvollständig beschrieben sind. Symmetrie? Gibt es effiziente Verfahren zum Testen, ob sich ein erzeugter Knoten bereits im anderen Suchbaum befindet? Welche Suchverfahren sollen jeweils gewählt werden? Um festzustellen, ob eine Lösung gefunden wurde, müssen die Knoten eines Baumes gespeichert werden. Speicheraufwand: O(b d/2 ) Einf. in die KI 3 54

Vergleich der Suchstrategien Kriterien: Vollständigkeit Zeitkomplexität Platzkomplexität Optimalität Einf. in die KI 3 55

Vergleich der Suchstrategien (2) Criterion Breadth- Uniform- Depth- Depth- Iterative Bidirectional First Cost First Limited Deepening (if applicable) Time b d b d b m b l b d b d/2 Space b d b d bm bl bd b d/2 Optimal? Yes Yes No No Yes Yes Complete? Yes Yes No Yes, if l d Yes Yes b: Verzweigungsfaktor d: Tiefe m: maximale Tiefe l: Tiefenbeschränkung Einf. in die KI 3 56

Wiederholungen (1) Bei manchen Suchproblemen sind mehrfache Vorkommen desselben Knotens im Suchbaum nicht möglich. Jeder Zustand kann nur auf genau eine Weise erreicht werden (z.b. 8-Damen-Problem). Häufig sind jedoch Wiederholungen kaum zu vermeiden, z.b. dann, wenn Operatoren reversibel sind (z.b. bei Routenplanung). Suchbäume mit unendlicher Tiefe A A B B B C C C C C D Einf. in die KI 3 57

Wiederholungen (2) Selbst bei endlichen Suchbäumen kann das Erkennen von Wiederholungen die Suchkosten erheblich reduzieren. Beispiel: (vgl. Abb.) Bei m + 1 Zuständen, wobei m die maximale Tiefe ist, enthält der Baum alle möglichen Pfade durch den Suchraum, d.h. 2 m Verzweigungen. Vermeidung von Wiederholungen Erzeuge keinen Knoten, der dem Elternknoten entspricht. Vermeide Pfade mit Zyklen. Erzeuge nur neue Knoten Speichern aller Knoten O(s) (s = # Zustände im Zustandsraum) Verwendung von Hashtabellen schneller Zugriff Einf. in die KI 3 58

Zusammenfassung Adäquate Ziel- und Problemformulierung sind für das Problemlösen entscheidend. Ein Problem hat fünf Komponenten: Zustandsraum, Anfangszustand, Operatoren, Zieltest, Pfadkosten. Ein Pfad vom Anfangszustand zu einem Zielzustand ist eine Lösung. Für reale Anwendungsszenarien ist diese zustandsbasierte Modellierung sehr häufig adäquat. Es existiert ein allgemeiner Suchalgorithmus. Die vorgestellten Suchverfahren sind Varianten dieses Algorithmus. Differenzierung durch unterschiedliche Such-Strategien. Suchverfahren werden nach den Kriterien Vollständigkeit, Optimalität, Zeit- und Platzkomplexität beurteilt. Einf. in die KI 3 59