BH
BH
BH
Heurstica
Del griego heuriskein (encontrar, descubrir).
Arqumedes Uso en IA EUREKA!
1957, (G. Polya): Estudio de mtodos para descubrir formas de resolucin de problemas 1963, (Newell): Proceso que puede resolver un problema pero sin garantas de que lo haga El 1er. Laboratorio de Sistemas Expertos (en Stanford) se denomin HPP: Heuristic Programming Project Actualmente: Cualquier tcnica que mejore la ejecucin en el caso promedio durante las tareas de resolucin de problemas, pero que no mejore necesariamente el peor caso.
A partir del algoritmo de bsqueda general, introducimos conocimiento especfico del problema al insertar los nodos sucesores en la cola mediante una funcin de evaluacin.
Bsqueda avara, I
Bsqueda el primero mejor donde
eval-fn(nodo) = h(nodo)
V N I
374 366
329
1. Expandir: Arad
Bsqueda avara, II
En resumen:
No es ptimo ni completo. En el peor caso:
Complejidad temporal:
O(b m )
m
O(b ) Complejidad espacial: Se almacenan todos los nodos en memoria m = mxima profundidad del rbol de bsqueda
Algoritmo A*, I
Algoritmo A*, combinacin de:
Bsqueda avara:
Reduce coste de bsqueda, pero no es ptima ni completa.
Algoritmo:
function A*-SEARCH (problem) returns a solution or failure return BEST-FIRST-SEARCH(problem, g+h)
10
Algoritmo A*, II
Heurstica admisible:
DEF: Una funcin heurstica h es admisible si
h(n) h * (n), n
en donde h*(n)=mnima distancia desde n hasta el objetivo Las heursticas admisibles son optimistas en el sentido de que el coste de alcanzar el objetivo h(n), es menor de lo que lo es actualmente h*(n).
Ejemplo:
En el mapa de carreteras, h es admisible. Solucin obtenida por A*:
Orden de expansin: A, S, R, P, F, B Encuentra la solucin: A, S, R, P, B Aplicacin algoritmo (ver siguiente pgina) Es la mejor solucin (A* es ptimo) 11
A
f=140+253=393
1
f=75+374=449
2 S 5 A F
T
f=118+329=447 f=291+380=671
Z
f=220+193=413
3 S
f=239+178=417 f=300+253=553
S
f=591
B
f=450
C
f=366+160=526
4 P f=317+98=415 R
f=607 12
6 B
f=418
C
f=615
Algoritmo A*, IV
Una heurstica es montona cuando:
nm , h(n) h(m) cos te(nm )
n
nm
Si h es montona
Dems: Sea n un nodo, y sea n hasta el objetivo:
donde
h admisible.
un camino desde
es un nodo objetivo.
n0 = n
= n0 n1 ...nk
y
nk
h (n ) h (nk ) = h ( n0 ) h ( nk ) = = h ( n0 ) h( n1 ) + h ( n1 ) ... h (nk 1 ) + h ( nk 1 ) h ( nk ) cos te( n0n1 ) + ... + cos te( nk 1nk ) = cos te( n0nk ) = cos te( )
Por tanto h montona
Algoritmo A*, V
Teorema: h admisible
Dems: Contraejemplo
montona
A 1 h=1 1 C h=4
3 h=1 B 3
En el problema del mapa, h es montona (d: distancia en lnea recta; C: coste del arco)
h( A) h( B ) d ( A, B ) C ( A, B )
f es creciente (ver grfico del ejemplo)
n h(n)
C(n,m)
m h(m)
14
Propiedades de A*, I
Teorema: A* es ptimo y completo si h es admisible
Vlido en grafos localmente finitos con factores de ramificacin finitos donde para todo operador: C ( ) > 0, Conjuntos de nivel (caso de heursticas montonas):
Si bsqueda uniforme (h(n)=0): bandas circulares si la heurstica es ms exacta (h h*), los conjuntos de nivel se dirigen directamente al objetivo.
15
Propiedades de A*, II
Dems: A* es ptimo Hiptesis
(1) h es admisible (2) G es ptimo con coste de camino f* * (3) G es objetivo subptimo g (G ') > f Dems: Como G es subptimo
f ( n) = g ( n) + h( n) f *
Por tanto
16
n / f (n) > f *
Por tanto, el algoritmo debe acabar.Y si acaba, es que encuentra una solucin. cqd.
17
Propiedades de A*, IV
Proposicin: Si h es montona, y A* ha expandido un nodo n, entonces g(n)=g*(n) Es consecuencia directa de que:
Un subgrafo de una heurstica montona da lugar a una heurstica montona (que es, por tanto, admisible), considerando la nueva heurstica h=h-g(n) h admisible A* completo y ptimo
A* es ptimamente eficiente Ningn otro algoritmo ptimo expandir menos nodos que A* (salvo muerte sbita entre nodos n con f(n)=f*)
Si algn algoritmo expande menos nodos corre el riesgo de perder la solucin ptima
Si un algoritmo no expande todos los nodos entre el origen y el contorno ptimo, corre el riesgo de perder la solucin ptima.
Dems: ver Dechter Pearl (1985) 18
Propiedades de A*, V
Complejidad (temporal y espacial):
O(b ), d =
d
~
Se puede demostrar que la complejidad del algoritmo sigue siendo exponencial salvo que el error en la funcin heurstica no crezca ms rpido que el logaritmo del coste del camino ptimo, es decir:
Un ejemplo de A*, I
A 1 h=5 B 5 F h=5 1 G 2 h=4 6 K h=0
20
h=5 C 4 E h=4 3 H 1
J h=1
A 2
h=6, f=6=0+6
4 6
f=6=5+1
3 D 1 4 I
h=2, f=6=4+2
B 5 4
h=5, f=7=2+5
C 1 E 2 9 H G
f=9=5+4 f=7=3+4
4 3 6 K
H 5 J
f=7=6+1 f=10=10+0
f=9=5+4
F
f=11=6+5
E 10 2 3
f=10=8+2
5
f=11=11+0
L 8 12 K L
f=12=12+0
f=11=7+4
G 6
f=14=14+0
f=9=8+1
11
5 L
f=13=13+0
6 K
f=7=6+1
5
f=11=11+0
f=11=11+0
21
A 2
h=6, f=6=0+6
4 5
f=6=5+1
3 D 1 4 I
h=2, f=6=4+2
B 5 4
h=5, f=7=2+5
C 1 9 3 H 2 10 G
f=9=5+4
4 3 6 K
H 6 J
f=7=6+1 f=10=10+0
f=9=5+4
F
f=11=6+5
E 2
f=7=3+4
f=10=8+2
5
f=11=11+0
L 8 12 K L
f=12=12+0
f=11=7+4
G 6
f=14=14+0
f=9=8+1
11
5 L
f=13=13+0
6 K
f=7=6+1
5
f=11=11+0
f=11=11+0
22
23
Se eliminara
f=5
Exactitud de heursticas, I
Factor efectivo de ramificacin b*:
Medida de la calidad de una heurstica N = nmero de nodos expandidos por A* (incluido el nodo de la mejor solucin) d = profundidad de la solucin obtenida por A* b* = factor de ramificacin de un rbol de profundidad d y N + 1 nodos.
Resolucin no algebraica, sino con mtodos de clculo numrico. Ejemplo: d=5, N=52 b* = 1.92 Normalmente, para una heurstica h, b* @ constante en varias instancias del problema. La bondad de una heurstica se mide por la aproximacin b* 1 Si h h*, entonces b* 1 Si h 0 (coste uniforme), entonces b* b 25
Exactitud de heursticas, II
Dominacin
Si una heurstica h2 domina a otra h1 (supuestas ambas montonas), entonces h1 expande, al menos, los mismos nodos que h2.
h2 f h1 n, h2 (n) h1 (n)
Idea intuitiva:
Si f(n)<f*, entonces n se expande. Pero esto es equivalente a h(n)<f*-g(n). Por tanto, si ese nodo es expandido por h2, tambin lo es por h1
26
Complejidad:
La bsqueda exhaustiva hasta d = 22 requiere visitar
27
h1(start) = 7 (Errores posicin: nmero fichas mal colocadas) h2(start) = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18 (suma de distancias de Manhattan) h1 y h2 montonas
Heursticas:
h* para problema 1) = heurstica h2 (Manhattan) h* para problema 3) = heurstica h1 (errores posicin) h* para problema 2) = heurstica de Gaschnig: Nmero mnimo de movimientos necesarios para alcanzar el objetivo. Consideramos un movimiento coger una ficha de una posicin y depositarla en el hueco vaco.
Algoritmo IDA*, I
Iterative-Deepening A*- search
Adapta a A* la idea de bsqueda en profundidad iterativa El criterio de corte es el coste f = g + h (no la profundidad) til para problemas de costes unitarios h montona
Algoritmo
s = nodo inicial Se definen:
C0 = f ( s ), si k = 0
Ck = min{ f (n) / f (n) > Ck 1}, si k 1
n
El algoritmo realiza bsqueda en profundidad para los valores L=0,1,2,... en los conjuntos:
K L = {n / f ( n) C L }
30
Ejemplos IDA*, I
Ejemplo simple (h = 0)
Se producen 4 iteraciones
f 0; f 1; f 3; f 4
1 B 3 F 4 G H A 1 C 3 4 I J
3 D 1
3 E 2 2 K L 2 M
31
Ejemplos IDA*, II
Ejemplo h no nula
A 1 h=5 B 5 F h=5 1 G 2 h=4 6 K h=0 6 4 E h=4 3 H h=1 5 L h=0
32
h=5 C 1
J h=1
f=7
f=6
I f=10
J f=7
L f=10
33
F f=11
E f=9 G f=9
K H f=10 f=11
Ejemplo de aplicacin de IDA*, iteracin f<=7 Faltaran otras dos iteraciones: f<=9, f<=10
34
10 H f=6
K K L f=11f=12 f=13
H f=7
L 11 f=10
K K L f=11f=12 f=13
Algoritmo IDA*, IV
IDA* es completo y ptimo
necesita menos memoria (iterativo en profundidad) Complejidad espacial: ~ ~ f* O(b * d ), d = minimo valor cos tes Complejidad temporal:
En problemas como el mapa de carreteras, cada iteracin puede aadir slo un nodo nuevo. Por tanto, si A* expande N nodos, IDA* necesitar N iteraciones y expandir
1 + 2 + K + N = O( N 2 )
Una solucin a este problema podra ser discretizar los posibles valores de Ck (mltiplos de ). Se tendran heursticas -admisibles. En tal caso, el nmero de f* iteraciones sera:
37
Algoritmos
Bsqueda con escalada (Hill climbing or greedy local search) Enfriamiento simulado (simulated annealing) Algoritmos genticos, bsqueda tab, redes neuronales, mtodo hormiga, etc. 38
Funcin objetivo
local max
meseta
Espacio de estados
39
Si se puede elegir ms de un sucesor que mejore el inicial (con el mismo valor de la funcin de evaluacin), se elige al azar.
Estocstica Primera eleccin Reinicio aleatorio
Inconvenientes:
Mximos locales Zonas llanas (mesetas) Crestas 40
Funcin Objetivo
Espacio de Estados
41
Espacio de estados
42
Inconvenientes: Mximos locales: se llega a un pico ms bajo que el pico ms alto del espacio de estados. Mesetas: reas donde la funcin de evaluacin es casi plana, no se puede progresar. Crestas: con pendientes laterales pronunciadas pero con una pendiente hacia el pico suave.
43
Enfriamiento simulado, I
Enfriamiento simulado (Simulated annealing)
Annealing: Proceso de enfriar lentamente un material en estado lquido hasta que se enfra en un estado cristalino de mnima energa. Si la temperatura se reduce de manera suficientemente lenta en un lquido, el material obtendr su estado de ms baja energa (ordenacin perfecta).
Ejemplo:
Aplicacin a CSPs como el de las N-damas:
Resolucin de problema de 1.000.000 de damas en menos de 50 pasos. Problemas de minimizacin de conflictos (en una columna al azar mover una dama a la casilla que cree menos conflictos)
2 R 1 R 2 R
2 R R R 2 1
R 1 2 R 2 R
44
Enfriamiento simulado, II
En vez de elegir el mejor movimiento, se elige un movimiento aleatorio. Si el movimiento mejora la situacin (E>0), entonces es aceptado El enfriamiento est planificado (schedule[t]) Si no, el algoritmo acepta el movimiento con una probabilidad menor a 1, esta probabilidad se decrementa exponencialmente con el empeoramiento de la evaluacin E
La probabilidad tambin se decrementa con la temperatura. Inicialmente son permitidos malos movimientos cuando la temperatura es alta, y cada vez se permiten menos malos movimientos con el decremento de la temperatura. 45