optimización heurística: búsqueda de vecindad variable

Post on 10-Jul-2022

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Optimización heurística: Búsqueda de Vecindad Variable

ABRAHAM DUARTE

1

www.grafo.etsii.urjc.es

Optimización

o En lenguaje coloquial, optimizar significa mejorar

o En el contexto científico, es el proceso de tratar de encontrar la mejor solución posible para un problema determinado

Problema de optimización

o El objetivo de un problema de optimización es encontrar la solución óptima dado un criterio para discriminarentre dos soluciones

o Encontrar el valor de unas variables de decisión (sujetas a restricciones) para los que una determinada función objetivo alcanza su valor máximo o mínimo

Optimización

o Representación: codifica las soluciones factibles para su representación. Determina el tamaño del espacio de búsqueda del problema

o Objetivo: modelo matemático que expresa la tarea a realizar

o Función de evaluación: asocia a cada solución factible un valor que determina su calidad.

Optimización

o Dado un dominio 𝑋 y una función

el objetivo es encontrar un 𝑥 que verifique

o Optimización combinatoria: consiste en encontrar un objeto en un conjunto finito de soluciones

𝑓 𝑋 : 𝑥 ∈ 𝑋 → 𝑅

𝑥⋆ ∈ 𝑋: 𝑓 𝑥⋆ ≥ 𝑓 𝑥 , ∀𝑥 ∈ 𝑋

Tipos de problemas combinatorios

o Según la representación de la solución• Permutaciones: problemas de ordenación• Binarios: problemas de pertenencia• Enteros: problemas de cardinalidad• Otros (mixtos, subgrafos, árboles, etc.)

1221334443311222144321112234

Tipos de problemas

o Fáciles de resolver• Lineales: función objetivo y restricciones

lineales (método Simplex)

o Difíciles de resolver (𝑁𝑃-difícil)• No podemos garantizar encontrar la mejor

solución en un tiempo razonable• La mayoría de problemas de aplicación práctica• Desarrollamos procedimientos eficientes para

encontrar soluciones de calidad

Tipos de problemas

Tipos de problemas

𝑁𝑃-completo

𝑁𝑃-difícil

𝑃

𝑁𝑃 𝑃 = 𝑁𝑃 =𝑁𝑃-completo

𝑁𝑃-difícil

𝑃 ≠ 𝑁𝑃 𝑃 = 𝑁𝑃

Tipos de problemas

Ejemplos de problemas

o Viajanteo Mochilao Coloreado de grafoso Partición de conjuntoso Ordenación linealo Diversidado Enrutado de vehículoso …

Problema del viajante

o Travelling Salesman Problem, TSP. Un comerciante tiene que visitar n ciudades, comenzando y finalizando en su propia ciudad. Conociendo el coste de ir de una ciudad a otra, encontrar el recorrido de coste mínimo.

10

1

8

1 16 13

Problema del viajante

o Número de soluciones en el TSP• 10 ciudades. 105 (aprox.)• 20 ciudades. 1012 (aprox.)• 50 ciudades. 1062 (aprox.)o Enumeración exhaustiva§ Edad del universo 15000 millones de años (1018 sec)§ Súper-computador: 100 petaflops (1017Inst/sec)

0.000000000000000000000000001% de soluciones evaluadas

Problema del viajante

Tipos de óptimos

o Óptimo global: se trata de la mejor solución que se puede encontrar a un problema

o Óptimo local: es la mejor solución de un problema dentro de una vecindad determinada

o Un óptimo global es óptimo local de cualquier vecindad

Tipos de óptimos

Vecindado Dada una solución 𝑥, la vecindad 𝑁(𝑥) de esa

solución es un subconjunto del espacio de soluciones que contiene soluciones próximas a la original

o Cada solución de su vecindad 𝑥2 ∈ 𝑁(𝑥) puede obtenerse directamente desde 𝑥 mediante una operación llamada movimiento

Movimiento

Heurísticas y metaheurísticas

o Para la mayoría de los problemas con interés práctico, los algoritmos exactos no son una alternativa realista

• El tamaño del problema hace que éste sea ineficiente computacionalmente

• Ejemplo del viajante

Heurísticas y metaheurísticas

o Hay condiciones difíciles de modelar que exigen flexibilidad

