1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin...

30
Búsqueda heurística

Transcript of 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin...

Page 1: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

1

Búsqueda heurística

Page 2: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

2

Búsqueda “mejor el primero”

Las estrategias de búsqueda sin información suelen ser muy ineficientes.

Búsqueda “mejor el primero”» Función de evaluación (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)

Page 3: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

3

Búsqueda avara, I

Es una búsqueda “mejor el primero” con eval-fn(nodo)=h(nodo). » Función heurística (h)

– Origen: exclamación de Arquímedes, “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 más corto desde un nodo hasta el objetivo.» Todas las funciones heurísticas deben

cumplir al menos: – h(n)>=0, para todo nodo n– h(n)=0, si “n” es un nodo objetivo

Page 4: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

4

Búsqueda avara, II

Ejemplo: Mapa de carreteras– Viajar desde Arad hasta Bucarest– Solución obtenida por búsqueda avara:

Nodos expandidos Encuentra el camino » “Arad, Sibiu, Fagaras, Bucharest”,

No es óptima: Es más corto » “Arad, Sibiu, Rimnicu, Pitesti, Bucharest”

La búsqueda avara suele encontrar soluciones rápidamente » No suelen ser óptimas» No siempre se encuentran (ciclos)

– Ej. de situación anómala: Ir de Iasi a Fagaras. Si no eliminamos repeticiones se entra en un ciclo.

fig04_02.ps

IV

N I

Page 5: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

5

Búsqueda avara, IV

En resumen:» No es óptimo ni completo.» En el peor caso:

– Complejidad temporal:

– Complejidad espacial: Se almacenan todos los nodos en memoria m=máxima profundidad del árbol de

búsqueda

)( mbO

)( mbO

Page 6: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

6

Algoritmo A*, I

Algoritmo A*, combinación de: » Búsqueda avara:

– Reduce coste de búsqueda, pero no es óptima ni completa.

» Búsqueda de coste uniforme: – Es completa y óptima pero ineficiente.

Se define la función “f(n)”:» f(n)=g(n)+h(n)» f(n)=coste estimado de la solución de

menor coste que pasa por “n”

Algoritmo: function A*-SEARCH (problem)

returns a solution or failure

return BEST-FIRST-SEARCH(problem, g+h)

Page 7: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

7

Algoritmo A*, II

Heurística admisible: » Una función heurística “h” es admisible si

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

hasta el objetivo”

Ejemplo: » En el mapa de carreteras, h es admisible.» Solución obtenida por A*:

– Orden de expansión: “A, S, R, P, F, B”– Encuentra la solución: “A, S, R, P, B”– Aplicación algoritmo (ver siguiente página)– Es la mejor solución.

Se va a tener el resultado: » Si h es admisible, A* es completo y

óptimo.

nnhnh ),(*)(

Page 8: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

8

3

Algoritmo A*, III

A

S T Z

A F O

B

R

P

S C

RCB

S

f=0+366=366

f=140+253=393

f=300+253=553

f=220+193=413

f=75+374=449

f=418

f=291+380=671

f=118+329=447

f=591 f=450

f=607

f=366+160=526

f=615

f=239+178=417

f=317+98=415

1

2

4

5

6

Page 9: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

9

Algoritmo A*, IV

Una heurística es monótona cuando:

Si h es monótona h admisible. » Dems:» Sea n un nodo, y sea un camino desde

n hasta el objetivo:

donde y es un nodo objetivo.

Por tanto

)(cos)()(, nmnm temhnh

n mnm

knnn ...10

nn 0 kn

)()(...)()()()()( 1100 kk nhnhnhnhnhnhnh

)(cos)(cos...)(cos110

tetetekk nnnn

nnhnhtenh ),(*)(),(cos)(

Page 10: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

10

Algoritmo A*, V

h admisible monótona» Dems: Contraejemplo

Si h es una heurística

h monótona f creciente» En el problema del mapa, h es monótona

(“d” es la distancia en línea recta; “C” es el coste del arco)

» y f es creciente (ver gráfico del ejemplo)

A

B C

D

3

1

1

3

h=1

h=0

h=4

h=1

),(),()()( BACBAdBhAh

n mC(n,m)

h(m)h(n)

Page 11: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

11

Propiedades de A*, I

A* es óptimo y completo si h es admisible» Grafos localmente finitos

– con factores de ramificación finitos– donde para todo operador:

Demostración (intuitiva):» Para el caso más sencillo de heurísticas

monótonas:– En el ejemplo del mapa de carreteras se tienen

conjuntos de nivel:

– En la búsqueda uniforme se tienen bandas circulares, mientras que si la heurística es más exacta (h --> h*), las bandas se dirigen más directamente al objetivo.

fig04_05.ps

,0)( C

Page 12: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

12

Propiedades de A*, II

» A* es óptimo» Hipótesis

– (1) h es admisible– (2) G es óptimo con coste de camino f*– (3) G’ es objetivo subóptimo – 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)

