Grundlagen der Künstlichen Intelligenz 11. März 2013 — 4. Suchalgorithmen: Grundlagen & blinde Verfahren Grundlagen der Künstlichen Intelligenz 4.1 Grundlagen 4. Suchalgorithmen: Grundlagen & blinde Verfahren Malte Helmert 4.2 Blinde Suchverfahren Universität Basel 4.3 Zusammenfassung 11. März 2013 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 1 / 36 Grundlagen M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 2 / 36 Grundlagen Suchalgorithmen General Search Beginne beim Anfangszustand und expandiere in jedem Schritt einen Zustand durch Erzeugen seiner Nachfolger From the initial state, produce all successive states step Suchbaum bzw. Suchraum by step search tree. 4.1 Grundlagen (a) initial state (3,3,1) (b) after expansion of (3,3,1) (3,3,1) (2,3,0) (3,2,0) (2,2,0) (1,3,0) (3,1,0) (3,3,1) (c) after expansion of (3,2,0) (2,3,0) (3,2,0) (2,2,0) (1,3,0) (3,1,0) (3,3,1) 03/23 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 3 / 36 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Grundlagen Begriffe I I Grundlagen Baumsuche vs. Graphensuche Suchknoten repräsentiert in der Suche erreichten Zustand und zugehörige Informationen Baumsuche: Knotenexpansion Erzeugen der Nachfolgerknoten eines Knotens durch Anwendung aller dort anwendbaren Aktionen I Open-Liste oder Frontier Menge der Knoten, die Kandidaten für die Expansion sind I Closed-Liste Menge der bereits expandierten Knoten I 4. Suchalgorithmen: Grundlagen & blinde Verfahren I Suchknoten als Baum organisiert (Suchbaum) I jeder Knoten entspricht einem Pfad vom Anfangszustand I Duplikate (mehrere Knoten für denselben Zustand) möglich Suchbaum kann endlos tief verzweigen ( im Kreis laufen“) ” Graphensuche: I I Suchknoten als gerichteter Graph organisiert (Suchraum) I Duplikate vermeiden: zu jedem Zustand max. ein Knoten Suchstrategie bestimmt, welcher Knoten als nächstes expandiert wird M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 5 / 36 Grundlagen Implementierung des Suchraums M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 4. Suchalgorithmen: Grundlagen & blinde Verfahren Grundlagen PARENT-NODE n.Parent: Suchknoten, der diesen Knoten erzeugt hat n.Action: Aktion, durch die wir vom Parent zu n gelangen n.Path-Cost: Kosten des Pfades vom Anfangszustand zu n.State, der sich durch Verfolgen der Parent-Verweise ergibt (traditionell g (n) genannt) Grundlagen der Künstlichen Intelligenz 6 / 36 Knoten im Suchraum Datenstruktur für jeden Suchknoten n n.State: Zustand, dem der Knoten entspricht M. Helmert (Universität Basel) 11. März 2013 11. März 2013 7 / 36 Node 5 4 6 1 88 7 3 22 M. Helmert (Universität Basel) ACTION = right DEPTH = 6 PATH-COST = 6 STATE Grundlagen der Künstlichen Intelligenz 11. März 2013 8 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Grundlagen 4. Suchalgorithmen: Grundlagen & blinde Verfahren Operationen für die Open-Liste Allgemeiner Baumsuchalgorithmus Operationen für die Open-Liste function T REE -S EARCH( problem) returns a solution, or failure initialize the frontier using the initial state of problem loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution expand the chosen node, adding the resulting nodes to the frontier Empty?(frontier): liefert true gdw. die Open-Liste leer ist Pop(frontier): entfernt ein Element aus der Open-Liste und liefert es zurück Insert(element, frontier): fügt ein Element in die Open-Liste ein und liefert die modifizierte Open-Liste zurück unterschiedliche Implementierungen von Pop/Insert ergeben unterschiedliche Suchstrategien 5 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 function T REE -S EARCH( problem) returns a solution, or failure the& frontier using the initial state of problem 4. Suchalgorithmen:initialize Grundlagen blinde Verfahren loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution expand the chosen node, adding the resulting nodes to the frontier 9 / 36 Grundlagen I 10 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Grundlagen if problem.G OAL -T EST(node.S TATE) then return S OLUTION(node) Zeitaufwand: benötigt Algorithmus, um eine frontier ← aWie FIFOlange queue with node as der the only element explored ← an empty set Lösung zu finden? loop do (gemessen in erzeugten Zuständen) if E MPTY ?( frontier ) then return failure konkrete Algorithmen oft wegen Effizienz leicht anders implementiert, aber konzeptuell (= Suchstrategie) identisch 11. März 2013 11. März 2013 node ← a node withgefundene S TATE = problem.I NITIAL -S TATE, PATH optimal? -C OST = 0 Optimalität: Sind Lösungen garantiert An informal description of the general tree-search and graph-search algorithms. The Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz Vollständigkeit: Findet der Algorithmus garantiert eine Lösung, wenn eine existiert? (Semi-Vollständigkeit) function B READTH -F IRST-S EARCH ( problem) a solution, or failure Terminiert er, wenn keinereturns Lösung existiert? parts of G RAPH -S EARCHfür marked in bold italic are the additions needed to handle repeated states. allgemeines Muster Graphensuchalgorithmen M. Helmert (Universität Basel) M. Helmert (Universität Basel) Kriterien für Suchalgorithmen function G RAPH -S EARCH( problem) returns a solution, or failure initialize the frontier using the initial state of problem initialize the explored set to be empty loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution add the node to the explored set expand the chosen node, adding the resulting nodes to the frontier only if not in the frontier or explored set Figure 3.7 function G RAPH -S EARCH( problem) returns a solution, or failure initialize the frontier using the initial state of problem I allgemeines Muster für Baumsuchalgorithmen initialize the explored set to be empty loop do Algorithmen oft wegen Effizienz anders I konkrete if the frontier is empty then return failure implementiert, aber konzeptuell (= Suchstrategie) identisch choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution add the node to the explored set expand the chosen node, adding the resulting nodes to the frontier only if not in the frontier or explored set Figure 3.7 An informal description of the general tree-search and graph-search algorithms. T parts of G RAPH -S EARCH marked in bold italic are the additions needed to handle repeated states. Allgemeiner Graphensuchalgorithmus I Grundlagen 11 / 36 node ← PWie OP( frontier ) /* chooses the benötigt shallowest node frontier */ Platzaufwand: viel Speicherplatz derinAlgorithmus, add node.S TATE to explored um eine Lösung zu finden? for each action in problem.ACTIONS(node.S TATE) do in (Zuständen) child (gemessen ← C HILD -N ODE problem, node, action) if child .S TATE is not in explored or frontier then problem.G OAL -T EST(child .S TATE) then return S OLUTION(child) oft verwendete ifGrössen: frontier ← I NSERT(child, frontier ) I b: Verzweigungsgrad (= max. Nachfolgerzahl eines Zustands) I d: Figure Suchtiefe des search längsten Pfads im Suchraum) 3.11 (Länge Breadth-first on a graph. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 12 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Blinde Suchverfahren 5 uninformierte oder blinde Suchverfahren verwenden weiteren Informationen über Suchräume function Tkeine REE -S EARCH ( problem) returns a solution, or failure initialize the frontier using the initial state of problem ausser den definierenden Bestandteilen* 4.2 Blinde Suchverfahren loop do I if the frontier is uniforme empty then return failure Breitensuche, Kostensuche, Tiefensuche I tiefenbeschränkte iterative Tiefensuche if the node contains a Suche, goal state then return the corresponding solution I expand the chosen node, adding the resulting nodes to the frontier bidirektionale Suche choose a leaf node and remove it from the frontier function G RAPH -S EARCH( problem) returns a solution, Suche or failure * mit kleiner Ausnahme bei bidirektionaler initialize the frontier using the initial state of problem initializeinformierte the explored setoder to be empty Gegensatz: heuristische Suchverfahren M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 13 / 36 M. Helmert loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution add the node to the explored set expand the chosen node, adding the resulting nodes to the frontier onlyBasel) if not in the frontier or der explored set Intelligenz (Universität Grundlagen Künstlichen 11. März 2013 Figure 3.7 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Breitensuche A A C E D F A B G Blinde Suchverfahren D C E F B G D C E function B READTH -F IRST-S EARCH( problem) returns a solution, or failure node ← a node with S TATE = problem.I NITIAL -S TATE, PATH -C OST = 0 if problem.G OAL -T EST(node.S TATE) then return S OLUTION(node) frontier ← a FIFO queue with node as the only element explored ← an empty set loop do if E MPTY ?( frontier ) then return failure node ← P OP( frontier ) /* chooses the shallowest node in frontier */ add node.S TATE to explored for each action in problem.ACTIONS(node.S TATE) do child ← C HILD -N ODE( problem, node, action) if child .S TATE is not in explored or frontier then if problem.G OAL -T EST(child .S TATE) then return S OLUTION(child) frontier ← I NSERT(child, frontier ) A F B G D C E F I sucht Zustandsraum ebenenweise ab I findet immer flachsten Zielzustand zuerst I offensichtlich vollständig I optimal, wenn alle Aktionen identische Kosten haben G englisch: breadth-first search M. Helmert (Universität Basel) An informal description of the general tree-search and graph-search algorithms. The in bold italic are the additions needed to handle repeated states. parts of G RAPH -S EARCH marked 4. Suchalgorithmen: Grundlagen & blinde Verfahren Breitensuche: Pseudo-Code Knoten werden in Reihenfolge ihrer Erzeugung expandiert (FIFO). Open-Liste z. B. als verkettete Liste oder deque implementiert B 14 / 36 Grundlagen der Künstlichen Intelligenz Figure 3.11 11. März 2013 15 / 36 M. Helmert (Universität Basel) Breadth-first search on a graph. Grundlagen der Künstlichen Intelligenz 11. März 2013 16 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Breitensuche: Aufwand 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Breitensuche: Beispiel zum Aufwand Beispiel: b = 10; 100’000 Knoten/Sekunde; 32 Bytes/Knoten: Satz (Zeitaufwand der Breitensuche) Sei b der (maximale) Verzweigungsgrad und d die minimale Lösungslänge im durchsuchten Zustandsraum. Gelte b ≥ 2. d 3 1’111 0.01 s 35 KB Dann ist der Zeitaufwand der Breitensuche 5 111’111 1s 3.4 MB 7 107 2 min 339 MB 1 + b + b + b + · · · + b = O(b ) 9 10 9 Erinnerung: wir messen den Zeitaufwand als Zahl erzeugter Knoten 11 1011 13 Tage 3.2 TB 13 1013 3.5 Jahre 323 TB 15 15 350 Jahre 32 PB 2 3 d d Es folgt direkt, dass (für b ≥ 2) auch der Platzaufwand der Breitensuche O(b d ) beträgt. (Warum?) M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 17 / 36 Blinde Suchverfahren Breitensuche: Diskussion M. Helmert (Universität Basel) Knoten 10 Zeit 3h Speicher 33 GB Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 18 / 36 Blinde Suchverfahren Uniforme Kostensuche I alle Aktionen gleich teuer I Breitensuche optimal anderenfalls kann sie suboptimal sein siehe Beispiel Unser Pseudo-Code für Breitensuche ist eine Graphensuche, d. h. sie eliminiert Duplikate. Warum ist das hier sinnvoller als Baumsuche? Unser Pseudo-Code für Breitensuche führt den Zieltest anderswo aus als der allgemeine Pseudo-Code für Graphensuche. Warum ist das sinnvoll? M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz Abhilfe: uniforme Kostensuche (uniform cost search) 11. März 2013 19 / 36 I expandiert immer einen Knoten mit minimalen Pfadkosten (n.Path-Cost bzw. g (n)) I Implementierung: Prioritätswarteschlange (Heap) für Open-Liste M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 20 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Uniforme Kostensuche: Pseudo-Code Eigenschaften der uniformen Kostensuche: open := new min-heap ordered by g open.insert(make-root-node(init())) closed := ∅ while not open.empty(): n = open.pop-min() if n.state ∈ / closed: closed := closed ∪ {n.state} if is-goal(n.state): return extract-solution(n) for each ha, s 0 i ∈ succ(n.state): if h(s 0 ) < ∞: n0 := make-node(n, a, s 0 ) open.insert(n0 ) return unsolvable I vollständig und optimal I identisch mit Dijkstra’s Algorithmus (für explizite Graphen) I Zieltest darf erst beim Expandieren geschehen! (Warum?) I Zeitaufwand hängt stark von Verteilung der Aktionskosten ab (keine einfachen und genauen Abschätzungen) I I I Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 21 / 36 Blinde Suchverfahren Tiefensuche Platzaufwand = Zeitaufwand M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 22 / 36 Blinde Suchverfahren I wird fast immer als Baumsuche implementiert (warum, wird später deutlich) I nicht vollständig oder semi-vollständig, nicht optimal (Warum?) I vollständig, wenn Zustandsraum azyklisch, z.B. Baum ( Constraint-Satisfaction-Probleme) Open-Liste als Stack implementiert Beispiel: (Annahme: Knoten in Tiefe 3 haben keine Nachfolger) A A B C D H E I J F K L N C D G M O H E I J H C E I J F K L G N M J O H I J L G N M J N M O H E I J L G O H E I L G J M N O H F K J N M G N M O H E Implementierung: O I I J F L K G N M L G M N C D O H E I J F K Grundlagen der Künstlichen Intelligenz L üblich und effizient: Tiefensuche als rekursive Funktion nutze Stack der Programmiersprache/CPU für die Open-Liste O I B F K L A E I O C D C D N M B F K L A B F K K C D G C D C E I J A B H L K A D I G B F B F K H F A E C E I O E A B H N M C D C D A D L G B F K B A B D A B A M. Helmert (Universität Basel) Sei := mina∈A cost(a). Wenn > 0, optimale Lösungskosten ∗ c ∗ und Verzweigungsgrad b, dann Aufwand O(b 1+bc /c ). (Warum?) Oft sehr ungenaue obere Schranke. Tiefensuche: Eigenschaften Zuletzt erzeugte Knoten werden zuerst expandiert (LIFO) tiefste Knoten zuerst (englisch: depth-first search) I Blinde Suchverfahren Uniforme Kostensuche: Eigenschaften Uniforme Kostensuche (mit verzögerter Duplikateliminierung) M. Helmert (Universität Basel) 4. Suchalgorithmen: Grundlagen & blinde Verfahren Pseudo-Code später ( tiefenbeschränkte Suche) G M N O 11. März 2013 23 / 36 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 24 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Tiefensuche: Aufwand 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Tiefenbeschränkte Suche Zeitaufwand: 6 I I Chapter m 3. existieren, Solving Problems Wenn im Zustandsraum Pfade der Länge kann by Searching m Tiefensuche O(b ) viele Knoten erzeugen, selbst wenn sehr kurze Lösungen (z. B. Länge 1) existieren. Umgekehrt kann im besten Fall eine Lösung der Länge l function U NIFORM -C OST -S EARCH( problem) returns a solution, or failure mit nur O(bl) erzeugten Knoten gefunden werden. node ← a node with S TATE = problem.I NITIAL -S TATE, PATH -C OST = 0 frontier ← a priority queue ordered by PATH -C OST, with node as the only element Platzaufwand (als Baumsuche!): explored ← an empty set loop donur Knoten entlang des Pfades von der Wurzel zum I muss if E MPTY ?( frontier ) then return failure gerade Speicher halten node expandierten ← P OP( frontier ) /*Knoten chooses theim lowest-cost node in frontier */ if problem.G OAL -T EST(node.S TATE) then return S OLUTION(node) ( entlang“ = Knoten auf diesem Pfad und deren Kinder) ” add node.S TATE to explored for m eachdie action in problem.A CTIONSist, (node.S I wenn maximale Tiefe zuTATE der) dodie Suche vordringt, child ← C HILD -N ODE( problem, node, action) Platzaufwand daher if child .S TATE is not inO(bm) explored or frontier then frontier ← I NSERT(child, frontier ) I dieser niedrige Platzaufwand ist der Grund, warum else if child.S TATE is in frontier with higher PATH -C OST then replacetrotz that frontier with child interessant ist Tiefensuche allernode Nachteile M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 Tiefenbeschränkte Suche (depth-limited search): I Tiefensuche, bei der Abschneiden des Suchpfads nach Tiefe n erzwungen wird I das heisst: Knoten führen Tiefe d im Suchbaum mit, und Knoten in Tiefe n werden nicht expandiert für sich allein nicht sehr nützlich, aber Bestandteil nützlicher Algorithmen ist 25 / 36 Figure 3.13 Uniform-cost search on a graph. The algorithm is identical to the general graph search algorithm in Figure ??, except for the use of a priority queue and the addition of an extra check in case a shorter path to a frontier state is discovered. The data structure for frontier needs to support efficient so it should combine the capabilities of a priority queue and a hash 4. Suchalgorithmen:membership Grundlagen &testing, blinde Verfahren Blindetable. Suchverfahren Tiefenbeschränkte Suche: Pseudo-Code M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 4. Suchalgorithmen: Grundlagen & blinde Verfahren 11. März 2013 26 / 36 Blinde Suchverfahren Iterative Tiefensuche Iterative Tiefensuche (iterative-deepening search) function D EPTH -L IMITED -S EARCH( problem, limit) returns a solution, or failure/cutoff return R ECURSIVE -DLS(M AKE -N ODE(problem.I NITIAL -S TATE), problem, limit) function R ECURSIVE -DLS(node, problem, limit) returns a solution, or failure/cutoff if problem.G OAL -T EST(node.S TATE) then return S OLUTION(node) else if limit = 0 then return cutoff else cutoff occurred ? ← false for each action in problem.ACTIONS(node.S TATE) do child ← C HILD -N ODE( problem, node, action) result ← R ECURSIVE -DLS(child, problem, limit − 1) if result = cutoff then cutoff occurred ? ← true else if result 6= failure then return result if cutoff occurred ? then return cutoff else return failure Figure 3.16 M. Helmert (Universität Basel) Idee: wiederholte tiefenbeschränkter Suchen mit wachsenden Tiefenschranken I klingt verschwenderisch (jede Iteration wiederholt die vorher gemachte Arbeit), aber der Aufwand ist tatsächlich vertretbar 7 function I TERATIVE -D EEPENING -S EARCH( problem) returns a solution, or failure for depth = 0 to ∞ do result ← D EPTH -L IMITED -S EARCH( problem, depth ) if result 6= cutoff then return result A recursive implementation of depth-limited tree search. Grundlagen der Künstlichen Intelligenz I Figure 3.17 The iterative deepening search algorithm, which repeatedly applies depth-limited search with increasing limits. It terminates when a solution is found or if the depth-limited search returns failure, meaning that no solution exists. 11. März 2013 27 / 36 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 28 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Iterative Tiefensuche: Eigenschaften 4. Suchalgorithmen: Grundlagen & blinde Verfahren Iterative Tiefensuche: Beispiel A Limit = 0 A A Limit = 1 A B Kombiniert Vorteile von Breiten- und Tiefensuche: C (fast) wie Breitensuche: semi-vollständig C E G C D E wie Breitensuche: bei einheitlichen Kosten optimal I wie Tiefensuche: Platzbedarf nur entlang eines Pfades Platzaufwand O(bd), wobei d minimale Lösungslänge G E J Zeitbedarf kaum höher als Breitensuche (siehe später) G M L D O N H J C E I J O N H J C M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 29 / 36 Blinde Suchverfahren Iterative Tiefensuche: Analyse G M L L G M M. Helmert (Universität Basel) N J F K H H E I J H E I J F K J B F K L G M N G M L H H E I J F K J B F K G M L O N A E I O N C D O N C D O G M L A B F K O N C D G M L E I G B C D O N C D O F A B F K E L G M N C D O H E I J F K L G M N Grundlagen der Künstlichen Intelligenz 4. Suchalgorithmen: Grundlagen & blinde Verfahren O 11. März 2013 30 / 36 Blinde Suchverfahren Satz (Zeitaufwand der iterativen Tiefensuche) Sei b der (maximale) Verzweigungsgrad und d die minimale Lösungslänge im durchsuchten Zustandsraum. Gelte b ≥ 2. Breitensuche 1 + b + b 2 + · · · + b d−1 + b d Iter. Tiefensuche (d + 1) + db + (d − 1)b 2 + · · · + 2b d−1 + 1b d Dann ist der Zeitaufwand der iterativen Tiefensuche Beispiel: b = 10, d = 5 (d + 1) + db + (d − 1)b 2 + (d − 2)b 3 + · · · + 1b d = O(b d ) 1 + 10 + 100 + 1000 + 10000 + 100000 und der Platzaufwand = 111111 Iter. Tiefensuche J C D Iterative Tiefensuche: Analyse (formal) Zeitaufwand (erzeugte Zustände): Breitensuche E I E I A B D H G A B F K G A E I A H O N C D G M L F B F C D G M L B F K E A B D E A B F K C D A E I G C D C A H G B F K B F A C E I E B F A D C D C D C A B F B H I C E Limit = 3 G A B D B A B F A I C A B F A B A C D A B A Limit = 2 B I Blinde Suchverfahren O(bd) 6 + 50 + 400 + 3000 + 20000 + 100000 = 123456 Einschätzung Iterative Tiefensuche ist im Allgemeinen die Methode der Wahl, wenn Baumsuche angemessen und Lösungstiefe unbekannt ist. Für b = 10 werden nur 11% mehr Knoten erzeugt als bei Breitensuche. M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 31 / 36 M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 32 / 36 4. Suchalgorithmen: Grundlagen & blinde Verfahren Blinde Suchverfahren Bidirektionale Suche I Aktionen nicht immer symmetrisch, daher Berechnung von Vorgängern für Rückwärtssuche schwierig I in vielen Fällen sehr viele mögliche Zielzustände, die schwer charakterisierbar sind I mindestens eine Suchrichtung muss platzaufwändigen Algorithmus (z. B. Breitensuche) verwenden I Kombination mit informierten Suchverfahren (nächstes Kapitel) schwierig Goal wenn nur ein Zielzustand und Zustandsraum symmetrisch Suche in Zeit O(2 · b dd/2e ) = O(b dd/2e ) möglich M. Helmert (Universität Basel) Blinde Suchverfahren Bidirektionale Suche: Schwierigkeiten Start Beispiel: b = 10, d = 6 4. Suchalgorithmen: Grundlagen & blinde Verfahren statt 1’111’111 Knoten nur 2’222! Grundlagen der Künstlichen Intelligenz 4. Suchalgorithmen: Grundlagen & blinde Verfahren 11. März 2013 33 / 36 Zusammenfassung M. Helmert (Universität Basel) Grundlagen der Künstlichen Intelligenz 11. März 2013 4. Suchalgorithmen: Grundlagen & blinde Verfahren 34 / 36 Zusammenfassung Vergleich der Suchverfahren Vollständigkeit, Optimalität, Zeitaufwand, Platzaufwand Kriterium 4.3 Zusammenfassung Grundlagen der Künstlichen Intelligenz 11. März 2013 35 / 36 Uniforme Tiefen- tiefen- iter. Bidirektional Suche Kosten Suche beschr. Tiefens. vollständig? Ja Ja Nein Nein Semi Ja optimal? Ja* Ja Nein Nein Ja* Ja*,** ∗ Zeit O(b d ) O(b 1+bc /c ) O(b m ) O(b l ) O(b d ) O(b d/2 ) Platz O(b d ) ∗ O(b 1+bc /c ) O(bm) O(bl) O(bd) O(b d/2 ) b≥2 d m l c∗ >0 M. Helmert (Universität Basel) Breiten- Verzweigungsgrad minimale Lösungstiefe maximale durchsuchte Tiefe Tiefenlimit optimale Lösungskosten minimale Aktionskosten M. Helmert (Universität Basel) Anmerkungen: * nur bei uniformen Aktionskosten ** bei Verwendung von Breitensuchen; Annahmen: nur ein Zielzustand; symmetrisch Grundlagen der Künstlichen Intelligenz 11. März 2013 36 / 36