Está en la página 1de 24

BUSQUEDA LOCAL

Bsqueda Local

A veces el camino para llegar a la solucin no nos
importa, buscamos en el espacio de soluciones
Queremos la mejor de entre las soluciones posibles
alcanzable en un tiempo razonable (el ptimo es
imposible)
Tenemos una funcin que nos evala la calidad de la
solucin, pero que no esta ligada a ningn coste
necesariamente
La bsqueda se realiza desde una solucin inicial
que intentamos mejorar modificndola (operadores)
Los operadores nos mueven entre soluciones vecinas
El tamao del espacio de soluciones por lo general
no permite obtener el ptimo
Los algoritmos no pueden hacer una exploracin
sistemtica
La funcin heurstica se usar para podar el espacio
de bsqueda (soluciones que no merece la pena
explorar)
No se suele guardar historia del camino recorrido (el
gasto de memoria es mnimo)
La falta total de memoria puede suponer un problema
(bucles)
Escalada (Hill climbing)
Escalada simple
Se busca cualquier operacin que suponga una
mejora respecto al padre

Escalada por mxima pendiente (steepest-ascent hill
climbing, gradient search)
Se selecciona el mejor movimiento (no el primero de
ellos) que suponga mejora respecto al estado actual
Hill Climbing
Algoritmo Hill Climbing
Actual= Estado_inicial
fin = falso
mientras no fin hacer
Hijos= generar_sucesores( Actual )
Hijos= ordenar_y_eliminar_peores ( Hijos , Actual )
sino vacio ?( hijos ) entonces Actual= Escoger_mejor ( Hijos )
sino fin=cierto
fmientras
fAlgoritmo

Slo se consideran los descendientes cuya funcin de
estimacin es mejor que la del padre (poda del espacio de
bsqueda)
Se puede usar una pila y guardar los hijos mejores que el
padre para hacer backtracking, pero por lo general es
prohibitivo
Es posible que el algoritmo no encuentre una solucin
aunque la haya
Las caractersticas de la funcin heurstica determinan el
xito y rapidez de la bsqueda
La estrategia del algoritmo hace que la bsqueda pueda
acabar en un punto donde la solucin slo sea la ptima
aparentemente
Problemas
Mximo local: Ningn vecino tiene mejor coste
Meseta: Todos los vecinos son iguales
Cresta: La pendiente de la funcin sube y baja (efecto
escaln)
Soluciones
Hacer backtracking a un nodo anterior y seguir el
proceso en otra direccin (solo posible limitando la
memoria para hacer el backtracking, Beam Search)
Reiniciar la bsqueda en otro punto buscando
mejorar la solucin actual Aplicar dos o ms
operaciones antes de decidir el camino
Hacer HC en paralelo (p.ej. Dividir el espacio de
bsqueda en regiones y explorar las ms
prometedoras, posiblemente compartiendo
informacin)

Hill Climbing - Ejemplo
Problema de las N reinas
Espacio de bsqueda: n
n
combinaciones
Funcin heurstica: nmero de parejas de reinas que se
matan entre si (minimizacin)
Generacin de sucesores:
Mover una reina en su columna [(N*N) - N sucesores]
Mover una reina a una casilla contigua en su columna
[mximo 2*N sucesores]
En este problema empezamos en el espacio de no
soluciones
Estado inicial: Cualquiera
Otras maneras de plantear el problema?
Otros algoritmos de bsqueda local
Se han plateado otros algoritmos inspirados en
analogas fsicas y biolgicas

Simulated annealing: Hill-climbing estocstico
inspirado en el proceso de enfriamiento de metales
Algoritmos genticos: Hill-climbing paralelo inspirado
en los mecanismos de seleccin natural
Ambos mecanismos se aplican a problemas reales con
bastante xito