Y si se ha escogido G’ para expandir

Por tanto

Es decir

que es una contradicción con (3). cqd.

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

)'()( Gfnf

* ( ')f g G

*( ') g G f

* ( )f f n

Page 13: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

13

Propiedades de A*, III

» A* es completo» Hipótesis:

– (1) heurísticas monótonas,– (2) factor de ramificación b,– (3) coste de operadores,– Dems: En algún momento se llegará a que

f=“coste de algún estado objetivo”, salvo que existan infinitos nodos con f(n)<f*, lo cual sucedería si:

Un nodo tuviera (¡!) Hubiera un camino de coste finito pero con

infinitos nodos. Esto significaría que, por (1) y (3)

Por tanto, el algoritmo debe acabar.Y si acaba, es que encuentra una solución. cqd.

,0)( C

b

b

*/ ( ) n f n f

Page 14: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

14

Propiedades de A*, IV

Si h es monótona, y A* ha expandido un nodo n, entonces g(n)=g*(n)» Es consecuencia directa de que:

– Un subgrafo de una heurística monótona da lugar a una heurística monótona (que es, por tanto, admisible), considerando la nueva heurística h’=h-g(n)

– h admisible --> A* completo y óptimo

A* es óptimamente eficiente » Ningún 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 solución óptima.

– Dems: ver Dechter – Pearl (1985)

La búsqueda de coste uniforme es un caso particular de A* (h=0)

Page 15: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

15

Propiedades de A*, V

» Complejidad (espacial y temporal):

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

En casi todas las heurísticas, el error es al menos proporcional a h* y, por tanto, normalmente se tiene complejidad exponencial.

De todos modos, el uso de heurísticas produce enormes mejoras con respecto a la búsqueda no informada.

La complejidad espacial suele ser un mayor problema que la temporal.

tesvalorminimo

fdbO d

cos

*),(~~

~

d “profundidad” de la mejor solución

nnhOnhnh |,)(*(log|)(*)(|

Page 16: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

16

Un ejemplo de A*, I

A

B C D

G

K

F EI

JH

L

h=6

1

4

2

h=0

h=2

h=5

h=1

h=5

h=2h=5

h=0

h=1h=4

h=42

4

3

2

4

1

6

6

1

5 1

3

5

Page 17: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

17

Un ejemplo de A*, II

A

G Hf=10

f=9

7

B C

D

f=6

f=7

f=6f=6

1

Ef=7

6

5

K L f=10f=11

4

F E

f=11

f=9

2

IJ

Hf=6

f=10f=7

3

11

K f=11

8

f=14

K Lf=13

10f=9

G Hf=11

9

Page 18: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

18

Un ejemplo de A*, III

Si hubiéramos considerado eliminación de estados repetidos, entonces:» Habríamos eliminado (B-->E), (E-->H) y

(G->K)

Al ser h monótona:– A* obtiene la mejor solución– Al eliminar estados repetidos, ya que:

» Si h es monótona, entonces si un nodo ha sido expandido --> g(n)=g*(n)

entonces, bastaría 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”

Page 19: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

19

Un ejemplo de A*, IV

» Si eliminamos estados repetidos, en el caso de una h admisible pero no monótona, podemos eliminar un nodo peor ya expandido:

A

B C

D

3

1

1

3

h=1

h=0

h=1

A

B C

D

1

4

32

B

D5

f=1

f=3

f=6

f=5f=4

f=5

Se eliminaría

h=4

Page 20: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

20

Problema del 8-puzle

En el problema del 8-puzle:» Una solución típica tiene unos 20 pasos» Factor de ramificación (b): » Por tanto:

– Si se lleva la cuenta de estados repetidos, el número de estados es 9!=362.880

» Funciones heurísticas: – h1=número de fichas mal colocadas– h2=suma de distancias de Manhattan de las

fichas a sus posiciones objetivo– Son heurísticas monótonas

estados920 10*5.33 3b

Page 21: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

21

Exactitud de heurísticas, I

Factor efectivo de ramificación (b*):» N=número de nodos expandidos por A*

(incluido el nodo de la mejor solución)» d=profundidad de la solución obtenida por

A*» b*=factor de ramificación de un árbol de

profundidad d y N nodos.

» Resolución no algebraica, sino con métodos de cálculo numérico.

» Ejemplo: d=5, N=52 ---> b*=1.91» Normalmente, para una heurística h,

b*=constante en varias instancias del problema.

1*

1*)(*)(...*)(*1

12

b

bbbbN

dd

Page 22: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

22

Exactitud de heurísticas, II

» Si h-->h*, entonces b*-->1. – Si h-->0 (búsqueda de coste uniforme), entonces

b*--> b (b = cantidad operadores)

» Ejemplo (heurísticas h1 y h2 en el problema del 8-puzle):

Si una heurística h2 domina a otra h1 (h2>=h1; suponemos h1 y h2 monótonas), 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, también lo es por h1

fig04_08.ps

Page 23: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

23

Creación de funciones heurísticas

Método de relajación: » 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)” = heurística h1– “h* para el problema 1)” = heurística h2

Otro método: » h1, h2, ...hn admisibles --> max{h1,

h2, ...hn} también es admisible

Page 24: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

24

Algoritmo IDA*, I

Iterative-Deepening A*-search (h monótona).

Algoritmo: » s=nodo inicial» Se definen:

y para k>=1:

» El algoritmo realiza búsqueda en profundidad para los valores L=0,1,2,... en los conjuntos:

})(/{ LL CnfnK

)(0 sfC

})(/)({ 1 kn

k CnfnfminC

Page 25: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

25

Algoritmo IDA*, II

Un ejemplo sencillo (h=0):

A

B C D E

F G H I J K L M

1 1 3 3

22214343

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

Page 26: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

26

Algoritmo IDA*, III, a

A

4JIH

B

EF

DC

LK

321

f=6

f=7

f=11 f=9

f=11 f=10

f=10 f=7

f=6

f=6

f=6

Ejemplo de aplicación de IDA*, iteración f<=6

Page 27: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

27

Algoritmo IDA*, III, b

A

JIH

B

EF

DC

LK

3

21

f=6

f=7

f=11 f=9

f=11 f=10

f=10 f=7

f=6

f=6

f=7

Ejemplo de aplicación de A*, iteración f<=7

E

HGf=10f=9

f=64

5

6

Faltarían otras dos iteraciones: f<=9, f<=10

Page 28: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

28

Algoritmo IDA*, IV

IDA* es completo y óptimo, pero al ser iterativo en profundidad, necesita menos memoria. Complejidad espacial:

Complejidad temporal: » En problemas como el mapa de carreteras,

cada iteración puede añadir sólo un nodo nuevo. Por tanto, si A* expande N nodos, IDA* necesitará N iteraciones y expandirá 1+2+...+N=

– Una solución a este problema podría ser discretizar los posibles valores de (múltiplos de ). Se tendrían heurísticas -admisibles. En tal caso, el número de

iteraciones sería:

tesvalorminimo

fddbO

cos

*),*(~~

~

d “profundidad” de la mejor solución

)( 2NO

*f

kC

Page 29: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

29

Algoritmos de mejora iterativa, I

Ejemplo de las N damas:» Partiendo de N damas en el tablero,

moverlas hasta encontrar una solución.

Uso de funciones de evaluación (una heurística h es un ejemplo). » Búsqueda de máximos-mínimos.

Búsqueda con escalada:

» 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.

» Inconvenientes: – Máximos locales– Zonas llanas– Crestas

fig04_14.ps

Page 30: 1 Búsqueda heurística. 2 Búsqueda “mejor el primero” l Las estrategias de búsqueda sin información suelen ser muy ineficientes. l Búsqueda “mejor el primero”

30

Algoritmos de mejora iterativa, II

Enfriamiento simulado:» Simulated annealing» Annealing: “Proceso de enfriar lentamente

un líquido hasta que se congela”.– “Si la temperatura se reduce suficientemente

lentamente en un líquido, el material obtendrá su estado de más baja energía (ordenación perfecta)”.

» Algoritmo:

En problemas de satisfacción de restricciones como el de las N-damas:» Resolución de problema de 1.000.000 de

damas en menos de 50 pasos. – Minimización de conflictos (en una columna al

azar mover una dama a la casilla que cree menos conflictos)

Aplicados también a programación de observaciones en el telescopio Hubble.

fig04_15.ps