Vous êtes sur la page 1sur 33

Bsqueda Local

Introduccin

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

1 / 33

Bsqueda Local

Introduccin

Bsqueda Local

La funcin heurstica:
Aproxima la calidad de una solucin (no representa un coste)
Hemos de optimizarla (maximizarla o minimizarla)
Combinar los elementos del problema y sus restricciones
(posiblemente con diferentes pesos)
No hay ninguna restriccin sobre como ha de ser la funcin, solo ha de
representar las relaciones de calidad entre las soluciones
Puede tomar valores positivos o negativos

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

2 / 33

Bsqueda Local

Introduccin

Funcion Objetivo

Bsqueda Local

Solucion actual

Espacio de Soluciones
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

3 / 33

Bsqueda Local

Introduccin

Bsqueda Local

El tamao del espacio de soluciones por lo general no permite obtener


el ptimo
Los algoritmos no pueden hacer una exploracin sistemticaProblems
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)

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

4 / 33

Bsqueda Local

Hill Climbing

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

5 / 33

Bsqueda Local

Hill Climbing

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)
si no vacio?(Hijos) entonces
Actual Escoger_mejor(Hijos)
sino
fin cierto
fin
fin
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
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

6 / 33

Bsqueda Local

Hill Climbing

Hill climbing

Las caractersticas de la funcin heurstica y la solucin inicial


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)

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

7 / 33

Bsqueda Local

Hill Climbing

Hill climbing

Posibles soluciones
Reiniciar la bsqueda en otro punto buscando mejorar la solucin
actual (Random Restarting Hill Climbing)
Hacer backtracking a un nodo anterior y seguir el proceso en otra
direccin (solo posible limitando la memoria para hacer el backtracking,
Beam Search)
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)

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

8 / 33

Bsqueda Local

Hill Climbing

Hill Climbing - Ejemplo - Knapsack problem

BY:
$


Dake

Solucin: Cualquier combinacin de objetos en la mochila


Solucin Inicial: Mochila vaca
Operadores: Meter y sacar objetos de la mochila
Funcin heurstica: max
c b e a (LSI-FIB-UPC)

Valori o max

Inteligencia Artificial

P Valori
i Pesoi

Curso 2011/2012

9 / 33

Bsqueda Local

Hill Climbing

Hill Climbing - Ejemplo - Knapsack problem


h(n)=8

8/5Kg

8/5Kg
h(n)=7

7/6Kg

12/10Kg

6/4Kg

7/6Kg

16Kg

2/1Kg

h(n)=12

Sol Inicial
3/1Kg

12/10Kg

...
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

10 / 33

Bsqueda Local

Hill Climbing

Hill Climbing - Ejemplo - Knapsack problem


h(n)=20
8/5Kg

12/10Kg
8/5Kg
h(n)=19

7/6Kg

7/6Kg
12/10Kg
12/10Kg
6/4Kg

12/10Kg

2/1Kg
3/1Kg

h(n)=18
6/4Kg

12/10Kg

...
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

11 / 33

Bsqueda Local

Hill Climbing

Hill Climbing - Ejemplo - Knapsack problem


h(n)=24
7/6Kg

12/10Kg

2/1Kg
3/1Kg

8/5Kg

ptimo

12/10Kg

h(n)=23
8/5Kg

3/1Kg

6/4Kg

8/5Kg

2/1Kg

8/5Kg

7/6Kg

12/10Kg

6/4Kg

h(n)=22

3/1Kg

8/5Kg

Sol Final

12/10Kg

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

12 / 33

Bsqueda Local

Otros Algoritmos

Otros algoritmos de bsqueda local

Se han planteado otros algorimos 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

Pero tambin Particle Swarm Optimization, Ant Colony Optimization,


Intelligent Water Drop, Gravitational search algorithm, ...

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

13 / 33

Bsqueda Local

Simulated Annealing

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)

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

14 / 33

Bsqueda Local

Simulated Annealing

Simulated Annealing

c b e a (LSI-FIB-UPC)

BY:
$


DoITPoMS, University of Cambridge

Inteligencia Artificial

Curso 2011/2012

15 / 33

Bsqueda Local

Simulated Annealing

Simulated Annealing - Metodologa