Simulated Annealing
Es un algoritmo de Hill-Climbing estocstico (elegimos
un sucesor de entre todos los posibles segn una
distribucin de probabilidad, el sucesor podra ser peor)
Hacemos paseos aleatorios por el espacio de soluciones
Inspirado en el proceso fsico de enfriamiento controlado
(cristalizacin, templado de metales)
Se calienta un metal/disolucin a alta temperatura y se
enfra progresivamente de manera controlada
Si el enfriamiento es adecuado se obtiene la estructura
de menor energa (mnimo global)
Simulated Annealing - Metodologa
Debemos identificar los elementos del problema con los
del problema fsico
Temperatura (parmetro de control)
Energa (funcin heurstica sobre la calidad de la
solucin f (n))
Funcin que determina la eleccin de un estado sucesor
(F(f ,T), depende de la temperatura y la diferencia
entre la calidad de los nodos)
A menor temperatura menor probabilidad de elegir
sucesores peores
Estrategia de enfriamiento (Determina el nmero de
iteraciones de la bsqueda, disminucin de la
temperatura y nmero de pasos para cada temperatura)
Simulated annealing - Algoritmo Bsico
Simulated Annealing - Aplicacin
Adaptable a problemas de optimizacin combinatoria
(configuracin ptima de elementos) y continua (punto
ptimo en un espacio N-dimensional)
Indicado para problemas grandes en los que el ptimo
esta rodeado de muchos ptimos locales
Indicado para problemas en los que encontrar una
heurstica discriminante es difcil (una eleccin aleatoria
es tan buena como otra cualquiera)
Aplicaciones: TSP, Diseo de circuitos VLSI
Problemas: Determinar los valores de los parmetros
requiere experimentacin
Algoritmos Genticos
Inspirado en el mecanismo de seleccin natural
Los seres vivos se adaptan al entorno gracias a las
caractersticas heredadas de sus progenitores
Las posibilidades de supervivencia y reproduccin son
proporcionales a la bondad de esas caractersticas
La combinacin de buenos individuos puede dar lugar a
individuos mejor adaptados
Podemos trasladar la analoga a la bsqueda local
Las soluciones corresponden a individuos
La funcin de calidad indica la bondad de la solucin
Combinando buenas soluciones podemos obtener
soluciones mejores
Resolver un problema mediante AAGG requiere:
Dar una codificacin a las caractersticas de las
soluciones (p ej: una cadena binaria)
Tener una funcin que mida la calidad de la solucin
(funcin de fitness)
Disponer de operadores que combinen las soluciones
para obtener nuevas soluciones (operadores de
crossover)
Decidir el nmero de individuos inicial
Decidir una estrategia para hacer la combinacin de
individuos
Codificacin
Habitualmente la codificacin de individuos es una
cadena binaria (no tiene por que ser la mas adecuada)







La codificacin define el tamao del espacio de
bsqueda y el tipo de operadores de combinacin
necesarios
Operadores
La combinacin de individuos se realiza mediante
operadores de cruce
El operador bsico es el cruce por un punto
Se elige aleatoriamente un punto de la codificacin
La informacin de dos individuos se combina usando ese punto
como referencia
Existen otras posibilidades:
Cruce en dos puntos
Intercambio aleatorio de bits
Operadores adhoc segn la representacin
Operadores de mutacin:
Por analoga con la combinacin de genes, a veces
la informacin de parte de ellos cambia
aleatoriamente
El operador bsico de mutacin consiste en cambiar
el signo de un bit con cierta probabilidad
Combinacin
Cada paso de bsqueda es una generacin de
individuos, su tamao se mantiene constante (N)
Para pasar a la siguiente generacin debemos elegir
que individuos se han de combinar (generacin
intermedia)
Eleccin de los individuos:
Cada individuo se elige con probabilidad proporcional a su
calidad
Se establecen N torneos aleatorios entre parejas de individuos,
se eligen los que ganan en cada torneo
Se define un ranking lineal entre individuos segn su funcin de
calidad
Siempre habr individuos que aparezcan mas de una
vez e individuos que no aparezcan
Algoritmo cannico
Los pasos que realiza el AG bsico son estos:
Se escogen N individuos de la generacin actual para la
generacin intermedia (segn el criterio escogido)
Se emparejan los individuos y para cada pareja
Con una probabilidad (P_cruce) se aplica el operador de cruce a
los individuos y se obtienen dos nuevos individuos
Con una probabilidad (P_mutacin) se mutan los nuevos
individuos
Estos individuos forman la nueva generacin
El procedimiento se itera hasta que la poblacin
converge o pasa un nmero especfico de iteraciones
La probabilidad de cruce influir en la variedad de la
nueva generacin
La probabilidad de mutacin siempre es muy pequea
Aplicacin
Aplicable casi a cualquier tipo de problema
Permite abordar problemas para los que no se dispone
de una funcin heurstica adecuada
Por lo general sern peores que un algoritmo clsico
con una buena heurstica
Aplicaciones: Incontables
Problemas: Codificacin de los estados, determinar los
parmetros del algoritmo (tamao de la poblacin,
iteraciones, probabilidad de cruce y mutacin)
En algunos tipos de problemas pueden no funcionar
muy bien
Ejemplo
Problema de las N reinas
Codificamos cada una de las posibles soluciones con un
string binario
Individuo= Concat(i=1...N; Binario(columna(reina
i
)))
Funcin de fitness= numero de parejas de reinas que se
matan entre si
Operador de cruce= Cruce en un punto
Seleccin de la generacin intermedia: Proporcional a la
funcin de fitness
Probabilidad de cruce: 50%
Probabilidad de mutacin: 1%
Tamao poblacin inicial: ?? (espacio de bsqueda n
n
)

También podría gustarte