Está en la página 1de 30

Bsqueda heurstica

Bsqueda mejor el
primero

Las estrategias de bsqueda sin


informacin suelen ser muy
ineficientes.
Bsqueda mejor el primero
Funcin de evaluacin (eval-fn):
Mide lo deseable de expandir un nodo

Algoritmo:
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 by
increasing eval-fn
return
GENERAL-SEARCH(problem, queueing-fn)

Bsqueda avara, I

Es una bsqueda mejor el primero


con eval-fn(nodo)=h(nodo).
Funcin heurstica (h)
Origen: exclamacin de Arqumedes, heureka,
tras el descubrimiento de su principio

Algoritmo:
function GREEDY-SEARCH(problem)
returns a solution or failure
return BEST-FIRST-SEARCH(problem, h)

h(nodo)=coste estimado del camino


ms corto desde un nodo hasta el
objetivo.
Todas las funciones heursticas deben
cumplir al menos:
h(n)>=0, para todo nodo n
h(n)=0, si n es un nodo objetivo
3

Bsqueda avara, II

Ejemplo: Mapa de carreteras


Viajar desde Arad hasta Bucarest
fi g04_02.ps
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

La bsqueda avara suele encontrar


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

V
I
N

I
4

Bsqueda avara, IV

En resumen:
No es ptimo ni completo.
En el peor caso:
Complejidad temporal:

O(b m )

O(b m )

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)

Algoritmo A*, II

Heurstica admisible:
Una funcin heurstica h es admisible si

h(n) h * (n), n
en donde h*(n)=mnima distancia desde n
hasta el objetivo

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.
Se va a tener el resultado:
Si h es admisible, A* es completo y
ptimo.

Algoritmo A*, III


f=0+366=366

A
f=140+253=393

2 S

f=118+329=447
f=291+380=671

5
A

f=75+374=449

f=220+193=413

f=239+178=417

S
f=300+253=553

S
f=591

B
f=450

6 B
f=418

C
f=366+160=526

C
f=615

4
P f=317+98=415
R
f=607
8

Algoritmo A*, IV

Una heurstica es montona cuando:


nm , h(n) h(m) cos te(nm )
n

nm

Si h es montona

h admisible.

Dems:
Sea n un nodo, y sea
n hasta el objetivo:

un camino desde

n0 n1 ...nk

donde

n0 n

nk

es un nodo objetivo.

h(n) h(n0 ) h(n0 ) h(n1 ) h(n1 ) ... h(nk ) h(nk )

cos te(n0 n1 ) ... cos te(nk 1nk ) cos te()


Por tanto

h(n) cos te(), h(n) h * (n), n


9

Algoritmo A*, V

h admisible

montona
3

Dems: Contraejemplo
h=1

B
3

h=1
A
1
1

h=4

Si h es una heurstica
D h=0
h montona f creciente
En el problema del mapa, h es montona
(d es la distancia en lnea recta; C es el
coste del arco)
h( A) h( B ) d ( A, B ) C ( A, B )

y f es creciente (ver grfico del ejemplo)


n
h(n)

C(n,m)

m
h(m)

10

Propiedades de A*, I

A* es ptimo y completo si h es
admisible
Grafos localmente finitos
con factores de ramificacin finitos
donde para todo operador: C () 0,

Demostracin (intuitiva):
Para el caso ms sencillo de heursticas
montonas:
En el ejemplo del mapa de carreteras se tienen
conjuntos de nivel:
fi g04_05.ps

En la bsqueda uniforme se tienen bandas


circulares, mientras que si la heurstica es ms
exacta (h --> h*), las bandas se dirigen ms
directamente al objetivo.

11

Propiedades de A*, II
A* es ptimo
Hiptesis

