Está en la página 1de 6

# (

El problema VRP, y por tanto su variante con flota heterogénea, son problemas de
optimización combinatoria complejos que caen en la categoría de NP-completo (Choi and
Tcha, 2007), lo que significa que el esfuerzo computacional requerido para resolverlos se
incrementa exponencialmente con el tamaño del problema. Este tipo de problemas no
tienen un algoritmo exacto que pueda resolverlo en un tiempo razonable, y por ello es
necesario poseer herramientas que puedan encontrar soluciones aproximadas de un
modo fácil y en un tiempo suficientemente rápido. Por lo general, esta tarea se lleva a
cabo mediante el uso de heurísticas y metaheurísticas.

Como se ha indicado anteriormente, la utilización de heurísticas tiene lugar cuando no


existen métodos exactos de resolución, o el tiempo de cálculo requerido es desorbitado.
Otras veces su utilización se debe a que el objetivo se centra simplemente en la
búsqueda de una solución de calidad aceptable y no se requiere el punto óptimo.
También se utilizan las soluciones obtenidas de las heurísticas como punto de partida en
la utilización de otros algoritmos más exhaustivos, como las metaheurísticas.

Este capítulo se centra en describir la heurística implementada para la resolución del


modelo del problema HVRP con estimación de los costes externos, así como su
adaptación para la resolución del problema multiobjetivo.

!
"

El algoritmo implementado para la resolución del problema HVRP sin ventanas de tiempo
ni backhauls, se basa en la heurística de ahorros propuesto originalmente por Clarke and
Wright (1964). Aunque dicha heurística no fue diseñada para una flota heterogénea con
limitaciones de capacidad, se ha realizado una ampliación donde se evalúa el ahorro
# (

obtenido de la fusión de dos rutas y la posterior asignación a un vehículo con capacidad


disponible.

Sea Z el conjunto de los vehículos, N el conjunto de clientes con demanda conocida y R


el conjunto de rutas. El algoritmo se inicializa con la formación de una ruta para cada
cliente, que es conectado con el almacén, obteniendo un conjunto R de N rutas. A
continuación, estas rutas irán fusionándose iterativamente hasta que el conjunto R tenga
una sola ruta o hasta que únicamente se produzcan fusiones de rutas que den lugar a
soluciones no factibles en términos de capacidad de vehículos y número de vehículos
disponibles.

El proceso iterativo consiste en calcular para todos los vehículos, independientemente de


cumplir o no con la condición de capacidad, los costes asociados de las rutas existentes,
y por tanto, los ahorros asociados a la fusión de cada pareja de rutas. Posteriormente,
entre el conjunto de parejas de rutas candidatas a ser fusionadas, se elegirá aquella
pareja con un ahorro promedio más alto entre todos los vehículos.

Cuando se fusionan dos rutas, si el número de rutas es menor o igual al número de


vehículos, se resuelve un problema de asignación para obtener la mejor asignación de
vehículos a las rutas.

En el proceso de iteración inicial, cualquier solución generada tiene una alta probabilidad
de ser inviable, porque el número de rutas puede exceder el número de vehículos
disponibles. Igualmente, en las últimas iteraciones del algoritmo, las rutas no se podrán
fusionar porque las demandas de las rutas excederán las capacidades de los vehículos.
Por este motivo, en cada iteración la heurística registra la mejor solución admisible
encontrada hasta el momento.

Por último, es posible que en el proceso de formación de rutas, se lleve a cabo una fusión
que haga que el problema no sea factible, por capacidad de vehículos, es decir, que no
conduzca a una solución con altas demandas en los puntos de entrega y unos vehículos
de baja capacidad. Teniendo en cuenta este caso, el algoritmo dispone de un proceso de
verificación de fusión de rutas. El diagrama de algoritmo se representa en la figura 5.1.
# (

Después de cada proceso de fusión de rutas, el algoritmo calcula para cada vehículo, el
ahorro de costes entre cada par de rutas del conjunto R, obteniéndose una matriz de
ahorros para cada vehículo. En el cálculo de los ahorros, no se tienen en cuenta las
restricciones de capacidad o de disponibilidad del vehículo. El cálculo de los ahorros tiene
la siguiente expresión:

