Anda di halaman 1dari 45

Bsqueda con informacin, informada o heurstica

Heurstica

Del griego heuriskein (encontrar, descubrir).


Arqumedes EUREKA! Uso en IA
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.

Estrategias de bsqueda informada


Estrategias que usan la informacin de definicin del problema y el coste del estado actual al objetivo (informacin especfica del problema) Estrategias:
El primero mejor (Best first Search) Bsqueda Avara A* IDA* Mejora iterativa
Hill climbing Simulated Annealing

Bsqueda el primero mejor, I


Bsqueda el primero mejor


Se incorpora una funcin de evaluacin (eval-fn) que mide lo deseable de expandir un nodo.
Se expande el nodo con f(n) menor Best-first se pude implementar como una cola de prioridad, estructura de datos que mantiene la frontera en orden ascendente de los valores de f Existe una variedad importante de algoritmos elprimero-mejor con diferentes funciones de evaluacin. Una componente esencial de los mismos es la funcin heurstica h(n). h(n)= valor estimado del camino de coste mnimo desde el nodo n al nodo objetivo Todas las funciones heursticas deben cumplir: h(n) >= 0, para todo nodo n h(n) = 0, si n es un nodo objetivo

Bsqueda el primero mejor, II

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.

Funcin evaluacin: medida de lo deseable de expandir un nodo.

Se expande primero el nodo no expandido ms deseable

Bsqueda avara, I

Bsqueda el primero mejor donde


eval-fn(nodo) = h(nodo)

Suele encontrar soluciones rpido


No suelen ser ptimas No siempre se encuentran (estados repetidos ciclos)
Ej. de situacin anmala: Ir de Iasi a Fagaras. Si no eliminamos repeticiones se entra en un ciclo.

V N I

Ejemplo: Mapa de carreteras


Objetivo: Viajar desde Arad hasta Bucarest. Heurstica h: distancias medidas en lnea recta (sobre el mapa) entre Arad y Bucarest Solucin obtenida por bsqueda avara: Nodos expandidos Encuentra el camino Arad, Sibiu, Fagaras, Bucharest, No es ptima: Es ms corto Arad, Sibiu, Rimnicu, Pitesti, Bucharest 6

374 366

329

Bsqueda avara: ejemplo del mapa de carreteras


2. Expandir: Sibiu (h menor, 253) Inicio por ciudad de partida

1. Expandir: Arad

3. Expandir: Fagaras (h menor, 178)

4. Se llega a Bucharest, solucin encontrada

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.

Bsqueda de coste uniforme:


Es completa y ptima pero ineficiente.

Se define la funcin f(n):


f(n)=g(n)+h(n) f(n)=coste estimado de la solucin de menor coste que pasa por n

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

Algoritmo A*, III


f=0+366=366

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

h(n0 ) 0 = h( n) cos te(), h(n) h * (n), n


13

Algoritmo A*, V
Teorema: h admisible
Dems: Contraejemplo

montona
A 1 h=1 1 C h=4

3 h=1 B 3

D h=0 Teorema: h heurstica montona creciente

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 (G ') = g (G ') + h(G ') = g (G ') > f *


Supongamos que el nodo n est en el camino al ptimo

f ( n) = g ( n) + h( n) f *
Por tanto

f (n) f * < f (G ') = g (G ') + h(G ') = g (G ')


que es una contradiccin con (3). cqd.

16

Propiedades de A*, III


Dems: A* es completo Hiptesis:
(1) heursticas montonas, (2) factor de ramificacin b, b < (3) coste de operadores, C ( ) > 0, (4) f* es finito Dems: En algn momento se llegar a que f=coste de algn estado objetivo, salvo que existan infinitos nodos con f(n)<f*, lo cual sucedera si: Un nodo tuviera b = (contradice (2)) Hubiera un camino de coste finito pero con infinitos nodos. Esto significara que, por (1), (3) y (4)

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
~

f* minimo valor cos tes

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:

| h(n) h *(n) | O (log h *(n)), n


Siendo h*(n) el coste ptimo de alcanzar el objetivo desde n. En casi todas las heursticas, el error es al menos proporcional al coste del camino y, por tanto, se tiene complejidad exponencial. De todos modos, el uso de heursticas produce enormes mejoras con respecto a la bsqueda no informada. La complejidad espacial suele ser un mayor problema que la temporal, al requerir mantener en memoria todos los nodos generados. 19

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=6 2 4 D 4 1 I h=1 5 6 L h=0 h=2 h=2

h=5 C 4 E h=4 3 H 1

J h=1

Un ejemplo de A*, IIa


1
h=5, f=6=1+5

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

En caso de empate se toma el nodo ms profundo

21

Un ejemplo de A*, IIb


1
h=5, f=6=1+5

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

En caso de empate se toma el nodo generado primero

22

Un ejemplo de A*, III


Con eliminacin de estados repetidos:


eliminar expansiones: (BE), (EH), (GK)

Al ser h montona: A* obtiene la mejor solucin al eliminar estados repetidos, ya que:


Si h es montona, entonces si un nodo ha sido expandido g(n)=g*(n) entonces, bastara con: 1) Si est repetido en los nodos ya expandidos, eliminar directamente el nodo nuevo 2) Si est repetido en las hojas, quedarse con el mejor entre el nodo viejo y el nuevo

23

Otros ejemplos de A*, I


