You are on page 1of 32

Bsqueda Informada

Algoritmos primero el mejor Algoritmos de bsqueda local

Algoritmos primero el mejor

Bsqueda primero el mejor Bsqueda Voraz A*

Algoritmos primero el mejor

Familia de algoritmos de bsqueda en grafos, informados Se caracterizan por el uso de una funcin heurstica para guiar la bsqueda, con mnimo global en meta

f : U R, U=EE Caminos EE, R reales Criterio de expansin de nodos: expandir primero el nodo con menor valor de f

Si no imponemos restriccin adicional a f, Bsqueda primero el mejor


Bsqueda Informada

Bsqueda primero el mejor: bpm


1. 2. 3. 4. Si n0 es meta, fin con xito, devolviendo n0 Abiertos (n0); Cerrados ( ) Si Abiertos = ( ), fin devolviendo fallo n primer elemento de Abiertos; eliminar n de Abiertos y llevarlo a Cerrados; Suc ( ) 5. expandir n, colocando sus hijos en Suc, como hijos de n 6. Si alguno de los hijos de n es un nodo meta, fin con xito, devolviendo el camino 7. eliminar de Suc cualquier nodo cuyo estado ya est asociado a algn nodo de Abiertos o Cerrados 8. colocar los nodos de Suc en Abiertos 9. Reordenar Abiertos segn valores crecientes de f(n) 10. Ir a 3

Bsqueda Informada

Comportamiento bpm

No es completo No es admisible Complejidad espacial, temporal, exponencial

Bsqueda Informada

Bsqueda Voraz (Greedy Search)


Utiliza funciones heursticas del estado Esta funcin debe de informar sobre la calidad del estado:

Coste de alcanzar la solucin desde el estado actual Independiente del coste del camino hasta el estado actual

Estas funciones heursticas se denotan por h


Bsqueda Informada

Bsqueda Voraz
1. 2. 3. 4. Si n0 es meta, fin con xito, devolviendo n0 Abiertos (n0); Cerrados ( ) Si Abiertos = ( ), fin devolviendo fallo n primer elemento de Abiertos; eliminar n de Abiertos y llevarlo a Cerrados; Suc ( ) 5. expandir n, colocando sus hijos en Suc, como hijos de n 6. Si alguno de los hijos de n es un nodo meta, fin con xito, devolviendo el camino 7. eliminar de Suc cualquier nodo cuyo estado ya est asociado a algn nodo de Abiertos o Cerrados 8. colocar los nodos de Suc en Abiertos 9. Reordenar Abiertos segn valores crecientes de h(n) 10. Ir a 3

Bsqueda Informada

Comportamiento bsqueda voraz

Como primero el mejor Principal inconveniente: no considera el coste de los caminos que encuentra

Puede explorar caminos de longitud infinita

Bsqueda Informada

Algoritmos A*

Idea: penalizar el coste del camino para incluir un componente en anchura f=g+h con

g estima g*: coste del camino mnimo hasta nodo (gg*) h estima h*: coste del camino mnimo del nodo a meta Si h es minorante de h* (hh*), Algoritmo A*
Bsqueda Informada

g coste camino mnimo encontrado por el algoritmo hasta el nodo h estimacin coste camino mnimo del estado a la meta

Algoritmo A*
1. Abiertos (n0); Cerrados ( ) 2. Si Abiertos = ( ), fin devolviendo fallo 3. n primer elemento de Abiertos; eliminar n de Abiertos y llevarlo a Cerrados; Suc ( ) 4. Si n es un nodo meta, fin con xito devolviendo el camino 5. expandir n, colocando sus hijos en Suc, como hijos de n 6. Para cada nodo q de Suc
6.1. Calcular g(q) g(n) + coste(n,q) 6.2. Si q no est ni en Abiertos ni en Cerrados, calcular f(q) g(q) + h(q) y aadir q a Abiertos asignando f(q) y g(q) 6.3. Si q estaba en Abiertos o en Cerrados (q0), comparar el valor de g(q) con g(q0) 1. Si g(q0) <= g(q), descartar q 2. Si g(q0) > g(q), colocar n como nuevo padre de q0, asignarle f(q) = g(q) + h(q0) y descartar q 3. Si g(q0) > g(q) y q0 est en Cerrados, eliminarle de Cerrados y llevarle a Abiertos