(1) h es admisible
(2) G es ptimo con coste de camino f*
*
g
(
G
')

f
(3) G es objetivo subptimo
Dems:
Sea n un estado en el camino ptimo a G y
supongamos que el algoritmo selecciona
para expandir G en lugar de G, entonces
por (1) y (2)

f * f (n)

Y si se ha escogido G para expandir

f (n) f (G ' )
Por tanto

f * f ( n) f (G ') g (G ') h(G ') g (G ')

Es decir
f * g (G ')
que es una contradiccin con (3). cqd.
12

Propiedades de A*, III


A* es completo
Hiptesis:

(1) heursticas montonas,


(2) factor de ramificacin b, b
(3) coste de operadores, C () 0,
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 (!)
Hubiera un camino de coste finito pero con
infinitos nodos. Esto significara que, por (1)
y (3)
n / f (n) f *
Por tanto, el algoritmo debe acabar.Y si
acaba, es que encuentra una solucin. cqd.

13

Propiedades de A*, IV
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*
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)

La bsqueda de coste uniforme es un


caso particular de A* (h=0)
14

Propiedades de A*, V
Complejidad (espacial y temporal):
~

O (b ), d
d

f*
minimo valor cos tes

d profundidad de la mejor solucin


Se puede demostrar que la complejidad del
algoritmo sigue siendo exponencial si no ocurre
que:

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


En casi todas las heursticas, el error es al
menos proporcional a h* y, por tanto,
normalmente 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.

15

Un ejemplo de A*, I
A h=6
1

h=5
B
5

D h=2

h=5 C
4

F h=5
1

1
E

h=4

1
I

G h=4

h=1

h=2

h=1

6
6

L h=0

h=0
16

Un ejemplo de A*, II
1

f=6

f=6

f=6
2

f=7 C
6 f=6 H

f=9
F
E
f=11 9

f=7

H
f=9
10

G f=9
8

L
f=13

f=11

f=10

11

H
f=10
K

f=14

J
5
f=7

f=10

7
K

f=11
G

f=11
17

Un ejemplo de A*, III

Si hubiramos considerado eliminacin


de estados repetidos, entonces:
Habramos eliminado (B-->E), (E-->H) y
(G->K)

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

18

Un ejemplo de A*, IV
Si eliminamos estados repetidos, en el
caso de una h admisible pero no montona,
podemos eliminar un nodo peor ya
expandido:
h=1
A
1
3
h=1

C h=4

f=1 1
A

D h=0

Se eliminara

f=4 B

f=5 3
C

2
4

f=6

B f=3
f=5

5
D
19

Problema del 8-puzle

En el problema del 8-puzle:


Una solucin tpica tiene unos 20 pasos
Factor de ramificacin (b): b 3
Por tanto: 320 3.5 *109 estados

Si se lleva la cuenta de estados repetidos, el


nmero de estados es 9!=362.880

Funciones heursticas:
h1=nmero de fichas mal colocadas
h2=suma de distancias de Manhattan de las
fichas a sus posiciones objetivo
Son heursticas montonas

20

Exactitud de
heursticas, I

Factor efectivo de ramificacin (b*):


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 nodos.
d 1
(
b
*)
1
N 1 b * (b*) 2 ... (b*) d
b * 1

Resolucin no algebraica, sino con


mtodos de clculo numrico.
Ejemplo: d=5, N=52 ---> b*=1.91
Normalmente, para una heurstica h,
b*=constante en varias instancias del
problema.
21

Exactitud de
heursticas, II
Si h-->h*, entonces b*-->1.
Si h-->0 (bsqueda de coste uniforme), entonces
b*--> b (b = cantidad operadores)

Ejemplo (heursticas h1 y h2 en el
problema del 8-puzle):
fi g04_08.ps

Si una heurstica h2 domina a otra h1


(h2>=h1; suponemos h1 y h2
montonas), entonces h1 expande al
menos los mismos nodos que h2.
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

22

Creacin de funciones
heursticas

Mtodo de relajacin:
Problema inicial:
Si A es adyacente a B y B es blanco, entonces
mueve ficha desde A hasta B

Relajando las condiciones, se obtienen


nuevos problemas:
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

Entonces:
h* para el problema 2) = heurstica h1
h* para el problema 1) = heurstica h2

Otro mtodo:
h1, h2, ...hn admisibles --> max{h1, h2,
...hn} tambin es admisible
23

Algoritmo IDA*, I

Iterative-Deepening A*-search (h
montona).
Algoritmo:
s=nodo inicial
Se definen:

C0 f ( s )

y para k>=1:

Ck min{ f (n) / f (n) Ck 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 }
24

Algoritmo IDA*, II

Un ejemplo sencillo (h=0):

3
F

A
1

3 4

4
G

3
E
2 2
K

2
M

Se producen 4 iteraciones: f<=0, f<=1, f<=3, f<=4

25

Algoritmo IDA*, III, a


f=6 A
2

B f=6

f=7

1
C

4
F
f=11

E
f=9

K
f=11

f=6

3
f=6

I
f=10

J
f=7

L
f=10

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

26

Algoritmo IDA*, III, b


f=6 A
2

F
f=11

B f=6

E
f=9
G
f=9

1
C f=7
3

f=7
4

H
f=10

5
f=6

6
H
f=6
K
f=11

J
f=10 f=7

L
f=10

Ejemplo de aplicacin de A*, iteracin f<=7


Faltaran otras dos iteraciones: f<=9, f<=10
27

Algoritmo IDA*, IV

IDA* es completo y ptimo, pero al ser


iterativo en profundidad, necesita
menos memoria. Complejidad espacial:
f*
O(b * d ), d
minimo valor cos tes
~

d profundidad de la mejor solucin

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+...+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*
28
iteraciones sera:

Algoritmos de mejora
iterativa, I

Ejemplo de las N damas:


Partiendo de N damas en el tablero,
moverlas hasta encontrar una solucin.

Uso de funciones de evaluacin (una


heurstica h es un ejemplo).
Bsqueda de mximos-mnimos.

Bsqueda con escalada:


fi g04_14.ps

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.
Inconvenientes:
Mximos locales
Zonas llanas
Crestas
29

Algoritmos de mejora
iterativa, II

Enfriamiento simulado:
Simulated annealing
Annealing: Proceso de enfriar lentamente
un lquido hasta que se congela.
Si la temperatura se reduce suficientemente
lentamente en un lquido, el material obtendr su
estado de ms baja energa (ordenacin
perfecta).

Algoritmo:

fi g04_15.ps

En problemas de satisfaccin de
restricciones como el de las N-damas:
Resolucin de problema de 1.000.000 de
damas en menos de 50 pasos.
Minimizacin de conflictos (en una columna al
azar mover una dama a la casilla que cree
menos conflictos)

Aplicados tambin a programacin de


observaciones en el telescopio Hubble.
30

También podría gustarte