Sie sind auf Seite 1von 11

CAPITULO 3

METODOLOGIA GRASP

3.1

Descripcin General de la Metodologa GRASP

La metodologa GRASP consiste en combinar dos heursticas:


1. Una heurstica constructiva.
2. Una heurstica de mejora.

3.2

Modelo bsico de routing. VRP


1.

Construir la ruta.

2.

Asignacin de los clientes a las rutas, sin exceso de capacidad.

3.

Circuito hamiltoneano de costo mnimo.

4.

Dos niveles de decisin: Asignacin

y Orden de visitas o

recorrido.
Se opera con datos reales no euclidianos para que el resultado sea real.

3.2.1 Metodologa de las tcnicas Metaheursticas

Meta Heursticos en Optimizacin Combinatoria


En los ltimos aos ha habido un crecimiento espectacular en el
desarrollo de procedimientos heursticos para resolver problemas
combinatorios. Este hecho puede ser constatado examinando el gran
nmero de artculos en revistas de Investigacin Operativa en los que

se proponen y estudian mtodos heursticos como las publicaciones


especficas para el estudio y divulgacin de dichos procedimientos
tales como Journal of Heuristics.
El auge que experimentan los procedimientos heursticos se debe sin
duda a la necesidad de disponer de herramientas que permitan
ofrecer soluciones rpidas a problemas reales. Es importante destacar
el hecho de que los algoritmos heursticos (por s solos) no garantizan
la optimalidad de la solucin encontrada, aunque su propsito es
encontrar una solucin cercana al ptimo en un tiempo razonable. Sin
embargo, la gran cantidad de publicaciones en donde problemas de
gran dificultad son resueltos con gran rapidez, avalan estos mtodos.
Dentro de las tcnicas heursticas existen diversos mtodos, como:
Mtodos

constructivos,

de

descomposicin,

de

reduccin,

de

manipulacin del modelo y de bsqueda local. Tradicionalmente, para


resolver un problema dado se diseaba un algoritmo especfico que
perteneca a algunos de los mtodos enumerativos. El inters
primordial de los investigadores del rea es disear mtodos
generales que sirvan para resolver clases o categoras de problemas.
Dado que estos mtodos generales sirven para construir o guiar el
diseo de mtodos que resuelvan problemas especficos se les ha
dado el nombre de Metaheursticos. Los profesores Osman y Kelly
(1995) introducen la siguiente definicin:

"Los procedimientos Metaheursticos son una clase de mtodos


aproximados que estn diseados para resolver problemas difciles de
optimizacin combinatoria, en los que los heursticos clsicos no son
eficientes. Los Metaheursticos proporcionan un marco general para
crear nuevos algoritmos hbridos combinando diferentes conceptos
derivados de: inteligencia artificial, evolucin biolgica y mecanismos
estadsticos" .
Los

cuatro

reconocidos

procedimientos
en

la

Metaheursticos

Optimizacin

ms

Combinatoria

utilizados

son:

Simulated

Annealing, Tab Search, GRASP y Algoritmos Genticos. Si se est


interesado en profundizar en estas tcnicas y desea consultar ms
informacin , se recomienda la siguiente bibliografa: "Optimizacin
Heurstica y Redes Neuronales"1 y "Heursticas en Optimizacin"

3.2.2 Procedimientos Meta-Heursticos:


A) Bsqueda Tab
B) Templado Simulado
C) Algoritmos Genticos
D) GRASP
1

"Optimizacin Heurstica y Redes Neuronales". Edit Adenso Daz. Editorial


Paraninfo. 1996
2

"Heursticas en Optimizacin". J. Marcos Moreno y Jos A. Moreno. Edita:


Direccin General Universidades, Gobierno de Canarias (1999).

- Simulated annealing (primeros trabajos 1953, 1983)


-

Redes neuronales (primeras ideas en los 60, resurgieron en los


80)

Algoritmos genticos (primeras ideas en los 60, mayormente


aplicaciones a problemas de IA).
Algoritmos evolutivos

Tab Search

(primeras aplicaciones a optimizacin combinatoria

en 1986, basado en algunas ideas de los 70)


-

Bsqueda con umbral (Threshold algorithms)

GRASP (1989)

