Sie sind auf Seite 1von 25

Heurística

l Del griego heuriskein (encontrar,


descubrir).
» Arquímedes  ¡EUREKA!
» Uso en IA
– 1957, (G. Polya): Estudio de métodos para
Búsqueda heurística descubrir formas de resolución de problemas
– 1963, (Newell): Proceso que puede resolver un
problema pero sin garantías de que los haga
– El 1er. Laboratorio de Sistemas Expertos (en
Stanford) se denominó HPP: Heuristic
Programming Project
– Actualmente:
l Cualquier técnica que mejore la ejecución en
el caso promedio durante las tareas de
resolución de problemas, pero que no
mejore necesariamente el peor caso.

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

» “Arad, Sibiu, Fagaras, Bucharest”,


l Es más corto:
Se expande primero el nodo no expandido más “deseable”
» “Arad, Sibiu, Rimnicu, Pitesti, Bucharest”
5 6

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)

Ejemplo de función heurística para el problema de hallar rutas


en Rumanía
4. Se llega a Bucharest, solución encontrada
hDLR(n) = distancia en línea recta de n a Bucarest. 7 8

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: Iasi l m=máxima profundidad del árbol de

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

en donde h*(n)=“mínima distancia desde n


hasta el objetivo”

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

» Es consecuencia directa de que: minimo  valor  cos tes


– Un subgrafo de una heurística monótona da ~

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)

l Análisis del problema:


» Una solución típica tiene unos 22 pasos
» Factor de ramificación (b): b  3
– Hueco en centro  4 movimientos
– Hueco en lado  3 movimientos
– Hueco en esquina  2 movimientos
» Complejidad: h1(start) = 7
– La búsqueda exhaustiva hasta d = 22 requiere (Errores posición: número fichas mal colocadas)
visitar h2(start) = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18
(suma de distancias de Manhattan)
322  3.1*1010 estados h1 y h2 monótonas

– Si se consideran estados repetidos, el número n, h2 (n)  h1 (n)  h2 domina a h1


de estados distintos a visitar es 9!/2=181.440
(reducción de factor 170.000) Observaciones:
1. h1(n) expande al menos los mismos nodos que h2(n),
si un nodo es expandido por h2(n) también es
expandido por h1(n).
2. La dominación se traduce en eficiencia: una
heurística dominante expande menos nodos.
3. Lo mejor es usar una heurística dominante siempre y
cuando sea admisible.
31 32

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

» El algoritmo realiza búsqueda en


profundidad para los valores L=0,1,2,... en
los conjuntos:
K L  {n / f (n)  CL } 35 36

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

Bucle que, a partir de un estado, busca el estado vecino


Problema de los extremos locales que aumente el valor de la función objetivo
Función objetivo Condición de parada: cuando encuentra
un “pico”. Ningún estado vecino tiene
valor mayor en la función con respecto
al estado actual (si se utiliza h,
entonces el vecino con h menor)

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