560 likes | 763 Vues
GRASP. GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES. José Enrique Gonzalez Roberto Clavell. Introducción. Meta heurística multi-comienzo para problemas optimización combinatorios. Cada iteración consiste básicamente en dos fases: construcción y búsqueda local.
E N D
GRASP GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES José Enrique Gonzalez Roberto Clavell
Introducción • Meta heurística multi-comienzo para problemas optimización combinatorios. • Cada iteración consiste básicamente en dos fases: construcción y búsqueda local. • En la primera se genera una solución factible cuyo vecindario es investigado hasta que un mínimo local es encontrado durante la fase de local search. • Dado E={1,...,n}, un conjunto de soluciones factible F C 2|E| y una función objetivo f: 2|E|-->R tal que f(S) = Σ(c(e)), para todo S Є 2|E| donde c(e)= costo asociado a la inclusión del elemento e en la solución S. Solución óptima = S* Є F tal que f(S*)<=f(S).
Algoritmo de Construcción • Cada iteración en la fase de construcción crea un conjunto de elementos candidatos con todos los elementos que pueden ser incorporados a la solución parcial. • (linea 4)La selección del próximo elemento es determinado por la evaluación de la función greedy. • Esta función representa el incremento en la función de costo a causa de la incorporación del elemento en la solución que se esta construyendo.
Algoritmo de Construcción • (linea 5)El elemento a incorporar en la solución parcial es randómicamente seleccionado de la RCL. • Luego la RCL es actualizada revaluando los costos. • Las soluciones generadas en la fase de construcción no son necesariamente óptimas.
Búsqueda Local • El algoritmo de búsqueda local es iterativo y va sucesivamente reemplazando la solución actual por otra mejor que este en el vecindario. • Termina cuando no encuentra una mejor solución en el vecindario. • Este algoritmo parte de la solución generada en la fase de construcción, se espera que dicha solución sea de buena calidad.
Búsqueda Local • Dos estrategias: • best-improving: todos los vecinos son investigados y la solución actual es reemplazada por la solución del mejor vecino • first-improving: la solución actual es reemplazada por la solución del primer vecino cuya solución sea mejor
Construcción de la RCL • GRASP tiene dos parámetros de entrada: uno es la condición de parada y otro es la calidad de los elementos del RCL. • Cuanto mayor sea el número de iteraciones, mejor será la solución final. • RCL limitada por: • la cantidad de elementos; • por la calidad de estos.
Construcción de la RCL (cont) • 1- La lista es construida con p elementos de mejor costo incremental. • 2- La lista se construye con todos los elementos factibles e E que pueden ser insertados en la solución parcial sin perder factibilidad y cuya calidad es superior a un parámetro [0,1] asociado a la RCL.
Construcción de la RCL (cont) • Por ej. c`(e) [cmin,cmin + (cmax-cmin)]; si =0 el algoritmo correspondiente es greedy puro, en cambio si =1 corresponde a una construcción randómica. • En cada iteración se produce una solucion ejemplar con distribucion desconocida, cuya media y varianza se dan en funcion de la naturaleza de la RCL.
Construcción de la RCL (cont) • Es comun que GRASP encuentre una solucion optima cuanto mas grande es la varianza. • El tiempo total computacional va a ser mayor cuando mas grande sea la varianza de la solucion.
Construcción de la RCL (cont) • En la siguiente tabla se muestran los resultados obtenidos para 1000 construcciones independientes y sus correspondientes aplicaciones de local search para cada una de las construcciones para el problema MAXSAT.
Construcción de la RCL (cont) • Diferentes estrategias para regular el parametro alfa: • (R) autoregulada de acuerdo al procedimiento de Reactive GRASP; • (E) elegida randomicamente de una distribucion de probabilidad uniforme y discreta; • (H) elegida randomicamente de una distribucion de probabilidad decreciente, no uniforme y discreta; y • (F) un valor acordado, (purely greedy choice).
Mecanismos alternativosde construcción • Iteraciones Independientes • No se basan en soluciones anteriores • No “aprende” de la historia • Se descartan soluciones si no son mejores
Mecanismo alternativo: • La informacion obtenida de buenas soluciones puede ser usada para implementar procedimientos basados en memoria. • Se influencia la fase de construcción. • Se modifican las probabilidades de selección asociadas a cada elemento de la RCL.
Técnicas alterativasFase de construcción • Reactive GRASP • Cost Perturbations • Bias Functions • Intelligent Construction: memory and learning • POP in Construction
Reactive GRASP • α no tiene un valor fijo. • Sea Y={α1,α2,..,αn} valores de posibles de α. • P(selección) de un elemento de la RCL son iguales. P=1/n • Las probabilidades de selección se reevalúan: pi =qi / Σj=1..n qj,siendo qi=z*/Ai con Ai el promedio de las soluciones encontradas, z* la solución actual.
Reactive GRASP • Mayores valores de qi corresponden a valores de α mas convenientes. • Las probabilidades asociadas a estos valores van a incrementarse cuando sean reevaluados. • Algunos elementos de la RCL tendrán mas probabilidad de ser seleccionados.
Conclusiones • Reactive GRASP mejora el GRASP básico en términos de robustez y calidad de la solución. • Este algoritmo ha sido usado en planificación de redes de sistemas de sistemas de transmisión de energía.
Técnicas alterativasFase de construcción • Reactive GRASP • Cost Perturbations • Bias Functions • Intelligent Construction: memory and learning • POP in Construction
Cost Perturbations • Idea: introducir “ruido” a los costos originales. • Idea similar al llamado “noissing method” de Charon y Hudry. • Se agrega mas flexibilidad al diseño del algoritmo • Podría llegar a ser mas efectivo que la construcción randómica.
Cost Perturbations • Ejemplo: “Prize-collecting Steiner tree”. • En cada iteración se construye una solución usando “node prizes” actualizados por una función de perturbación. • Dos esquemas diferentes de costos de perturbaciones usadas: perturbación por eliminaciones y perturbación por cambio de costos.
Cost Perturbations • Perturbación por eliminaciones: • En la fase de construcción se crea una nueva solución sin alguno de los nodos que aparecían en la solución construida en la iteración anterior. • Esto se hace cambiando a cero los costos de algunos nodos persistentes. • Un parámetro αcontrola la fracción de nodos cuyos costos son temporalmente seteados a cero.
Cost Perturbations • Perturbación por cambio de costos: • Se agrega “ruido” a los costos de los nodos cambiando la función objetivo. • Para cada nodo i, una perturbación de factor ß(i) es generada randómicamente en el intervalo [1-a,1+a] (a parámetro de implementación). • El costo asociado al nodo i es temporalmente cambiado a Π(i)= Π(i)* ß(i), donde Π(i) es el costo original.
Técnicas alterativasFase de construcción • Reactive GRASP • Cost Perturbations • Bias Functions • Intelligent Construction: memory and learning • POP in Construction
Bias Functions • En la construcción del GRASP básico, el próximo elemento a ser introducido a la solución es elegido randomicamente de los candidatos en la RCL. • Estos tienen igual probabilidad de ser elegidos. • Se puede usar alguna distribución de probabilidad para guiar la selección de candidatos particulares.
Bias Functions • Bresina propuso otro mecanismo de construcción. • Una familia de distribuciones de probabilidad es introducida. • Se basan en un ranking r(o) asignado a cada elemento candidato o, de acuerdo a su valor para la función de greedy.
Bias Functions • Algunas Bias Functions: • random: bias(r)=1 , r єRCL • linear: bias(r)=1/r , r єRCL • log: bias(r)= log-1(r+1) , r єRCL • exponential: bias(r)=e-r , r єRCL • Polynomial: bias(r)=r-n , r єRCL • P(o)=bias(r(o))/ Σ(bias(r(o'))) con o' Є RCL.
Técnicas alterativasFase de construcción • Reactive GRASP • Cost Perturbations • Bias Functions • Intelligent Construction: memory and learning • POP in Construction
Intelligent Construction: memory and learning • Fleurent y Glover propusieron un esquema de memoria a largo término. • El esquema mantiene un conjunto de buenas soluciones a ser usadas en la fase de construcción. • Para pertenecer al conjunto, la solución debe ser mejor que el mejor de los miembros del conjunto o mejor que el peor miembro y suficientemente diferente a las otras soluciones del conjunto.
Intelligent Construction: memory and learning • Sea I(e) la medida de cuan fuertemente determinada y consistente es la solución e Є E. • I(e) crece a medida que e aparece mas seguido en la solución. • Sea c`(e) la función de greedy asociada con la incorporación de un elemento e Є E en la solución bajo construcción. • Sea K(e)=F(c´(e),I(e)) , con e Є E.
Intelligent Construction: memory and learning • Ejemplo: • Sea K(e)= λ*c'(e)+I(e) • Se guía la solución a aquellos valores e Є E que tengan el mayor valor de K(e) . • La probabilidad de selección de un elemento de la RCL e Є E es: p(e)=K(e)/Σ(K(s)) con s per RCL.
Técnicas alterativasFase de constricción • Reactive GRASP • Cost Perturbations • Bias Functions • Intelligent Construction: memory and learning • POP in Construction
POP in Construction • Proximate Optimality Principle. • Se basa en la idea “buenas soluciones en un nivel es mas común que sean encontradas cerca de buenas soluciones en un nivel adyacente”. • Fleurent y Glover sugirieron que las imperfecciones introducidas durante la fase de construcción pueden disminuir aplicando Local Search durante la fase de construcción y no solo al final. • Una implementación practica es aplicar Local search en dos puntos durante la fase de construcción.
Path Relinking • Perfeccionamiento del procedimiento GRASP básico. • Se empieza con una o mas buenas soluciones. • Caminos en el espacio de soluciones son generados y explorados en búsqueda de mejores soluciones. • Esto es llevado a cabo seleccionando movimientos e introduciendo atributos contenidos en la solución guiada.
Path Relinking • Puede ser visto como una estrategia que busca incorporar atributos de soluciones de alta calidad. • Utiliza dos estrategias básicas: • Aplicado como una post-optimización a todo par de buenas soluciones. • Aplicado como una estrategia de intensificación a cada óptimo local obtenido luego de cada fase de Local Search.
Path Relinking • Es aplicado a pares x1 - x2 de soluciones, donde x1 es una solución localmente óptima obtenida luego de Local Search y x2 es una de unas pocas soluciones elegidas randómicamente del conjunto de buenas soluciones. • El algoritmo comienza computando una diferencia simétrica entre x1 y x2 • Resultando un conjunto de movimientos que deberían ser aplicados a uno de ellos (la solución inicial) para alcanzar la otra (la solución guía).
Path Relinking • Comenzando de la solución inicial, el mejor movimiento de la diferencia simétrica entre x1 y x2 aun no realizado es aplicado a la solución actual. • Esto se hace hasta que la solución guía es obtenida. • La mejor solución encontrada a lo largo de esta trayectoria es también considerada para ser incluida en el conjunto.
Path Relinking • Alternativas de implementación: • No aplicar path-relinking en todas las iteraciones de GRASP, solo periódicamente. • Explorar dos diferentes trayectorias, usando primero x1 y luego x2 como solución inicial. • Explorar una trayectoria, comenzando solo por x1 o x2. • No seguir toda la trayectoria, solo parte de ella.
Path Relinking • Cuatro variantes de GRASP y path-relinking: • G: es GRASP puro y no usa path-relinking. • GPRf: agrega a G path-relinking en un sentido (hacia adelante). • GPRb: agrega a G path-relinking en un sentido (hacia atras). • GPRfb: combina GPRf y GPRb, haciendo path-relinking en ambas direcciones. • Path-relinking es una muy buena estrategia para introducir memoria en GRASP, llevando a implementaciones robustas.
Parallel GRASP • El paralelismo no es usado sistemáticamente para aumentar la velocidad o para mejorar la efectividad de las meta heurísticas. • Las implementaciones paralelas son muy robustas. • Siguen la estategia "independ-thread multiple-walk", basada en la distribución de las iteraciones en varios procesadores.
Parallel GRASP • Cada hilo realiza Max_Iterations/p iteraciones, donde p y Max_Iterations son el número de procesadores y el número total de iteraciones. • Un procesador actúa como maestro leyendo y distribuyendo datos. • Como las iteraciones son completamente independientes y el intercambio de información es pequeño, es fácil obtener un aumento lineal de la velocidad.
Parallel GRASP • Dado un valor inicial τ para la función objetivo, todos los procesadores paran inmediatamente después que uno de ellos encuentra una solución al menos mejor que τ. • El aumento de velocidad es dado por la razón entre el tiempo en encontrar una solución y la implementación paralela con p procesadores. • Se debe asegurar que dos iteraciones cualquiera no comiencen con igual semilla.
Parallel GRASP • El aspecto mas difícil es determinar la información a ser compartida e intercambiada para mejorar la búsqueda sin usar mucha memoria ni tiempo adicional.
Aplicaciones • Problemas de ruteo. • Optimizaciones gráficas. • Transportes. • Telecomunicaciones. • Dibujo de gráficas y mapas. • Sistemas de poder.
Ejemplo: TSP 10 A C 4 5 6 B 8 7 D 5 E 12 Inicio: A
Ejemplo: TSP • Fase de construcción: • Nodo A RCL: {C,D} elijo C Sol Parcial {A,C} • Nodo C RCL: {E,B} elijo B Sol Parcial {A,C,B}…. • Final fase Sol Factible {A,C,B,E,D,A}