Está en la página 1de 53

GRASP

GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES

Jos Enrique Gonzalez


Roberto Clavell

Introduccin

Meta heurstica multi-comienzo para problemas


optimizacin combinatorios.
Cada iteracin consiste bsicamente en dos fases:
construccin y bsqueda local.
En la primera se genera una solucin factible cuyo
vecindario es investigado hasta que un mnimo local
es encontrado durante la fase de local search.
Dado E={1,...,n}, un conjunto de soluciones factible
F C 2|E| y una funcin objetivo f: 2|E|-->R tal que f(S) =
(c(e)), para todo S 2|E| donde c(e)= costo asociado
a la inclusin del elemento e en la solucin S.
Solucin ptima = S* F tal que f(S*)<=f(S).

Algoritmo Principal

Algoritmo de
Construccin

Algoritmo de
Construccin

Cada iteracin en la fase de construccin crea


un conjunto de elementos candidatos con todos
los elementos que pueden ser incorporados a
la solucin parcial.
(linea 4)La seleccin del prximo elemento es
determinado por la evaluacin de la funcin
greedy.
Esta funcin representa el incremento en la
funcin de costo a causa de la incorporacin
del elemento en la solucin que se esta
construyendo.

Algoritmo de
Construccin

(linea 5)El elemento a incorporar en la


solucin parcial es randmicamente
seleccionado de la RCL.
Luego la RCL es actualizada
revaluando los costos.
Las soluciones generadas en la fase
de construccin no son
necesariamente ptimas.

Algoritmo de Bsqueda
Local (ABL)

Bsqueda Local

El algoritmo de bsqueda local es iterativo


y va sucesivamente reemplazando la
solucin actual por otra mejor que este en
el vecindario.
Termina cuando no encuentra una mejor
solucin en el vecindario.
Este algoritmo parte de la solucin
generada en la fase de construccin, se
espera que dicha solucin sea de buena
calidad.

Bsqueda Local

Dos estrategias:
best-improving: todos los vecinos son
investigados y la solucin actual es
reemplazada por la solucin del mejor
vecino
first-improving: la solucin actual es
reemplazada por la solucin del primer
vecino cuya solucin sea mejor

Construccin de la RCL

GRASP tiene dos parmetros de


entrada: uno es la condicin de parada
y otro es la calidad de los elementos del
RCL.
Cuanto mayor sea el nmero de
iteraciones, mejor ser la solucin final.
RCL limitada por:

la cantidad de elementos;
por la calidad de estos.

Construccin 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 solucin parcial
sin perder factibilidad y cuya calidad
es superior a un parmetro [0,1]
asociado a la RCL.

Construccin de la RCL
(cont)

Por ej. c`(e) [cmin,cmin + (cmaxcmin)]; si =0 el algoritmo


correspondiente es greedy puro, en
cambio si =1 corresponde a una
construccin randmica.
En cada iteracin se produce una solucion
ejemplar con distribucion desconocida,
cuya media y varianza se dan en funcion
de la naturaleza de la RCL.

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

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

Construccin de la RCL
(cont)

Construccin 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
alternativos
de construccin

Iteraciones Independientes
No se basan en soluciones anteriores
No aprende de la historia
Se descartan soluciones si no son me

Mecanismo alternativo:

La informacion obtenida de buenas


soluciones puede ser usada para
implementar procedimientos
basados en memoria.
Se influencia la fase de construccin.
Se modifican las probabilidades de
seleccin asociadas a cada elemento
de la RCL.

Tcnicas alterativas
Fase de construccin

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(seleccin) de un elemento de la RCL
son iguales. P=1/n
Las probabilidades de seleccin se
reevalan: pi =qi / j=1..n qj , siendo

qi=z*/Ai con Ai el promedio de las soluciones


encontradas, z* la solucin 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
tendrn mas probabilidad de ser
seleccionados.

Conclusiones

Reactive GRASP mejora el GRASP


bsico en trminos de robustez y
calidad de la solucin.
Este algoritmo ha sido usado en
planificacin de redes de sistemas
de sistemas de transmisin de
energa.

Tcnicas alterativas
Fase de construccin

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 diseo
del algoritmo
Podra llegar a ser mas efectivo que
la construccin randmica.

Cost Perturbations

Ejemplo: Prize-collecting Steiner tree.


En cada iteracin se construye una
solucin usando node prizes
actualizados por una funcin de
perturbacin.
Dos esquemas diferentes de costos de
perturbaciones usadas: perturbacin
por eliminaciones y perturbacin por
cambio de costos.

Cost Perturbations

Perturbacin por eliminaciones:


En la fase de construccin se crea una
nueva solucin sin alguno de los nodos
que aparecan en la solucin construida
en la iteracin anterior.
Esto se hace cambiando a cero los
costos de algunos nodos persistentes.
Un parmetro controla la fraccin de
nodos cuyos costos son temporalmente
seteados a cero.

Cost Perturbations

Perturbacin por cambio de costos:


Se agrega ruido a los costos de los
nodos cambiando la funcin objetivo.
Para cada nodo i, una perturbacin de
factor (i) es generada randmicamente
en el intervalo [1-a,1+a] (a parmetro
de implementacin).
El costo asociado al nodo i es
temporalmente cambiado a (i)= (i)*
(i), donde (i) es el costo original.

Tcnicas alterativas
Fase de construccin

Reactive GRASP
Cost Perturbations
Bias Functions
Intelligent Construction: memory
and learning
POP in Construction

Bias Functions

En la construccin del GRASP bsico, el


prximo elemento a ser introducido a la
solucin es elegido randomicamente de
los candidatos en la RCL.
Estos tienen igual probabilidad de ser
elegidos.
Se puede usar alguna distribucin de
probabilidad para guiar la seleccin de
candidatos particulares.

Bias Functions

Bresina propuso otro mecanismo de


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

Tcnicas alterativas
Fase de construccin

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 trmino.
El esquema mantiene un conjunto de
buenas soluciones a ser usadas en la fase
de construccin.
Para pertenecer al conjunto, la solucin
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
solucin e E.
I(e) crece a medida que e aparece mas
seguido en la solucin.
Sea c`(e) la funcin de greedy asociada
con la incorporacin de un elemento e
E en la solucin bajo construccin.
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 gua la solucin a aquellos
valores e E que tengan el mayor
valor de K(e) .
La probabilidad de seleccin de un
elemento de la RCL e E es:
p(e)=K(e)/(K(s)) con s per RCL.

