Professional Documents
Culture Documents
Bsqueda local
Primavera 2009
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.
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
Los mtodos usados en BL son conocidos como meta-heursticas u optimizacin local.
funcin heurstica
espacio de estados
Ascensin de colinas por mxima pendiente (steepest-ascent hill climbing, gradient search):
Se selecciona el mejor movimiento (no el primero de ellos) respecto al estado actual.
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 poder volver atrs, pero en general el coste es prohibitivo.
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 (ridges): Las crestas causan una secuencia de mximos locales que hace muy 7 difcil la navegacin para los algoritmos avaros.
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
La funcin sucesor devuelve todos los estados posibles generados moviendo una reina a otro cuadrado en la misma columna.
Cada estado tiene 8 x 7 = 56 sucesores.
10
11
Temple simulado
Es un algoritmo de AdC estocstica:
Elegimos un sucesor de entre todos los posibles segn una distribucin de probabilidad. La probabilidad de elegir a un sucesor es una funcin creciente del valor de la funcin heurstica.
El sucesor puede ser peor. Se hacen pasos aleatorios por el espacio de soluciones.
Temple simulado
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.
Temple simulado
Propsito: evitar el problema de los mximos (o mnimos) locales de la ascensin de colinas (AdC).
Temple simulado
Solucin: ocasionalmente, dar un paso en una direccin diferente de la donde la tasa de cambio es mxima.
Se identifican los elementos del problema de bsqueda con los del problema fsico.
Temple simulado
Idea principal: los pasos dados en la direccin aleatoria no reducen la habilidad para encontrar un mximo global. Desventaja: es probable que estos pasos incrementen el tiempo de ejecucin del algoritmo. Ventaja: es posible que estos pasos permitan bajar de una pequea colina.
Temple simulado
Temperatura: es el descriptor que determina (a travs de una funcin de probabilidad) la amplitud de los pasos, largos al principio y luego cada vez ms cortos.
Cuando la amplitud del paso aleatorio es suficientemente pequea para no permitir bajar de la colina que se est considerando, se puede decir que el resultado del algoritmo est templado.
Temple simulado
Es posible demostrar que, si la temperatura del algoritmo se reduce muy lentamente, se encontrar un mximo global con probabilidad cerca de uno:
Valor de la funcin en el mximo global = m Valor de la funcin en el mejor mximo local = l < m Habr alguna temperatura t suficientemente grande para permitir bajar del mximo local pero no del mximo global Dado que la temperatura se reduce muy lentamente, el algoritmo trabajar lo suficiente con una temperatura cerca de t, hasta que finalmente encontrar y subir al mximo global y se quedar all porque no podr bajar.
Temple simulado
Conclusin: cuando se est resolviendo un problema de bsqueda, ocasionalmente habra que examinar un nodo que parece sustancialmente peor que el mejor nodo que se encuentra en la lista de nodos abiertos. El temple simulado es adaptable a problemas de optimizacin combinatoria (configuracin ptima de elementos) y continua (punto ptimo en un espacio N-dimensional).
En su forma ms simple, puede sufrir una carencia de diversidad entre los k estados (concentrados en una pequea regin del espacio de estados) y volverse en poco ms que una versin cara de la AdC.
Algoritmos genticos
Un algoritmo gentico (AG) es una variante de la bsqueda de haz estocstica en que se combinan dos estados padres. Hay una clara analoga entre AGs y evolucin por seleccin natural: Los AGs comienzan con un conjunto de k estados generados aleatoriamente, llamados poblacin.
32
Algoritmos genticos
Los estados corresponden a individuos. Una funcin de idoneidad/calidad/evaluacin indica/mide la bondad/calidad de los estados. Combinando buenos estados se obtienen estados mejores.
33
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).
La codificacin define el tamao del espacio de bsqueda y el tipo de operadores de combinacin necesarios.
34
AGs: codificacin
Si el estado debe especificar las posicin de las reinas, cada una en una columna de un tablero n x n, se requieren n * log2n bits (en el ejemplo = 8). El estado podra tambin representarse como n dgitos [1,n].
35
AGs: cruce
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.
37
AGs: cruce
En el ejemplo, el hijo consigue las dos primeras columnas del primer padre y las columnas restantes del segundo padre.
38
AGs: cruce
Cada paso es una generacin de individuos.
El tamao de la poblacin en general se mantiene constante (N).
AGs: mutacin
Analoga con la combinacin de genes:
A veces la informacin de parte de ellos cambia aleatoriamente.
Bsicamente, la mutacin consiste en cambiar el signo de cada bit (si se trata con una cadena binaria) con cierta probabilidad:
Cada posicin est sujeta a una mutacin aleatoria con una pequea probabilidad independiente. 40
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:
Los individuos se eligen 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 eligen dos veces los individuos con mejor funcin de idoneidad.
En la poblacin intermedia, siempre habr individuos que aparezcan ms de una vez e individuos que no 41 aparezcan.
2. 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.
3. Estos individuos forman la nueva poblacin.
El procedimiento se itera hasta que la poblacin converge o pasa un nmero especfico de iteraciones.
42
Funcin idoneidad: nmero de pares de reinas que no se atacan (min. = 0, mx. = 8 7 / 2 = 28) 24/(24+23+20+11) = 31% 23/(24+23+20+11) = 29% Etc.
43
44
45
46
47
48
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 49