o Se necesitan soluciones aproximadascomo parte de un procedimiento global que garantice el óptimo

• El heurístico proporciona una buena solución inicial y participa en el paso intermedio del procedimiento

Heurísticas y metaheurísticas

o Heurísticas: procedimientos simplesbasados en el sentido común que obtienen una buena solución a problemas difíciles de un modo sencillo y rápido

o Metaheurísticas: procedimiento iterativo maestro que guía y modifica las operaciones de una heurística subordinada para producir eficientementesoluciones de alta calidad

Exacto vs heurístico

Exactos Heurísticos/Metaheurísticos

Solución óptima Solución de calidad (óptimo no garantizado)

El tiempo invertido para obtener el óptimo de un problema difícil puede ser desproporcionado

El tiempo suele ser reducido

Útiles para problemas pequeños Útiles cuando el problema es grande y necesitamos generar soluciones en un corto espacio de tiempo

Heurísticos constructivos

o Estrategia voraz: Partiendo de una semilla, construyen iterativamente una solución

o En cada paso, se añade a la solución el elemento que produzca la mayor mejoraen la solución parcial

o Visión miope: eligen la mejor opción para la siguiente iteración sin importar lo que suceda en el futuro

Heurísticos constructivos

o Estrategia de descomposición: Se divide el problema en subproblemas más pequeños hasta que el tamaño del subproblema es trivial

o El algoritmo combina las soluciones en cada paso hasta obtener la solución al problema original

o Ejemplo: divide y vencerás

Heurísticos constructivos

o Estrategia de reducción: identifican características que contienen las soluciones buenas conocidas y se asume que la solución óptima también las tendrá

• Reducción drástica del espacio de búsqueda

o Manipulación del modelo: simplifican el modelo del problema original, se soluciona el modelo simplificado y se extrapola al problema original

Heurísticos constructivos

o Estrategia aleatorizada: dada una solución factible y una vecindad asociada, se seleccionan aleatoriamente soluciones dentro de la vecindad

o Su éxito depende de la selección de vecindades prometedoras

Heurísticos de búsqueda

o First improvement: examina la vecindad de una solución y selecciona el primer movimiento que produce una mejora

o Best improvement: examina todos los posibles movimientos en una vecindad, seleccionando el que produce la mayor mejora

Limitaciones de los heurísticos

o Dependen en gran medida del problema concreto para el que se han diseñado

o Las técnicas e ideas aplicadas a la resolución de un problema son específicasde éste

o Es difícil trasladar el aprendizaje a otros problemas

• Han de particularizarse para cada caso

Limitaciones de los heurísticos

Metaheurísticas

o Propósito: obtener mejores resultados que los obtenidos por los heurísticostradicionales

o El término fue introducido por Fred Gloveren 1986

o Los procedimientos se sitúan “por encima” de los heurísticos, guiando su comportamiento

Metaheurísticas

Técnicas de diseño de algoritmos* Divide y vencerás* Algoritmos voraces* Programación dinámica* Etc

Algoritmos específicos* Relajación del modelo* Algoritmos ad hoc* Etc

Inspiración* Psicología => Aprendizaje* Biología >* Termología Recocido* Etc

= Evolución=>

Estadística* Aleatorizac* Funciones de distribución* Estimimadores* Etc

ión

Metaheurística

Taxonomía

Ejemplos trayectoriales

o Búsqueda Tabu (Tabu Search – TS)o Búsqueda de Vecindad Variable (Variable

Neighborhood Search – VNS)o GRASP - Greedy Randomized Adaptive Serach

Procedureso Búsqueda local iterada (Iterated Local Search –

ILS)o Recocido Simulado (Simulated Annealing – SA)

Ejemplos poblacionales

o Búsqueda dispersa (Scatter Search – SS)o Reencadenamiento de trayectorias (Path

Relinking – PR)o Algoritmos evolutivos (genéticos – GA y

meméticos – MA)o Optimización por colonias de hormigas (Ant

Colony Optimization – ACO)o Inteligencia de enjambre (Swarm Intelligence –

SI)

Búsqueda de Vecindad Variable

o La búsqueda de vecindad variable (VNS –Variable Neighborhood Search) fue propuesta por P. Hansen y N. Mladenovic en 1997.

