Vous êtes sur la page 1sur 37

Inteligencia Artificial

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

Ascensin de colinas: algoritmo


informal
1. Set L to be a list of the initial nodes in the problem,
sorted by their expected distance to the goal. Nodes
expected to be close to the goal should precede those
that are farther from it.
2. Let n be the first node on L. If L is empty, fail.
3. If n is a goal node, stop and return it and the path from
the initial node to n.
4. Otherwise, remove n from L. Sort n's children by their
expected distance to the goal, label each child with its
path from the initial node, and add the children to the
front of L. Return to step 2.

Ascensin de colinas: algoritmo


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

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 de costo 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 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: metodologa


Se identifican los elementos del problema de bsqueda
con los del problema fsico:
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
Estrategia de enfriamiento: parmetros que
determinan el nmero de iteraciones de la bsqueda,
disminucin de la temperatura y nmero de pasos
para cada temperatura

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

Temple simulado - Ejemplo - TSP


Viajante de comercio (TSP): Espacio de bsqueda N!
Definimos posibles transformaciones de una solucin
(operadores): Inversiones, traslaciones, intercambios
Definimos la funcin de energa (Suma de distancia
entre ciudades, segn el orden de la solucin)

Definimos una temperatura inicial (experimentacin)


Determinamos cuantas iteraciones hacemos para cada
temperatura y como disminuimos la temperatura

Temple simulado: resumen (1)


Propsito: evitar el problema de los mximos (o
mnimos) locales de la ascensin de colinas
(AdC).

Temple simulado: resumen (2)


Solucin: en la tcnica de AdC, ocasionalmente,
dar un paso en una direccin diferente de la
donde la tasa de cambio es mxima.

Temple simulado: resumen (3)


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.
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: resumen (4)


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.

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 L de nodos abiertos.

Bsqueda por haz local (1)


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 objetivo.
Si no, se seleccionan los k mejores sucesores de la
lista completa y se repite el proceso.

Bsqueda por haz local (2)


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:
probabilidad de elegir a un sucesor como
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 (AGs)

Son una variante de la bsqueda de haz


estocstica en que se combinan dos estados
padres.
Analoga entre bsqueda local y evolucin por
seleccin natural:

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

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

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: 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 una solucin.
29

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

Existen otras posibilidades:


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

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

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

AGs: ejemplo de las 8 reinas

Fitness function: number of non-attacking pairs of


queens (min = 0, max = 8 7 / 2 = 28)
24/(24+23+20+11) = 31%
23/(24+23+20+11) = 29%
Etc.
35

AGs: ejemplo de las 8 reinas

Fitness function: number of non-attacking pairs of


queens (min = 0, max = 8 7 / 2 = 28)
24/(24+23+20+11) = 31%
23/(24+23+20+11) = 29%
Etc.
35

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

Vous aimerez peut-être aussi