Grundlagen der Künstlichen Intelligenz

Werbung
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
Herunterladen