Académique Documents
Professionnel Documents
Culture Documents
Bsqueda local
Primavera 2007
profesor: Luigi Ceccaroni
Bsqueda local
En la bsqueda local (BL), se empieza de una
configuracin inicial (generalmente aleatoria) y se hacen
pequeos cambios (a travs de operadores) hasta
alcanzar un estado desde el cual no se puede alcanzar
ningn estado mejor.
Las tcnicas de BL son propensas a encontrar ptimos
locales que no son la mejor solucin posible. El ptimo
global es generalmente imposible de alcanzar en un
tiempo limitado, por el tamao del espacio de soluciones.
Los algoritmos no pueden hacer una exploracin
sistemtica.
Los mtodos usados en BL son conocidos como metaheursticas u optimizacin local.
2
Bsqueda local
Hay una funcin heurstica que evala la
calidad de la solucin, pero que no est
necesariamente ligada a un coste.
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).
3
Bsqueda local
Bsqueda de ascensin de
colinas
Ascensin de colinas (AdC) simple:
Se busca una cualquier operacin que
suponga una mejora respecto al estado
actual.
Ascensin de colinas
Las caractersticas de la funcin heurstica
determinan la calidad del resultado y la
rapidez de la bsqueda.
Problemas:
Mximo local. Todos los vecinos tienen funcin
heurstica peor.
Meseta. Todos los vecinos tienen la misma
funcin heurstica que el nodo actual.
Crestas: Las crestas causan una secuencia de
mximos locales que hace muy difcil la
navegacin para los algoritmos avaros.
8
Ascensin de colinas
Soluciones:
Volver a un nodo anterior y seguir el proceso
en otra direccin (prohibitivo en espacio).
Reiniciar la bsqueda en otro punto.
Aplicar dos o ms operadores antes de
decidir el camino.
Hacer AdC en paralelo.
Ejemplo: dividir el espacio de bsqueda en
regiones y explorar las ms prometedoras.
9
11
Otros algoritmos de
bsqueda local
Existen otros algoritmos inspirados en analogas
fsicas y biolgicas:
Temple simulado: ascensin de colinas estocstica
inspirada en el proceso de enfriamiento de metales
Algoritmos genticos: ascensin de colinas
paralela inspirada en los mecanismos de seleccin
natural
Ambos mecanismos se aplican a problemas reales
con bastante xito.
Temple simulado
Es un algoritmo de ascensin de colinas estocstica:
Elegimos un sucesor de entre todos los posibles
segn una distribucin de probabilidad.
El sucesor puede ser peor.
Se hacen pasos aleatorios por el espacio de
soluciones.
Inspirado en el proceso fsico de enfriamiento controlado
(cristalizacin, templado de metales):
Se calienta un metal a alta temperatura y se enfra
progresivamente de manera controlada.
Si el enfriamiento es adecuado se obtiene la
estructura de menor energa (mnimo global).
Bsqueda de temple
simulado
Temple simulado:
algoritmo bsico
Partimos de una temperatura
Mientras la temperatura no sea cero hacer
/* Paseo aleatorio por el espacio de soluciones */
Para un numero prefijado de iteraciones hacer
Enuevo=Generamos_sucesor(Eactual)
si F(f(Eactual)- f(Enuevo),T) > 0 entonces Eactual=Enuevo
fPara
Disminuimos la temperatura
fMientras
Temple simulado:
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: travelling salesman problem (TSP),
diseo de circuitos very large scale integration VLSI
Problema: determinar los valores de los parmetros
requiere experimentacin
AGs: codificacin
Definicin de las caractersticas de los individuos:
Cada individuo se representa como una cadena sobre un alfabeto finito
(comnmente, una cadena de 0s y 1s)
AGs: codificacin
Si el estado debe especificar las posicin de n reinas,
cada una en una columna de n cuadrados, se requieren
n * log2n bits (en el ejemplo = 8).
El estado podra tambin representarse como n dgitos
[1,n].
28
AGs: 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.
Los descendientes se crean cruzando las cadenas
paternales en el punto de cruce.
30
Operadores
En el ejemplo, el hijo consigue las dos
primeras columnas del primer padre y las
columnas restantes del segundo padre.
Cada paso es una generacin de individuos.
El tamao de la poblacin en general se
mantiene constante (N).
Mutacin
Analoga con la combinacin de genes:
A veces la informacin de parte de ellos
cambia aleatoriamente.
AGs: combinacin
Los AGs comienzan con una poblacin de k estados generados
aleatoriamente.
Para pasar a la siguiente poblacin debemos elegir que
individuos se han de combinar (poblacin intermedia), por
ejemplo:
Cada individuo se elige con probabilidad proporcional a su
funcin de idoneidad.
Se establecen N torneos aleatorios entre parejas de
individuos y se eligen los que ganan en cada torneo.
Se define un ranking lineal entre individuos segn su funcin
de idoneidad.
En la poblacin intermedia, siempre habr individuos que
aparezcan ms de una vez e individuos que no aparezcan.
33
AGs: aplicacin
Son aplicables casi a cualquier tipo de problema.
Permiten 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.
Dificultades:
codificacin de los estados
determinacin de los parmetros del algoritmo:
tamao de la poblacin
iteraciones
probabilidad de cruce y mutacin
36