o Se basa en el principio del cambio sistemático de vecindad en la búsqueda.

• Al quedarse atrapada en un óptimo local, la búsqueda salta a otra zona del espacio de soluciones.

Búsqueda de Vecindad Variable

1. Un mínimo local en una estructura de vecindad no lo es necesariamente de otra.

2. Un mínimo global es mínimo local respecto a todas las estructuras de vecindad.

3. En general, los mínimos locales con la misma o diferente estructura de vecindad están cerca.

o La cercanía entre óptimos locales es una observación empírica.

• Implica que los óptimos locales aportan información sobre el global.

o Por ejemplo, puede que compartan características.

• Pero no se suele saber qué características comparten.

o Es necesario estudiar las proximidades del óptimo local para encontrar uno mejor.

Búsqueda de Vecindad Variable

o Basic VNS – BVNSo Reduced VNS – RVNSo Variable Neighborhood Descent – VNDo General VNS – GVNSo Variable Neighb. Decomposition Search – VNDSo Skewed VNS – SVNSo Parallel VNS – PVNS

Búsqueda de Vecindad Variable

o Combina pasos aleatorios y deterministas en la exploración de las estructuras de vecindad.

o En cada iteración, se selecciona una solución aleatoria dentro de la vecindad actual y se encuentra su óptimo local.

o Se aplican cambios mientras la solución no mejore.

• Cuando mejora se vuelve a la vecindad inicial.

Búsqueda de Vecindad Variable

𝜑

𝑓 𝜑

Búsqueda de Vecindad Variable

BVNS(𝑆, 𝑘678, 𝑡678)do

𝑘 ← 1do𝑆2 ← 𝑠ℎ𝑎𝑘𝑒 𝑆, 𝑘𝑆22 ← 𝑙𝑜𝑐𝑎𝑙𝑆𝑒𝑎𝑟𝑐ℎ 𝑆2k ← 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟ℎ𝑜𝑜𝑑𝐶ℎ𝑎𝑛𝑔𝑒 𝑆, 𝑆22, 𝑘

while 𝑘 ≤ 𝑘678𝑡 ← 𝐶𝑃𝑈𝑇𝑖𝑚𝑒

while 𝑡 ≤ 𝑡678

Basic VNSBúsqueda de Vecindad Variable

Shake(𝑆, 𝑘) Improve(𝑆’) Neighborhood Change(𝑆, 𝑆’’)

𝑆, 𝑘 ← 1 𝑆′ 𝑆′′

𝑘 ≤ 𝑘678

yes

no

𝑆, 𝑘

𝑆, 𝑘𝑆

Búsqueda de Vecindad Variable

Shakeo Aplica una perturbación aleatoria a la solución

para moverse a una solución dentro de la vecindad k-ésima.

Basic VNS

Búsqueda de Vecindad Variable

Neighborhood Changeo Decide la siguiente vecindad a utilizar.o Si se ha producido una mejora, se actualiza la

mejor solución hasta el momento y se vuelve a la primera vecindad.

o Si no, se pasa a la siguiente vecindad.

Basic VNS

Búsqueda de Vecindad Variable

o En algunas ocasiones la búsqueda local es un procedimiento pesado.

o Para reducir el tiempo de cómputo, RVNS elimina la búsqueda local del proceso.

o Realiza cambios aleatorios de pequeño tamaño en la vecindad actual.

ReducedVNS

Búsqueda de Vecindad VariableRVNS(𝑆, 𝑘678, 𝑡678)do

𝑘 ← 1do𝑆2 ← 𝑠ℎ𝑎𝑘𝑒 𝑆, 𝑘k ← 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟ℎ𝑜𝑜𝑑𝐶ℎ𝑎𝑛𝑔𝑒 𝑆, 𝑆2, 𝑘

while 𝑘 ≤ 𝑘678𝑡 ← 𝐶𝑃𝑈𝑇𝑖𝑚𝑒

while 𝑡 ≤ 𝑡678

ReducedVNS

Shake(𝑆, 𝑘) Improve(𝑆’) Neighborhood Change(𝑆, 𝑆’’)

𝑆, 𝑘 ← 1

𝑆′

𝑘 ≤ 𝑘678