Debemos identificar los elementos del problema con los del problema
fsico
Temperatura, parmetro de control
Energa, calidad de la solucin f (n)
Funcin de aceptacin, permite decidir si escoger un nodo sucesor
F(f , T ), funcin de la temperatura y la diferencia de calidad entre la
solucin actual y la solucin candidata
A menor temperatura menor probabilidad de elegir sucesores peores

Estrategia de enfriamiento, nmero de iteraciones a realizar, como


bajar la temperatura y cuantos sucesores explorar para cada paso de
temperatura

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

16 / 33

Bsqueda Local

Simulated Annealing

Simulated annealing - Algoritmo Bsico


Algoritmo: Simulated Annealing
Partimos de una temperatura inicial
mientras la temperatura no sea cero hacer
// Paseo aleatorio por el espacio de soluciones
para un numero prefijado de iteraciones hacer
Enuevo Genera_sucesor_al_azar(Eactual)
E f (Eactual) f (Enuevo)
si E > 0 entonces
Eactual Enuevo
sino
con probabilidad e E /T : Eactual Enuevo
fin
fin
Disminuimos la temperatura
fin
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

17 / 33

Bsqueda Local

Simulated Annealing

Simulated Annealing

Hill Climbing

Funcin Objetivo

Simulated Annealing

Espacio de Soluciones

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

18 / 33

Bsqueda Local

Simulated Annealing

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

19 / 33

Bsqueda Local

Simulated Annealing

Simulated annealing - 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)

E=

n q
X

(xi xi+1

)2

+ (yi yi+1

)2

(xN x1 )2 + (yN y1 )2

i=1

Definimos una temperatura inicial (experimentacin)


Determinamos cuantas iteraciones hacemos para cada temperatura y
como disminuimos la temperatura
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

20 / 33

Bsqueda Local

Simulated Annealing

Simulated annealing - Ejemplo - TSP


1

h(n)=100

2
Swap(2,3)

h(n)=120

Swap(5,3)

It1

OK

h(n)=105

It2

KO

5
4

OK
Swap(4,3)

Solucin

Swap(2,3)

It3
5

It4

OK

h(n)=90

h(n)=98

KOSwap(2,5)
2

KO Swap(3,3)
1
2

It5
3

5
4

h(n)=99

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

It6

h(n)=101

Curso 2011/2012

21 / 33

Bsqueda Local

Algoritmos Genticos

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

22 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos (II)

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

23 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Codificacin

Habitualmente la codificacin de individuos es una cadena binaria (no


tiene por que ser la mas adecuada)
0

[00 11 10 01]

1
2

[0,3,2,1]

La codificacin define el tamao del espacio de bsqueda y el tipo de


operadores de combinacin necesarios

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

24 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - 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

[000 101 010 001 100 100]

c b e a (LSI-FIB-UPC)

[010 001 100 000 011 101]

Inteligencia Artificial

[000 101 100 000 011 101]

Curso 2011/2012

25 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Operadores (II)

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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

26 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - 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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

27 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Algoritmo cannico


Los pasos que realiza el AG bsico son estos:
1

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

3
4

Estos individuos forman la nueva generacin


Iterar hasta que la poblacin converja o pase 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 para evitar una
bsqueda aleatoria

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

28 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Algoritmo cannico


PMut
PCross
PMut
PMut
PCross
PMut
PMut
PCross
PMut
PMut
PCross
PMut

Generacion i

c b e a (LSI-FIB-UPC)

Generacio i
intermedia

Cruce

Inteligencia Artificial

Mutacion

Generacion i+1

Curso 2011/2012

29 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - 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

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

30 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Ejemplo - N reinas

Problema de las N reinas


Codificamos cada una de las posibles soluciones con un string binario
Individuo= Concat(i=1...N; Binario(columna(reinai )))
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 experimentar!
Probabilidad de mutacin: experimentar!
Tamao poblacin inicial: aleatoria? (espacio de bsqueda nn )

c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

31 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Ejemplo - N reinas


Crossover(1,2)(3)

Mutacion(1)

4
Crossover(2,3)(2)

6
4

8
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

32 / 33

Bsqueda Local

Algoritmos Genticos

Algoritmos Genticos - Ejemplo - N reinas


Crossover(3,2)(2)

4
2

4
Crossover(3,1)(3)

2
Mutacion(2)
4

4
c b e a (LSI-FIB-UPC)

Inteligencia Artificial

Curso 2011/2012

33 / 33