You are on page 1of 49

Inteligencia Artificial

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

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 por mxima pendiente (steepest-ascent hill climbing, gradient search):
Se selecciona el mejor movimiento (no el primero de ellos) respecto al estado actual.

Ascensin de colinas: algoritmo


Algoritmo Hill Climbing Actual= Estado_inicial fin = falso Mientras fin hacer Hijos= generar_sucesores(Actual) Hijos= ordenar_y_eliminar_peores(Hijos, Actual) si vacio?(hijos) entonces Actual= Escoger_mejor(Hijos) si no 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 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: crestas

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

El problema de las 8-reinas


Los algoritmos de BL tpicamente usan una formulacin de estados completa.
Cada estado tiene a ocho reinas sobre el tablero, una por columna.

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

El problema de las 8-reinas


La funcin heurstica h es el nmero de pares de reinas que se atacan la una a la otra, directa o indirectamente.
Problema de minimizacin

El mnimo global de esta funcin es cero.


Ocurre slo en soluciones perfectas.

Estado inicial: cualquiera.

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

Si el enfriamiento es adecuado se obtiene la estructura de menor energa (mnimo global).

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.

Bsqueda de temple simulado

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: representacin


Temperatura: parmetro de control principal 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

Temple simulado: representacin


Estrategia de enfriamiento: parmetros que determinan:
el nmero de iteraciones de la bsqueda la disminucin de la temperatura el nmero de pasos para cada temperatura

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

Temple simulado: algoritmo bsico

Temple simulado: aplicacin


Es indicado para problemas grandes en los que el ptimo esta rodeado de muchos ptimos locales. Es indicado para problemas en los que encontrar una heurstica discriminante es difcil.
Una eleccin aleatoria es tan buena como otra cualquiera.

Temple simulado: aplicacin


Ejemplos:
problema del viajante de comercio o travelling salesman problem (TSP) diseo de circuitos very large scale integration (VLSI)

Problema: determinar los valores de los parmetros requiere mucha experimentacin.

Temple simulado - TSP


Espacio de bsqueda: N! (factorial) Posibles transformaciones de una solucin (operadores): inversiones, traslaciones, intercambios. Funcin de energa: suma de distancia entre ciudades, segn el orden de la solucin).

Temple simulado - TSP


Temperatura inicial: se define por experimentacin. Determinacin de cuntas iteraciones hacemos para cada temperatura. Determinacin de cmo disminuimos la temperatura.

Bsqueda por haz local


Guardar slo un nodo en memoria puede parecer una reaccin extrema al problema de limitacin de memoria. El algoritmo de bsqueda por haz local guarda la pista de k nodos.
Comienza con k estados generados aleatoriamente. En cada paso se generan todos los sucesores de los k estados. Se comprueba si alguno es un estado final. Si no, se seleccionan los k mejores sucesores de la lista completa y se repite el proceso.

Bsqueda por haz local


Es diferente de ejecutar k reinicios aleatorios en paralelo en vez de en secuencia!
Si un estado genera varios sucesores buenos, el algoritmo rpidamente abandona las bsquedas infructuosas y mueve sus recursos all donde se hace la mayor parte del progreso.

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.

Bsqueda de haz estocstica


En vez de elegir los k mejores sucesores, escoge a k sucesores aleatoriamente: La probabilidad de elegir a un sucesor es una funcin creciente del valor de la funcin de idoneidad. Parecido con el proceso de seleccin natural: los sucesores (descendientes) de un estado (organismo) pueblan la siguiente generacin segn su valor (idoneidad, salud, adaptabilidad).

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: funcin de idoneidad


En la produccin de la siguiente generacin de estados, para cada estado se calcula la funcin de idoneidad. Una funcin de idoneidad debera devolver valores ms altos para estados mejores.
Para el problema de las n reinas se puede utilizar el nmero de pares de reinas que no se atacan. En el caso de 4 reinas, la funcin de idoneidad tiene un valor de 6 para la mejor solucin.
36

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

Existen otras posibilidades:


Cruce en dos puntos Intercambio aleatorio de bits Operadores ad hoc segn la representacin
39

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.

AGs: pasos de ejecucin


1. Se escogen N individuos de la poblacin actual para la poblacin intermedia.

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

AGs: ejemplo de las 8 reinas

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

AGs: ejemplo de las 8 reinas


En (a): se muestra una poblacin de 4 cadenas de 8 dgitos que representan estados de 8 reinas. En (b)-(e): se muestra la produccin de la siguiente generacin de estados.

44

AGs: ejemplo de las 8 reinas


En (b): para cada estado se calcula la funcin idoneidad (valor de 28 para una solucin). En esta variante particular del AG, la probabilidad de ser elegido para la reproduccin es directamente proporcional a la idoneidad.

45

AGs: ejemplo de las 8 reinas


En (c): se seleccionan 2 pares, de manera aleatoria, para la reproduccin, de acuerdo con las probabilidades en (b). Se puede notar que un individuo se selecciona 2 veces y uno ninguna.

46

AGs: ejemplo de las 8 reinas


En (c): para que cada par se aparee, se elige aleatoriamente un punto de cruce de las posiciones en la cadena. En (d): los descendientes se crean cruzando las cadenas paternales en el punto de cruce.

47

AGs: ejemplo de las 8 reinas


En (e): cada posicin est sujeta a la mutacin aleatoria con una pequea probabilidad independiente. Un dgito fue transformado en 3 casos.

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

You might also like