yes

no

𝑆, 𝑘

𝑆′, 𝑘𝑆

Búsqueda de Vecindad Variable

o Utiliza diferentes estructuras de vecindad en el proceso de mejora.

o Los cambios de vecindad son deterministas.

Variable Neighborhood Descent

Búsqueda de Vecindad VariableVND(𝑆, 𝑘678)

𝑘 ← 1do𝑆2 ← 𝐵𝑒𝑠𝑡𝐼𝑛𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟ℎ𝑜𝑜𝑑 𝑆, 𝑘𝑘 ← 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟ℎ𝑜𝑜𝑑𝐶ℎ𝑎𝑛𝑔𝑒 𝑆, 𝑆2, 𝑘

while 𝑘 ≤ 𝑘678

Variable Neighborhood Descent

Shake(𝑆, 𝑘) Improve(𝑆’) Neighborhood Change(𝑆, 𝑆’’)

𝑆, 𝑘 ← 1 𝑆′′

𝑘 ≤ 𝑘678

yes

no

𝑆, 𝑘

𝑆, 𝑘𝑆

Búsqueda de Vecindad Variable

o Se combinan las ideas anteriores:• Se mantiene el esquema de cambio aleatorio de BVNS• Se añade una búsqueda local más exhaustiva como en

VND.

General VNS

Búsqueda de Vecindad VariableGVNS(𝑆, 𝑘678, 𝑡678)do

𝑘 ← 1do𝑆2 ← 𝑠ℎ𝑎𝑘𝑒 𝑆, 𝑘𝑆22 ← 𝑉𝑁𝐷 𝑆2k ← 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟ℎ𝑜𝑜𝑑𝐶ℎ𝑎𝑛𝑔𝑒 𝑆, 𝑆22, 𝑘

while 𝑘 ≤ 𝑘678𝑡 ← 𝐶𝑃𝑈𝑇𝑖𝑚𝑒

while 𝑡 ≤ 𝑡678

General VNS

Shake(𝑆, 𝑘) Improve(𝑆’) Neighborhood Change(𝑆, 𝑆’’)

𝑆, 𝑘 ← 1

𝑆′

𝑘 ≤ 𝑘678

yes

no

𝑆, 𝑘

𝑆, 𝑘𝑆

VND(𝑆’)𝑆′′

Búsqueda de Vecindad Variable

Variable Neighborhood Decomposition Searcho Descompone el problema en subproblemas más

sencillosSkewed VNSo Permite la exploración de zonas con soluciones

infactibles.Hibridacioneso GRASP, Tabú Search, Scatter Search, etc.

Extensiones

Caso de uso. Vertex Separation

o Grafo genérico que se representa en una disposición lineal.

• Cada vértice 𝑣 de coloca en la posición 𝜑 𝑣

A

B

E F

G

C

D

Caso de uso. Vertex Separation

o Grafo genérico que se representa en una disposición lineal.

• Cada vértice 𝑣 de coloca en la posición 𝜑 𝑣

AB EFGCD

1 2 3 4 5 6 7

Caso de uso. Vertex Separation

𝑝 = 3

AB EFGCD

𝐿 𝜑, 𝑝 = 𝐵, 𝐶, 𝐷 𝑅 𝜑, 𝑝 = 𝐴, 𝐸, 𝐹, 𝐺

Caso de uso. Vertex Separationo 𝑆𝑒𝑝(𝜑, 𝑝) represents the separation value

at position 𝑝 of layout 𝜑.o Number of vertices in 𝐿(𝜑, 𝑝) with, at least,

one adjacent in 𝑅(𝜑, 𝑝).

𝑆𝑒𝑝 𝜑, 𝑝= 𝑢 ∈ 𝐿 𝜑, 𝑝 : ∃𝑣 ∈ 𝑅 𝜑, 𝑝 ∧ 𝑢, 𝑣 ∈ 𝐸

Caso de uso. Vertex Separation

AB EFGCD

1

𝑆𝑒𝑝 𝜑, 1 = 𝐷 = 1

Caso de uso. Vertex Separation

AB EFGCD

1 2

𝑆𝑒𝑝 𝜑, 2 = 𝐷, 𝐶 = 2

Caso de uso. Vertex Separation