7. Reordenar Abiertos segn valores crecientes de f(n) 8. Ir a 2


Bsqueda Informada

10

Propiedades formales de A*

Teorema 1: A* es completo en grafos localmente finitos Teorema 2: A* es admisible en grafos localmente finitos Def. Heurstica mejor informada
h2(n) mejor informada h1(n)
ambas minorantes, h2(n) > h1(n) en nodos no terminales

Def. algoritmo A* ms informado Def. algoritmo dominante Teorema 3. Sean A1* y A2* dos algoritmos A* para el mismo problema. Si A2* est mejor informado que A1*, A2* domina a A1*

Bsqueda Informada

11

Comportamiento A*

Completo, Admisible ptimamente eficiente

Algoritmo admisible que genera menos nodos para una heurstica dada

Pero coste exponencial salvo |h(n) h*(n)| O(log h*(n))

En la prctica, el error es al menos proporcional al coste del camino y el coste espacial es exponencial
Bsqueda Informada

12

Variantes A*

Utilizando muy poca memoria


A*DI, A* descenso iterativo BRPM, bsqueda recursiva primero el mejor A*M, A* con memoria acotada A*Ms, A*M simplificado

Utilizando memoria disponible


Bsqueda Informada

13

Algoritmos de bsqueda local

Mejora iterativa Mtodos de poblacin

Algoritmos de bsqueda local

Slo mantienen el estado(s) actual(es)

Rgimen de control irrevocable Problemas de configuracin: 8-reinas, VLSI Viajante de comercio, funciones Usan muy poca memoria Pueden alcanzar soluciones razonables en espacios de estado grandes o infinitos, poco adecuados para los algoritmos que mantienen los caminos Derivados de su carcter local
Bsqueda Informada

Especialmente apropiados cuando no interesa el camino

Problemas de optimizacin

Ventajas

Inconvenientes

15

Mejora iterativa

Solo mantienen el estado actual

Trabajan introduciendo modificaciones en una configuracin inicial para mejorar su calidad

Algoritmos con rgimen de control irrevocable


Codificar estado de forma que contenga toda la informacin relevante de la solucin

Utilizan funcin de evaluacin heurstica con mximo (mnimo) global en soluciones Dos familias

Escalada: siempre direccin mximo (ascensin de colinas, hill-climbing) Temple simulado: permiten empeoramiento (simulated annealing)
Bsqueda Informada

16

Mtodo de escalada

Un nico estado Funcin de evaluacin con mximo absoluto en solucin ptima Se mueve siempre en la direccin en que mejora la funcin de evaluacin

Si no puede, termina con fallo

Bsqueda Informada

17

Mtodo de escalada
funcin ESCALADA(problema) returns un estado entrada: problema, un problema static: actual, un nodo siguiente, un nodo begin actual HACER-NODO(ESTADO-INICIAL[problema]) loop do siguiente sucesor de actual con mximo valor if VALOR(siguiente) VALOR(actual) then return(actual) actual siguiente endloop end
Bsqueda Informada

18

Limitaciones escalada

Mximos locales Llanuras Crestas

Bsqueda Informada

19

Comportamiento escalada

No es completo ni admisible

Puede encontrar soluciones razonablemente buenas

Complejidad espacial: K (bytes para almacenar estado) Complejidad temporal: peor caso, exponencial

En la prctica, suele terminar con pocas iteraciones Estado: tablero con 8 reinas, una por columna Operadores: mover una reina a otra casilla de la misma columna Fallo 86%, xito 14% Rpido. En media

Comportamiento 8-reinas

4 pasos si xito 3 pasos si fallo

Bsqueda Informada

20

Variantes de escalada

Escalada estocstico

Permitir movimientos laterales (funcin de evaluacin constante)

Escoge aleatoriamente entre los hijos que mejoran la funcin de evaluacin Puede mejorar solucin encontrada con escalada Para atravesar llanuras. Ciclos

Escalada con reinicio aleatorio


Sucesivas iteraciones mtodo escalada Estados iniciales generados aleatoriamente Conserva el mejor estada encontrado Terminacin: num. mximo de iteraciones, no hay mejora significativa, etc.
Bsqueda Informada

21

