Académique Documents
Professionnel Documents
Culture Documents
estado inicial
Algoritmos de Bsqueda
Consideraciones de Diseo e Implementacin
conjunto de acciones
Se usa el trmino operador para denotar
la descripcin de una accin en trminos
de qu estado se alcanzar al llevar a
cabo la accin en un estado particular.
Juntos
definen el
espacio de
estados
Inteligencia Artificial
2 cuatrimestre de 2009
F
grafo de estados
Ejemplo
estado inicial:
8-puzzle
241
736
75
88
5
2 4 8
7 3 5
1 6
conjunto de operadores:
intercambiar el lugar vaco con una
de las posiciones adyacentes.
test de meta:
la cantidad de movimientos
(acciones) efectuadas a lo largo del
camino.
248
7 3
165
248
735
1 6
248
7 5
136
248
735
16
Matriz de adyacencia
A
A
Solucin:
Algoritmo de
Bsqueda
24
738
165
248
73
165
Representacin de grafos
B
test de meta
espacio de estados:
2 3 4
1
5
8 7 6
Algoritmos de Bsqueda
conj. de acciones
Ejemplo
estado inicial
Formulacin
del Problema
de Bsqueda:
un camino
desde el estado
inicial a
una meta
t
C
D
1
1
fc. de costo de
camino
A
El valor asociado a la solucin
por la funcin de costo
determina la calidad de la misma.
Cuanto MENOR el
costo, MEJOR la
solucin
5
Listas de adyacencia
(incidencia)
6
Algoritmos de Bsqueda
Un algoritmo de bsqueda va generando y explorando
los nodos (estados) del espacio de estados.
Podra pensarse en el proceso de bsqueda como
construyendo un rbol de bsqueda.
Grafo de Estados
Grafo de Estados
Arbol de Bsqueda
generados pero
an no explorados
(Frontera de la
Bsqueda)
F
E
Grafo de Estados
Arbol de Bsqueda
F
E
11
10
Arbol de Bsqueda
Grafo de Estados
Arbol de Bsqueda
12
13
Grafo de Estados
Arbol de Bsqueda
B
Grafo de Estados
Arbol de Bsqueda
14
Representacin de la Frontera
Algoritmos de Bsqueda
rbol de Bsqueda
en un instante dado
de la ejecucin del
algoritmo.
C
Representacin mantenida
por el algoritmo (lista Front).
nodo(C, [B,A])
15
16
Generacin de Vecinos
% vecinos(+Nodo, -Vecinos)
Determinan
la estrategia
de bsqueda
17
vecinos(Nodo,
i
(N d
V
Vecinos):i
)
Nodo = nodo(N, Camino),
findall(nodo(V,[N|Camino]),
arc(N,V),
Vecinos).
18
Control de Visitados
Control de Visitados
% buscarV(+Front, +Vis, -Solucion)
Visitados
Front
que ya fueron
generados antes
?- buscarV([NodoInicial],[], Solucin)
19
20
Generacin de Vecinos
Cmo chequear que un nodo V no est en Vis ni
en Front?
B
Bsqueda
d Ci
Ciega
% vecinosV(+Nodo,
i
V(+N d
+F
+Front,
t +Vi
+Vis -Vecinos)
V i
)
vecinos(Nodo, Front, Vis, Vecinos):Nodo = nodo(N, Camino),
findall(nodo(V,[N|Camino]),
(arc(N, V),
not member (V, Vis),
not member (nodo(V,_), Front)),
Vecinos).
21
De esta manera:
la bsqueda se extiende en profundidad sobre uno de los
caminos del grafo.
24
DFS: Traza
Implementacin de DFS
La implementacin de DFS (con control de ciclos) se obtiene
C
E
Vis
A - []
25
26
DFS: Traza
A
A
B
DFS: Traza
D
F
B
E
C [A]
Front
Vis
B [A]
H
Front
Vis
D [B,A]
E [B,A]
C [A]
27
28
DFS: Traza
A
A
B
H
Front
C
D
DFS: Traza
H
Front
Vis
F [D,B,A]
E [B,A]
C [A]
29
I
G
Vis
F [D,B,A]
E [B,A]
C [A]
D
D es vecino de F, pero no volvemos a considerarlo debido a que D ya
fue generado antes (Recordar que, de acuerdo al alg. de bsqueda
30
con control de Visitados, si un nodo ya est en Front o en Vis no
debemos volver a considerarlo)
DFS: Traza
A
Front
B
B
DFS: Traza
Vis
H
Front
E [B,A]
C [A]
I
G
Vis
H [E,B,A]
G [E,B,A]
C [A]
D
F
F
E
31
DFS: Traza
B
B
C
E
D
E
H
Front
Es decir
decir, BFS toma de la Frontera el nodo que hace ms
tiempo se encuentra en ella, lo que sugiere la implementacin
de la Frontera como una cola.
G
Vis
G [E,B,A]
C [A]
D
SOLUCIN
32
F
E
H
33
34
BFS: Traza
Implementacin de BFS
La implementacin de BFS se obtiene a partir de buscar/2
(o buscarV/3) implementando seleccionar/3 y
agregar/3 como se muestra a continuacin:
C
E
Vis
A - []
36
BFS: Traza
A
A
B
BFS: Traza
D
F
B
E
C [A]
Front
Vis
B [A]
H
Front
Vis
C [A]
D [B,A]
E [B,A]
37
38
BFS: Traza
A
A
B
Front
BFS: Traza
H
Front
Vis
D [B,A]
E [B,A]
I [C,A]
I
G
Vis
E [B,A]
I [C,A]
F [D,B,A]
C
D
39
40
BFS: Traza
A
A
B
B
C
G
SOLUCIN
H
Front
C
E
D
D
Limitaciones de BFS
G
Vis
I [C,A]
F [D,B,A]
H [E,B,A]
G [E,B,A]
D
E
41
1
4
42
UCS: Traza
2
8
C
1
UCS: Traza
44
UCS: Traza
A
1
4
10
1
4
45
46
UCS: Traza
A
D
4
10
F
7
7
47
10
C
G
4
3
UCS: Traza
10
C
G
5
1
4
G
Solucin:
[A, B, E, G]
(costo 5)
48
B
Bsqueda
d H
Heurstica
ti
En
E b
bsqueda
d informada
i f
d o heurstica
h ti consideramos
id
informacin especfica acerca del problema para
guiar la exploracin hacia una (buena) solucin.
Una heurstica es una funcin h/1 que, aplicada a
un estado E, provee una estimacin del costo de
alcanzar una meta a partir de E.
Algoritmo A*
Algoritmo A*
(sin explorar)
Meta
g(N)
h(N)
51
A*:
A:5
52
A*:
A:5
3 km
E:1
D:0
2 km
Front
Vis
3 km
C:2
1 km
3 km
2 km
5 km
5 km
C:2
1 km
3 km
B:1
50
C:2
B:1
B:1
3 km
2 km
E:1
D:0
2 km
Front
Vis
A-[]-5 A-[]-5
B - [A] - 6
C - [A] - 5
A-[]-5
53
54
A*:
A*:
A:5
5 km
3 km
2 km
E:1
A*:
2 km
Front
Vis
55
3 km
2 km
E:1
2 km
A*:
Front
Vis
A:5
C:2
B:1
3 km
2 km
E:1
SOLUCIN
3 km
C:2
3 km
2 km
E:1
3 km
E:1
D:0
2 km
Front
Vis
A-[]-5 A-[]-5
B - [A] - 6 C - [A] - 5
C - [A] - 5 B - [C,A] - 5
B - [C,A] - 5
E - [C,A] - 7
D - [B,C,A] - 6
58
D:0
2 km
Front
Vis
A-[]-5 A-[]-5
B - [A] - 6 C - [A] - 5
C - [A] - 5 B - [C,A] - 5
B - [C,A] - 5
E - [C,A] - 7
D - [B,C,A] - 6
E:1
3 km
2 km
D:0
D:0
57
C:2
1 km
B:1
1 km
2 km
3 km
5 km
B:1
1 km
56
5 km
3 km
C:2
B:1
A:5
5 km
B:1
B:1
A-[]-5 A-[]-5
B - [A] - 6 C - [A] - 5
C - [A] - 5
B - [C,A] - 5
E - [C,A] - 7
Vis
1 km
E:1
D:0
Front
A-[]-5 A-[]-5
B - [A] - 6 C - [A] - 5
C - [A] - 5
B - [C,A] - 5
E - [C,A] - 7
5 km
3 km
3 km
B:1
A:5
C:2
1 km
2 km
3 km
B:1
C:2
E:1
D:0
A:5
3 km
5 km
E:1
3 km
A*:
5 km
3 km
2 km
Descartamos B - [A]- 6 para quedarnos con B - [C,A] 5 ya que si para llegar a la meta hay que pasar por B,
conviene tomar por el camino que pasa por C. Notar
que llegar a B por el camino A,C,B cuesta menos (en
trminos de g) que llegar a B por el camino A, B!!!
A:5
1 km
1 km
B:1
A-[]-5 A-[]-5
B - [A] - 6 C - [A] - 5
C - [A] - 5
A:5
B:1
C:2
B:1
B ya est en
Front!!!
que hago?
C:2
1 km
E:1
D:0
3 km
B:1
3 km
3 km
B:1
5 km
5 km
C:2
1 km
1 km
A:5
3 km
B:1
B:1
A:5
3 km
5 km
C:2
60
10
A:25
15 km
20 km
4 km
C:12
B:5
20 km
10 km
Queda
como
ejercicio
D:0
Front
FIN
Vis
A-[]25
61
11