AB EFGCD

1 2 3

𝑆𝑒𝑝 𝜑, 3 = 𝐷, 𝐶, 𝐵 = 3

Caso de uso. Vertex Separation

𝑆𝑒𝑝 𝜑, 4 = 𝐷, 𝐶, 𝐵, 𝐺 = 4

AB EFGCD

1 2 3 4

Caso de uso. Vertex Separation

𝑆𝑒𝑝 𝜑, 5 = 𝐷, 𝐶, 𝐵 = 3

AB EFGCD

1 2 3 4 3

Caso de uso. Vertex Separation

𝑆𝑒𝑝 𝜑, 6 = 𝐷, 𝐶, 𝐹 = 3

AB EFGCD

1 2 3 4 3 3

Caso de uso. Vertex Separation

o The 𝑽𝑺-value for layout 𝜑 is defined as the maximum of all the 𝑺𝒆𝒑-values among all positions.

𝑉𝑆 𝜑 = maxlmnop

𝑆𝑒𝑝 𝜑, 𝑝

o VSP is a minimization problem.𝜑⋆ = arg min

u∈v𝑉𝑆 𝜑

Caso de uso. Vertex Separation

4

AB EFGCD

1 2 3 3 3

Caso de uso. Vertex Separation

AB EFGCD

1 2 3 3 3

𝑉𝑆 𝜑 = 4

4

Caso de uso. Vertex Separation

o Finding separators for graphs.o Very Large Scale Integration.o Graph theory – maximum independent set.o Computer language compiler design.o Graph drawing.o Natural Language Processing.

Caso de uso. Vertex Separationo Exact algorithms for special graphs: trees,

unicyclic graphs, 𝒏-dimensional grids, co-graphs and permutational graphs.

o A polynomial-time algorithm for general graphs was proposed but its complexity makes it impractical.

o Approximation algorithms: 𝑶 𝐥𝐨𝐠𝟐 𝒏 for general graphs and 𝑶 𝐥𝐨𝐠𝒏 for planar graphs.

Caso de uso. Vertex Separationo Proposal: exact and heuristic perspectives.o Mathematical model: impractical for large

instances.o Metaheuristic algorithm: Variable

Neighborhood Search framework.

Shake(𝑆, 𝑘) Improve(𝑆’) Neighborhood Change(𝑆, 𝑆’’)

𝑆, 𝑘 ← 1 𝑆′ 𝑆′′

𝑘 ≤ 𝑘678

yes

no

𝑆, 𝑘

𝑆, 𝑘𝑆

Caso de uso. Vertex Separation

o Procedimiento constructivo

A

B

E F

G

C

D

F

B C E

G A D

𝐿l

𝐿}

𝐿~

Caso de uso. Vertex Separation

o Procedimiento constructivo

F

B C E

G A D

𝐿l

𝐿}

𝐿~

F B C E G A D

Caso de uso. Vertex Separation

Neighborhood structures –𝑵𝟏• Best improvement with insertion moves. Neighborhood structures –𝑵𝟐• Heuristic rule for identifying promising positions for a

given vertex.• Usually located between the first and second adjacent

vertices.

Caso de uso. Vertex Separation

Variantes del Shake

Selection Insertion Objective

Shake1 Random Random Diversification

Shake2 Greedy Greedy Intensification

Shake3 Random Greedy Compromise

Shake4 Greedy Random Compromise

Caso de uso. Vertex Separation

• A. Duarte, L. F. Escudero, R. Martí, N. Mladenovic, J. J. Pantrigo, and J. Sánchez-Oro, Variable neighborhood search for the Vertex Separation Problem, Computers & Operations Research, 39(12):3247-3255, 2012.• DOI: https://doi.org/10.1016/j.cor.2012.04.017 • IF (2012): 1.909• Ranking: 10/79 (Q1)

Caso de uso. Vertex Separationo J. Sáchez Oro, J.J. Pantrigo, and A. Duarte. Combining

intensification and diversification strategies in VNS. An application to the Vertex Separation problem.Computers & Operations Research, 52(B):209-219, 2014.

• DOI: https://doi.org/10.1016/j.cor.2013.11.008• IF (2015): 1.988• Ranking: 19/82 (Q1)

top related