La metodologa GRASP fue desarrollada al final de la dcada de los 80


con el objetivo inicial de resolver problemas de cubrimientos de
conjuntos (Feo y Resende, 1989). El trmino GRASP fue introducido
por Feo y Resende (1995) como una nueva tcnica metaheurstica de
propsito general.
GRASP es un procedimiento iterativo en donde cada paso consiste en
una fase constructiva y una de mejora. En la fase constructiva se
aplica un procedimiento heurstico constructivo para obtener una
buena solucin inicial. Esta solucin se mejora en la segunda fase
mediante un algoritmo de bsqueda local. La mejor de todas las
soluciones examinadas se guarda como resultado final.

La palabra GRASP proviene de las siglas de Greedy Randomized


Adaptive Search Procedures que en castellano sera algo as como:
Procedimientos

de

Bsqueda

basados

en

funciones

"Greedy"

Aleatorizadas Adaptativas.
En la fase de construccin se construye iterativamente una solucin
factible, aadiendo un elemento en cada paso. En cada iteracin la
eleccin del prximo elemento para ser aadido a la solucin parcial
viene determinada por una funcin greedy. Esta funcin mide el
beneficio de aadir cada uno de los elementos y se elige la mejor.
Notar que esta medida es miope en el sentido que no tiene en cuenta
qu ocurrir en iteraciones sucesivas una vez que se hace una
eleccin, sino nicamente en la iteracin actual.
Se dice que el heurstico greedy es adaptativo porque en cada
iteracin se actualizan los beneficios obtenidos de aadir el elemento
seleccionado a la solucin parcial. Es decir, la evaluacin que se
tenga de aadir un determinado elemento a la solucin en la iteracin
j, no coincidir necesariamente con la que se tenga en la iteracin
j+1.
El heurstico es aleatorizado porque no selecciona el mejor candidato
segn la funcin greedy adaptada sino que, con el objeto de
diversificar y no repetir soluciones en dos construcciones diferentes,
se construye un lista con los mejores candidatos de entre los que se
toma uno al azar.

Al igual que ocurre en muchos mtodos deterministas las soluciones


generadas por la fase de construccin de GRASP no suelen ser
ptimos locales. Dado que la fase inicial no garantiza la optimalidad
local respecto a la estructura de entorno en la que se est trabajando
(notar que hay selecciones aleatorias), se aplica un procedimiento de
bsqueda local como postprocesamiento para mejorar la solucin
obtenida.
En la fase de mejora se suele emplear un procedimiento de
intercambio simple con el objeto de no emplear mucho tiempo en
esta mejora. Notar que GRASP se basa en hacer mltiples iteraciones
y quedarse con la mejor solucin, por lo que no es especialmente
beneficioso para el mtodo el detenerse demasiado en mejorar una
solucin dada.
3.3.1 Generalidades en el modelo GRASP
1. Construimos una solucin factible de una ruta por medio del
heurstica Greedy Factible aleatoriazada.
2. Despus de tener una solucin factible, hacemos una
bsqueda local para mejorar la solucin inicial.
El siguiente esquema muestra el funcionamiento global del algoritmo:

Fase Constructiva
- Seleccionar una lista de elementos candidatos.

- Considerar una Lista Restringida de los mejores Candidatos.


-

Seleccionar

un

elemento

aleatoriamente

de

la

Lista

Restringida.

Fase de Mejora
- Hacer un proceso de bsqueda local a partir de la solucin

construida hasta que no se pueda mejorar ms.

Actualizacin
- Si la solucin obtenida mejora a la mejor almacenada,

actualizarla.
El hacer muchas iteraciones GRASP es una forma de hacer un
muestreo del espacio de soluciones. Basndonos en las observaciones
empricas, se ve que la distribucin de la muestra generalmente tiene
un

valor

en

promedio

que

es

inferior

al

obtenido

por

un

procedimiento determinista, sin embargo, la mejor de las soluciones


encontradas generalmente supera a la del procedimiento determinista
con una alta probabilidad.
Las implementaciones GRASP generalmente son robustas en el
sentido de que es difcil el encontrar ejemplos patolgicos en donde el
mtodo funcione arbitrariamente mal.
Algunas de las sugerencias para mejorar el procedimiento son:

1.

Se puede incluir una fase previa a la de construccin: una fase


determinista con el objetivo de ahorrar esfuerzo a la fase
siguiente.

2.

Si se conoce que ciertas subestructuras forman parte de una


solucin ptima, stas pueden ser el punto de partida de la fase
constructiva.

Tal y como sealan Feo y Resende una de las caractersticas ms


relevantes de GRASP es su sencillez y facilidad de implementacin.
De esta forma se pueden concentrar los esfuerzos en disear
estructuras de datos para optimizar la eficiencia del cdigo y
proporcionar una gran rapidez al algoritmo; dado que este es uno de
los objetivos principales del mtodo.
3.3.2 Aleatorizacin de la heurstica constructiva.
La construccin de la solucin inicial se basa en la seleccin aleatoria
del siguiente arco a aadir de una lista de arcos candidatos. Sea a el
arco candidato de un mnimo coste y b el arco candidato de mximo
coste.
Sea C el conjunto de arcos candidatos que satisfacen las 2
condiciones

especificadas

para

la

heurstica

greedy

descrita

anteriormente y sean a=min {cij: (i,j) C }, b= max {cij: (i,j) C } y


T= a + (b-a) donde 0<<1. La lista restringida de candidatos se
construye de la siguiente manera:
RCL = {(i,j): (i,j) C, cij T }

3.3.3 Descripcin General de Bsqueda Local


Dado un problema P de Optimizacin Combinatoria utilizaremos X
para denotar el conjunto de soluciones factibles del problema.
Cada solucin tiene un conjunto de soluciones asociadas, que
denominaremos entorno de x. Una solucin del entorno puede
obtenerse directamente a partir de x mediante una operacin llamada
movimiento.
Un procedimiento de bsqueda local parte de una solucin inicial x0 ,
calcula su entorno N(x0) y escoge una nueva solucin x1 N(x0).
Dicho de otro modo, hace el movimiento m1 que aplicado a x0 da
como resultado x1. Este proceso puede ser utilizado reiteradamente:
en cada iteracin el algoritmo hace un movimiento, "visitando" una
nueva solucin del conjunto X.

ESQUEMA GENERAL DE UN ALGORITMO DE DESCENSO


(O BUSQUEDA LOCAL)

X= conjunto de soluciones
N(x) =soluciones vecinas de la solucin x
---------------------------------------------------------------Elegir una solucin inicial x0 X
Repetir
Elegir X tal que f(x) < f(x0)
Reemplazar x0 con x
Hasta que f(x) > f(x0) para todos los x N(x0)
----------------------------------------------------------------

As pues, un procedimiento de bsqueda local queda completamente


determinado al especificar un entorno, o lo que es lo mismo un
movimiento, y el criterio de seleccin de una solucin dentro del
entorno.
La definicin de entorno/movimiento, depende en gran medida de la
estructura del problema a resolver as como de la funcin objetivo.
Tambin se pueden definir diferentes criterios para seleccionar una
nueva solucin del entorno. Uno de los criterios ms simples consiste
en tomar la solucin con mejor evaluacin de la funcin objetivo,
siempre que la nueva solucin sea mejor que la actual. Permite ir
mejorando la solucin actual mientras se pueda. El algoritmo se
detiene cuando la solucin no puede ser mejorada, por lo que se
obtiene un ptimo local del problema respecto al entorno definido.
Sin embargo, es de esperar que la solucin encontrada no sea el
ptimo global del problema dado que la bsqueda local opera con
referencia a un conjunto reducido de soluciones factibles.
El propsito de muchas de las tcnicas meta-heursticas basadas en
bsqueda local es evitar quedar atrapadas en un ptimo local lejano
del ptimo global. Para lo cual se hace preciso el permitir utilizar
movimientos que empeoren la funcin objetivo. Sin embargo, esto
plantea dos problemas. El primero es que al permitir movimientos de
mejora y de no mejora, el procedimiento se puede ciclar, revisitando
soluciones ya vistas, por lo que habra que introducir un mecanismo

que lo impida. El segundo es que hay que establecer un criterio de


parada ya que un procedimiento de dichas caractersticas podra
iterar indefinidamente.