Introducción a la Inteligencia Artificial Curso 2010–2011
Tema 7: Búsqueda con información
Miguel A. Gutiérrez Naranjo
Dpto. de Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
IIA 2010–11 Búsqueda con información 1
Búsqueda en el árbol
frontier
explored nodes
unexplored nodes
startnode
IIA 2010–11 Búsqueda con información 2
Un algoritmo de búsqueda (informal)
⊲ Selecciono un nodo de la frontera (al principio, la frontera sólocontiene al nodo inicial).
⊲ Si el nodo seleccionado es el que busco, entonces se termina labúsquda.
⊲ Si no es el objetivo, entonces considero los nodos siguientes alnodo seleccionado.
⊲ Añado estos nuevos nodos a la frontera
⊲ Vuelvo al principio
⊲ Las estrategias se definen por el orden de expansión de los nodos.
IIA 2010–11 Búsqueda con información 3
Concepto de heuŕıstica
⊲ Heuŕıstica:
Del griego heuriskein, descubrir: ¡Eureka!
Segun el DRAE: Técnica de la indagacion y del descubri-miento.
Otro signicado: metodo para resolver problemas que no ga-rantiza la solucion, pero que en general funciona bien.
En nuestro caso, una heuŕıstica será una función numéricasobre los estados.
IIA 2010–11 Búsqueda con información 4
Concepto de heuŕıstica
⊲ Función de evaluación heuŕıstica, heurstica(estado):
Estima la distancia al objetivo.
Siempre mayor o igual que 0.
Valor en los estados finales: 0.
Admitimos valor ∞.
IIA 2010–11 Búsqueda con información 5
Ejemplos de heuŕıstica
⊲ 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.
⊲ Implementación:
sucesor(X,Y) :- Y is X - 1. estado_inicial(0).
sucesor(X,Y) :- Y is X + 1. estado_final(8).
⊲ Heuŕıstica:heuristica(estado) = | estado - estado final |
IIA 2010–11 Búsqueda con información 6
Ejemplos de heuŕıstica
⊲ 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.
⊲ Implementación:
sucesor(X,Y) :- Y is X - 1. estado_inicial(0).
sucesor(X,Y) :- Y is X + 1. estado_final(8).
⊲ Heuŕıstica:heuristica(estado) = | estado - estado final |
IIA 2010–11 Búsqueda con información 7
Ejemplos de heuŕıstica
⊲ Viaje por Andalućıa
HU
SE
JACO
CA
GR
AL
MA
⊲ Coordenadas: Almerı́a: (409.5, 93) ; Granada: (309, 127.5) ;Málaga: (232.5, 75) ; Cádiz: (63, 57) ;
Huelva : (3, 139.5) ; Sevilla: (90, 153) ;
Córdoba: (198, 207 ) ; Jaen: (295.5, 192)
⊲ Funcion de evaluación heuŕıstica (distancia en ĺınea recta):heuristica(estado) =
distancia(coordenadas(estado),coordenadas(almeria))
IIA 2010–11 Búsqueda con información 8
Ejemplos de heuŕıstica
⊲ Viaje por Andalućıa
HU
SE
JACO
CA
GR
AL
MA
⊲ Coordenadas: Almerı́a: (409.5, 93) ; Granada: (309, 127.5) ;Málaga: (232.5, 75) ; Cádiz: (63, 57) ;
Huelva : (3, 139.5) ; Sevilla: (90, 153) ;
Córdoba: (198, 207 ) ; Jaen: (295.5, 192)
⊲ Funcion de evaluación heuŕıstica (distancia en ĺınea recta):heuristica(estado) =
distancia(coordenadas(estado),coordenadas(almeria))
IIA 2010–11 Búsqueda con información 9
Ejemplos de heuŕıstica
⊲ Problema del 8-puzzle:
⊲ Primera heuŕıstica: Número de piezas descolocadas respecto suposición en el estado final.
⊲ Ejemplo:
H = 0
7 5
2 8 3
1 6 4 4
1 2 3
567
8
H = 4
IIA 2010–11 Búsqueda con información 10
Ejemplos de heuŕıstica
⊲ Problema del 8-puzzle:
⊲ Segunda heuŕıstica: Suma de las distancias Manhattan de cadapieza a donde debeŕıa estar en el estado final.
⊲ Ejemplo:
7 5
2 8 3
1 6 4 4
1 2 3
567
8
H = 0H = 5
IIA 2010–11 Búsqueda con información 11
Búsqueda voraz greedy
⊲ Expandir los nodos con heuŕıstica más baja preferentemente.
⊲ Ordenar la frontera por heuŕıstica, de menor a mayor.
⊲ Siempre elige expandir lo que estima que esta más cerca delobjetivo.
⊲ Su rendimiento dependerá de la bondad de la heuŕıstica usada.
IIA 2010–11 Búsqueda con información 12
Búsqueda voraz para el problema del paseante
⊲ Ejemplo con estado final(-3).
1
01
H = 4
2−1
−23
−34
H = 3
H = 2
H = 1
H = 0
IIA 2010–11 Búsqueda con información 13
Búsqueda voraz para el problema del viaje
Cádiz Córdoba Huelva Málaga2
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 2010–11 Búsqueda con información 14
Búsquedavorazdel8-puzzle(primeraheuŕıstica)
1
75
28
3
16
4
H =
4
2
5
28
3
16
4
7
H =
5
75
28
3
14
6
H =
3
728
3
16
4
5
H =
5
5
28
3 4
761
H =
3
75
23
14
6
H =
3
8
728
3
1
65
4
H =
4
3
53 4
768
21
H =
3
5
2
4
6
H =
4
83
71
53
14
7682
H =
2
75
2 14
63 8
H =
4
4
753 4
6
12
8
H =
0
3 4 5
H =
2
12
78 6
753
6
12 8
4
H =
1
5 6
7
IIA2010–11Búsquedaconinformación15
Búsquedavorazdel8-puzzle(segundaheuŕıstica)
1 2
75
23
14
6
H =
3
8
75
28
3
16
4
H =
5
5
28
3
16
4
7
H =
6
75
28
3
14
6
H =
4
728
3
16
4
5
H =
6
5
28
3 4
761
H =
5
728
3
1
65
4
H =
5
3
53
14
7682
H =
2
75
2 14
63 8
H =
4
753 4
6
12
8
H =
0
3 4 5
H =
2
12
78 6
753
6
12 8
4
H =
1
6
54
IIA2010–11Búsquedaconinformación16
Implementación
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 2010–11 Búsqueda con información 17
Implementación
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 2010–11 Búsqueda con información 18
Búsqueda A∗
⊲ Objetivo de la busqueda A∗: Conseguir buenas soluciones (ópti-mas).
⊲ Idea: asignar a cada nodo n un valor f (n) = g(n) + h(n),
g(n): coste del camino hasta n.
h(n): heuŕıstica del nodo, estimación del coste de un caminoóptimo desde n hasta un estado final.
f (n): estimacion del coste total de una solucion óptima quepasa por n.
⊲ Seleccionar siempre el nodo con menor valor de f .
⊲ Ordenar la cola frontera en orden creciente respecto a f .
IIA 2010–11 Búsqueda con información 19
Búsqueda 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 2010–11 Búsqueda con información 20
Propiedades de A∗
⊲ Sea h∗ el coste de un camino óptimo desde n hasta un estadofinalu f ∗(n) = g(n) + h∗(n) coste total de una solución óptima que pasa por n.
⊲ En la práctica no conocemos h∗ y usamos una función heuŕısticah que estima h∗.
⊲ Posibilidades:
h = 0, no hay reducción del árbol de búsqueda
h = h∗, estima ción perfecta, no hay búsqueda
0 ≤ h ≤ h∗, heuŕıstica admisible.
⊲ Usando una heuŕıstica admisible la búsqueda es completa y en-cuentra siempre una solución óptima.
IIA 2010–11 Búsqueda con información 21
Implementación
⊲ Los valores se guardan como v(F,H,C) donde C es el coste delcamino recorrido, H es el valor de la heuŕı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 2010–11 Búsqueda con información 22
Implementación
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 2010–11 Búsqueda con información 23
Bibliograf́ıa
⊲ Borrajo, D. y otros. Inteligencia artificial: Métodos y técnicas(Centro de estudios Ramon Areces, 1993).
⊲ Cortés, U., Béjar, J. y Moreno, A. Inteligencia articial(Ediciones UPC, 1994).
⊲ Fernández, S.; González, J. y Mira, J. Problemas resueltos deInteligencia Articial Aplicada (Busqueda y representacion)(Addison Wesley, 1998).
IIA 2010–11 Búsqueda con información 24
Top Related