Académique Documents
Professionnel Documents
Culture Documents
1 2
1
Estrategias de búsqueda
informada Búsqueda “primero el mejor” I
l Las estrategias de búsqueda sin información l Búsqueda Best-first
suelen ser muy ineficientes. » Se incorpora una función de evaluación
l Búsqueda informada: las estrategias que usan (eval-fn) que mide “lo deseable” de
la información de definición del problema y el expandir un nodo.
coste del estado actual al objetivo – Se expande el nodo con f(n) menor
(información específica del problema) – Best-first se puede implementar como una cola
de prioridad, estructura de datos que mantiene la
l Estrategias: frontera en orden ascendente de los valores de f
– Existe una variedad importante de algoritmos
» Best first (búsqueda primero el mejor)
primero-el-mejor con diferentes funciones de
» Búsqueda Avara evaluación. Una componente esencial de los
» A* mismos es la función heurística h(n).
» IDA* l h(n)= valor estimado del camino de coste
» Mejora iterativa mínimo desde el nodo n al nodo objetivo
– Hill climbing l Todas las funciones heurísticas deben
– Simulated Annealing cumplir:
» h(n) >= 0, para todo nodo n
» h(n) = 0, si n es un nodo objetivo
3 4
2
Búsqueda “primero el mejor” II Búsqueda avara, I
l Búsqueda primero el mejor donde
» eval-fn(nodo) = h(nodo)
l Búsqueda Best-first l Suele encontrar soluciones rápido
» Algoritmo: » No suelen ser óptimas
» No siempre se encuentran (estados
repetidos ciclos)
A partir del algoritmo de búsqueda general, introducimos conocimiento – Ej. de situación anómala: Ir de Iasi a Fagaras. Si
específico del problema al insertar los nodos sucesores en la cola no eliminamos repeticiones se entra en un ciclo.
mediante una función de evaluación.
V
Problema a I
resolver N I
Función evaluación: medida de lo “deseable” de expandir un
nodo.
» Ejemplo: Mapa de carreteras
– Objetivo: Viajar desde Arad hasta Bucarest.
– Heurística h: distancias medidas en línea recta
(sobre el mapa) entre Arad y Bucarest
– Solución obtenida por búsqueda avara:
l Nodos expandidos Encuentra el camino
3
Búsqueda avara: mapa de
Problema: mapa de carreteras carreteras
2. Expandir: Sibiu (h menor, 253)
Se quiere viajar de Arad a Bucarest.
Inicio por ciudad de partida
374
366
1. Expandir: Arad
329 3. Expandir: Fagaras (h menor, 178)
4
Búsqueda avara, II Búsqueda avara, III
l Una situación anómala: l En resumen:
» Al no eliminar repeticiones, en el problema » No es óptimo ni completo.
de ir desde “Iasi” hasta “Fagaras”: » En el peor caso:
I – Complejidad temporal: O(b m )
m
V – Complejidad espacial: O(b )
N
l Se almacenan todos los nodos en memoria
I búsqueda
N: Neamt
N V V: Vaslui
......
9 10
5
Búsqueda A*: mapa de
Algoritmo A*, I carreteras
l Algoritmo A*, combinación de:
1. Expandir: Arad
» Búsqueda avara: Inicio por ciudad de partida
– Reduce coste de búsqueda, pero no es óptima ni
completa.
» Búsqueda de coste uniforme:
– Es completa y óptima pero ineficiente.
l Se define la función “f(n)”:
» f(n)=g(n)+h(n)
» f(n)=coste estimado de la solución de
2. Expandir: Sibiu (f menor, 393)
menor coste que pasa por “n”
l Algoritmo:
function A*-SEARCH (problem)
returns a solution or failure
return BEST-FIRST-SEARCH(problem, g+h)
f=291+380
=671
11 12
6
Búsqueda A*: mapa de
carreteras Algoritmo A*, II
l Heurística admisible:
3. Expandir: Rimnicu (f menor, 413)
» Una función heurística “h” es admisible si
h(n) h * (n), n
f=291+3
l Ejemplo:
80 » En el mapa de carreteras, h es admisible.
=671
» Solución obtenida por A*:
– Orden de expansión: “A, S, R, P, F, B”
Bucharest
Sibiu
– Encuentra la solución: “A, S, R, P, B”
f=450
f=338+25 – Aplicación algoritmo (ver siguiente página)
+0
3 Rimnicu
Bucharest
5. Expandir: Fagaras (f menor, 417) Craiova
– Es la mejor solución.
f=414+1
f=418
f=455+ l Se va a tener el resultado:
93
+0
160 » Si h es admisible, A* es completo y
4. Expandir: Pitesti (f menor, 415)
óptimo.
6. Se llega a Bucharest, solución encontrada
13 14
7
Algoritmo A*, III Algoritmo A*, IV
f=0+366=366 l Una heurística es monótona cuando:
1
A
nm , h(n) h(m) cos te(nm )
f=140+253=393 f=75+374=449
T nm
S Z n m
2 f=118+329=447
l Si h es monótona h admisible.
f=220+193=413
5 f=291+380=671 » Dems:
O 3
A F R » Sea n un nodo, y sea un camino desde
f=280+366=646 f=239+178=417 n hasta el objetivo:
S n0n1 ...nk
f=300+253=553 donde n0 n y nk es un nodo objetivo.
h(n) h(nk ) h(n0 ) h(nk )
S B C
4 h(n0 ) h(n1 ) h(n1 ) ... h(nk 1 ) h(nk 1 ) h(nk )
f=366+160=526
f=591 f=450 P f=317+98=415 cos te( n0n1 ) ... cos te( nk 1nk ) cos te( n0 nk ) cos te()
Por tanto h monótona
6 B R
C h(n0 ) 0 h(n) cos te(),
f=418 f=607
f=615 h(n) h *(n), n
15 16
8
Algoritmo A*, V Propiedades de A*, I
l h admisible monótona A
h=1 l Teorema: A* es óptimo y completo si h es
» Dems: Contraejemplo 3 1 admisible
» Válido en grafos localmente finitos
h=1
B C – con factores de ramificación finitos
1 h=4
3 – donde para todo operador: C () 0,
» Conjuntos de nivel (caso de heurísticas monótonas):
l Si h es una heurística D h=0 – Si búsqueda uniforme (h(n)=0): bandas circulares
h monótona f creciente – si la heurística es más exacta (h h*), los conjuntos
de nivel se dirigen directamente al objetivo.
» En el problema del mapa, h es monótona
(“d” es la distancia en línea recta; “C” es el
coste del arco)
h( A) h( B) d ( A, B) C ( A, B)
» y f es creciente (ver gráfico del ejemplo)
C(n,m)
n m
h(n) h(m)
17 18
9
Propiedades de A*, II Propiedades de A*, III
» A* es óptimo » A* es completo
» Hipótesis » Hipótesis:
– (1) h es admisible – (1) h es admisible
– (2) G es óptimo con coste de camino f* – (2) factor de ramificación b, b
(3) G’ es objetivo subóptimo g (G ') f (3) coste de operadores, C () 0,
*
– –
– Dems: – Dems: En algún momento se llegará a que
Sea n un estado en el camino óptimo a G y f=“coste de algún estado objetivo”, salvo que
supongamos que el algoritmo selecciona existan infinitos nodos con f(n)<f*, lo cual
para expandir G’ en lugar de G, entonces sucedería si:
por (1) y (2) l Un nodo tuviera b (¡!)
f * f ( n) l Hubiera un camino de coste finito pero con
Y si se ha escogido G’ para expandir infinitos nodos. Esto significaría que, por (1)
y (3)
f (n) f (G' ) n / f (n) f*
Por tanto
Por tanto, el algoritmo debe acabar.Y si
f * f (n) f (G ') g (G ') h(G ') g (G ')
acaba, es que encuentra una solución. q.e.d.
Es decir
f * g (G ')
que es una contradicción con (3). q.e.d.
19 20
10
Propiedades de A*, IV Propiedades de A*, V
Si h es monótona, y A* ha expandido un » Complejidad (espacial y temporal):
nodo n, entonces g(n)=g*(n) ~ ~ f*
O(b ), d
d
lugar a una heurística monótona (que es, por d “profundidad” de la mejor solución
tanto, admisible), considerando la nueva
heurística h’=h-g(n) Se puede demostrar que la complejidad del
algoritmo sigue siendo exponencial si no ocurre
– h admisible --> A* completo y óptimo
que:
A* es óptimamente eficiente
| h(n) h * (n) | O(log h * (n) |, n
» Ningún otro algoritmo óptimo expandirá
menos nodos que A* En casi todas las heurísticas, el error es al
menos proporcional a h* y, por tanto,
» Si un algoritmo no expande todos los normalmente se tiene complejidad exponencial.
nodos entre el origen y el contorno óptimo, De todos modos, el uso de heurísticas produce
corre el riesgo de perder la solución enormes mejoras con respecto a la búsqueda no
óptima. informada.
– Dems: ver Dechter – Pearl (1985) La complejidad espacial suele ser un mayor
problema que la temporal.
La búsqueda de coste uniforme es un
caso particular de A* (h=0)
21 22
11
Búsqueda A*: mapa de
carreteras Un ejemplo de A*, I
h=6
A
1 4
2
h=5
Completa? Si h=2
Si h es admisible es B h=5 C D
Optima? Si, porque no expande la banda fi+1 completa y óptima
hasta haber terminado con la fi 4
5 1 4 2
Complejidad espacial y O (bd) , d = f* / minimo-valor-costes h=4 1
temporal?
d “profundidad” de la mejor solución.
F h=5 E h=2
I
3
1 2
h=1 3
h=4 J
G H
Ningún otro algoritmo óptimo, para cualquier h=1
heurística, expande menos nodos que la búsqueda A* 5
6
6
K L h=0
h=0
23 24
12
Un ejemplo de A*, II Un ejemplo de A*, III
h=6, f=6=0+6
A l Si hubiéramos considerado eliminación
1 4
1 3 de estados repetidos, entonces:
2 h=2, f=6=4+2
h=5, f=6=1+5 D » Habríamos eliminado a partir de la
2 h=5, f=7=2+5 5
1 expansión de E (de más a la izq).
B C 2
f=6=5+1 4 l Al ser h monótona:
5 4 1 H – A* obtiene la mejor solución
4 12
f=9=5+4 f=7=3+4 I 6 – Al eliminar estados repetidos, ya que:
E » Si h es monótona, entonces si un nodo
F E 9 6 f=10=8+2 J
ha sido expandido --> g(n)=g*(n)
7 3 f=7=6+1
f=11=6+5 2 5 entonces, bastaría con:
2 3 f=10=10+0
1) Si está repetido en los nodos ya
K L expandidos, eliminar directamente el “nodo
f=11=7+4
10 f=11=11+0
nuevo”
H G 13
G f=9=5+4
H 8 6 2) Si está repetido en las hojas, quedarse
f=9=8+1
f=7=6+1 f=12=12+0 con el mejor entre el nodo “viejo” y el
6 11 6 K “nuevo”
5 5
f=14=14+0 K f=11=11+0 L f=11=11+0
K L
En caso de empate, se toma el
f=13=13+0 antes generado 25 26
13
Un ejemplo de A*, IV Un ejemplo de A*, IV
» Si eliminamos estados repetidos, en el » Solución: cuando ocurre una aparición de
caso de una h admisible pero no un estado ya expandido, mirar si su valor
monótona, puede sucede los siguiente: de f es mejor que el de otras apariciones
h=1 anteriores, si así es entonces habría que
A eliminar lo que ya se había expandido, y
3 1 expandir la nueva aparición.
h=1 f=1
B C h=4 1
1 A
3
f=1 1
f=5 3
D h=0 A 2
f=4 C
Se eliminaría B
f=5 3
2 4 f=3
f=4 C B
B
D 5
Solución encontrada f=3 f=6 f=5
subóptima
B D
4 D
f=6 Aunque B se expandió (B está en la lista de cerrados),
No se expande B este B es mejor, por lo que no se sigue por el otro
camino (Se elimina D de lista de abiertos)
(B está en la lista de cerrados) 27 28
14
Exactitud de heurísticas, I Exactitud de heurísticas, II
l Factor efectivo de ramificación b*: l Dominación
» Medida de la calidad de una heurística h2 h1 n, h2 (n) h1 (n)
» N = número de nodos expandidos por A* (incluido el
nodo de la mejor solución) » Si una heurística h2 domina a otra h1
» d = profundidad de la solución obtenida por A* (supuestas ambas monótonas), entonces
» b* = factor de ramificación de un árbol de h1 expande, al menos, los mismos nodos
profundidad d y N + 1 nodos. que h2.
» Idea intuitiva:
(b*) d 1 1
N 1 1 b * (b*) ... (b*)
2 d
– Si f(n)<f*, entonces n se expande. Pero esto es
b * 1 equivalente a h(n)<f*-g(n). Por tanto, si ese nodo
» Resolución no algebraica, sino con métodos de es expandido por h2, también lo es por h1
cálculo numérico.
» Ejemplo: d=5, N=52 b* = 1.92
» Normalmente, para una heurística h, b* constante
en varias instancias del problema.
» La bondad de una heurística se mide por la
aproximación b* 1
» Si h h*, entonces b*1
» Si h 0 (coste uniforme), entonces b* b
29 30
15
Ejemplo de dominancia I, (8-puzzle) Ejemplo de dominancia II, (8-puzzle)
16
Ejemplo de dominancia III, Creación de funciones
(8-puzzle) heurísticas
l Método de relajación
» Un problema con menos restricciones sobre las acciones
se denomina relajado
Entre: búsqueda iterativa en profundidad (IDS), A*(h1) y A*(h2)
» El coste de la solución óptima de un problema relajado es
una heurística admisible para el problema original (la
Cual nos ofrece un coste mejor de búsqueda? A*(h2)
heurística derivada es consistente, verifica la desigualdad
triangular)
Cual nos ofrece un coste peor de búsqueda? IDS » Ejemplo:
Cual tiene el mejor b* (factor efectivo de ramificación)? A*(h2) – problema original (8-puzzle):
l Si A es adyacente (vertical u horizontal) a B y B es
blanco, entonces mueve ficha desde A hasta B
– Problemas relajados:
l 1) Si A es adyacente a B, entonces mueve ficha desde
A hasta B
l 2) Si B es blanco, entonces mueve ficha desde A hasta
B
l 3) mueve ficha desde A hasta B
» Heurísticas:
– h* para problema 1) = heurística h2 (Manhattan)
– h* para problema 3) = heurística h1 (errores posición)
– h* para problema 2) = heurística de Gaschnig: Número
mínimo de movimientos necesarios para alcanzar el objetivo.
Consideramos un movimiento coger una ficha de una
posición y depositarla en el hueco vacío.
Medias de 100 instancias del 8-puzzle, con la solución a varias distancias. l Método de la heurística compuesta:
» Si h1, h2, ..., hn son admisibles entonces
33 » h(n) = max{h1, h2, ...hn} también es admisible 34
17
Algoritmo IDA*, I Algoritmo IDA*, II
l Iterative-Deepening A*-search (h l Un ejemplo sencillo (h=0):
monótona).
» Adapta a A* la idea de búsqueda en A
profundidad iterativa 1
1 3 3
» El criterio de corte es el coste f = g + h (no
la profundidad) B C D E
» Útil para problemas de costes unitarios 4 4 2 2 2
3 3 1
» h monótona F G H I J K L M
l Algoritmo:
» s=nodo inicial
» Se definen:
si k = 0
C0 f ( s) Se producen 4 iteraciones: f<=0, f<=1, f<=3, f<=4
si k>=1: Ck min{ f (n) / f (n) Ck 1}
n
18
Partiendo del ejemplo... Algoritmo IDA*, III, a
h=6 f=6
A A
1 4 1
2 2 3
h=5 f=6
B C D
h=2 f=7 f=6
B h=5 C D
5 4 4
1 4 f=6
2 E J
F H I
h=4 1 f=9 f=7
F h=5 E h=2 f=11 f=10
I
3
K L
1 2
h=1
f=11 f=10
h=4 3
G H J
h=1
6 5
Ejemplo de aplicación de IDA*, iteración f<=6
6
K L h=0
h=0
37 38
19
Algoritmo IDA*, III, b Algoritmo IDA*, III, c
f=6 f=6
A A
1 1 9
2 2 5
f=6 6 f=6
B C f=7 D B C f=7 D
3 f=6 f=6
8 6 11
3 10
f=7 7 f=7
F E E H I J F E E H I J
f=9 4 f=10 f=7 f=9 f=10 f=7
f=11 f=6 f=11 f=6
7
5 K L 8 K L
G H G H
f=7
f=11 f=10 G 4 H f=9 f=7
f=11 f=10
f=9
f=11 f=9
K L L
K K
f=12 f=11 K L
f=11 f=12 f=11
Ejemplo de aplicación de IDA*, iteración f<=7 f=14 f=13
Faltarían otras dos iteraciones: f<=9, f<=10 Ejemplo de aplicación de IDA*, iteración f<=9
39 40
20
Algoritmo IDA*, III, d Algoritmo IDA*, IV
f=6 l IDA* es completo y óptimo, pero al ser
A
1 9 iterativo en profundidad, necesita
2 5
f=6 menos memoria. Complejidad espacial:
B C f=7 D
f=6
~ ~ f*
6 O(b * d ), d
3 10 minimo valor cos tes
f=7 ~
F E E H I J d “profundidad” de la mejor solución
f=11 f=9 f=6 f=10 f=7
7 11 l Complejidad temporal:
8 K L
G H » En problemas como el mapa de carreteras,
G 4 H f=9 f=7
f=11 f=10
cada iteración puede añadir sólo un nodo
f=11 f=9 nuevo. Por tanto, si A* expande N nodos,
L IDA* necesitará N iteraciones y expandirá
K K 1+2+...+N= O( N 2 )
K L
f=11 f=12 f=11
– Una solución a este problema podría ser
f=14 f=13 discretizar los posibles valores de Ck (múltiplos
de ). Se tendrían heurísticas -admisibles.
Ejemplo de aplicación de IDA*, iteración f<=10 En tal caso, el número de f*
41 iteraciones sería:
42
21
Algoritmos de mejora
iterativa, I Perfiles del espacio de estados
l Métodos basados en teoría de la optimización.
Se trata de encontrar los puntos de una
superficie cuyo valor de la función de global max
evaluación (por ejemplo una heurística) sea
máximo o mínimo.
Función objetivo
l No es relevante el camino seguido para
alcanzar el objetivo.
l Utilizan exclusivamente la información del
estado actual y los de su entorno.
l Si se puede elegir más de un sucesor que local max
mejore el inicial (con el mismo valor de la
función de evaluación), se elige al azar.
l Tienen dos ventajas primordiales:
» Utilizan muy poca memoria (generalmente
constante)
» Encuentran soluciones en espacios de estados
continuos (infinitos)
l Algoritmos meseta
» Búsqueda con escalada (Hill climbing or greedy
local search)
» Enfriamiento simulado (simulated annealing)
» Algoritmos genéticos, búsqueda tabú, redes
neuronales, método hormiga, etc.
Espacio de estados
43 44
22
Búsqueda con escalada, I Búsqueda con escalada, II
l Búsqueda con escalada:
» Consiste en un bucle que se desplaza
continuamente en la dirección de
Función Objetivo
crecimiento de valores (colina arriba).
» La condición de parada es encontrar un
pico en cuyo entorno no existan valores
mayores que el actual.
» No mantiene un árbol de búsqueda.
– Los nodos sólo almacenan el estado actual y su
valor objetivo.
» Algoritmo: (más adelante)
» Si se puede elegir más de un sucesor que
mejore el inicial (con el mismo valor de la
función de evaluación), se elige al azar.
– Estocástica
– Primera elección
– Reinicio aleatorio
» Inconvenientes:
– Máximos locales
– Zonas llanas (mesetas) Espacio de Estados
– Crestas 45 46
23
Búsqueda con escalada, III Búsqueda con escalada, IV
Inconvenientes:
• Máximos locales: se llega a un pico más bajo que el
pico más alto del espacio de estados.
• Mesetas: áreas donde la función de evaluación es
casi plana, no se puede progresar.
Espacio de estados • Crestas: con pendientes laterales pronunciadas pero
con una pendiente hacia el pico suave.
47 48
24
Enfriamiento simulado, I Enfriamiento simulado, II
l Enfriamiento simulado (Simulated annealing) En vez de elegir el mejor movimiento, se elige un
movimiento aleatorio. Si el movimiento mejora la situación
» Annealing: “Proceso de enfriar lentamente un (E>0), entonces es aceptado
material en estado líquido hasta que se enfría en un
estado cristalino de mínima energía”. El enfriamiento
Si no, el algoritmo acepta el
– Si la temperatura se reduce de manera movimiento con una probabilidad
está planificado
menor a 1, esta probabilidad se
suficientemente lenta en un líquido, el material (schedule[t])
decrementa exponencialmente con el
obtendrá su estado de más baja energía empeoramiento de la evaluación E
(ordenación perfecta).
l Ejemplo:
» Aplicación a CSPs como el de las N-damas:
– Resolución de problema de 1.000.000 de damas en
menos de 50 pasos.
l Problemas de minimización de conflictos (en una
columna al azar mover una dama a la casilla que
cree menos conflictos)
R 2 R 2 R 1
R 1 R R 2 R
R 2 R 2 R La probabilidad también se decrementa con la temperatura.
R 1 2 R Inicialmente son permitidos “malos” movimientos cuando la
temperatura es alta, y cada vez se permiten menos malos
49 movimientos con el decremento de la temperatura. 50
25