IZ . [I \ [Z R [IZ ]N 9 ^_ ] ` 9a 4 ,5

Donde:

• IZ es el ahorro entre las rutas a y b cuando se realiza con el vehículo k.

• [IZ es el coste de fusionar las rutas a y b cuando se realiza con el vehículo k

Una vez obtenida la matriz de ahorros para cada vehículo, se calculan los valores
medios. El elemento mayor de esta matriz designa las dos rutas candidatas a ser unidas.

b]f cde f
IZ . H
]N 9 ^_ ] ` 9a 4 -5

$ & ! & (

Para garantizar que el algoritmo converge a una solución, se ha implementado un


procedimiento de comprobación de fusión de rutas. Dicho procedimiento consiste en que
posteriormente a la elección de una pareja de rutas para fusionarse, se comprobará si
dicha fusión puede conducir a una solución válida. Para ello, se ordenan las posibles
rutas de mayor a menor demanda y se asignan secuencialmente las demandas de las
rutas al vehículo con menor capacidad disponible. Finalmente, si todas las rutas están
vinculadas a los vehículos, la solución es factible y las rutas candidatas a la fusión se
unen, de lo contrario, se escoge el siguiente valor más grande de la matriz de ahorros y
se repite el procedimiento de verificación.

)
# (

# 6 :- * #$ 7 #9 # (

" 1 &

En cada iteración en el que el número de rutas en R es menor o igual que el número de


vehículos disponibles, se puede obtener una nueva solución para el problema, asignando
cada ruta a un vehículo. Para este propósito, se utiliza el algoritmo húngaro propuesto por
Kuhn (1955). Se trata de un algoritmo de optimización combinatoria que resuelve el
problema de asignación en un tiempo de cálculo polinomial.

Cuando se fusionan dos rutas y se satisface la condición para obtener una solución, el
algoritmo resuelve el problema de asignación óptima de las rutas generadas a los
vehículos disponibles y guarda la solución si es mejor que la anteriormente encontrada.

2 ; $ 6 $

Una vez acabado el algoritmo, se ejecuta una búsqueda local sobre la solución
encontrada aplicando los procedimientos 2-opt y 3-opt a cada una de las rutas
encontradas para mejorar la solución factible.

El movimiento -opt, formalmente conocido como operador -intercambio, es un algoritmo


de búsqueda local que elimina arcos ( >1) y reconecta los segmentos restantes, hasta

*
# (

alcanzar una solución que no pueda ser mejorada utilizando dichos intercambios.
(Figuras 5.2 y 5.3)

# 6 : /$ % :

# 6 : /$ % :

El algoritmo heurístico para la resolución de los problemas multiobjetivo es una extensión


del algoritmo descrito en el apartado anterior. En esta ampliación, el cálculo para
identificar las rutas candidatas a fusionarse no es tan sencillo ya que intervienen más de
una función objetivo.

Para la adaptación de la heurística se necesita calcular en cada iteración, la matriz de


ahorros final asociada a cada vehículo, ya que a partir de este paso el algoritmo actúa de
igual forma. El cálculo de dicha matriz para el problema multiobjetivo se limita a los
siguientes puntos:

1. Se calcula para cada vehículo, la matriz de ahorros de fusión de rutas que


corresponde a cada objetivo. Por tanto, el número de matrices de ahorros
asociadas a cada vehículo coincidirá con el número de objetivos que tenga el
problema.

,
# (

2. Para poder comparar los ahorros de la fusión entre los distintos objetivos, los
valores de cada matriz han de ser normalizados, dividiéndolos por el elemento
mayor de su matriz.
3. Ponderar dichas matrices, multiplicándolas respectivamente por los diferentes
pesos asignados a priori por parte del decisor.
4. La matriz final de ahorros asociada a cada vehículo estará formada por los valores
máximos de los ahorros de las diferentes matrices de las funciones objetivo.

También podría gustarte