Métodos de Búsqueda Informados Esquema

Anuncio
Métodos de Búsqueda Informados
Tema 4
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
1
Tema 4
2
Esquema
♦ Introducción
♦ Búsqueda primero el mejor
- búsqueda voraz
- búsqueda A*
♦ Funciones heurı́sticas
♦ Algoritmos de mejora iterativa
- ascenso de gradiente
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Introducción
Las estrategias de búsqueda no informada resuelven problemas mediante
generación sistemática de estados, pero son muy ineficientes
Vamos a ver cómo las estrategias de búsqueda informada o heurı́stica,
usando conocimiento especı́fico del problema, pueden resolver problemas más
eficientemente
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
3
Búsqueda primero el mejor
A partir del algoritmo de búsqueda general, introduciremos conocimiento
especı́fico del problema al insertar los nodos sucesores en la cola mediante
una función de evaluación:
medida de lo “deseable” (o lo “indeseable”) de expandir un nodo
Expande primero el nodo no expandido más “deseable”
Implementación:
function BEST-FIRST-SEARCH( problem, EVAL-FN) returns a solution sequence
inputs: problem, a problem
Eval-Fn, an evaluation function
Queueing-Fn a function that orders nodes by EVAL-FN
return GENERAL-SEARCH( problem, Queueing-Fn)
notar que un nombre más adecuado serı́a “búsqueda primero el que aparentemente es mejor”
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
4
Variantes basadas en distintos tipos de funciones de evaluación:
búsqueda voraz (greedy search)
búsqueda A*
Utilizan una estimación del coste del estado actual al objetivo más cercano
y tratan de minimizarlo
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
5
ejemplo: mapa de Rumanı́a con costes de operador en km
71
75
Oradea
Neamt
Zerind
87
151
Iasi
Arad
140
92
Sibiu
99
Fagaras
118
Vaslui
80
Rimnicu Vilcea
Timisoara
111
Lugoj
Pitesti
97
142
211
70
98
Mehadia
75
Dobreta
146
85
101
138
120
Hirsova
Urziceni
86
Bucharest
90
Craiova
Giurgiu
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Eforie
Straight−line distance
to Bucharest
Arad
366
Bucharest
0
Craiova
160
Dobreta
242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia
241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu Vilcea 193
Sibiu
253
Timisoara
329
Urziceni
80
Vaslui
199
Zerind
374
Tema 4
6
búsqueda voraz
La función de evaluación es h(n) (función heurı́stica):
estimación del coste del nodo al objetivo
Expande primero el nodo no expandido que supone acercarse más al objetivo
(∼ supone un mayor “bocado” en el coste que resta hasta el objetivo)
Implementación:
Eval-Fn = h
Ejemplo de función heurı́stica para el problema de hallar rutas en Rumanı́a:
hDLR (n) = distancia en lı́nea recta de n a Bucarest
h puede ser cualquier función siempre y cuando h(n) = 0 en los nodos que
representan estados objetivo
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
7
ejemplo de búsqueda voraz
Arad
h=366
Arad
Sibiu
h=253
Timisoara
h=329
Zerind
h=374
Arad
Sibiu
Timisoara
h=329
Arad
Fagaras
Oradea
h=366
h=178
h=380
Zerind
h=374
Arad
Rimnicu
h=193
Sibiu
Timisoara
h=329
Arad
Fagaras
h=366
Sibiu
h=253
Zerind
h=374
Oradea
Rimnicu
h=380
h=193
Bucharest
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides h=0
Tema 4
8
Para el problema de hallar una ruta entre Arad y Bucarest, la búsqueda voraz
con el heurı́stico hDLR(n):
encuentra una solución sin expandir ningún nodo que no esté incluı́do
en la misma (coste de búsqueda mı́nimo),
aunque la solución no es óptima
notar que hDLR (n):
necesita de las coordenadas de las ciudades del mapa
es útil porque sabemos que las carreteras entre dos ciudades tienden
a ser rectas (conocimiento especı́fico del problema)
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
9
La búsqueda voraz:
es propensa a comienzos erróneos
como la búsqueda primero en profundidad, prefiere seguir un camino
hasta el final, por lo que no es completa ni óptima
Sus propiedades:
Completa?? No: puede caer en caminos infinitos, con bucles, p.e.
Iasi → Neamt → Iasi → Neamt →
Completa en espacios finitos evitando estados repetidos
Tiempo?? O(bm) (se deben recorrer todos los nodos)
Espacio?? O(bm) (se deben almacenar todos los nodos)
Optima?? No
Las complejidades temporal y espacial pueden reducirse sustancialmente con
un buen heurı́stico
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
10
búsqueda A*
La idea es combinar:
la búsqueda voraz, que minimiza el coste al objetivo h(n)
la búsqueda de coste uniforme, que minimiza el coste acumulado g(n)
La función de evaluación será f (n) = g(n) + h(n):
estimación del coste total del camino más barato al objetivo a través
del nodo n
Expande primero el nodo no expandido que conlleva un camino con menor
estimación de coste
Implementación:
Eval-Fn = g + h
La búsqueda A* es completa y óptima siempre que h(n) sea un heurı́stico
admisible:
estimación del coste del nodo al objetivo que no supera el coste real
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
11
ejemplo de búsqueda A*
Arad
f=0+366
=366
Sibiu
f=140+253
=393
Arad
Timisoara
f=118+329
=447
Zerind
f=75+374
=449
Sibiu
Arad
Timisoara
f=118+329
=447
Zerind
f=75+374
=449
Arad
Fagaras
Oradea
Rimnicu
f=280+366
f=239+178
f=146+380
f=220+193
=646
=417
=526
=413
Arad
Timisoara
Zerind
f=118+329
f=75+374
=447
=449
Arad
Fagaras
Oradea
Rimnicu
f=280+366
f=239+178
f=146+380
=646
=417
=526
Craiova
Pitesti
Sibiu
f=366+160
f=317+98
f=300+253
=526
=415
=553
Sibiu
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
12
Si h es un heurı́stico admisible, f no decrecerá a lo largo de todo camino
desde la raı́z, con lo que podremos dibujar contornos en el espacio de estados:
O
N
Z
I
A
S
380
F
V
400
T
R
P
L
H
M
U
B
420
D
E
C
G
A* expande nodos en bandas de valor de f creciente: es completa y óptima
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
13
Propiedades de la búsqueda A*:
Completa?? Sı́, excepto si hay infinitos nodos con f ≤ f (G)
Tiempo?? En general, exponencial con la longitud de la solución
Espacio?? O(bd) (se deben almacenar todos los nodos)
Optima?? Sı́, porque no expande la banda fi+1 hasta haber terminado con
la fi
Además: ningún otro algoritmo óptimo, para cualquier heurı́stico, expande
menos nodos que la búsqueda A*
Algunos algoritmos recientes resuelven el problema espacial de A* sin comprometer la completitud y la optimalidad:
IDA* (de iterative deepening A*)
SMA* (de simplified memory-based A*)
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
14
Funciones heurı́sticas
Ejemplos de heurı́sticos admisibles para el puzzle de las 8 piezas:
h1(n) = número de piezas en posición incorrecta
h2(n) = suma de las distancias de las piezas a sus posiciones finales, usando
la distancia de Manhattan de la pieza: suma de las distancias
horizontal y vertical a la posición final
5
4
6
1
88
6
8
7
3
22
7
5
1
Start State
4
2
3
84
6
25
Goal State
h1(Start) =?? 7
h2(Start) =?? 2+3+3+2+4+2+0+2 = 18
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
15
Se puede ver que h2(n) ≥ h1(n) para cualquier nodo ; h2 domina a h1
La dominación se traduce en eficiencia: un heurı́stico dominante expande
menos nodos
notar que se expanden los nodos tales que f (n) < f ∗ ≡ h(n) < f ∗ − g(n),
siendo f ∗ el coste de la solución óptima
Ejemplo: el coste de resolver el puzzle de las 8 piezas mediante las estrategias de búsqueda por profundización iterativa y A* con heurı́sticos h1 y h2
d = 14 profundización iterativa → 3.473.941 nodos
A* con h1 → 539 nodos
A* con h2 → 113 nodos
d = 24 profundización iterativa → ¡demasiados nodos!
A* con h1 → 39.135 nodos
A* con h2 → 1.641 nodos
Es preferible usar una función heurı́stica dominante siempre y cuando
sea admisible
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
16
Un heurı́stico admisible puede obtenerse a partir de la solución exacta a una
versión menos restringida del problema original (problema relajado)
h1(n) y h2(n) pueden verse como soluciones a problemas relajados:
h1(n), al problema en que las piezas pueden moverse directamente a cualquier
posicion
h2(n), al problema donde las piezas pueden moverse a cualquier posición
horizontal o vertical adyacente
A partir de una descripción formal del problema original se pueden generar
automaticamente heurı́sticos: Absolver (Prieditis, 1993)
Es necesario un compromiso entre el coste de la función heurı́stica y
la mejora que supone en la búsqueda
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
17
Algoritmos de mejora iterativa
En muchos problemas el estado objetivo es la solución, siendo irrelevante el
camino por el que se ha obtenido, p.e. el problema de las 8 reinas
La idea de los algoritmos de mejora iterativa es comenzar con una configuración completa e ir modificándola para mejorar su calidad, p.e.
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
18
Los algoritmos de mejora iterativa intentan encontrar “picos” en una “superficie” de estados donde la altura está definida por la función de evaluación:
evaluation
current
state
notar que sólo necesitan información del estado actual
Dentro de los algoritmos de mejora iterativa:
ascenso/descenso de gradiente (hill-climbing o gradient descent)
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
19
ascenso de gradiente
La búsqueda por ascenso de gradiente intenta introducir modificaciones que
mejoren la evaluación del estado actual:
function HILL-CLIMBING( problem) returns a solution state
inputs: problem, a problem
static: current, a node
next, a node
current MAKE-NODE(INITIAL-STATE[problem])
loop do
next a highest-valued successor of current
if VALUE[next] < VALUE[current] then return current
current next
end
Aunque parece como “escalar el Everest con niebla espesa y con amnesia”, a menudo es la estrategia adecuada en problemas complicados
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
20
Cuando hay varios sucesores posibles se puede escoger uno al azar. Inconvenientes de ésto:
• máximos locales, picos más bajos que el pico más alto del espacio de
estados
• mesetas, áreas donde la función de evaluación es casi plana
• crestas, con pendientes laterales pronunciadas pero con una pendiente
hacia el pico muy suave
En los casos anteriores el algoritmo no progresa ; una solución es realizar
una serie de búsquedas desde distintos puntos iniciales elegidos aleatoriamente (ascenso de gradiente con reinicio aleatorio)
El éxito de la búsqueda por ascenso de gradiente depende del perfil de
la superficie que se recorre
c S.Russell & P.Norvig, 1998)
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4
21
Descargar