Tcnicas alterativas
Fase de constriccin

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 comn que sean encontradas cerca
de buenas soluciones en un nivel adyacente.
Fleurent y Glover sugirieron que las
imperfecciones introducidas durante la fase de
construccin pueden disminuir aplicando Local
Search durante la fase de construccin y no solo
al final.
Una implementacin practica es aplicar Local
search en dos puntos durante la fase de
construccin.

Path Relinking

Perfeccionamiento del procedimiento


GRASP bsico.
Se empieza con una o mas buenas
soluciones.
Caminos en el espacio de soluciones
son generados y explorados en
bsqueda de mejores soluciones.
Esto es llevado a cabo seleccionando
movimientos e introduciendo atributos
contenidos en la solucin guiada.

Path Relinking

Puede ser visto como una estrategia


que busca incorporar atributos de
soluciones de alta calidad.
Utiliza dos estrategias bsicas:
Aplicado como una post-optimizacin a todo
par de buenas soluciones.
Aplicado como una estrategia de
intensificacin 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 solucin localmente ptima
obtenida luego de Local Search y x2 es una de
unas pocas soluciones elegidas
randmicamente del conjunto de buenas
soluciones.
El algoritmo comienza computando una
diferencia simtrica entre x1 y x2
Resultando un conjunto de movimientos que
deberan ser aplicados a uno de ellos (la
solucin inicial) para alcanzar la otra (la
solucin gua).

Path Relinking

Comenzando de la solucin inicial, el


mejor movimiento de la diferencia
simtrica entre x1 y x2 aun no realizado
es aplicado a la solucin actual.
Esto se hace hasta que la solucin gua
es obtenida.
La mejor solucin encontrada a lo largo
de esta trayectoria es tambin
considerada para ser incluida en el
conjunto.

Path Relinking

Alternativas de implementacin:
No aplicar path-relinking en todas las
iteraciones de GRASP, solo peridicamente.
Explorar dos diferentes trayectorias, usando
primero x1 y luego x2 como solucin 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 pathrelinking:


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
sistemticamente para aumentar la
velocidad o para mejorar la efectividad de
las meta heursticas.
Las implementaciones paralelas son muy
robustas.
Siguen la estategia "independ-thread
multiple-walk", basada en la distribucin
de las iteraciones en varios procesadores.

Parallel GRASP

Cada hilo realiza Max_Iterations/p


iteraciones, donde p y Max_Iterations son
el nmero de procesadores y el nmero
total de iteraciones.
Un procesador acta como maestro
leyendo y distribuyendo datos.
Como las iteraciones son completamente
independientes y el intercambio de
informacin es pequeo, es fcil obtener
un aumento lineal de la velocidad.

Parallel GRASP

Dado un valor inicial para la funcin


objetivo, todos los procesadores paran
inmediatamente despus que uno de ellos
encuentra una solucin al menos mejor
que .
El aumento de velocidad es dado por la
razn entre el tiempo en encontrar una
solucin y la implementacin paralela con
p procesadores.
Se debe asegurar que dos iteraciones
cualquiera no comiencen con igual semilla.

Parallel GRASP

El aspecto mas difcil es determinar


la informacin a ser compartida e
intercambiada para mejorar la
bsqueda sin usar mucha memoria
ni tiempo adicional.

Aplicaciones

Problemas de ruteo.
Optimizaciones grficas.
Transportes.
Telecomunicaciones.
Dibujo de grficas y mapas.
Sistemas de poder.

Ejemplo: TSP
10

C
4

5
6
7
D
12

Inicio: A

Ejemplo: TSP

Fase de construccin:
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}

Ejemplo: TSP
5

C
4

5
6
7
D
12

Inicio: A

Solucin Factible: A,C,B,E,D,A


Costo: 32

Ejemplo: TSP

Fase de Local Search:


Mejoro la solucin que result de la
fase de construccin.
Puedo encontrar una mejor solucin o
no.
Luego de terminar la fase, y en caso de
encontrarse un ptimo local, este se
guarda como solucin actual.

Ejemplo: TSP
10

C
4

5
6
7
D
12

Local Search: A,E,B,C,D

Costo: 24

También podría gustarte