Upload
carlitos-cardoso
View
106
Download
1
Embed Size (px)
Citation preview
Métodos de Mejoría o de Busca Local
Gladys Maquera
I COPIOS Lima, 03 al 05 de noviembre de 2009
Métodos de Busca Local
Problema de la Mochila
H. Constructiva en el problema de la mochila
Sea una mochila de capacidad b = 23
Representación de una solución: s = (s1,s2,...,s5), donde sj {0,1}
Movimiento m = cambia en el valor de un bit.Construyamos una solución para ese problema usando la siguiente idea: adicionemos a la mochila a cada paso, el objeto mas valioso por unidad de peso y que no ultrapase la capacidad de la mochila. Reordenando los objetos de acuerdo con la relación 𝑝𝑗/𝑤𝑗, obtenemos:
Objeto (j) 5 1 4 3 2 Peso (𝑤𝑗) 6 4 9 7 5 Beneficio (𝑝𝑗) 4 2 4 3 2 𝑝𝑗/𝑤𝑗 0,67 0,50 0,44 0,43 0,40
Representamos una solución s por un vector binario de n posiciones.
H. Constructiva en el problema de la mochila
Paso 1: Adicionemos, primeramente, el objeto 5, que tiene mayor relación 𝑝𝑗/𝑤𝑗, S = (00001)𝑡 f(s) = 4 Peso actual de la mochila = 6 < b = 23 Paso 2: Adicionemos, ahora, el objeto 1, que tiene la segunda mayor relación 𝑝𝑗/𝑤𝑗, S = (10001)𝑡 f(s) = 6 Peso actual de la mochila = 10 < b = 23
H. Constructiva en el problema de la mochila
Paso 3: Adicionemos, ahora, el objeto 4, que tiene la tercera mayor relación 𝑝𝑗/𝑤𝑗, S = (10011)𝑡 f(s) = 10 Peso actual de la mochila = 19 < b = 23 Paso 4: El objeto a ser colocado en la mochila sería el tercero. Sin embargo, esto haría superar la capacidad de la mochila. En este caso, debemos intentar alocar el próximo objeto con la mayor relación 𝑝𝑗/𝑤𝑗, que es el objeto 1. Como también colocar este objeto haría superar la capacidad de la mochila y no existen más candidatos, concluimos que la solución anterior es la solución final, esto es S* = (10011)𝑡 con f(S*)=10
Busca local en el problema de la mochila
Busca local en el problema de la mochila
Métodos Mejoría o de Busca Local
Problema del Agente Viajero
Heurística de mejoría en el PAV
Definición del movimiento 2 – opt 3 - opt k intercambio Lin y Kernighan
Estrategia de Selección. Gulosa Para aumentar la eficiencia se utiliza la estrategia Gulosa
sobre un subconjunto de candidatos (Subgrafo Candidato).
Heurística de mejoría en el PAVProcedimiento de 2 - opt
Elija dos aristas (v,w) y (x,y) y las sustituya por (v,x) y (w,y) O (v,y) y (w,x) de modo a obtener un tour.
v
w
x
y
v
w
x
y
Un movimiento 2-opt consiste en eliminar dos aristas y conectar los dos caminos resultantes, de una manera diferente, para obtener un nuevo ciclo
Heurística de mejoría en el PAV
Procedimiento de 2 - opt
0
j+1 j
i i+1
Route between 2 nodes Removed arc Inserted arc
j+1 j
i i+1
0
Existe una única manera de conectar los caminos formando un tour.
Heurística de mejoría o Busca Local en el PAV: mejorías
En una implementación eficiente se considera una lista de vértices candidatos a ser examinados. Cada vez que se examina un vértice i, este se coloca en el
final de la lista y los vértices involucrados en el movimiento son inseridos en primer lugar.
Para reducir el tiempo de computación, podemos: Exigir que al menos una de las dos aristas adicionadas en
cada movimiento, para formar la nueva solución, pertenezca al subgrafo candidato.
Interrumpir antes de finalizar, dado que en las primeras iteraciones la función objetivo decrece substancialmente, mientras que en las últimas simplemente se modifica.
Heurística de mejoría o Busca Local en el TSP: Procedimento de 3 -
opt
a
b
cd
e
f
a
b
cd
e
f
a
b
cd
e
f
a
b
cd
e
f
Al eliminar 3 aristas existen 8 maneras de conectar los 3 caminos resultantes.
La diferencia de los 2-opt, reconstruir el ciclo es muy costoso.
Examinar todas las posibilidades representa un esfuerzo computacional enorme.
Aplicar una busca restringida: Subgrafo Candidato.
Heurística de mejoría o busca local en el PAV: Lin-Kernighan
Idea: modificaciones en soluciones que son malas en el momento pueden llevar a soluciones buenas en el futuro.
Un paso de la BL Lin-Kernighan: Haga conjuntos de aristas X = {x1, …, xr}, Y = {y1,…,yr};
Sustituyendo X por Y en el tour obtenemos otro tour; Los conjuntos son construidos paso a paso;
Repita hasta <criterio>.
Variantes sobre el schema son posibles.
Heurística de mejoría o busca local en el PAV: Lin-Kernighan
Realiza un movimiento compuesto.
Cada uno de los movimientos simples puede mejorar o empeorar el valor de la función objetivo.
El movimiento global es de mejoría, por lo que no se pierde el control sobre el proceso de busca.
Utilizar diferentes movimientos altera la estructura de la solución haciendo que la convergencia al óptimo local sea lenta e introduce una componente de diversificación.
Heurística de mejoría o busca local en el PAV: (2-opt, 2-opt,
inserción)
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
Ciclo Inicial
2-opt cambio(12,1), (5,6) por(12,5), (1,6)
2-opt cambio(1,6), (3,4) por(6,3), (1,4)
InserciónInserir el 9 entre 1 y 4
Busca Local en el TSPComparación de los Métodos
Heurístico Desviacióndel Óptimo
T. Ejecución(pr2392)
2-óptimo 8.3 % 0.253-óptimo 3.8 % 85.1Lin y Kernighan 1 1.9 % 27.7Lin y Kernighan 2 1.5 % 74.3
Métodos de Busca Local
Técnicas de busca local Basadas en la noción de vecindad o entornos. Sea S el espacio de busca de un problema de
optimización y f la función objetivo a ser optimizada (minimizar o maximizar)
Sea s una solución cualquiera del problema, o sea, s S
Vecindad
Operador
Vecindad de un punto en el espacio de busca
Vecindad
Sea N una función que asocia a cada solución x X, su vecindad N(x) X
N depende del problema tratado Cada solución x’ N(x) es denominado de vecino de
x Se denomina movimiento a una modificación m que
transforma una solución x en otra, x’, que este en su vecindad
s’ s m
Espacio de busca
El espacio de busca puede ser visto como un grafo donde los vértices son las soluciones y existen aristas entre pares de vértices asociados a las soluciones vecinas.
Este espacio puede ser visto como una superficie con valles y cumbres definidos por el valor y por la proximidad (vecindad) de sus soluciones.
Espacio de busca
Un camino en el espacio de busca consiste en una secuencia de soluciones, donde dos soluciones consecutivas son vecinas.
Óptimos Locales y Óptimos Globales
La noción de proximidad induce el concepto de distancia entre soluciones, que define un espacio topológico.
Óptimo local: solución buena o mejor de que cualquier otra vecina. Para un problema de minimización:
s+ es un óptimo local f(s+) f(s), s N(s+).
Óptimo global o solución óptima s*:
f(s*) f(s), s S.
Mínimo Global
Mínimo Local
Óptimos Locales y Óptimos Globales
Métodos de Busca Local
Partir de una solución inicial (cualquiera). Caminar, a cada iteración, de vecino para
vecino de acuerdo a la definición de vecindad adoptada, intentando mejorar la solución construida.
Métodos de Busca Local
Procedimiento de Busca Locals = GenerarSoluciónInicial()
repeat
s = Mejorar(s, vecindad(s))until no existe mejoria posible
3σ
)( 3σN
2σ
)( 2σN
1σ
)( 1σN
0σ
)( 0σN
Solución inicial4σ
)( 4σN
Óptimo local
Métodos de Busca Local
Definición: Cada solución x posee un conjunto de soluciones asociadas N(x), que se denomina vecindad de x.
Definición: Dada una solución x, cada solución x’ de la vecindad N(x) se puede obtener directamente a partir de x mediante una operación llamada movimiento.
El método es basado en explorar la vecindad de una solución y seleccionar una nueva solución en ella (realizar el movimiento asociado). Desde la nueva solución se explora el entorno y se repite el proceso.
x x x xm m m0 1 2 3
1 2 3
Ejemplo: Vecindades em el Espacio de las Permutaciones
Solución =(1,…,i -1,i,i +1,…,j,…,n)
N1()={(1,…,i+1,i ,…,n), i=1,…, n-1}
Vecinos de (1,2,3,4) = {(2,1,3,4),(1,3,2,4), (1,2,4,3)}
N2()={(1,…,j,...,i,…,n), i=1,…,n-1; j=i+1,…,n}
Vecinos de (1,2,3,4)= {(2,1,3,4),(1,3,2,4), (1,2,4,3),(3,2,1,4),(1,4,3,2),(4,2,3,1)}
Busca Local
Busca local: mejorar la soluciones construidas Elección de la vecindad Estructuras de datos eficientes para acelerar la
busca local Buenas soluciones iniciales permiten acelerar a
busca local
Algoritmos de Busca Local
Algoritmos de busca local son construidos como una forma de exploración del espacio de busca.
Partida: solución inicial obtenida a través de un método constructivo.
Iteración: mejoría sucesiva de la solución actual a través de una busca en su vecindad.
Parada: primer óptimo local encontrado (no existe solución vecina “aprimorante”).
Aspectos fundamentais nos algoritmos de Busca Local
Definición de vecindad;
Estrategia de busca en la vecindad;
Complejidad de cada iteración:
Proporcional al tamaño de la vecindad;
Eficiencia: depende de l forma como es calculada la variación de la función objetivo para cada solución vecina:
Algoritmos eficientes ↔ capaces de re calcular las
variaciones de modo a actualizarlas apenas cuando la solución actual se modifica, evitando cálculos repetitivos y desnecesarios de la función objetivo.
Métodos de Busca Local
Métodos de Busca Local
Métodos de Busca Local
Métodos de Busca Local
Métodos de Busca Local
Problema: Queda atrapado en el primer óptimo local
Algoritmos de Busca Local:Mejoría Iterativa
A cada iteración, seleccionar cualquier (eventualmente la primera) solución “promisoria” en la vecindad
procedure mejoría-Iterativa(s0) s s0; mejoría .true. while mejoría do mejoría .false. for-all s’ N(s) .and. mejoría == .false. do if ( f(s’) < f(s) ) then s s’; mejoría .true. end-if end-for-all end-while return send mejoría-Iterativa
Algoritmos de Busca Local:Descenso mas rápido
A cada iteración, seleccionar la mejor solución promisoria en la vecindad
procedure Descenso-Mas-Rápido(s0) s s0; mejoría .true. while mejoría do mejoría .false.; fmin + for-all s’ N(s) do if ( f(s’) < fmin ) then smin s’; fmin f(s’) end-if end-for-all if ( fmin < f(s) ) then s smin ; mejoría .true. end-if end-while return send Descenso-Mas-Rápido
Ejemplo de descenso mas rápido para el PAVcon Vecindad 2-opt: O(n2)
5
4 3
2
1
3
5
3
5 1 L=17
L=19 (+)
25
4 3
1
25
4 3
1
L=14 (-)
5
4 3
2
1
L=17 (=)
5
4 3
2
1
L=16 (-)
5
4 3
2
1L=21 (+)
(*)
Método Aleatório de Descenso/Subida(Random Descent/Uphill Method)
Criterio de Selección del movimiento: best choice
Gulosa (greedy): Seleciona la solución con mejor evaluación de la función objetivo, siempre que sea mejor que la actual.
El algoritmo termina cuando la solución no puede ser mejorada.
A la solución encontrada se le denominada como óptimo local en relación a la vecindad definida.
Miopía del Método
Critério de Seleción do movimento: first choice
Ansiosa (Anxious) Evita realizar la busca exhaustiva por el mejor vecino. Interrumpe la exploración de la vecindad cuando el
primer mejor vecino es encontrado. De esta forma, apenas en el peor caso, toda la vecindad
es explorada. El método, también, termina cuando un óptimo local es
encontrado
Aspectos del Espacio de Busca que Influyen en el desempeño de los
Algoritmos de Busca Local Conexidad: debe existir un camino entre cualquier par de soluciones en el
espacio de busca;
Distancia entre dos soluciones: número de soluciones visitadas a lo largo de un camino mas corto entre ellas;
Diametro: distancia entre dos de las soluciones mas alejadas (diametros reducidos);
Bacia de atracción de un óptimo local: conjunto de soluciones iniciales a partir de las cuales el algoritmo de descenso mas rápido lleva a este óptimo local.
Dificultades en los algoritmos de Busca Local
Término prematuro en el primer óptimo local encontrado;
Sensible a la solución de partida; Sensible a la vecindad escogida; Sensible a la estrategia de busca; Puede exigir un número exponencial de iteraciones!
Dificultades en los algoritmos de Busca Local
El mejor vecino puede ser peor!
Dificultades en los algoritmos de Busca Local
Problema: Ciclaje
Aspectos a considerar en la Busca Local
Reducción de la vecindad: investigar un subconjunto de la vecindad de la solución actual (e.g. por “aleatoriedad”);
Multi-partida: repetir la busca local a partir de diferentes soluciones de partida;
Multi-vecindad considera mas de una vecindad. Al alcanzar un óptimo local con relación a una vecindad, inicia otra busca local empleando otra vecindad. El algoritmo termina cuando la solución actual es un óptimo local en relación a todas las vecindades empleadas;
Segmentación de la vecindad: utilizada para aumentar la eficiencia cuando vecindades muy grandes son utilizadas. Puede ser vista como una estrategia multi-vecindad: N(s) = N1(s) N2(s) … Np(s).
Conclusiones
Los Problemas Combinatorios pueden ser resueltos por: Métodos Exactos: Proporcionan el óptimo pero en lo general el costo es
muy caro. Métodos Heurísticos : Son rápidos pero no garantizan el óptimo Los Métodos Constructivos son heurísticos que proporcionan
rápidamente una solución relativamente buena. Los Métodos de Busca Local son heurísticas que mejoran una solución
dada. Ambos métodos pueden Combinarse y mejorar las elecciones aleatoriamente. Al diseñar un Método Heurístico tenemos que estudiar:
Calidad: Estudio Teórico (Christofides) o Empírico (TSPLIB) Eficiencia: Detalles de la implementación, Agilizar los cálculos (Subgrafo
candidato)