Comportamiento escalada con reinicio aleatorio

Completo en el lmite

Si n reinicios tiende a infinito, eventualmente generar la solucin aleatoriamente

Suele mejorar solucin encontrada por escalada Inicios medios requeridos: 1/p (con p probabilidad de xito de escalada) 8-reinas

p~0.14; reinicios ~ 7
Bsqueda Informada

22

Enfriamiento simulado

Introduce un componente aleatorio sobre el mtodo de escalada Permite moverse en direcciones en que empeora la funcin de evaluacin

Inicialmente, con mucha facilidad En las etapas finales, con ms dificultad Escoge el sucesor aleatoriamente Los movimientos que empeoran se aceptan con probabilidad que disminuye

Permite salir de mximos locales

Con el empeoramiento Temperatura (tiempo)

Bsqueda Informada

23

Temple simulado: inspiracin fsica

Inspiracin fsica en el proceso de temple

Primero calentar: movimiento aleatorio de tomos y molculas que permite salir de estados fsicos correspondientes a mnimos locales (energa) Enfriamiento paulatino para alcanzar estados de mnima energa Cuanto ms lento, ms fcil llegar a mnimos globales (buscando, en algn momento, que el movimiento permita salir de mnimos locales pero no de los globales)

Bsqueda Informada

24

Enfriamiento simulado
funcin ENFRIAMIENTO-SIMULADO(problema, schedule) returns un estado entrada: problema, un problema schedule, una aplicacin de tiempo en temperatura static: actual, un nodo siguiente, un nodo T, una temperatura begin actual HACER-NODO(ESTADO-INICIAL[problema]) for t 1 to do T schedule[t] if T = 0 then return(actual) siguiente un sucesor de actual seleccionado aleatoriamente E VALOR[siguiente] VALOR[actual] if E > 0 then actual siguiente else actual siguiente con probabilidad eE/T enddo end
Bsqueda Informada

25

Comportamiento temple simulado

til para aproximar el mximo global en espacio de estado grandes El algoritmo encuentra ptimo global con probabilidad prxima a 1 si T

Montona decreciente con t Disminucin lenta y suave

No es completo ni admisible. Complejidad temporal peor caso: exponencial

En la prctica, en el peor caso, termina con T=0. Luego la funcin Schedule determina la complejidad temporal.

Bsqueda Informada

26

Mtodos de poblacin

Bsqueda en haz local Algoritmos genticos

Mtodos de poblacin

Mtodos de bsqueda local

No mantienen el camino, solo estados Poblacin Bsqueda en haz local


Mantienen varios candidatos

Dos variantes

Variante de mtodos de mejora iterativa Reproduccin asexuada Reproduccin sexuada


Bsqueda Informada

Algoritmos genticos

28

Bsqueda en haz

Bsqueda en haz: algoritmos de bsqueda que mantienen en memoria un nmero limitado de K nuevos sucesores

Mantienen el camino: variante de primero el mejor Mantienen el estado: variante de mejora iterativa (bsqueda en haz local)

Bsqueda Informada

29

Bsqueda en haz local

Parte de K estados generados aleatoriamente Genera los hijos de todos los estados Conserva los K estados con mejor valor de la funcin de evaluacin heurstica

Bsqueda Informada

30

Bsqueda en haz local


funcin BUSQUEDA-HAZ-LOCAL(problema, k) returns una lista de estados entrada: problema, un problema k, tamao del haz static: siguiente, sucesores, poblacin, listas de nodos begin poblacin HACER-LISTA-NODOS(ESTADOS-INICIALES-ALEATORIOS(problema,k)) while (not CondicionTerminacin) do siguiente for each nodo poblacin do sucesores HACER-LISTA-NODOS(EXPANDIR(nodo)) siguiente siguiente sucesores end poblacin k mejores elementos de siguiente endwhile return(poblacin) end

Bsqueda Informada

31

Comportamiento bsqueda en haz local


No garantiza solucin ptima Generalmente, mejor comportamiento que escalada con reinicio aleatorio kveces: se comparte informacin til entre los elementos de la poblacin Mejora: bsqueda en haz estocstico

Se eligen k sucesores aleatoriamente con probabilidad creciente con la heurstica Cierta similitud con la evolucin natural de poblaciones
Bsqueda Informada

32