Está en la página 1de 11

Métodos de Búsqueda Informados

Tema 4

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 1

Esquema
♦ Introducción
♦ Búsqueda primero el mejor
- búsqueda voraz
- búsqueda A*
♦ Funciones heurı́sticas
♦ Algoritmos de mejora iterativa
- ascenso de gradiente

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 2
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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 aparente-
mente es mejor”

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 5

ejemplo: mapa de Rumanı́a con costes de operador en km

Straight−line distance
Oradea to Bucharest
71
Neamt Arad 366
87 Bucharest 0
Zerind 151
75 Craiova 160
Iasi Dobreta 242
Arad 140 Eforie 161
92 Fagaras 178
Sibiu 99 Fagaras
Giurgiu 77
118
Vaslui Hirsova 151
80
Iasi 226
Rimnicu Vilcea Lugoj
Timisoara 244
142 Mehadia 241
111 211 Neamt 234
Lugoj 97 Pitesti
Oradea 380
70 98 Pitesti 98
146 85 Hirsova
Mehadia 101 Urziceni Rimnicu Vilcea 193
75 138 86 Sibiu 253
Bucharest Timisoara 329
Dobreta
120
90 Urziceni 80
Craiova Eforie Vaslui 199
Giurgiu Zerind 374

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 7

ejemplo de búsqueda voraz

Arad
h=366
Arad

Sibiu Timisoara Zerind


h=253 h=329 h=374
Arad

Sibiu Timisoara Zerind


h=329 h=374

Arad Fagaras Oradea Rimnicu Arad


h=366 h=178 h=380 h=193
Sibiu Timisoara Zerind
h=329 h=374

Arad Fagaras Oradea Rimnicu


h=366 h=380 h=193

Sibiu Bucharest
h=253 h=0

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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)

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 11

ejemplo de búsqueda A*
Arad
f=0+366 Arad
=366

Sibiu Timisoara Zerind


f=140+253 f=118+329 f=75+374 Arad
=393 =447 =449

Sibiu Timisoara Zerind


f=118+329 f=75+374
=447 =449
Arad Fagaras Oradea Rimnicu Arad
f=280+366 f=239+178 f=146+380 f=220+193
=646 =417 =526 =413
Sibiu 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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
380 S
F
V
400
T R

L P

H
M U
B
420
D
E
C
G

A* expande nodos en bandas de valor de f creciente: es completa y óptima

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 com-
prometer la completitud y la optimalidad:
IDA* (de iterative deepening A*)
SMA* (de simplified memory-based A*)

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 5
1 4
2 3

6 1 88 6
8 84

7 3 22 7 6 25

Start State Goal State

h1(Start) =?? 7
h2(Start) =?? 2+3+3+2+4+2+0+2 = 18

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 estrate-
gias 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
Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 
c S.Russell & P.Norvig, 1998) 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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 configu-
ración completa e ir modificándola para mejorar su calidad, p.e.

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 18
Los algoritmos de mejora iterativa intentan encontrar “picos” en una “super-
ficie” 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)

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) 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 amne-
sia”, a menudo es la estrategia adecuada en problemas complicados

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 20
Cuando hay varios sucesores posibles se puede escoger uno al azar. Inconve-
nientes 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 aleatoria-
mente (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

Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides 


c S.Russell & P.Norvig, 1998) Tema 4 21