Eliminando estados repetidos, caso de h admisible no montona, podemos eliminar un nodo peor ya expandido: h=1 A 1 3 h=1 B 3 D h=0 f=4 B 1 C h=4 f=1 1 A 2 4 f=6 D f=5 3 C B f=3 5 D
24

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.

(b*) d +1 1 N + 1 = 1 + b * + (b*) + ... + (b*) = b * 1


2 d

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

Ejemplo de dominancia I, (8-puzzle)


Anlisis del problema:


Una solucin tpica realiza unas 22 acciones Factor de ramificacin: b 3
Hueco en centro 4 movimientos Hueco en lado 3 movimientos Hueco en esquina 2 movimientos

Complejidad:
La bsqueda exhaustiva hasta d = 22 requiere visitar

322 = 3.1*1010 estados


Si se consideran estados repetidos, el nmero de estados distintos a visitar es 9!/2=181.440 (reduccin de factor 170.000)

27

Ejemplo de dominancia II, (8-puzzle)

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

n, h2 (n) h1 (n) h2 domina a h1


Observaciones: 1. h1(n) expande al menos los mismos nodos que h2(n), si un nodo es expandido por h2(n) tambin es expandido por h1(n). 2. La dominacin se traduce en eficiencia: una heurstica dominante expande menos nodos. 3. Lo mejor es usar una heurstica dominante siempre y cuando sea admisible. 28

Creacin de funciones heursticas


Mtodo de relajacin
Un problema con menos restricciones sobre las acciones se denomina relajado El coste de la solucin ptima de un problema relajado es una heurstica admisible para el problema original (la heurstica derivada es consistente, verifica la desigualdad triangular) Ejemplo:
problema original (8-puzzle): Si A es adyacente (vertical u horizontal) a B y B es blanco, entonces mueve ficha desde A hasta B Problemas relajados: 1) Si A es adyacente a B, entonces mueve ficha desde A hasta B 2) Si B es blanco, entonces mueve ficha desde A hasta B 3) mueve ficha desde A hasta B

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.

Mtodo de la heurstica compuesta:


Si h1, h2, ..., hn son admisibles entonces h(n) = max{h1, h2, ...hn} tambin es admisible 29

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=6 2 4 D 4 1 I h=2 h=2

h=5 C 1

J h=1

Algoritmo IDA*, III-a


f=6 2 B f=6 A 1 C D 3 f=6

f=7

4 F f=11 E f=9 K f=11 H

f=6

I f=10

J f=7

L f=10

Ejemplo de aplicacin de IDA*, iteracin f<=6

33

Algoritmo IDA*, III-b


f=6 2 B f=6 A 1 C f=7 3 f=7 4 D 5 f=6

F f=11

E f=9 G f=9

6 H f=6 I L f=10 J f=10 f=7

K H f=10 f=11

Ejemplo de aplicacin de IDA*, iteracin f<=7 Faltaran otras dos iteraciones: f<=9, f<=10
34

Algoritmo IDA*, III-c


f=6 A 2 B f=6 3 F f=11 E f=9 7 G f=11 K f=14 4 H f=9 G f=9 E 5 C f=7 6 f=7 1 9 D f=6 11 I L f=10 J f=10 f=7

10 H f=6

8 K H f=7 f=11 L f=11

K K L f=11f=12 f=13

Ejemplo de aplicacin de IDA*, iteracin f<=9


35

Algoritmo IDA*, III-d


f=6 A 2 B f=6 3 F f=11 E f=9 7 G f=11 K f=14 4 H f=9 G f=9 E 5 C f=7 6 f=7 1 9 D f=6

10 H f=6 K f=11 L f=11 I J f=10 f=7

H f=7

L 11 f=10

K K L f=11f=12 f=13

Ejemplo de aplicacin de IDA*, iteracin f<=10


36

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 de mejora iterativa, I


Mtodos basados en teora de la optimizacin. Se trata de encontrar los puntos de una superficie cuyo valor de la funcin de evaluacin (por ejemplo una heurstica) sea mximo o mnimo. No es relevante el camino seguido para alcanzar el objetivo. Utilizan exclusivamente la informacin del estado actual y los de su entorno. Tienen dos ventajas primordiales:
Utilizan muy poca memoria (generalmente constante) Encuentran soluciones en espacios de estados continuos (infinitos)

Algoritmos
Bsqueda con escalada (Hill climbing or greedy local search) Enfriamiento simulado (simulated annealing) Algoritmos genticos, bsqueda tab, redes neuronales, mtodo hormiga, etc. 38

Perfiles del espacio de estados


global max

Funcin objetivo

local max

meseta

Espacio de estados

39

Bsqueda con escalada, I


Bsqueda con escalada:


Consiste en un bucle que se desplaza continuamente en la direccin de crecimiento de valores (colina arriba). La condicin de parada es encontrar un pico en cuyo entorno no existan valores mayores que el actual. No mantiene un rbol de bsqueda.
Los nodos slo almacenan el estado actual y su valor objetivo.

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

Bsqueda con escalada, II

Funcin Objetivo

Espacio de Estados

41

Bsqueda con escalada, III


Problema de los extremos locales
Funcin objetivo

Espacio de estados

42

Bsqueda con escalada, IV


Bucle que, a partir de un estado, busca el estado vecino que aumente el valor de la funcin objetivo Condicin de parada: cuando encuentra un pico. Ningn estado vecino tiene valor mayor en la funcin con respecto al estado actual (si se utiliza h, entonces el vecino con h menor)

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

Anda mungkin juga menyukai