Introduccion a la Inteligencia Artificial Curso 2005–2006
Tema 7: Busqueda con informacion
Miguel A. Gutierrez Naranjo
Dpto. de Ciencias de la Computacion e Inteligencia Artificial
Universidad de Sevilla
IIA 2005–06 Busqueda con informacion 1
Busqueda en el arbol
frontier
explored nodes
unexplored nodes
startnode
IIA 2005–06 Busqueda con informacion 2
Un algoritmo de busqueda (informal)
B Selecciono un nodo de la frontera (al principio, la frontera solocontiene al nodo inicial).
B Si el nodo seleccionado es el que busco, entonces se termina labusquda.
B Si no es el objetivo, entonces considero los nodos siguientes alnodo seleccionado.
B Anado estos nuevos nodos a la frontera
B Vuelvo al principio
B Las estrategias se definen por el orden de expansion de los nodos.
IIA 2005–06 Busqueda con informacion 3
Concepto de heurıstica
B Heurıstica:
Del griego heuriskein, descubrir: ¡Eureka!
Segun el DRAE: Tecnica de la indagacion y del descubri-miento.
Otro signicado: metodo para resolver problemas que nogarantiza la solucion, pero que en general funciona bien.
En nuestro caso, una heurıstica sera una funcion numericasobre los estados.
IIA 2005–06 Busqueda con informacion 4
Concepto de heurıstica
B Funcion de evaluacion heurıstica, heurstica(estado):
Estima la distancia al objetivo.
Siempre mayor o igual que 0.
Valor en los estados finales: 0.
Admitimos valor ∞.
IIA 2005–06 Busqueda con informacion 5
Ejemplos de heurıstica
B Problema del paseante:
Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.
B Implementacion:
sucesor(X,Y) :- Y is X - 1. estado_inicial(0).
sucesor(X,Y) :- Y is X + 1. estado_final(8).
B Heurıstica:heuristica(estado) = | estado - estado final |
IIA 2005–06 Busqueda con informacion 6
Ejemplos de heurıstica
B Problema del paseante:
Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.
B Implementacion:
sucesor(X,Y) :- Y is X - 1. estado_inicial(0).
sucesor(X,Y) :- Y is X + 1. estado_final(8).
B Heurıstica:heuristica(estado) = | estado - estado final |
IIA 2005–06 Busqueda con informacion 7
Ejemplos de heurıstica
B Viaje por Andalucıa
HU
SE
JACO
CA
GR
ALMA
B Coordenadas: Almerıa: (409.5, 93) ; Granada: (309, 127.5) ;
Malaga: (232.5, 75) ; Cadiz: (63, 57) ;
Huelva : (3, 139.5) ; Sevilla: (90, 153) ;
Cordoba: (198, 207 ) ; Jaen: (295.5, 192)
B Funcion de evaluacion heurıstica (distancia en lınea recta):heuristica(estado) =
distancia(coordenadas(estado),coordenadas(almeria))
IIA 2005–06 Busqueda con informacion 8
Ejemplos de heurıstica
B Viaje por Andalucıa
HU
SE
JACO
CA
GR
ALMA
B Coordenadas: Almerıa: (409.5, 93) ; Granada: (309, 127.5) ;
Malaga: (232.5, 75) ; Cadiz: (63, 57) ;
Huelva : (3, 139.5) ; Sevilla: (90, 153) ;
Cordoba: (198, 207 ) ; Jaen: (295.5, 192)
B Funcion de evaluacion heurıstica (distancia en lınea recta):heuristica(estado) =
distancia(coordenadas(estado),coordenadas(almeria))
IIA 2005–06 Busqueda con informacion 9
Ejemplos de heurıstica
B Problema del 8-puzzle:
B Primera heurıstica: Numero de piezas descolocadas respecto suposicion en el estado final.
B Ejemplo:
H = 0
7 5
2 8 3
1 6 4 4
1 2 3
567
8
H = 4
IIA 2005–06 Busqueda con informacion 10
Ejemplos de heurıstica
B Problema del 8-puzzle:
B Segunda heurıstica: Suma de las distancias Manhattan de cadapieza a donde deberıa estar en el estado final.
B Ejemplo:
7 5
2 8 3
1 6 4 4
1 2 3
567
8
H = 0H = 5
IIA 2005–06 Busqueda con informacion 11
Busqueda voraz greedy
B Expandir los nodos con heurıstica mas baja preferentemente.
B Ordenar la frontera por heurıstica, de menor a mayor.
B Siempre elige expandir lo que estima que esta mas cerca delobjetivo.
B Su rendimiento dependera de la bondad de la heurıstica usada.
IIA 2005–06 Busqueda con informacion 12
Busqueda voraz para el problema del paseante
B Ejemplo con estado final(-3).
1
0 1
H = 4
2−1
−2 3
−3 4
H = 3
H = 2
H = 1
H = 0
IIA 2005–06 Busqueda con informacion 13
Busqueda voraz para el problema del viaje
Cádiz Córdoba Huelva Málaga 2
1SevillaH = 325.08
H = 348.37 H = 240.27 H = 409.15 H = 177.91
Granada
Almería Jaén4
3
H = 106.26
H = 150.99H = 0
IIA 2005–06 Busqueda con informacion 14
Bu
squ
eda
vora
zde
l8-
puzz
le(p
rim
era
heu
rıst
ica)
1
7 5
2 8 3
1 6 4
H = 4
2
5
2 8 3
1 6 4
7
H = 5
7 5
2 8 3
1 4
6
H = 3
7
2 8 3
1 6 4
5
H = 5
5
2 8 3
4
7 6
1
H = 3
7 5
2 3
1 4
6
H = 3
8
7
2 8 3
1
6 5
4
H = 4
3
5
3
4
7 6
8
2 1
H = 3
5
2
4
6
H = 4
8 3
7 1
5
3
1 4
7 6
8
2
H = 2
7 5
2
1 4
6
3
8
H = 4
4
7 5
3
4
6
1 2
8
H = 0
3
4
5
H = 2
1 2
7 8
6
7 5
3
6
1 2
8 4
H = 1
5
6
7
IIA
2005–06
Busq
ueda
con
info
rmacio
n15
Bu
squ
eda
vora
zde
l8-
puzz
le(s
egu
nda
heu
rıst
ica)
1
2
7 5
2 3
1 4
6
H = 3
8
7 5
2 8 3
1 6 4
H = 5
5
2 8 3
1 6 4
7
H = 6
7 5
2 8 3
1 4
6
H = 4
7
2 8 3
1 6 4
5
H = 6
5
2 8 3
4
7 6
1
H = 5
7
2 8 3
1
6 5
4
H = 5
3
5
3
1 4
7 6
8
2
H = 2
7 5
2
1 4
6
3
8
H = 4
7 5
3
4
6
1 2
8
H = 0
3
4
5
H = 2
1 2
7 8
6
7 5
3
6
1 2
8 4
H = 1
6
5
4
IIA
2005–06
Busq
ueda
con
info
rmacio
n16
Implementacion
busqueda_voraz(Camino):-
estado_inicial(E),
heuristica(E,H),
aux_heuristica([H-[E]],Camino).
aux_heuristica(F,C) :-
write(’Frontera: ’), write(F), nl,
selecciona(_-[N|Caux],F,_),
estado_final(N),
reverse([N|Caux],C),
nl,
write(’Estado final encontrado: ’), write(N), nl,
write(’Camino encontrado: ’), write(C).
IIA 2005–06 Busqueda con informacion 17
Implementacion
aux_heuristica(F,C) :-
selecciona(N,F,F1),
sucesores_4(N,NN),
nueva_frontera(NN,F1,F2),
aux_heuristica(F2,C).
sucesores_4(_-[N|C],M):-
findall(H-[Nuevo_nodo,N|C],
((sucesor(N,Nuevo_nodo),
not(member(Nuevo_nodo,[N|C])),
heuristica(Nuevo_nodo,H))), M).
nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).
selecciona(N,[N|F],F).
IIA 2005–06 Busqueda con informacion 18
Busqueda A∗
B Objetivo de la busqueda A∗: Conseguir buenas soluciones (opti-mas).
B Idea: asignar a cada nodo n un valor f(n) = g(n) + h(n),
g(n): coste del camino hasta n.
h(n): heurıstica del nodo, estimacion del coste de un caminooptimo desde n hasta un estado final.
f(n): estimacion del coste total de una solucion optima quepasa por n.
B Seleccionar siempre el nodo con menor valor de f .
B Ordenar la cola frontera en orden creciente respecto a f .
IIA 2005–06 Busqueda con informacion 19
Busqueda A∗ para el problema del viaje
Cádiz Córdoba Huelva Málaga
1Sevilla
Granada
Almería
C+H = 361.01 C+H = 497.19 C+H = 340.36C+H = 448.09
C+H = 361.49
C+H = 361.49
C+H = 325.08
JaénC+H = 370.38
23
4
5
IIA 2005–06 Busqueda con informacion 20
Propiedades de A∗
B Sea h∗ el coste de un camino optimo desde n hasta un estadofinalu f ∗(n) = g(n) + h∗(n) coste total de una solucion optima que pasa por n.
B En la practica no conocemos h∗ y usamos una funcion heurısticah que estima h∗.
B Posibilidades:
h = 0, no hay reduccion del arbol de busqueda
h = h∗, estima cion perfecta, no hay busqueda
0 ≤ h ≤ h∗, heurıstica admisible.
B Usando una heurıstica admisible la busqueda es completa y en-cuentra siempre una solucion optima.
IIA 2005–06 Busqueda con informacion 21
Implementacion
B Los valores se guardan como v(F,H,C) donde C es el coste delcamino recorrido, H es el valor de la heurıstica y F la suma deesos dos valoresa_estrella(Camino):-
estado_inicial(E),
heuristica(E,H),
aux_a_estrella([v(H,H,0)-[E]],Camino).
aux_a_estrella(F,C) :-
write(’Frontera: ’), write(F), nl,
selecciona(v(_,_,Coste)-[N|Caux],F,_),
estado_final(N), reverse([N|Caux],C), nl,
write(’Estado final encontrado: ’), write(N), nl,
write(’Camino encontrado: ’), write(C), nl,
write(’Coste: ’), write(Coste).
IIA 2005–06 Busqueda con informacion 22
Implementacion
aux_a_estrella(F,C) :- selecciona(N,F,F1),
sucesores_5(N,NN),
nueva_frontera(NN,F1,F2),
aux_a_estrella(F2,C).
sucesores_5(v(_,_,Coste1)-[N|C],M):-
findall(v(F,H,Nuevo_coste)-[Nuevo_nodo,N|C],
((sucesor(N,Nuevo_nodo,Coste_suc),
not(member(Nuevo_nodo,[N|C])),
heuristica(Nuevo_nodo,H),
Nuevo_coste is Coste_suc + Coste1,
F is Nuevo_coste + H)), M).
nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).
selecciona(N,[N|F],F).
IIA 2005–06 Busqueda con informacion 23
Bibliografıa
B Borrajo, D. y otros. Inteligencia artificial: Metodos y tecnicas(Centro de estudios Ramon Areces, 1993).
B Cortes, U., Bejar, J. y Moreno, A. Inteligencia articial(Ediciones UPC, 1994).
B Fernandez, S.; Gonzalez, J. y Mira, J. Problemas resueltos deInteligencia Articial Aplicada (Busqueda y representacion)(Addison Wesley, 1998).
IIA 2005–06 Busqueda con informacion 24
Top Related