Trabajo Fin de Grado Ingeniería en Tecnologías...
-
Upload
trinhthien -
Category
Documents
-
view
220 -
download
0
Transcript of Trabajo Fin de Grado Ingeniería en Tecnologías...
Trabajo Fin de Grado
Ingeniería en Tecnologías Industriales
Heurística de Recocido Simulado para la resolución
del problema del acarreo terrestre
Autor: Manuel Cuberos Gallardo
Tutor: Alejandro Escudero Santana
Dep. Organización Industrial y Gestión de
Empresas II
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, septiembre de 2014
Proyecto Fin de Grado
Ingeniería en Tecnologías Industriales
Heurística de Recocido Simulado para la resolución
del problema del acarreo terrestre
Autor:
Manuel Cuberos Gallardo
Tutor:
Prof. Alejandro Escudero Santana
Dep. Organización Industrial y Gestión de Empresas II
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, septiembre de 2014
Proyecto Fin de Grado: Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Autor: Manuel Cuberos Gallardo
Tutor: Alejandro Escudero Santana
El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:
Presidente:
Vocales:
Secretario:
Acuerdan otorgarle la calificación de:
Sevilla, septiembre de 2014
El Secretario del Tribunal
Resumen
El transporte intermodal es un método de transporte de mercancías en auge debido a la imperiosa necesidad de
optimizar los envíos. Esta forma de transporte consiste en enlazar diversos modos de transporte, pero
transportando una única unidad de carga. Este matiz consigue reducir sustancialmente el tiempo de los envíos
debido a la reducción del tiempo que debe pasar la mercancía en las diferentes estaciones de la cadena de
transporte, al cambiarse las cargas y descargas de la mercancía de los contenedores por las cargas y descargas
de los contenedores en los vehículos. Por contra, el transporte intermodal requiere una buena planificación
para tratar de sincronizar los diferentes modos. Las etapas en las que se divide el transporte intermodal se
dividen fundamentalmente en trayecto principal y acarreo terrestre. El trayecto principal, cubierto por trenes o
barcos, se ocupa de grandes distancias entre terminales intermodales. Por su parte, el acarreo terrestre incluye
el transporte por carretera desde la terminal intermodal a los clientes y viceversa. Es la etapa más flexible de la
cadena, lo que la convierte en la más interesante a la hora de intentar optimizar rutas de transporte.
El problema del acarreo terrestre se corresponde con un problema VRPTW, donde la capacidad de los
vehículos se define como una variable binaria, pues los vehículos pueden estar cargados o descargados. Este
proyecto resuelve el problema del acarreo terrestre con la metaheurística del Recocido Simulado. El algoritmo
del Recocido Simulado se basa en el proceso de recocido de los metales para conseguir materiales
cristalizados. Este proceso consiste en elevar mucho la temperatura del material para conseguir una gran
agitación de sus partículas. Posteriormente, se deja enfriar el material lentamente, de modo que las partículas
terminan conformando estructuras con menor energía interna que la inicial. A partir de esta idea, se ha
adaptado el algoritmo para la resolución del problema del acarreo terrestre, donde se dan las siguientes
correspondencias con el método de recocido simulado original.
Proceso de Recocido Simulado Adaptación a problemas de optimización
Configuración Solución factible
Configuración de mínima energía interna Solución óptima
Energía interna de la configuración Costes asociados a una solución
Temperatura Parámetro de control
En problemas de optimización, el algoritmo parte de una solución factible. La configuración de la misma debe
ser definida para cada tipo de problema. A partir de ella, el algoritmo genera un vecindario de la solución. Se
entiende por vecindario el conjunto de soluciones factibles elaboradas a partir de una anterior según algún
criterio definido por el usuario. Posteriormente, el algoritmo elige al azar una solución vecina a la inicial, la
evalúa y toma esta nueva solución si es mejor que la anterior. Además, el Recocido Simulado permite salir de
óptimos locales. Esto lo hace aceptando soluciones peores según una probabilidad, la cual disminuye
conforme a una función de enfriamiento. Este proceso se repite las veces fijadas por el usuario para cada valor
de la temperatura, hasta alcanzar la condición de parada. El pseudocódigo del algoritmo es:
En la literatura podemos encontrar diversas versiones del algoritmo a partir de diferentes funciones de
enfriamiento, vecindarios y condiciones de parada. En el presente proyecto, se ha evaluado el comportamiento
del algoritmo con dos de las funciones de enfriamiento más comunes:
Descenso exponencial: tk+1 = β·tk, donde β es un valor menor que 1. Generalmente, β Є (0.8, 0.99) es
el parámetro que marca la velocidad de enfriamiento, siendo ésta mayor cuanto menor sea β.
Esquema de Cauchy modificado: tk+1 = tk / (1+β·tk), donde β es un valor positivo próximo a 0. La
velocidad de enfriamiento será menor cuanto más bajo sea el valor de β. Permite controlar el número
de iteraciones.
Como condición de parada se ha impuesto la más común, que es establecer una temperatura mínima. El
algoritmo se detiene cuando llega a dicha temperatura. Otras posibles condiciones de parada son el número de
iteraciones que deben realizarse en total en el algoritmo, o fijar el número máximo de iteraciones sin que se
haya encontrado una solución peor que la anterior, lo que haría pensar que estamos en el mínimo global y no
Seleccionar t = t0 (temperatura inicial), función de enfriamiento α(t) y longitud
de la cadena L
contador_iteraciones = 0
Seleccionar s0, solución inicial aleatoria
Repetir
Repetir
Seleccionar s Є N(s0)
δ = f(s) – f(s0)
si δ < 0
entonces s0 = s
si no
si num_aleatorio Є [0,1) < e-δ / t
entonces s0 = s
contador_iteraciones ++
Hasta contador_iteraciones = L
t = α(t)
Hasta condición de parada
en un mínimo local. Sin embargo, no está demostrado que estas condiciones de parada muestren mejores
resultados.
En cuanto a configuraciones de la solución, se ha trabajado con dos posibilidades: por un lado, se ha
considerado la forma de la solución como un vector que engloba números desde 1 hasta (n + m), siendo n el
número de tareas que deben ser cubiertas y m el número de vehículos disponibles. En la solución, cada número
desde 1 hasta n se corresponde con una tarea, mientras que los números desde n+1 hasta n+m corresponden a
vehículos. La interpretación de la solución es que cada vehículo debe cubrir las tareas que le suceden, hasta
que encontramos otro número correspondiente a un vehículo, como se resume en los siguientes ejemplos.
Matriz Solución Significado
[7 1 2 8 3 4 5 9 6]
El vehículo 7 cubre las tareas 1 y 2
El vehiculo 8 cubre las tareas 3, 4 y 5
El vehículo 9 cubre la tarea 6
[7 1 2 3 4 8 9 5 6]
El vehículo 7 cubre las tareas 1, 2, 3 y 4
El vehículo 8 está ocioso
El vehículo 9 cubre las tareas 5 y 6
Para esta configuración han sido exploradas dos vecindades. En primer lugar, se ha implementado el
vecindario resultante de permutar todos los números de la solución de partida. Cada nueva permutación entre
dos números (ya sean vehículos o tareas) genera una nueva solución. Por otra parte, se ha analizado el
comportamiento del algoritmo con una doble vecindad, que consiste en la unión de permutar únicamente las
tareas pertenecientes a la solución inicial y la extracción e inserción de tareas en diferentes posiciones del
vector solución. Al igual que en la otra vecindad estudiada, cada nueva permutación, y cada nueva extracción e
inserción genera una nueva solución del vecindario.
Por otro lado, se ha configurado una solución que muestra únicamente las tareas a cubrir en el orden en que
deben ser asignadas. El algoritmo asigna la primera solución del vector a un vehículo. Para el resto de tareas,
secuencialmente se comprueba si el vehículo puede cumplir la tarea sin incumplir ninguna de las restricciones
de tiempo impuestas por las ventanas temporales. Si al vehículo le da tiempo de cubrir la tarea, se le asignará
la tarea. En el caso de que no pueda satisfacer las ventanas temporales, consideraremos el vehículo saturado y
asignaremos la tarea a un nuevo vehículo.
Matriz Solución Significado
[5 2 4 1 3]
El problema consta de 5 tareas. Comenzaremos
asignando la tarea 5 a un vehículo.
Posteriormente, asignaremos la tarea 2 al mismo
vehículo siempre y cuando la tarea pueda ser
cubierta sin romper ninguna ventana temporal.
Posteriormente se repetiría el proceso con la
tarea 4. Cuando encontremos que una tarea no
puede ser cubierta por un vehículo, se utilizará
un nuevo vehículo.
El proceso de parametrización de este tipo de problemas debe hacerse a partir de la experiencia, ya que el
comportamiento del algoritmo depende de cada problema. La parametrización ha sido llevada a cabo
basándonos en una adaptación del Benchmarking de Solomon (1987) para VRPTW llevada a cabo en
Escudero et al. (2011) para el problema del acarreo terrestre. Observando los resultados ante los distintos
experimentos, se ha decidido cuál debe ser la función de enfriamiento, qué configuración daremos a la
solución, cuál será el criterio de formación de vecindarios, y cuáles deben ser los valores de los parámetros del
algoritmo.
La parametrización se ha hecho considerando dos escenarios de problemas posibles:
Ventanas temporales suaves: Pueden producirse atrasos en las tareas, pero estos son penalizados.
Ventanas temporales estrictas: No pueden producirse atrasos en ninguna tarea. Una solución que
incumpla alguna ventana temporal se considera no factible.
Una vez concluido el proceso de parametrización, se ha aplicado el algoritmo a doce problemas
correspondientes a la adaptación del Benchmarking de Solomon mencionada. A la vista de los resultados de
los mismos, se han extraido conclusiones interesantes sobre el comportamiento de la heurística del Recocido
Simulado aplicada al problema del acarreo terrestre.
Abstract
The intermodal freight transport is an increasing method of goods transport due to the need to optimize
freights. This form of transport consists in linking different modes of transport, but carrying a single unit load.
This nuance achieves an important reduction of the time which goods have to spend in the different intermodal
stations, substituting loads and downloads of goods in containers for loads and downloads of containers in the
vehicles. However, intermodal transport requires a good planification in order to integrate the different modes
of transport. The intermodal transport can be divided in two phases: main route and drayage. The main route,
by rail or ship, is responsible for long-distances between terminals. The drayage, on its part, is defined by the
delivery of freights by truck from intermodal terminals to clients and vice versa. It is the most flexible phase of
the chain - this is the reason why it is interesting to optimize drayage.
The drayage problem is a VRPTW where the capacity of the vehicles is a binary variable, as vehicles can be
loaded or unloaded. This project solves the drayage problem with the help of the Simulated Annealing
metaheuristic. This algorithm is based on the process of annealing of metals for getting crystallized materials.
This process consists in raising the temperature of the metal in order to get a great agitation of its particles.
Thereafter, the material cools slowly so that the particles finally form structures with smaller internal energy
than the initial one. From this idea, we have adapted the algorithm for solving the drayage problem, where the
following correspondences are given for the original simulated annealing process.
Simulated Annealing Process Adaptation for Optimization Problems
Configuration Feasible solution
Minimum internal energy configuration Optimum solution
Internal energy of a configuration Costs associated with a solution
Temperature Control parameter
In optimization problems, the algorithm starts from a feasible solution. Its configuration should be defined for
each kind of problem. From this configuration, the algorithm generates a neighbourhood of the solution. A
neighbourhood is a set of feasible solutions made from the previous one according to a standard which should
be defined by the user. Later, the algorithm randomly chooses a solution of the neighbourhood, evaluates it,
and takes this new solution if it is better than the previous one. Futhermore, Simulated Annealing allows us to
escape from local minimums. This is possible because the algorithm can accept worse solutions according to a
probability that decreases following a cooling function. This process is repeated as many times as set by the
user for each value of temperature, up to the stop condition. The pseudocode of the algorithm is:
Many versions of the algorithm can be found in literature, beginning with different cooling functions,
neighbourhoods, and stop conditions. In this project, we evaluate the behaviour of the algorithm with two of
the most common cooling functions.
Exponential decay: tk+1 = β·tk, where β is less than 1. Generally, β Є (0.8, 0.99) is the parameter that
sets the rate of cooling.
Cauchy modified scheme: tk+1 = tk / (1+β·tk), where β is a positive value, close to 0. The cooling rate
will be smaller the lower the value of β. This cooling function allows us to control the number of
iterations.
The most common stop condition has been chosen, which is to determinate a value for the minimum
temperature. The algorithm stops when the temperature reaches that value. Other possible stop conditions are
to set the maximum total number of iterations, or to determinate the maximum number of iterations without
escape of a minimum, which would suggest that we are not in a local but in the global minimum. However, it
is not proved that those stop conditions could find better solutions for the problem.
About the configuration of a solution, we have worked with two possibilities. On the one hand, we have
considerated the solution as a vector which contains numbers from 1 to (n+m), being n the number of tasks
and m the number of vehicles. In this solution, each number from 1 to n corresponds to a task, while the
Select t = t0 (initial temperature), cooling function α(t) y length of the chain L
interation_counter = 0
Select s0, random initial solution
Repeat
Repeat
Select s Є N(s0)
δ = f(s) – f(s0)
if δ < 0
s0 = s
else
if random_number Є [0,1) < e-δ / t
s0 = s
interation_counter ++
Until interation_counter = L
t = α(t)
Until stop contidion
numbers from n+1 to n+m correspond to the vehicles. The interpretation of the solution is that each vehicle
must cover the tasks that follow, until we find another number corresponding to a vehicle, as we can see in the
next examples.
Solution Matrix Interpretation
[7 1 2 8 3 4 5 9 6]
The vehicle 7 covers tasks 1 and 2
The vehicle 8 covers tasks 3, 4 and 5
The vehicle 9 covers task 6
[7 1 2 3 4 8 9 5 6]
The vehicle 7 covers tasks 1, 2, 3 and 4
The vehicle 8 is free
The vehicle 9 cover tasks 5 and 6
Two neighbourhoods have been explorated for this configuration. First, we have implemented the
neighbourhood resulting of permutating all the numbers of the initial solution. Each new permutation between
two numbers (vehicles or tasks) generates a new solution. On the other hand, we have analyzed the behaviour
of the algorithm with a double neighbourhood consisting on the union of permutating only the tasks of the
initial solution and the extraction and insertion of tasks in different positions of the solution vector. As with the
other neighbourhood, each new permutation, and each new extraction and insertion generates a new solution
of the neighbourhood.
Afterwards, we have configurated a solution which only shows the tasks to be covered. The algorithm assigns
the first task of the vector to a vehicle. As for the other tasks, the algorithm checks sequentially if the vehicle is
able to cover the task without breaking any time window. If the vehicle can cover the task, it will be assigned
to this vehicle. If the vehicle can not cover it, the vehicle will be considerated as saturated and the task will be
assigned to the new vehicle.
Solution Matrix Interpretation
[5 2 4 1 3]
The problem consists on 5 tasks. The algorithm
starts assigning the task 5 to a vehicle. Later, it
assigns the task 2 to the same vehicle if the task
can be covered without breaking any time
window. Subsequently, the process will be
repeated with the task 4. When the algorithm
finds a task which can not be covered by the
same vehicle, a new vehicle will be used.
The parametrization process of this kind of problems should be done from the experience, because the
behaviour of the algorithm is different in each problem. The parametrization has been done based on an
adaptation of the Benchmarking of Solomon (1987) for VRPTW performed in Escudero et al. (2011) for the
drayage problem. According to the results of various experiments, it has been decided which must be the
cooling function, which configuration will be used for the solution, how the neighbourhoods will be created,
and which must be the values of the algorithm parameters.
The parametrization has been done considerating two possibilities of the problem.
Soft time windows: The time windows can be broken, but this fact brings an additional cost.
Hard time windows: The time windows can not be broken. A solution that breaks a time window is
considerated as not feasible.
Once the process of parametrization is finished, the algorithm has been implemented to 12 problems of the
above mentioned adaptation of the Benchmarking of Solomon. In view of the results, we have extracted some
interesting conclussions about the behaviour of the metaheuristic of Simulated Annealing for the drayage
problem.
Índice
Resumen
Abstract
Índice
Índice de Tablas
Índice de Figuras
1 Introducción y objeto del proyecto 1
2 El transporte intermodal 3
2.1 Qué es el transporte intermodal 4
2.1.1 Definiciones 4
2.1.2 Etapas del transporte intermodal 4
2.2 El transporte intermodal frente a otros modelos de transporte 5
3 El problema del acarreo terrestre 9
3.1 Operaciones del acarreo terrestre 9
3.2 The Daily Drayage Problem with Time Windows (DDPTW) 11
3.2.1 Modelado del problema 12
4 El recocido simulado 16
4.1 Introducción a la heurística de Recocido Simulado 17
4.2 Adaptación del Recocido Simulado al problema del acarreo terrestre 19
4.2.1 Variantes de resolución 20
4.3 Parametrización del Algoritmo 23
4.3.1 Problema con penalizaciones por ruptura de las ventanas temporales 24
4.3.2 Problemas con ventanas temporales estrictas 43
5 Resultados 47
5.1 Problemas con 25 tareas y 13 vehículos. Ventanas temporales suaves. 48
5.2 Problemas con 25 tareas. Ventanas temporales estrictas. 48
5.3 Problemas con 50 tareas y 25 vehículos. Ventanas temporales suaves. 49
5.4 Problemas con 50 tareas. Ventanas temporales estrictas. 49
5.5 Problemas con 100 tareas y 50 vehículos. Ventanas temporales suaves. 50
Índice de Tablas
Tabla 1 Operaciones del acarreo terrestre 10
Tabla 2 Analogía entre el algoritmo original y su adaptación a problemas de optimización 20
Tabla 3 Ejemplo de soluciones para un problema con 6 tareas y 3 vehículos. Configuración 1. 21
Tabla 4 Ejemplo de una solución de 6 tareas. Configuración 2. 23
Tabla 5 Resultados del problema con 25 tareas y 13 vehículoss 27
Tabla 6 Resultados en función de β 27
Tabla 7 Resultados en función de β con parámetros fijados 28
Tabla 8 Resultados en función de t0 29
Tabla 9 Resultados en función de tmin 29
Tabla 10 Resultados en función de L 31
Tabla 11 Parámetros con función de enfriamiento de Cauchy 32
Tabla 12 Resultados del problema con 25 tareas y 13 vehículos 35
Tabla 13 Resultados en función de β 36
Tabla 14 Resultados en función de t0 37
Tabla 15 Resultados en función de tmin 37
Tabla 16 Resultados en función de L 39
Tabla 17 Parámetros con función de enfriamiento exponencial 40
Tabla 18 Resultados obtenidos con los parámetros seleccionados 41
Tabla 19 Resultados del algoritmo aplicado a una doble vecindad 42
Tabla 20 Resultado del algoritmo a un problema de 50 tareas y 25 vehículos 42
Tabla 21 Resultados del algoritmo a un problema con 100 tareas y 50 vehículos 43
Tabla 22 Parámetros empleados en problemas con ventanas temporales suaves 43
Tabla 23 Resultados con la configuración 1 del problema de 25 tareas 44
Tabla 24 Resultados con la configuración 2 del problema con 25 tareas 44
Tabla 25 Resultados del problema con 50 tareas y 25 vehículos 45
Tabla 26 Resultados del problema con 100 tareas y 50 vehículos 45
Tabla 27 Parámetros empleados en problemas con ventanas temporales estrictas 45
Tabla 28 Resultados del problema con 25 tareas y 13 vehículos, ventanas temporales suaves 48
Tabla 29 Resultados del problema con 25 tareas, ventanas temporales estrictas 48
Tabla 30 Resultados del problema con 50 tareas y 25 vehículos, ventanas temporales suaves 49
Tabla 31 Resultados del problema con 50 tareas, ventanas temporales estrictas 49
Tabla 32 Resultados del problema con 100 tareas y 50 vehículos, ventanas temporales suaves 50
Tabla 33 Resultados del problema con 100 tareas, ventanas temporales estrictas 50
Índice de Figuras
Figura 1 Transporte Unimodal VS Transporte Multimodal 3
Figura 2 Etapas del transporte intermodal 5
Figura 3 Mapa de implementación de transporte intermodal desde Sevilla 6
Figura 4 Distribución del transporte en Europa 7
Figura 5 Evolución del transporte en Europa 7
Figura 6 Bondad de la solución alcanzada en función de β 28
Figura 7 Coste computacional en función de β 28
Figura 8 Bondad de la solución en función de tmin 30
Figura 9 Coste computacional den función de tmin 30
Figura 10 Bondad de la solución en función de L 31
Figura 11 Coste computacional en función de L 32
Figura 12 Bondad de la solución en función de β 36
Figura 13 Coste computacional en función de β 37
Figura 14 Bondad de la solución en función de tmin 38
Figura 15 Coste computacional en función de tmin 38
Figura 16 Bondad de la solución en función de L 39
Figura 17 Coste computacional en función de L 40
Figura 18 Funciones de enfriamiento analizadas 41
1 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
1 INTRODUCCIÓN Y OBJETO DEL
PROYECTO
l transporte de mercancías se ha desarrollado históricamente a través de dos vías diferenciadas:
empleando medios materiales fijos a través de los cuales se transporta la mercancía, como tuberías o
gaseoductos, o a través de medios móviles por diferentes medios. Resulta evidente que el uso de medios fijos
está limitado a mercancías que pueden fluir por éstos. Estos medios requieren una importante inversión y
cuenta con el inconveniente de la rigidez, lo que limita mucho los posibles destinos de la mercancía. Por ello,
el transporte de mercancías se ha llevado a cabo generalmente mediante vehículos que permitían ser flexibles
con los destinos y no requerían una gran inversión.
Hoy en día, la programación de rutas de transporte sigue siendo un problema capital para muchas empresas
que requieren transportar ya sea mercancías o personas desde un origen hasta un destino. El transporte supone
un importante coste dentro de los presupuestos de las empresas, lo que hace que la necesidad de encontrar una
buena planificación sea importante. Esta importancia se ha acentuado a medida que han aumentado el número
de transportes y las distancias de los mismos, y por consiguiente los costes asociados al transporte.
Los problemas de optimización de rutas han sido muy estudiados históricamente y siguen siéndolo a día de
hoy, debido a la complejidad de los mismos. Los problemas de encaminamiento simple (VRP) son aquellos
donde las componentes son únicamente geográficas, luego el objetivo es encontrar el camino mínimo entre los
distintos puntos. El problema con ventanas temporales (VRPTW) es más complejo que el de encaminamiento
simple, ya que hay que considerar otros aspectos como la utilización de los recursos además de las
restricciones que aparecen y las posibles penlizaciones por incumplimiento de las mismas. Los problemas de
este tipo se pueden considerar problemas de optimización combinatoria, en los que existe un conjunto de
soluciones finito pero exponencial o contablemente infinito en función de los datos del problema. Por tanto, la
elección de un buen método de búsqueda para la resolución del problema se antoja fundamental debido al alto
E
Introducción y objeto del proyecto
2
coste computacional que requiere este tipo de problemas. A menudo, la necesidad de una solución inmediata
hace que se implanten métodos no demasiado eficientes. Las empresas de reparto, por ejemplo, deben
planificar sus rutas a diario por lo que a la hora de desarrollar un algoritmo debemos buscar el equilibrio entre
el coste computacional y la precisión del mismo.
El objetivo del presente proyecto es implementar la heurística de Recocido Simulado (Simulated Annealing) al
problema del acarreo terrestre perteneciente al transporte intermodal, con el fin de que los resultados obtenidos
puedan ser comparados con los ofrecidos por otras heurísticas de optimización. La heurística de Recocido
Simulado resulta especialmente interesante ya que es un método iterativo que permite encontrar una buena
aproximación al óptimo de una función objetivo en un espacio de búsqueda grande. Varios estudios
demuestran que el proceso de búsqueda es convergente al óptimo global si los parámetros del algoritmo se
seleccionan correctamente. Sin embargo, esta convergencia a veces es lenta, lo que produce que el coste
computacional sea alto en problemas complejos.
Este proyecto trata de encontrar los parámetros correspondientes al algoritmo que proporcionen mejores
resultados cuando es aplicado al problema del acarreo terrestre. Para ello se llevará a cabo un minucioso
proceso de parametrización del algoritmo con el fin de conseguir una implementación eficiente que sea capaz
de proporcionar buenas soluciones al problema del acarreo terrestre.
3 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
2 EL TRANSPORTE INTERMODAL
a necesidad de transportar mercancías a distancias muy grandes propició la aparición del transporte
multimodal. Entendemos el transporte multimodal como el transporte de mercancías desde un origen
hasta un destino utilizando diferentes medios de transporte.
Figura 1 Transporte Unimodal VS Transporte Multimodal
Esto posibilitó cubrir distancias grandes conectando el transporte por carretera con el transporte en ferrocarril y
marítimo. El siguiente aspecto a mejorar, el cual sigue siendo objeto de estudio a día de hoy, es la forma en la
que se conectan los diferentes modos. Dependiendo de esta conexión, el tiempo que pasa la mercancía en la
terminal donde cambia de un modo de transporte a otro puede verse reducido considerablemente.
L
El transporte intermodal
4
2.1 Qué es el transporte intermodal
2.1.1 Definiciones
El transporte intermodal es la articulación entre diferentes modos de transporte utilizando una única medida de
carga, generalmente contenedores, a fin de realizar más rápida y eficazmente las operaciones de trasbordo de
mercancías y materiales. Como definieron Van Duin y Van Ham (1998), “el transporte intermodal es el
movimiento de bienes en una misma unidad de carga o vehículo, que usa sucesivamente varios modos de
transporte sin manejo de los bienes en los cambios de modos”.Otras definiciones de transporte intermodal
fueron propuestas en Southworth et al. (2000), “Transporte en el que dos o más modos son unidos de
principio a fin con el objetivo de transportar mercancías o personas de un punto de origen a un punto de
destino”, y en Jones et al (2000) se definió el transporte intermodal como el “envío de mercancías y el
movimiento de personas envueltas en más de un modo de transporte durante un viaje simple y sin fisuras”.
Este tipo de transporte persigue minimizar el tiempo que ha de pasar la mercancía en las terminales. Por el
contrario, el transporte intermodal requiere de una minuciosa planificación para optimizar recursos. Se trata de
organizar la secuencia de modos y nodos de transporte. En los nodos, se conectan los modos en tres niveles.
Nivel físico o infraestructural, por el cual se dota de capacidad a los espacios, infraestructuras e
instalaciones para acoger los distintos tipos de tráficos de mercancía.
Nivel funcional, para compatibilizar servicios con sus propios costes, tiempos, frecuencias y modelos
de gestión y organización.
Nivel de conocimiento, por el cual se ordena, genera y difunde información a la cadena y su entorno.
2.1.2 Etapas del transporte intermodal
A la hora de establecer una buena planificación de un proceso de transporte es muy importante diferenciar las
distintas etapas:
Acarreo terrestre o drayage: Referente a los movimientos de mercancía por carretera desde los
depósitos hasta las terminales portuarias y ferroviarias y viceversa. Es la etapa más flexible y por tanto
la que trataremos de optimizar en mayor medida. En ella focalizaremos el presente trabajo.
Transbordo en la terminal: Ya sea terminal ferroviaria o portuaria, esta etapa debe ser lo más ágil
posible. En ella se ejecuta el cambio de modo de transporte, para lo que se necesitan grúas y
maquinaria capaz de mover los contenedores que emplearemos como unidad de carga.
Trayecto principal: Correspondiente con el trayecto de mayor distancia, generalmente por mar o
ferrocarril. Será importante asegurar que la mercancía llegue a su destino en condiciones óptimas y a
tiempo. De esto se encargará la logística del transporte intermodal.
5 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Figura 2 Etapas del transporte intermodal
Por otra parte, en el transporte intermodal juegan un papel importante los HUBs. Los HUBs son centros de
intercambios y distribución de la mercancía transportada. Están posicionados en puntos que son
geográficamente interesantes por la cercanía a diversas zonas de llegada y salida de mercancías.
2.2 El transporte intermodal frente a otros modelos de transporte
El transporte intermodal permite disminuir los costes asociados al transporte de mercancías. Sin embargo no
siempre es posible la implantación de este sistema de transporte, ya que requiere unas infraestructuras
adecuadas que no siempre están disponibles. Escudero et al. (2011) estudió las diversas posibilidades de
implantación de transporte intermodal a nivel nacional, tomando Sevilla como terminal intermodal. Los
resultados alcanzados se sintetizan en la siguiente figura:
El transporte intermodal
6
Figura 3 Mapa de implementación de transporte intermodal desde Sevilla
Se observa en el mapa que el transporte intermodal podría ser implantado entre algunas zonas, como para
cubrir los transportes entre el sur y el norte de la península, así como trayectos insulares. Sin embargo, debido
a la pobre red ferroviaria, no es viable la implementar este modo de transporte para unir Sevilla con el levante
peninsular.
A nivel europeo, el transporte intermodal se hace más interesante por las mejores infraestructuras, el mayor
tráfico de mercancías y las mayores distancias entre origen y destino de la mercancía. La población europea es
superior a los 500 millones de habitantes. La distancia media de los desplazamientos es de 35,9 km/día (año
2008), siendo transportadas 22,5 Tm·Km/hab·día en mercancías, suponiendo esto 491.536 millones de euros y
9,2 millones de empleos. Además, la tendencia en los últimos años nos indica que el transporte de mercancías
incrementa cada año, a un ritmo mayor que el transporte de pasajeros. Estos datos nos invitan a pensar que a
nivel internacional el transporte intermodal es más interesante ya que debido al mayor volumen de
desplazamientos el ahorro que supone la implantación de este sistema de transporte es mayor.
El transporte por carretera sigue siendo el modo más habitual para los envíos continentales suponiendo casi el
46%, seguido por el transporte marítimo y el transporte por ferrocarril.
7 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Figura 4 Distribución del transporte en Europa
Figura 5 Evolución del transporte en Europa
Desde 2010, la política europea de transportes está orientada hacia la sostenibilidad y eficiencia. Para ello se
centra en 3 necesidades fundamentales:
La necesidad de un equilibrio de los diferentes modos de transporte para garantizar la movilidad de
una Europa ampliada.
La necesidad de luchar contra la congestión y los efectos medioambientales.
El transporte intermodal
8
La necesidad de orientar la política de transportes a los ciudadanos, que exigen más seguridad, más
calidad y más protección en sus desplazamientos.
Uno de los temas prioritarios en la actual política europea es impulsar el transporte intermodal, lo que
conllevaría una importante descongestión de las carreteras y una gran reducción de los efectos
medioambientales. El impulso del transporte intermodal conlleva una inversión destinada en gran medida a
favorecer el transporte en ferrocarril frente al transporte por carretera. Esto se agudiza a la hora de conectar la
península ibérica con el resto de Europa a causa de las diferentes dimensiones de las vías. El ancho ibérico
hace que hoy en día sigan siendo necesarios los transbordos en la frontera, con el coste que conlleva. Se antoja
por tanto indispensable una fuerte inversión para facilitar la conexión ferroviaria de España con el resto de
Europa.
9 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
3 EL PROBLEMA DEL ACARREO
TERRESTRE
l acarreo terrestre es la etapa del transporte intermodal que usa como modo de transporte la carretera.
Comprende todas las operaciones necesarias para enlazar las terminales intermodales (portuarias y
ferroviarias) con los orígenes y destinos de las mercancías, y con los depósitos. En la literatura, el acarreo
terrestre es llamado frecuentemente drayage, pick-up&delivery, o pre-&end- haulage.
El acarreo terrestre supone un importante porcentaje de los costes de toda la cadena de transporte. Además, es
la etapa más flexible del transporte intermodal, lo que convierte al acarreo terrestre la etapa más interesante a
la hora de tratar de reducir costes. Una disminución de los costes asociados al acarreo terrestre conllevaría una
mayor eficiencia del transporte intermodal, y posibilitaría disminuir las distancias a partir de las cuales es
rentable la implantación de este sistema de transporte.
3.1 Operaciones del acarreo terrestre
El acarreo terrestre supone el principio y el final de la cadena de transporte intermodal. Está compuesto por las
operaciones de recogida y entrega de contenedores vacíos en los depósitos, recogida de la mercancía, carga y
descarga en las terminales intermodales, y entrega de la carga al destinatario. Consideramos que los camiones
que se encargan del acarreo terrestre pueden estar en tres estados diferentes:
Cargados con un contenedor lleno (load)
Cargados con un contenedor vacío (dead-head)
Sin carga (bobtail).
Las dos operaciones fundamentales del acarreo son la recogida (pick up, P) y entrega (delivery, D) de
contenedores. Estas operaciones siempre se producen en una instalación determinada (cliente, depósito, o
terminal). Sin embargo, el movimiento de un contenedor puede suponer la realización de más operaciones. La
E
El problema del acarreo terrestre
10
necesidad de tener contenedores disponibles en diferentes puntos a determinadas horas hace indispensable el
transporte de contenedores vacíos. Además dependiendo de la propiedad de los contenedores, habrá más o
menos viajes en vacío. Los contenedores pueden pertenecer al cargador, al destinatario o a la empresa
encargada del trayecto principal. Estos movimientos trataremos de reducirlos al máximo con el objetivo de
maximizar el factor de carga del transporte.
Por otra parte, a veces necesitaremos alternar en un determinado punto tareas de entrega y recogida de
contenedores. Esto puede deberse a que el cliente carezca de espacio suficiente para almacenar contenedores o
a la falta de más contenedores para realizar otros envíos. Para solventar esto, se puede proceder de dos
maneras: El conductor espera junto al contenedor mientras éste es descargado, stay-with (SW), o bien el
conductor se va después de hacer la entrega del contenedor, drop&pick (DP). En este caso, se necesitará un
camión sin carga (no necesariamente el mismo que entregó la mercancía) cuando el contenedor haya quedado
vacío. Se consideran dos métodos diferentes a la forma de proceder aunque sean las mismas tareas de acarreo.
Por tanto, cada operación del acarreo terrestre quedará definida por el tipo de operación y el punto donde se
desarrolla. Podemos asociar también el cambio del estado del vehículo a cada tarea. Por tanto, se pueden
encuadrar las operaciones del acarreo terrestre según estos parámetros.
Tipo Descripción
Estado del camión
Antes Después
Dl Entrega conenedor lleno Load Bobtail
Pl Recoge contenedor lleno Bobtail Load
De Entrega conenedor vacío Dead-Head Bobtail
Pe Recoge contenedor vacío Bobtail Dead-Head
De&P
l D&P Entrega conenedor vacío y recoge contenedor lleno Dead-Head Load
Dl&P
e D&P Entrega conenedor lleno y recoge contenedor vacío Load Dead-Head
Dl&P
l D&P Entrega conenedor lleno y recoge contenedor lleno Load Load
De&P
l SW Entrega conenedor vacío y recoge contenedor lleno Dead-Head Load
Dl&P
e SW Entrega conenedor lleno y recoge contenedor vacío Load Dead-Head
Dl&P
l SW Entrega conenedor lleno y recoge contenedor lleno Load Load
Tabla 1 Operaciones del acarreo terrestre
11 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Todas estas tareas deben realizarse dentro de unos estrictos marcos temporales si se pretende un buen
funcionamiento de la cadena intermodal.
En los movimientos entre el cargador y la terminal (exportación), estos límites temporales se hacen más
estrictos, ya que un retraso a la hora de entregar el contenedor en la terminal puede suponer la imposibilidad de
enlazar con el trayecto principal, por lo que el contenedor debe aguardar en la terminal al siguiente tren o
barco, lo que puede suponer horas, días o incluso semanas de atraso en toda la cadena, además de unos costes
adicionales por ocupar espacio de la terminal como almacén.
Por contra, en los movimientos entre terminal y destino (importación), la restricción es la contraria. Existe una
hora antes de la cual no puede iniciarse el envío ya que el contenedor no está disponible.
Además de estas restricciones que provienen directamente del horario de inicio y llegada del trayecto principal
en la terminal, existen otras restricciones destinadas al mejor funcionamiento de la cadena de transporte.
Normalmente, la terminal facilita unas ventanas horarias (Time Windows) dentro de la cual se puede recoger o
entregar el contenedor sin suponer un coste adicional. En las operaciones de exportación, entregar la mercancía
antes de la ventana temporal conyeva un coste por almacenamiento impuesto por la terminal, ya que el
contenedor deberá esperar en la terminal antes de ser cargado en el barco o tren. La recogida de un contenedor
fuera de la ventana temporal en las tareas de importación supone un coste similar por los mismos motivos.
3.2 The Daily Drayage Problem with Time Windows (DDPTW)
La literatura revisada para resolver problemas de encaminamiento se centra en resolver el problema de acarreo
diario, daily drayage problem (DDP). El objetivo de este problema es minimizar el coste total que generan las
operaciones de acarreo que son llevadas a cabo en una jornada laboral, cumpliendo una serie de restricciones
marcadas por los recursos disponibles, especificaciones del cliente, etc. El presente trabajo se ocupa de este
tipo de problemas cuando una de las restricciones es fijada por la ventana temporal en la que debe llevarse a
cabo cada tarea. Este tipo de problema se conoce como daily drayage problema with time windows (DDPTW).
El problema de acarreo diario con ventanas temporales puede considerarse un caso específico del vehicle route
problema with time windows (VRPTW), donde la capacidad de los vehículos es binaria, o bien el vehículo se
encuentra cargado o bien no lo está. Por tanto, podríamos tender a buscar una solución del DDPTW utilizando
los mismos métodos que para el VRPTW, sin embargo, resultados experimentales demuestran que buenas
metodologías para el VRPTW no tienen por que ser igualmente válidas para el DDPTW.
El problema DDPTW consta de una serie de tareas, Τ, las cuales deben ser cubiertas con un conjunto de
vehículos, V. El problema consiste en asignar un vehículo a cada tarea de forma que los costes generados sean
minimizados.
Diferenciaremos varios costes a la hora de pretender minimizarlos. La primera distinción la hacemos entre
costes fijos y costes variables. Los costes fijos incluyen principalmente los sueldos de los conductores y la
depreciación de los vehículos. Entre los costes variables se encuentran aquellos que dependen de la distancia
El problema del acarreo terrestre
12
recorrida, como los costes de combustible. Además, encontramos otro tipo de costes en los problemas de
acarreo que son los costes por penalización, los cuales se soportan cuando se incumple alguna restricción que
conlleve una indemnización.
Para la formulación del problema, llevaremos a cabo una serie de simplificaciones que faciliten la formulación
del mismo.
o Contaremos con un solo tipo de vehículo. Los vehículos son similares en cuanto a capacidad y
características técnicas.
o Los costes fijos son iguales para todos los vehículos. Todos los conductores cobran lo mismo y el
coste de utilizar un camión más es siempre el mismo.
o Los costes variables son proporcionales a la distancia recorrida.
o Existe sólo un depósito, el cual se encuentra dentro de la terminal intermodal. Esta hipótesis está muy
extendida ya que, los depósitos suelen colocarse si no en la terminal, muy próximos a ella para reducir
costes.
o Sólo se realizan tareas de acarreo entre la terminal y un cliente, o entre un cargador y la terminal. Son
las que definimos en el punto 2 como tareas de exportación e importación respectivamente.
o Entornos deterministas: se toman como datos conocidos la velocidad a la que se desplazan los
vehículos, los tiempos de carga y descarga de un contenedor en un vehículo y el valor de los costes
fijos y variables.
3.2.1 Modelado del problema
Sea i Є Τ una tarea. Cada tarea tiene asociada varias variables que la definen. Por un lado, tenemos la
localización del origen donde comienza a desarrollarse la tarea, Oi, y del destino donde concluye la tarea, Di.
La distancia que se debe cubrir en una tarea, di, es la distancia euclídea entre Oi y Di. Como la velocidad de los
vehículos la tomamos como datos, conocemos también el tiempo de desplazamiento, ti. Los tiempos de
servicio en el origen y el destino, , y , son los tiempos de carga y descarga de contenedores, que también
son conocidos. Como ya hemos definido, diferenciaremos dos tipos de tareas. Las tareas de importación, Τ i,
son aquellas que tienen como origen el cargador y como destino la terminal. En las tareas de exportación, Τ e,
el origen es la terminal y el destino el cliente que recibe la mercancía.
Al ser un problema DDPTW, las tareas deben ser cubiertas dentro de una ventana temporal asociada a cada
tarea en origen y destino. La ventana temporal es un intervalo de tiempo en el cual debe comenzarse la tarea en
el origen (carga) o en el destino (descarga). Estos intervalos los llamaremos , y . El
incumplimiento de estas ventanas temporales puede suponer penalizaciones. En tareas de importación,
incumplir por retraso la ventana temporal en el destino (terminal) supone perder el tren o barco encargado del
trayecto principal, por lo que se genera un coste por pérdida cmiss. Esta será la mayor penalización por
13 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
incumplimiento de restricciones. Incumplir la ventana temporal en el origen por retraso supone unos costes de
espera por la necesidad de almacenar el contenedor, cwait. La jornada laboral también está encuadrada en una
ventana temporal. Antes del final de la misma, todos los camiones tienen que volver a la terminal, donde se
encuentra el depósito. En el caso de incumplimiento en la llegada al depósito, la penalización será un coste por
unidad de tiempo, cdepot.
Sea f Є V, un vehículo. La duración de la jornada temporal de cada vehiculo, su posición al comienzo del día y
destino final y los horarios de apertura de la terminal intermodal serán modelados como tareas ficticias. Por
tanto, para cada vehículo se crean dos tareas ficticias, una de inicio de la jornada, , y otra de destino, .
La inclusión de estas tareas las consideraremos para poder resolver el problema dinámico, de manera que
consigamos reprogramar las rutas durante una jornada laboral.
Resumiendo, en la formulación del problema nos encontramos los siguientes costes:
o cv: coste fijo por vehículo utilizado.
o ckm: coste variable por kilómetro recorrido.
o cmiss: coste generado por incumplir la ventana temporal de destino en la terminal y perder el tren o
barco encargado del trayecto principal.
o cwait: coste generado por dejar el contenedor esperando en la terminal.
o cdepot: coste por unidad de tiempo debido de retrasos en el retorno al depósito.
Las variables de decisión son:
o xij =
o nvi =
o liO =
o liD =
1 si la tarea i y la tarea j son cubiertas consecutivamente.
0 en otro caso
1 si el vehículo i es usado por primera vez
0 en otro caso
1 si la tarea i incumple la ventana temporal en el origen.
0 en otro caso
1 si la tarea i incumple la ventana temporal en el destino.
0 en otro caso
El problema del acarreo terrestre
14
o lidep
=
o stiO = Instante de comienzo de la tarea i en el origen (carga).
o stiD = Instante de comienzo de la tarea i en el destino (descarga).
Con esta notación, el problema a resolver queda representado con la siguiente función objetivo y restricciones.
FO:
s.a.
1 si el vehículo que cubre la tarea i llega con retraso al depósito.
0 en otro caso
15 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
La función objetivo del modelo persigue minimizar la suma total de los costes asociados a una solución al
problema del acarreo terrestre. Dentro de la misma se pueden diferenciar los costes asociados a la distancia
total recorrida, los costes fijos asociados al número de vehículos que se requieren, y los costes generados por
los incumplimientos de las ventanas temporales, dentro de los cuales se diferencian entre qué ventana temporal
se incumple, ya que no todas conllevan una misma penalización.
Entre las restricciones, se encuentran por un lado las que definen ciertas variables en un rango, ya sean como
binarias (variables de decisión) o como positivas (aquellas que contabilizan tiempo). Aparecen también
restricciones relativas a la definición del problema, como que cada tarea debe ser cubierta una vez, o que las
tareas deben comenzar dentro de las ventanas temporales en el origen.
El recocido simulado
16
4 EL RECOCIDO SIMULADO
n problema de optimización de rutas simple se puede reducir a la búsqueda del camino que minimice la
distancia total recorrida. Sin embargo, problemas como el DDPTW son más complejos ya que tiene
que ocuparse de otros aspectos como la correcta utilización de los recursos y el cumplimiento de una serie de
restricciones que hace que la búsqueda de una solución sea más costosa. Para este tipo de problemas, el
número de soluciones crece exponencialmente a medida que el número de rutas a cubrir y el número de
recursos aumentan, por lo que se puede concluir que la búsqueda exhaustiva de todas las soluciones con el fin
de encontrar el óptimo no es factible para problemas de un tamaño considerable. Los problemas de
optimización de rutas con ventanas temporales son de alta complejidad en cuanto a la carga computacional
necesaria para resolverlo. Un buen algoritmo debe ser eficiente, que proporcione soluciones adecuadas pero
que no requiera un tiempo de ejecución demasiado alto.
Ante la imposibilidad de emplear métodos exactos para la búsqueda del óptimo en problemas complejos, en la
literatura podemos encontrar heurísticas y metaheurísticas destinadas a la resolución de este tipo de problemas.
La RAE define una heurísta como “manera de buscar la solución de un problema mediante métodos no
rigurosos, como por tanteo, reglas empíricas, etc.” En la misma línea, Arbelaitz (2002) define:
Técnica que explora buenas soluciones, cercanas al óptimo, en un tiempo computacional razonable,
sin poder garantizar ni factibilidad ni optimalidad y en muchos casos incapaz de indicar la distancia a
la que queda el óptimo.
Conjunto de procedimientos simples, a menudo basados en el sentido común, que se supone ofrecerá
una buena solución, aunque no necesariamente óptima, a problemas difíciles de un modo fácil y
rápido.
Se deduce que la utilización de heurísticas no garantiza encontrar un óptimo global ni local. Por el contrario,
los métodos heurísticos no requieren especificación matemática completa del sistema, por lo que conseguimos
modelos más “realistas” que los empleados en los métodos exactos. Esto nos lleva a preguntarnos si es mejor
U
17 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
conseguir una solución exacta de un modelo aproximado o una solución aproximada de un modelo “exacto”.
El principal motivo para utilizar heurísticas ante modelos exactos es el tiempo de ejecución, mucho menor en
las heurísticas. Además, las heurísticas cuentan con otra ventaja ante los métodos exactos, y es la mayor
flexibilidad en el manejo de las características del modelo, lo que hace que sean más explicativos.
Por otro lado, el mayor inconveniente de las heurísticas no es sólo que no garantizan el óptimo, sino que
tampoco ofrecen información de la bondad de la solución obtenida. Por tanto, si se necesita una solución
precisa, debería emplearse un método exacto.
Las metaheurísticas se basan en dotar a una heurística de una guía de acuerdo a algún concepto de la
naturaleza, la biología, la inteligencia artificial, las matemáticas o la física. El objetivo es orientar a la
heurística modificando las soluciones que ofrecen las heurísticas para encontrar otra mejor hasta que no se
pueda encontrar ninguna solución que presente mejora en el vecindario de la solución actual. El vecindario de
una solución se define como el conjunto de soluciones obtenidas a partir de la misma por medio de una
operación básica llamada movimiento. Los movimientos más comunes para pasar de una solución a otra son:
Descenso aleatorio: Cada movimiento se hace eligiendo una solución aleatoria del vecindario. El
proceso termina cuando todas las soluciones del vecindario sean peores que la solución actual.
Método descendente de la mayor pendiente: Se exploran todas las soluciones del vecindario. El
movimiento se hace a la mejor solución del mismo.
El gran inconveniente de estos procesos a simple vista es la posibilidad de caer en un óptimo local. Para
contrarrestar esto, las metaheurísticas deben ser capaces de escapar de los óptimos locales para intentar
encontrar el óptimo global.
4.1 Introducción a la heurística de Recocido Simulado
El Recocido Simulado, también denominado Simulated Annealing, Enfriamiento Simulado, Método
Descendente Probabilistico, o Relajación Estocástica, es un algoritmo de búsqueda metaheurística de
optimización global. Debe su nombre al proceso de recocido del acero y las cerámicas para obtener material
cristalizado, en el cual se basa. Esta técnica consiste en calentar el material para dotar a los átomos de energía y
que así puedan desplazarse. Posteriormente, se deja enfriar el material lentamente para hacer que recristalice
en configuraciones con menor energía que la inicial. Cuanto más lento sea el procedimiento de enfriamiento
del material, más probabilidad tendremos de conseguir un cristal perfectamente estructurado con baja energía
interna. Las ideas en las que se basa el algoritmo fueron introducidas en Metrópolis et al (1953), en un
algoritmo para simular el proceso de enfriamiento antes descrito. Posteriormente, fue desarrollado
independientemente por Scott Kirkpatrick, C. Daniel Gelatt y Mario P. Vecchi en 1983, y por Vlado Černý en
1985 que propusieron que este algoritmo podía ser empleado para resolver problemas de optimización.
El algoritmo parte de una solución aleatoria. A partir de ella, genera un vecindario de la misma y
aleatoriamente se elige una solución perteneciente al vecindario, la cual se evalúa y se compara con la solución
inicial. Si la solución nueva es mejor que la anterior, se adopta esta nueva solución y se examina su vecindario.
El recocido simulado
18
Este procedimiento se repite hasta que se alcanza una condición de parada. Para evitar caer en óptimos locales,
el Recocido Simulado permite el movimiento hacia soluciones peores según una determinada probabilidad, la
cual disminuye a medida que aumentan las iteraciones mediante un parámetro que se llama Temperatura (T),
por analogía con el método de cristalización de materiales. La temperatura parte de valores muy altos y tiende
a cero asintóticamente. Para valores muy bajos de T, la probabilidad de transición a una solución peor es
prácticamente nula. Otros parámetros del algoritmo son la función de enfriamiento que marca cómo desciende
la temperatura, y la longitud de la cadena L, que determina el número de iteraciones que se hacen para cada
valor de la temperatura.
El pseudocódigo del algoritmo general es:
Esquema general del algoritmo de Recocido Simulado
Como puede observarse, en el algoritmo hay parámetros no específicos que dependerán del problema al que se
quiera aplicar el método. Las decisiones a tomar se pueden dividir en dos tipos:
Decisiones relativas a los parámetros del proceso: Temperatura inicial t0, longitud de la cadena L,
función de enfriamiento α(t) y condición de parada.
Decisiones relativas al problema específico: Estructura de la solución, coste asociado a una solución,
solución inicial (s0), y la estructura del vecindario N(s0).
La elección correcta del vecindario es muy importante para el correcto funcionamiento del algoritmo, donde
debe haber un número limitado de movimientos desde una solución hasta otra. Cuando se puede asegurar que
Seleccionar t = t0 (temperatura inicial), función de enfriamiento α(t) y longitud
de la cadena L
contador_iteraciones = 0
Seleccionar s0, solución inicial aleatoria
Repetir
Repetir
Seleccionar s Є N(s0)
δ = f(s) – f(s0)
si δ < 0
entonces s0 = s
si no
si num_aleatorio Є [0,1) < e-δ / t
entonces s0 = s
contador_iteraciones ++
Hasta contador_iteraciones = L
t = α(t)
Hasta condición de parada
19 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
cualquier solución se puede alcanzar a partir de otra en un número limitado de movimientos, el proceso
converge independientemente de la solución inicial s0.
La convergencia del algoritmo de Recocido Simulado está demostrada en la literatura. Sin embargo, la
elección correcta de parámetros condiciona la velocidad a la que converge el algoritmo. Como es de esperar,
cuantas más soluciones sean evaluadas, mayor será la probabilidad de encontrar la solución óptima, pero
supondrá un mayor coste computacional.
La experiencia demuestra que la fijación correcta de los parámetros del algoritmo, tanto los relativos al
proceso como los relativos al problema, debe hacerse tras una larga experimentación. Este proceso supone el
más costoso a la hora de definir el algoritmo, ya que una vez que los parámetros quedan fijados la
implantación es muy sencilla.
4.2 Adaptación del Recocido Simulado al problema del acarreo terrestre
Han sido varios los autores que han empleado el algoritmo Simulated Annealing para encontrar soluciones
cercanas al óptimo en problemas de optimización combinatoria, como los problemas de encaminamiento con
ventanas temporales (VRPTW).
La adaptación del algoritmo de Recocido Simulado al problema del acarreo terrestre queda definida con la
identificación de la función objetivo y de los parámetros del problema.
El algoritmo de simulación del Recocido tiene como objetivo observar como se produce el enfriamiento del
material con el fin de conseguir posiciones con menor energía interna. Para ello se parte de una temperatura
alta que desciende lentamente. En el DDPTW, el papel de la energía interna lo ocupa el coste generado por
una solución. Este coste viene definido por una función que depende de la distancia total recorrida, el número
de recursos consumidos, y los posibles costes por penalizaciones, como vimos en el punto 3.
La temperatura no tiene analogía con el problema DDPTW. Es un parámetro propio del algoritmo, que sirve
para marcar la variación de la probabilidad de aceptar una solución peor con el fin de no caer en mínimos
locales. Se parte de una temperatura inicial que se fija por la experiencia. A medida que la temperatura
decrece, la probabilidad de aceptar una solución con mayor coste dissminuye. Las funciones de enfriamiento
más utilizadas para este tipo de problemas son:
Descenso exponencial: tk+1 = β·tk, donde β es un valor menor que 1. Generalmente, β Є (0.8, 0.99) es
el parámetro que marca la velocidad de enfriamiento, siendo ésta mayor cuanto menor sea β.
Esquema de Cauchy: tk = t0 /(1 + k), siendo k el número de iteración.
Esquema de Cauchy modificado: tk+1 = tk / (1+β·tk), donde β es un valor positivo próximo a 0. La
velocidad de enfriamiento será menor cuanto más bajo sea el valor de β. Permite controlar el número
de iteraciones.
Criterio de Boltzman: tk = t0 /(1 + log(k)), siendo k el número de iteración.
tk+1 = tk – C, donde C es una constante que marca el ritmo de descenso de la temperatura.
El recocido simulado
20
En el presente proyecto van a ser consideradas las dos funciones de enfriamiento más utilizadas: La de
descenso exponencial y la que sigue el esquema de Cauchy modificado.
La condición de parada más común es fijar una temperatura mínima. Otra opción es fijar el número de
cambios en la temperatura que debe llevarse a cabo.
La longitud de la cadena L, que marca el número de iteraciones que debe hacerse para cada valor de la
temperatura, es otro parámetro que se debe fijar por la experiencia.
La analogía entre el algoritmo de simulación del proceso de recalentamiento usado en termodinámica y la
atapdación para problemas de optimizacón queda reflejada en la siguiente tabla.
Proceso de Recocido Simulado Adaptación a problemas de optimización
Configuración Solución factible
Configuración de mínima energía interna Solución óptima
Energía interna de la configuración Costes asociados a una solución
Temperatura Parámetro de control
Tabla 2 Analogía entre el algoritmo original y su adaptación a problemas de optimización
4.2.1 Variantes de resolución
En este proyecto se han cubierto dos posibilidades de resolución del problema que pueden aproximarse con la
realidad en función del caso concreto de acarreo terrestre. Consideraremos, por una parte, la posibilidad de
incumplir las ventanas temporales dentro de las cuales deben ser cubiertas las tareas. Este incumplimiento, no
obstante, se verá penalizado debido a los costes que puede suponer entregar tarde un pedido (sanciones, costes
de almacenamiento, pérdidas de futuros contratos,…). Por otra parte, resolveremos el problema de manera que
estas ventanas temporales sean extrictas y no puedan ser incumplidas en ningún caso.
4.2.1.1 Ventanas temporales suaves
Las tareas deben ser cubiertas en un espacio concreto de tiempo. Sin embargo, frecuentemente estas ventanas
temporales no son estrictas, aunque su incumplimiento suele generar gastos de almacenamiento. Este
problema persigue minimizar los costes totales generados a lo largo de toda la cadena de transporte. Para ello
debe buscar el equilibrio entre los costes asociados a los incumplimientos de ventanas temporales con los
costes que supondrían emplear más recursos para no romper estas restricciones.
En este tipo de problemas tenemos un número de tareas que cubrir (m) y un número determinado de vehículos
(n) que deben cubrirlas. Las soluciones serán representadas como vectores de dimensiones (m + n). Esta
matriz estará compuesta por números desde 1 hasta (m + n). Cada número desde 1 hasta m se corresponde con
una tarea, mientras que cada camión es representado por un número entre (m + 1) hasta (m + n). El vector
21 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
empieza con un número correspondiente a un vehículo. Los números que lo suceden son las tareas que debe
cubrir este vehículo. Si el número que le sigue se corresponde con otro vehículo, quiere decir que el vehículo
anterior está ocioso. En la siguiente tabla podemos observar un ejemplo de la configuración de una solución
factible para un caso con 3 vehículos y 6 tareas.
Matriz Solución Significado
[7 1 2 8 3 4 5 9 6]
El vehículo 7 cubre las tareas 1 y 2
El vehiculo 8 cubre las tareas 3, 4 y 5
El vehículo 9 cubre la tarea 6
[7 1 2 3 4 8 9 5 6]
El vehículo 7 cubre las tareas 1, 2, 3 y 4
El vehículo 8 está ocioso
El vehículo 9 cubre las tareas 5 y 6
Tabla 3 Ejemplo de soluciones para un problema con 6 tareas y 3 vehículos. Configuración 1.
La función objetivo encargada de evaluar estas soluciones incluye costes por ruptura de ventanas temporales.
Este coste es proporcional al atraso a la hora de cubrir una tarea, de manera que el algoritmo tratará de eliminar
los atrasos o, al menos, minimizarlos.
Vecindarios Explorados
Vamos a estudiar dos vecindarios diferentes, con el fin de compararlos y utilizar aquel que nos ofrezca una
mejor solución, entendiendo por mejor solución aquella que este cerca del óptimo y no conlleve una excesiva
carga computacional.
1. Uno de ellos parte de una solución inicial, y va intercambiando números de la matriz solución uno a uno,
generando diferentes soluciones. Estas permutas posibilitan que unas tareas cambien de ser cubiertas por
un camión a ser asignadas a otro, además de modificar el orden en que pueden ser cubiertas las tareas
asignadas a un mismo vehículo.
2. El otro vecindario estudiado consiste en una doble vecindad. Por un lado, se generarán soluciones
permutando las tareas a partir de una solución inicial. Los vehículos se mantienen en su posición inicial,
con lo que evitaremos que se generen soluciones donde se intercambien dos vehículos, ya que éstas serían
idénticas al considerar todos los vehículos iguales. Esta vecindad se complementa con otra donde las
tareas de una solución inicial aleatoria se extraen de la misma y se insertan en diferentes posiciones del
vector solución. Cada extracción e inserción de una tarea en una nueva posición genera una nueva
solución que pasa a formar parte del vecindario. En esta vecindad estarán también restringidas aquellas
soluciones vecinas que no supongan un cambio real en la solución, como extraer una tarea de un camión
que sólo se ocupe de una tarea e insertársela a un camión ocioso.
El recocido simulado
22
4.2.1.2 Ventanas temporales estrictas
En este tipo de problemas, vamos a imposibilitar la ruptura de las ventanas temporales. Para este bloque se han
considerado dos posibilidades a la hora de representar una solución. El objetivo es comparar para determinar
qué configuración es más propicia a la hora de resolver el problema, por bondad de la solución encontrada y
por la carga computacional asociada a cada proceso de resolución.
Por un lado, se empleará la misma configuración que la expuesta en el apartado anterior, que en adelante
denominaremos Configuración 1. Para evitar atrasos, se modificará el coste asociado a los mismos en la
función de evaluación. Asignando a los atrasos un coste muy elevado (varios órdenes superiores al resto de
costes), el algoritmo buscará soluciones donde no se produzcan atrasos, aunque para ello sea necesario
emplear más recursos. Además, incluiremos una modificación al algoritmo. Como se ha expuesto, Recocido
Simulado es un algoritmo que explora soluciones vecinas aleatoriamente y las evalúa. El algoritmo toma esta
nueva solución si es mejor que la anterior, o si es peor y se cumple cierta probabilidad. En esta modificación,
vamos a prohibir que el algoritmo pase de una solución que cumpla todas las ventanas temporales a una que
incumpla alguna de ellas. Así el pseudocódigo del algoritmo es:
Donde K es el coste asignado a los atrasos.
En la nueva configuración para este tipo de problemas, Configuración 2, consideraremos como solución un
vector de tamaño m, siendo m el número de tareas que deben ser cubiertas, con valores desde 1 hasta m que
representa el orden en que deben cubrirse las tareas. Secuencialmente, iremos asignando las tareas a los
vehículos, de forma que cada tarea se asignará a un vehículo siempre y cuando pueda satisfacerse la tarea sin
incumplir ninguna ventana temporal. Por tanto, antes de asignar una tarea a un vehículo, debe ser comprobada
Seleccionar t = t0 (temperatura inicial), función de enfriamiento α(t) y longitud
de la cadena L
contador_iteraciones = 0
Seleccionar s0, solución inicial aleatoria
Repetir
Repetir
Seleccionar s Є N(s0)
δ = f(s) – f(s0)
si δ < 0
entonces s0 = s
si no
si num_aleatorio Є [0,1) < e-δ / t
y δ < K
entonces s0 = s
contador_iteraciones ++
Hasta contador_iteraciones = L
t = α(t)
Hasta condición de parada
23 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
la disponibilidad del vehículo, la cual será evaluada para la tarea en cuestión. Un vehículo queda saturado
cuando la siguiende tarea del vector solución no puede ser cubierta por éste sin incumplir ninguna ventana
temporal. En el caso de que la tarea no pueda ser cubierta por el vehículo que le corresponde, se empleará un
nuevo vehículo. De esta manera, no tendremos nunca una solución en la que se produzcan atrasos en las
entregas.
Matriz Solución Significado
[5 2 4 1 3]
El problema consta de 5 tareas. Comenzaremos
asignando la tarea 5 a un vehículo. Posteriormente,
asignaremos la tarea 2 al mismo vehículo siempre y
cuando la tarea pueda ser cubierta sin romper
ninguna ventana temporal. Posteriormente se
repetiría el proceso con la tarea 4. Cuando
encontremos que una tarea no puede ser cubierta por
un vehículo, se utilizará un nuevo vehículo.
Tabla 4 Ejemplo de una solución de 6 tareas. Configuración 2.
La nueva función de evaluación determina cuántos vehículos son necesarios para la solución evaluada. Esta
nueva función no contempla ningún coste por atraso en las tareas, ya que estos no pueden producirse, pues
cualquier atraso en cualquier ventana temporal supone el uso de un nuevo vehículo. Sí contempla, sin
embargo, una penalización por tiempos de espera, que se producen cuando un vehículo llega a un destino antes
de que se abra la ventana temporal. Durante este período, el vehículo se encuentra “bloqueado”, por lo que es
deseable reducir estos tiempos. Sin embargo, estos costes son ficticios, luego a la hora de evaluar los costes
reales y de comparar estos resultados con los ofrecidos con la otra configuración, estos costes serán restados
del coste total.
Vecindario Explorado
En esta nueva configuración, el vecindario se ha creado permutando las tareas del vector solución. Cada nueva
permuta entre dos tareas de la solución aleatoria inicial genera una nueva solución que pertenece al vecindario.
4.3 Parametrización del Algoritmo
Para resolver el problema del acarreo terrestre necesitamos que el proceso de resolución no tenga un coste
computacional excesivo, ya que se necesita una respuesta que concrete la ruta a cubrir en el menor tiempo
posible. Generalmente, este coste dependerá directamente de los parámetros del algoritmo, los cuales rigen
también la capacidad del mismo para ofrecer buenas soluciones. Por tanto la elección correcta de los
parámetros es muy importante en los problemas DDPTW, ya que debemos de buscar el equilibrio entre la
bondad de la solución obtenida y el tiempo necesario para obtenerla.
El proceso de parametrización del algoritmo es la parte más costosa de la implementación del Recocido
El recocido simulado
24
Simulado. Una vez los parámetros queden definidos, la resolución de problemas se hará de forma sencilla.
Este procedimiento debe hacerse a partir de la experiencia y la observación de cómo funciona el algoritmo
para resolver este tipo de problemas según el valor de los diferentes parámetros.
Debido a que van a ser resueltos dos tipos de problemas, vamos a parametrizar sendos casos por separado.
Para el proceso de parametrización, resolveremos el problema Test_01, correspondiente a la adaptación del
Benchmarking creado por Solomon (1987) para el VRPTW generada en Escudero et al. (2013).
4.3.1 Problema con penalizaciones por ruptura de las ventanas temporales
Para la fijación de los parámetros vamos a comenzar estudiando el comportamiento del algoritmo aplicado a
un problema de ruta compuesto por 25 tareas que deben ser cubiertas por 13 vehículos. En primer lugar, se
estudiarán dos posibles funciones de enfriamiento, y los parámetros del algoritmo con éstas. A partir de los
resultados determinaremos si para este tipo de problemas se comporta mejor una función de enfriamiento
exponencial, tk+1 = β·tk, o una que siga el esquema de Cauchy, tk+1 = tk / (1+β·tk). Los parámetros que deben ser
analizados son:
β: Determina la velocidad con la que decrece la temperatura en la función de enfriamiento.
t0: Es la temperatura de partida, en la que se lanza el algoritmo.
tmin: Marca la condición de parada del algoritmo.
L: Fija el número de iteraciones hace el algoritmo para cada valor de la temperatura.
Para la parametrización vamos a emplear el vecindario basado en la permutación de los elementos del vector
solución.
Se han comparado dos posibilidades de llevar a cabo el descenso de temperatura.
Esquema de Cauchy tk+1 = tk / (1+β·tk)
Los resultados obtenidos son los resumidos en la siguiente tabla.
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,001 200 1 1 1086,594548 93,40738194
0,001 50 2 1 1134,21124 44,49994203
0,001 200 2 1 1115,863318 45,27399907
0,001 50 1 1 1091,514734 94,71680283
0,001 50 1 5 1080,291971 466,4916315
0,001 200 1 5 1085,958638 482,3604981
0,001 50 2 5 1095,19702 228,6344253
0,001 200 2 5 1077,598887 236,0495566
0,001 50 1 10 1077,291971 995,5291558
0,001 200 1 10 1077,291971 1027,244629
25 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
0,001 50 2 10 1085,291971 492,6026255
0,001 200 2 10 1086,501405 519,6116962
0,001 50 1 10 1086,334738 954,4694342
0,001 50 2 10 1093,432554 462,8459058
0,001 200 0,5 10 1080,336076 1949,114069
0,001 50 0,5 10 1077,291971 1938,179941
0,001 50 1 20 1079,97289 2111,223052
0,001 200 1 20 1081,427881 2194,197178
0,001 50 2 20 1087,001405 930,0834626
0,001 200 2 20 1085,334738 942,960557
0,001 50 1 20 1078,098887 1912,515143
0,001 50 2 20 1083,389453 923,8291752
0,005 200 1 1 1166,319327 18,06207102
0,005 50 1 1 1226,580334 17,89953388
0,005 50 2 1 1316,517097 8,559377798
0,005 200 2 1 1320,836436 8,803109334
0,005 200 1 1 1150,94104 17,91897294
0,005 50 2 1 1244,279531 8,733382315
0,005 200 2 1 1344,020477 8,865255221
0,005 50 1 1 1137,587446 18,6617341
0,005 200 1 5 1086,927881 93,48041581
0,005 50 1 5 1087,222786 92,829763
0,005 200 2 5 1103,900125 46,11798706
0,005 50 2 5 1134,409925 44,18474275
0,005 50 1 5 1081,125305 93,43920554
0,005 200 1 5 1096,698358 94,0585228
0,005 50 2 5 1113,542651 45,53590079
0,005 200 2 5 1100,669409 47,16409851
0,005 50 1 10 1079,885114 186,379962
0,005 200 1 10 1085,929218 187,4359548
0,005 200 2 10 1088,927881 92,26192212
0,005 50 2 10 1096,669409 89,83896808
0,005 50 1 10 1084,43222 192,1080012
0,005 200 1 10 1081,718447 206,1396328
0,005 50 2 10 1103,721532 99,12598137
0,005 200 2 10 1093,306982 102,5100293
0,005 50 1 10 1081,48339 190,7093726
0,005 50 2 10 1097,913062 92,28602322
0,005 200 0,5 10 1082,094548 395,1139441
0,005 50 0,5 10 1079,885114 389,3982825
0,005 50 1 20 1086,458638 416,7172113
0,005 200 1 20 1085,218447 424,3090004
0,005 50 2 20 1084,051781 209,6235611
0,005 200 2 20 1087,668072 191,8950294
0,005 50 1 20 1081,594548 380,8247135
0,005 50 2 20 1082,611549 183,8151276
0,01 50 1 1 1243,558436 9,031612677
0,01 200 1 1 1297,460035 8,91122922
El recocido simulado
26
0,01 50 2 1 1326,235705 4,274457787
0,01 200 2 1 1432,258845 4,392852444
0,01 200 1 1 1255,375768 8,816745424
0,01 50 2 1 1479,516154 4,322315546
0,01 200 2 1 1410,183603 4,472331819
0,01 50 1 1 1151,877985 9,378056708
0,01 200 1 5 1090,427881 46,41131345
0,01 50 2 5 1111,681401 22,57457386
0,01 50 1 5 1121,193013 45,92801515
0,01 200 2 5 1167,47625 22,88681299
0,01 50 1 5 1094,530354 46,55522448
0,01 200 1 5 1099,668072 46,59869648
0,01 50 2 5 1157,338965 22,9480487
0,01 200 2 5 1156,983011 23,063241
0,01 50 1 10 1079,368826 93,77296947
0,01 200 1 10 1091,531691 93,51152116
0,01 200 2 10 1112,471967 45,53357508
0,01 50 2 10 1132,586226 47,8992886
0,01 50 1 10 1084,791971 95,29056011
0,01 200 1 10 1083,839538 104,1045912
0,01 50 2 10 1085,025363 50,70828779
0,01 200 2 10 1095,8053 50,49990823
0,01 50 1 10 1083,927881 95,14549615
0,01 50 2 10 1092,320983 46,48051526
0,01 200 0,5 10 1077,291971 196,0117666
0,01 50 0,5 10 1079,625305 192,3553555
0,01 50 1 20 1088,648008 209,5250908
0,01 200 1 20 1088,81656 210,3423136
0,01 50 2 20 1086,265553 109,7715866
0,01 200 2 20 1096,543686 101,4492325
0,01 50 1 20 1075,389453 191,0647876
0,01 50 2 20 1100,627835 93,17300048
0,1 200 2 1 2009,572369 0,441194342
0,1 50 2 1 2021,696684 0,4365485
0,1 50 1 1 2538,2131 1,15398661
0,1 200 1 1 2653,72467 0,851572756
0,1 200 1 1 2426,90719 0,844299764
0,1 50 2 1 1881,395435 0,427211559
0,1 200 2 1 2307,618541 0,449461594
0,1 50 1 1 1967,429819 0,901707619
0,1 50 1 5 1369,529687 4,435161452
0,1 200 1 5 1443,631423 4,357626179
0,1 200 2 5 1610,449896 2,15862463
0,1 50 2 5 1951,955063 2,152509327
0,1 50 1 5 1597,228038 4,302986273
0,1 200 1 5 1404,180139 4,410286782
0,1 50 2 5 1957,096731 2,133423382
0,1 200 2 5 1392,511755 2,172198701
27 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
0,1 200 1 10 1365,353981 8,725267597
0,1 50 1 10 1437,525217 8,943679993
0,1 50 2 10 1594,200945 4,300689892
0,1 200 2 10 1660,530471 4,30584362
0,1 50 1 10 1376,313535 8,895712444
0,1 200 1 10 1258,583458 9,994511034
0,1 50 2 10 1442,954595 4,799418641
0,1 200 2 10 1394,53261 4,742983536
0,1 50 1 10 1281,626606 9,264680008
0,1 50 2 10 1435,509014 4,551703638
0,1 200 0,5 10 1206,122086 19,25676168
0,1 50 0,5 10 1192,45767 18,70266025
0,1 50 1 20 1172,307156 20,1155429
0,1 200 1 20 1133,735136 19,8432175
0,1 50 2 20 1358,984175 10,48377852
0,1 200 2 20 1227,875013 9,424628829
0,1 50 1 20 1149,61717 18,45652813
0,1 50 2 20 1322,448994 8,898001003
0,001 50 1 10 1082,291971 953,976642
0,01 50 1 10 1084,125305 101,253226
0,005 50 1 10 1095,917147 202,8266436
0,001 50 1 10 1084,345432 1011,850751
Tabla 5 Resultados del problema con 25 tareas y 13 vehículoss
Se observa que el mínimo valor de la solución es 1075,389 que debe ser un valor muy próximo al óptimo
global del problema o al menos una solución muy próxima.
El parámetro que marca la velocidad de enfriamiento es β. En función de este parámetro observamos:
ANÁLISIS β
β 0.1 0.01 0.005 0.001
solution_value 1604,22995 1151,85054 1124,88758 1087,20274
time 6,62748261 70,2416743 139,932384 875,486152
Desviación típica 418,864337 109,941888 73,7155303 12,9548025
Tabla 6 Resultados en función de β
Se aprecia que a medida que disminuye β, la temperatura desciende más lentamente. Con esto se consigue que
se exploren más soluciones, por lo que conseguimos mejores soluciones. Sin embargo, también apreciamos
que para valores muy bajos de β el tiempo de ejecución aumenta mucho, por lo que debemos buscar un
equilibrio entre bondad de la solución y tiempo de ejecución.
Para apreciar mejor la influencia de la velocidad de enfriamiento, vamos a observar los resultados en función
de β estando fijados el resto de parámetros. Consideramos L=10, t0 = 1, tmin = 50.
El recocido simulado
28
ANÁLISIS β, L = 10 ; tmin = 1 ; t0 = 50
β 0.1 0.01 0.005 0.001
solution_value 1365,15512 1083,0535 1085,42947 1082,56603
Time 9,03469081 96,3655629 193,005995 978,956496
Desviacuón típica 78,5460177 2,48411053 7,24102469 3,88416598
Tabla 7 Resultados en función de β con parámetros fijados
Figura 6 Bondad de la solución alcanzada en función de β
Figura 7 Coste computacional en función de β
1000
1050
1100
1150
1200
1250
1300
1350
1400
0,1 0,01 0,005 0,001
Coste de la solución alcanzada
0
200
400
600
800
1000
1200
0,1 0,01 0,005 0,001
tiempo (s)
29 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Se aprecia que un valor de β de 0,1 hace que la temperatura descienda muy rápidamente. Esto nos permite
obtener una solución de manera muy rápida, pero no es una solución aceptable puesto que se aleja mucho de la
óptima, por lo que la opción de fijar β = 0,1 queda descartada. Además, se puede concluir que para valores de
β de 0,01 e inferiores, la bondad de la solución es similar. Sin embargo, a medida que disminuimos β sigue
aumentando el coste computacional, por lo que podríamos fijar el valor de β = 0,01.
De manera análoga, vamos a estudiar la importancia de la temperatura inicial. Los resultados tabulados en
función de t0 fijando el resto de parámetros son:
ANÁLISIS t0, L = 10 ; tmin = 1 ; β = 0,01
t0 50 200
solution_value 1083,0535 1087,6856
time 96,3655629 98,8080562
Desviación típica 2,48411053 7,49043168
Tabla 8 Resultados en función de t0
Se aprecia que el valor de t0 no influye en la bondad de la solución. Esto se debe a que la función de
enfriamiento desciende muy rápido para valores altos de la temperatura, luego esta diferencia de temperatura
inicial supone muy poco tiempo. La aleatoriedad de la solución inicial hace que sea posible que el coste
computacional de t0 = 50 sea mayor que el de t0 = 200. Fijaremos por tanto t0 = 50 para esta función de
enfriamiento.
Por otro lado, la condición de parada la determina tmin. El algoritmo se detiene cuando la temperatura ha
descendido hasta un valor que también debe ser fijado por la experiencia. La literatura estudiada determina que
este valor no debe ser superior a 2, ya que con esta función de enfriamiento esta temperatura se alcanza con
muy pocas iteraciones. La influencia de tmin en el algoritmo se refleja en la siguiente tabla.
ANÁLISIS tmin, L = 10 ; t0 = 50 ; β = 0,01
tmin 0,5 1 2
solution_value 1082,1578 1083,0535 1103,31086
time 192,664193 96,3655629 48,3626972
Desviación típica 2,30258733 2,48411053 25,6142916
Tabla 9 Resultados en función de tmin
El parámetro tmin ofrece mejores resultados cuanto más bajo es debido a que esto conlleva más iteraciones del
algoritmo. Sin embargo, para valores muy bajos de tmin, la probabilidad de salir de un mínimo local es muy
baja, por lo que no necesariamente el valor más bajo de tmin será el más adecuado. Aunque a priori un valor de
tmin = 2 parece que ofrece soluciones demasiado alejadas del óptimo, este valor no va a ser descartado aún ya
que ofrece una ventaja significativa en cuanto al tiempo de ejecución
El recocido simulado
30
Figura 8 Bondad de la solución en función de tmin
Figura 9 Coste computacional den función de tmin
El número de iteraciones que se hace en cada temperatura también debe fijarse mediante la experiencia con el
parámetro L. El sentido común nos dice que cuantas más iteraciones se hagan mejores resultados ofrecerá el
algoritmo, a pesar de que también incrementará el tiempo requerido para obtener una solución. Los resultados
en función de L son:
1070
1075
1080
1085
1090
1095
1100
1105
2 1 0,5
Coste de la solución
0
50
100
150
200
250
2 1 0,5
Tiempo (s)
31 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
ANÁLISIS L , tmin = 1 ; t0 = 50 ; β = 0,01
L 1 5 10 20
solution_value 1197,71821 1107,86168 1083,0535 1082,40461
time 9,20483469 46,2416198 96,3655629 196,814512
Desviación típica 64,8278681 18,8533471 2,48411053 6,66288417
Tabla 10 Resultados en función de L
Como era de esperar, la solución ofrecida se acerca más al óptimo a medida que aumenta la cadena L, aunque
aumenta también el coste computacional. Una cadena corta, de una sola iteración, no nos ofrece buenos
resultados a pesar de que sea rápida, luego este valor será descartado en las siguientes simulaciones hechas con
esta función de enfriamiento.
Figura 10 Bondad de la solución en función de L
1020
1040
1060
1080
1100
1120
1140
1160
1180
1200
1220
1 5 10 20
Coste de la solución
El recocido simulado
32
Figura 11 Coste computacional en función de L
Debido a que la calidad de la solución es prácticamente constante para longitudes a partir de 10 pero el coste
computacional sigue aumentando a medida que aumenta L, podemos concluir que la mejor opción es tomar
una L de tamaño 10.
Por tanto, para problemas de este tamaño vamos a optar por los parámetros:
β t0 tmin L
0,01 50 1 10
Tabla 11 Parámetros con función de enfriamiento de Cauchy
Descenso exponencial tk+1 = β·tk
Los resultados obtenidos con esta función de enfriamiento han sido los mostrados en la siguiente tabla.
Parámetros Resultados del algoritmo
β t0 tmin L solution_value Time
0,85 50 1 1 1698,154842 2,5473746
0,85 50 2 1 1610,746963 1,80528084
0,85 50 5 1 2395,611646 1,50069269
0,85 50 1 5 1261,012343 11,073071
0,85 50 1 5 1219,984549 11,563342
0,85 50 2 5 1292,776919 9,16666504
0,85 50 2 5 1220,824019 9,30702645
0,85 50 5 5 1460,131279 7,18051736
0,85 50 1 10 1203,650417 22,6238011
0,85 50 1 10 1162,284268 33,7606243
0,85 50 2 10 1154,086478 19,2024883
0
50
100
150
200
250
1 5 10 20
Tiempo (s)
33 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
0,85 50 2 10 1109,151444 18,3429972
0,85 50 5 10 1255,479518 13,2488976
0,85 50 1 20 1097,343623 47,2758806
0,85 50 1 20 1090,348067 45,1262356
0,85 50 2 20 1154,480495 37,665905
0,85 50 2 20 1105,543683 37,8212426
0,85 50 5 20 1224,332282 27,6599185
0,85 50 1 30 1085,334738 69,3695858
0,85 50 2 30 1102,331552 54,6042776
0,9 50 1 1 1573,730418 3,86632714
0,9 50 2 1 1581,990807 2,76325371
0,9 50 5 1 1671,669825 2,00970766
0,9 50 1 5 1136,632749 17,566603
0,9 50 1 5 1174,379026 19,9805246
0,9 50 2 5 1159,903885 14,0937795
0,9 50 2 5 1267,004603 14,4082622
0,9 50 5 5 1285,357946 10,7785179
0,9 50 1 10 1137,919095 35,0408178
0,9 50 1 10 1089,001405 60,4926266
0,9 50 2 10 1212,0308 28,27225
0,9 50 2 10 1177,714654 28,3141416
0,9 50 5 10 1276,238291 19,4899855
0,9 50 1 20 1109,673881 74,3413107
0,9 50 1 20 1099,192029 69,7557826
0,9 50 2 20 1124,922182 57,6713862
0,9 50 2 20 1151,496572 57,7379061
0,9 50 5 20 1209,652312 40,6769905
0,9 50 1 30 1084,125305 105,787206
0,9 50 2 30 1116,776407 84,2701832
0,95 50 1 1 1347,22383 7,35554016
0,95 50 2 1 1485,935633 5,7082713
0,95 50 5 1 1397,851932 4,12050945
0,95 50 1 5 1155,701339 34,7746398
0,95 50 1 5 1121,06248 39,354
0,95 50 2 5 1095,320983 28,5957073
0,95 50 2 5 1096,363687 30,05549
0,95 50 5 5 1231,749456 21,2153944
0,95 50 1 10 1101,126129 71,2431764
0,95 50 1 10 1084,125305 93,6829787
0,95 50 2 10 1133,631364 58,4691113
0,95 50 2 10 1099,943074 57,3519358
0,95 50 5 10 1152,249294 39,7493955
0,95 50 1 20 1097,478941 149,525823
0,95 50 1 20 1094,261214 141,297605
0,95 50 2 20 1095,765553 122,162865
0,95 50 2 20 1084,012098 119,08835
0,95 50 5 20 1188,176071 85,1560455
0,95 50 1 30 1098,079728 217,980815
El recocido simulado
34
0,95 50 2 30 1085,169409 173,094043
0,99 50 1 1 1110,026157 40,3799086
0,99 50 2 1 1137,718465 35,1669003
0,99 50 5 1 1285,064053 21,5278302
0,99 50 1 5 1083,625305 180,649091
0,99 50 1 5 1091,178765 192,57994
0,99 50 2 5 1102,848067 147,34112
0,99 50 2 5 1126,156065 153,089412
0,99 50 5 5 1147,205797 108,784458
0,99 50 1 10 1086,669409 368,420546
0,99 50 1 10 1077,982596 395,173018
0,99 50 2 10 1090,336076 304,471044
0,99 50 2 10 1089,574906 295,57569
0,99 50 5 10 1106,979954 206,749471
0,99 50 1 20 1080,668072 741,608926
0,99 50 1 20 1079,815929 765,408352
0,99 50 2 20 1094,320983 618,960915
0,99 50 2 20 1098,429073 633,934386
0,99 50 5 20 1097,741751 428,957398
0,99 50 1 30 1084,125305 1106,99262
0,99 50 2 30 1094,030354 891,389007
0,99 50 1 1 1127,657101 48,5387841
0,99 50 1 30 1075,389453 1178,14063
0,85 200 1 1 1751,890186 2,58934222
0,85 200 2 1 1777,087214 2,26202688
0,85 200 5 1 1960,278939 1,71120827
0,85 200 1 5 1221,269888 13,8016935
0,85 200 2 5 1345,602096 11,7592241
0,85 200 5 5 1277,092266 8,61166266
0,85 200 1 10 1158,760254 28,1649101
0,85 200 2 10 1135,266327 22,648405
0,85 200 5 10 1338,149978 16,4590064
0,85 200 1 20 1127,033777 56,3714165
0,85 200 2 20 1179,299861 45,8185512
0,85 200 5 20 1271,578255 34,909655
0,9 200 1 1 1555,156073 3,95629221
0,9 200 2 1 1556,007517 4,038211
0,9 200 5 1 1557,90918 2,64329489
0,9 200 1 5 1198,70425 20,5072449
0,9 200 2 5 1247,986443 18,9889003
0,9 200 5 5 1289,994773 13,5441409
0,9 200 1 10 1104,591452 39,6276225
0,9 200 2 10 1168,937827 34,3506691
0,9 200 5 10 1126,331079 25,3138393
0,9 200 1 20 1116,161888 84,0670348
0,9 200 2 20 1093,289162 71,5653003
0,9 200 5 20 1146,909438 55,4271903
0,95 200 1 1 1332,172706 8,22474337
35 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
0,95 200 2 1 1472,088781 7,6069249
0,95 200 5 1 1438,718638 5,54347773
0,95 200 1 5 1139,483483 42,1638152
0,95 200 2 5 1137,421826 43,1529571
0,95 200 5 5 1270,187569 27,3415543
0,95 200 1 10 1080,168072 89,8190851
0,95 200 2 10 1113,084994 70,0862805
0,95 200 5 10 1110,351019 52,1292508
0,95 200 1 20 1078,889453 172,547572
0,95 200 2 20 1105,975321 145,055943
0,95 200 5 20 1145,948839 108,60991
0,99 200 1 1 1124,980128 42,9701984
0,99 200 2 1 1118,567594 37,9761551
0,99 200 5 1 1182,290969 27,6017421
0,99 200 1 5 1088,291971 236,332074
0,99 200 2 5 1105,674556 190,355564
0,99 200 5 5 1177,071284 162,043324
0,99 200 1 10 1086,334738 448,136875
0,99 200 2 10 1097,668072 360,149343
0,99 200 5 10 1097,882305 264,959768
0,99 200 1 20 1078,97289 909,06609
0,99 200 2 20 1088,265553 756,116138
0,99 200 5 20 1120,419202 625,875288
0,85 50 0,5 1 1531,01981 2,60685338
0,9 50 0,5 1 1471,008491 3,99565448
0,95 50 0,5 1 1439,327646 8,24596869
0,99 50 0,5 1 1125,551799 42,4841976
0,85 50 0,5 5 1187,816006 13,1018191
0,9 50 0,5 5 1168,075317 20,1032693
0,95 50 0,5 5 1097,98339 41,6335931
0,99 50 0,5 5 1088,718447 215,269213
0,85 50 0,5 10 1117,957023 26,8341669
0,9 50 0,5 10 1083,385114 40,7047706
0,95 50 0,5 10 1109,052605 83,5983045
0,99 50 0,5 10 1086,669409 426,958739
0,85 50 0,5 20 1100,919213 53,8205585
0,9 50 0,5 20 1082,525363 82,7387408
0,95 50 0,5 20 1084,125305 176,315416
0,99 50 0,5 20 1078,834738 851,903277
0,85 50 0,5 30 1105,0039 80,0627507
0,9 50 0,5 30 1092,458638 135,457672
0,95 50 0,5 30 1080,713081 304,919514
0,99 50 0,5 30 1079,169409 1514,6526
Tabla 12 Resultados del problema con 25 tareas y 13 vehículos
El recocido simulado
36
ANÁLISIS β, L = 10 ; tmin = 1 ; t0 = 50
β 0,85 0,9 0,95 0,99
solution_value 1182,96734 1113,46025 1092,62572 1082,326
time 28,1922127 47,7667222 82,4630776 381,796782
Desviación
típica 29,2502845 34,5900305 12,0213982 6,14250472
Tabla 13 Resultados en función de β
Nuevamente, observamos que cuanto más lento es el descenso de temperatura, las soluciones alcanzadas son
más próximas al óptimo global, a costa de aumentar el coste computacional.
Figura 12 Bondad de la solución en función de β
1020
1040
1060
1080
1100
1120
1140
1160
1180
1200
0,85 0,9 0,95 0,99
Coste de la solución
37 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Figura 13 Coste computacional en función de β
Se observa en la gráfica que el coste computacional aumenta mucho cuando β tiende a 1. Por tanto, y debido
que para β = 0,95 se obtienen soluciones similares a las obtenidas para β = 0,99, tomaremos 0,95 como valor
de β aunque sin descartar 0,99.
Para fijar el valor de la temperatura a la cual Tabla 14 Resultados en función de t0se inicia el algoritmo,
observamos los resultados en función en función de t0.
ANÁLISIS t0 , L = 10 ; tmin = 1; β = 0,95
t0 50 200
solution_value 1092,62572 1091,92926
time 82,4630776 93,6096537
Desviación típica 12,0213982 16,6328324
Tabla 14 Resultados en función de t0
Nuevamente observamos que la temperatura de partida no es determinante en los resultados
significativamente, por lo que podemos fijar t0 = 50.
La temperatura mínima tiene menos importancia para esta función de enfriamiento. Los resultados en función
de tmin son:
ANÁLISIS tmin, L = 10 ; t0 = 50; β = 0,95
tmin 0,5 1 2 5
solution_value 1106,20796 1092,62572 1116,78722 1172,68892
time 90,9360757 82,4630776 57,9105235 43,803978
Desviación típica 4,02293334 12,0213982 23,8212184 28,905991
Tabla 15 Resultados en función de tmin
0
50
100
150
200
250
300
350
400
450
0,85 0,9 0,95 0,99
Tiempo (s)
El recocido simulado
38
Figura 14 Bondad de la solución en función de tmin
Figura 15 Coste computacional en función de tmin
Para valores de tmin menores a 1, la solución ofrecida no mejora con el descenso de temperatura en este
problema. Se puede tomar tmin = 1, pero para problemas de mayor probaremos tmin = 0,5 antes de descartarlo.
Al ser este descenso más rápido, esto nos permitirá hacer más iteraciones en cada temperatura con un coste
computacional factible.
1040
1060
1080
1100
1120
1140
1160
1180
0,5 1 2 5
Coste de la solución
30
40
50
60
70
80
90
100
0,5 1 2 5
Tiempo (s)
39 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
ANÁLISIS L, tmin = 1 ; t0 = 50; β = 0,95
L 1 5 10 20 30
solution_value 1304,87955 1138,38191 1092,62572 1095,87008 1090,15126
Time 7,52116847 37,0643199 82,4630776 145,411714 227,4201
Desviación
típica 59,8838535 24,4933716 12,0213982 2,2752763 11,2125513
Tabla 16 Resultados en función de L
Figura 16 Bondad de la solución en función de L
950
1000
1050
1100
1150
1200
1250
1300
1350
1 5 10 20 30
Coste de la Solución
El recocido simulado
40
Figura 17 Coste computacional en función de L
A la vista de la relación entre el coste computacional y la bondad de la solución ofrecida, parece evidente que
una cadena de 10 iteraciones es lo más eficiente. Sin embargo, no descartaremos cadenas de 5, 20 y 30
iteraciones hasta que no veamos el comportamiento del algoritmo para problemas de mayor tamaño.
Para esta función de enfriamiento, para problemas de este tamaño vamos a optar por los parámetros:
β t0 tmin L
0,95 50 1 10
Tabla 17 Parámetros con función de enfriamiento exponencial
Comparando los resultados que nos ofrece el algoritmo con las dos funciones de enfriamiento, se puede llegar
a la conclusión que ambas funciones son válidas, pues el comportamiento del algoritmo es similar en los dos
casos. En todo caso, cuanto más lento se produzca el enfriamiento, mejores resultados se encuentran
generalmente. Vamos a optar por la opción de enfriar la temperatura según el esquema de Cauchy, debido a
que esta función de enfriamiento produce menos iteraciones a temperaturas altas, en las cuales la probabilidad
de salir de un óptimo local es mayor. Además, esta forma de enfriamiento produce más iteraciones a
temperaturas bajas, en las que la probabilidad de salir de óptimos locales es baja y por tanto el algoritmo se
encuentra durante más iteraciones buscando soluciones mejores.
0
50
100
150
200
250
1 5 10 20 30
Tiempo (s)
41 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Figura 18 Funciones de enfriamiento analizadas
Así pues, el algoritmo con la función de enfriamiento seleccionada, y con los parámetros determinados ofrece
los siguientes resultados medios:
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,01 50 1 10 1079,368826 93,77296947
0,01 50 1 10 1084,791971 95,29056011
0,01 50 1 10 1083,927881 95,14549615
0,01 50 1 10 1084,125305 101,253226
Resultado Promedio 1083,053496 96,36556294
Tabla 18 Resultados obtenidos con los parámetros seleccionados
A continuación se va a aplicar el algoritmo con los parámetros ya determinados una nueva configuración del
vecindario basado en una doble vecindad, donde por una parte se permutan tareas y por otra se extraen tareas
de su posición inicial en el vector solución y se insertan en otra posición del vector. Esta vecindad tiene un
tamaño de aproximadamente el doble que la vecindad anterior, por lo que es de suponer que necesitará un
mayor tiempo de ejecución del algoritmo.
Vemos el promedio de los resultados en la siguiente tabla.
0
10
20
30
40
50
60
Tem
pe
ratu
ra T
Velocidad de enfriamiento en función del número de iteraciones
Decrecimiento exponencial
Decrecimiento de Cauchy
El recocido simulado
42
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,01 50 1 10 1097,238131 488,5239152
Tabla 19 Resultados del algoritmo aplicado a una doble vecindad
Como era de esperar, el nuevo vecindario implica un aumento importante del coste computacional debido a su
mayor tamaño. Además, apreciamos que este incremento de la carga computacional no supone que el
resultado obtenido obtenido sea mejor que el obtenido con el vecindario simple. Para conseguir con la doble
vecindad alcanzar soluciones tan buenas como las obtenidas tendríamos que hacer más iteraciones, ya sea
disminuyendo la velocidad de enfriamiento (tomar valores más bajos de β), aumentando el número de
iteraciones que se hace para cada temperatura (L) o bien modificando la condición de parada (tmin). Aumentar
la temperatura inicial a la que se inicia el proceso no supone una mejora significativa, ya que para valores altos
de la temperatura el enfriamiento es rápido y no implica un aumento considerable de iteraciones.
Con todo esto, podemos concluir que para problemas donde se permitan pero se penalicen los atrasos
(ventanas temporales suaves) el algoritmo se comporta mejor con la vecindad simple, y con los parámetros
indicados. Sin embargo, es posible que estos parámetros deban ser modificados en función del tamaño del
problema a resolver. Es intuitivo pensar que problemas de mayor tamaño requieran más tiempo para encontrar
una buena solución.
Se va a estudiar como se comporta el algoritmo ante problemas de mayor tamaño. En primer lugar, se analiza
un problema de 50 tareas y 25 vehículos. Para analizar si los parámetros seleccionados son los que mejor se
comportan en problemas de este tamaño, vamos a comparar los resultados que encontramos con los
parámetros determinados con los resultados que encontramos si aumentamos L y si descendemos β. En
concreto, los resultados obtenidos han sido:
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,01 50 1 10 2247,29713 357,082972
0,01 50 1 20 2106,53822 730,011925
0,005 50 1 10 2170,86502 709,113802
0,005 50 1 20 2111,086189 1408,678168
Tabla 20 Resultado del algoritmo a un problema de 50 tareas y 25 vehículos
Como se aprecia en los resultados, para problemas de mayor tamaño puede ser conveniente aumentar el
número de iteraciones en cada temperatura (L). Para valores mayores de L conseguimos mejores resultados,
sin embargo esto también produce un aumento importante del coste computacional. Asímismo, cuanto menor
sea la velocidad de enfriamiento, mejores serán los resultados obtenidos a costa de una mayor carga
computacional. Dependiendo qué prioricemos optaremos por unos valores u otros. En nuestro caso, vamos a
optar por un mayor tamaño de L, manteniendo el mismo valor de β, ya que nuestro proyecto es teórico y no
necesitamos un grado de exactitud tan alto como para incrementar tanto la carga computacional del algoritmo.
43 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Se procede a continuación a analizar los resultados de aplicar el algoritmo a problemas con 100 tareas y 50
vehículos. Los resultados obtenidos se recogen en la siguiente tabla:
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,01 50 1 20 4243,1352 2939,347539
0,01 50 1 20 4127,948888 2885,869936
0,01 50 1 30 4058,39753 4336,287944
0,01 50 1 30 3982,20504 4416,936421
Tabla 21 Resultados del algoritmo a un problema con 100 tareas y 50 vehículos
Como se suponía, se encuentran mejores resultados a medida que aumenta el número de iteraciones que debe
hacer el algoritmo. La velocidad de enfriamiento se mantiene constante, para no aumentar demasiado la carga
computacional.
Así, en los problemas con ventanas temporales suaves los parámetros empleados serán:
β t0 tmin L
25 tareas 0,01 50 1 10
50 tareas 0,01 50 1 20
100 tareas 0,01 50 1 30
Tabla 22 Parámetros empleados en problemas con ventanas temporales suaves
4.3.2 Problemas con ventanas temporales estrictas
Para la resolución de problemas con ventanas temporales estrictas, se van a analizar las dos configuraciones
presentadas anteriormente. El objetivo es determinar qué configuración permite obtener mejores resultados
ante problemas de diferentes tamaños.
Por un lado, emplearemos la configuración consistente en un vector que contiene los vehículos y las tareas,
donde cada vehículo va seguido de las tareas que debe cubrir. Cabe esperar que los parámetros del algoritmo
que proporcionan mejores resultados para esta configuración sean los que se han determinado en el apartado
anterior. Vamos a comparar como se comporta el algoritmo en problemas de 25 tareas y 13 vehículos con los
parámetros determinados anteriormente, con los resultados utilizando diferente velocidad de enfriamiento (β) e
iteraciones (L).
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,01 50 1 10 1096,669409 98,09862203
0,01 50 1 10 1133,91997 97,57513203
0,01 50 1 10 1099,0867 98,8993685
0,01 50 1 10 1099,586218 98,92089972
0,01 50 1 5 1145,654905 48,75746247
0,01 50 1 5 1103,363318 47,69215417
El recocido simulado
44
0,005 50 1 5 1088,408696 100,4815989
0,005 50 1 5 1094,865024 96,8937974
0,005 50 1 10 1094,865024 198,3212621
0,005 50 1 10 1104,865024 193,697642
0,01 50 1 20 1086,669409 201,7516019
0,01 50 1 20 1094,125305 195,8013653
0,005 50 1 20 1100,265887 401,4635958
0,005 50 1 20 1092,222786 392,5364173
Tabla 23 Resultados con la configuración 1 del problema de 25 tareas
Vemos en los resultados que puede ser conveniente tomar una velocidad de enfriamiento más baja, dando a β
valor 0,005. Esto va a conllevar un aumento del coste computacional, que para problemas de este tamaño será
del orden de 100 segundos para el mismo valor de L, lo cual es asumible. Además, se aprecia en los resultados
que el número de iteraciones puede reducirse a 5. Con esto conseguimos un que la resolución sea más rápida
sin que se resientan los resultados.
A continuación, vamos a aplicar el algoritmo con los parámetros seleccionados a la configuración 2. La
configuración 2, como se explicó en el apartado 4.2, consiste en un vector solución que contiene únicamente
las tareas en el orden en que van a ser asignadas a los vehículos. Esta asignación se hace de manera secuencial
y tal que nunca van a poder incumplirse las ventanas temporales. A priori, se puede pensar que debido a que
para la creación de cada solución de cada vecindario explorado, se debe comprobar si pueden insertarse las
tareas una a una, el tiempo de procesamiento será muy elevado. Ante este incremento de carga computacional,
podemos tender a aumentar la velocidad de la función de enfriamiento, aumentando el valor de β.
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,005 50 1 5 1090,265887 1108,355867
0,01 50 1 5 1094,125305 530,3887058
Tabla 24 Resultados con la configuración 2 del problema con 25 tareas
Con los parámetros obtenidos para la anterior configuración, la bondad de la solución es similar a la que se
alcanza con la configuración 1. Sin embargo, la configuración 2 consume una carga computacional del orden
de 10 veces mayor. Para una función de enfriamiento más rápida, la solución no empeora mucho, y el tiempo
de ejecución se reduce considerablemente. Sin embargo, el algoritmo sigue siendo del orden de 5 veces más
lento que para la configuración 1.
Por tanto, para la resolución de problemas con ventanas temporales estrictas, emplearemos la misma
configuración que para problemas con ventanas temporales suaves.
Vamos a estudiar como se comporta el algoritmo ante problemas de mayor tamaño. Lo probamos para un
problema que consta de 50 tareas y 25 vehículos.
45 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,005 50 1 5 1000002129 342,7223387
0,005 50 1 5 3000002113 369,8931342
0,005 50 1 5 2245,077022 370,8184238
0,005 50 1 5 1000002223 370,6469914
0,005 50 1 5 2273,441036 360,3028337
0,005 50 1 10 2127,111978 709,1826151
0,005 50 1 10 2143,968213 713,7874909
0,005 50 1 10 2133,180861 801,2445839
0,005 50 1 10 2134,835796 701,1000395
0,005 50 1 20 2147,132703 1392,477016
Tabla 25 Resultados del problema con 50 tareas y 25 vehículos
Apreciamos que un porcentaje importante de ejecuciones con los parámetros determinados para problemas
más pequeños nos proporciona soluciones desorbitadas. Esto se debe a que el algoritmo no ha encontrado
ninguna solución que no incumpla alguna ventana temporal, debido a que el vecindario es muy grande y es
necesario un número mayor de iteraciones para asegurarnos que se encuentra alguna solución que respete
todas las ventanas temporales.
En efecto, cuando ejecutamos el algoritmo con una longitud de cadena L mayor, encontramos soluciones
factibles. Un valor de L=10 proporciona buenos resultados, aunque inevitablemente el coste computacional se
duplica.
Análogamente, vamos a analizar los resultados de aplicar el algoritmo a un problema con 100 tareas y 50
vehículos.
Parámetros Resultados del algoritmo
β t0 tmin L solution_value time
0,005 50 1 10 4251,60884 3205,533629
0,005 50 1 10 4203,079122 2902,890598
0,005 50 1 20 4141,776128 5809,612104
0,005 50 1 20 4141,776128 5806,015077
Tabla 26 Resultados del problema con 100 tareas y 50 vehículos
Por tanto, los parámetros empleados para problemas con ventanas temporales estrictas son:
β t0 tmin L
25 tareas 0,005 50 1 5
50 tareas 0,005 50 1 10
100 tareas 0,005 50 1 20
Tabla 27 Parámetros empleados en problemas con ventanas temporales estrictas
El recocido simulado
46
A la vista de estos resultados, cabe esperar que el número de iteraciones necesarias para encontrar buenas
soluciones aumente a medida que aumente el tamaño del problema. No obstante, ya se ha comentado que un
número excesivo de iteraciones produce un aumento de carga computacional, y no siempre garantiza encontrar
mejores soluciones.
47 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
5 RESULTADOS
os problemas resueltos forman parte de una batería de problemas generadas en Escudero et al. (2013),
que son una adaptación del Benchmarking creado por Solomon (1987) para el VRPTW.
Los problemas van a ser resueltos considerando dos posibilidades: Ventanas temporales suaves, donde el
incumplimiento de las mismas conlleva unos costes adicionales, y ventanas temporales estrictas donde se
imposibilitan los atrasos en la solución.
La resolución de problemas de encaminamiento proporciona información sobre el coste total de la solución,
además de la propia distribución de tareas en los vehículos. En nuestro caso, vamos a plasmar el coste de la
solución alcanzada y el tiempo que emplea el algoritmo en obtener dicha solución, mientras que la distribución
de cada solución la vamos a omitir de los resultados ya que en el presente proyecto no tiene una finalidad
práctica.
El coste total generado por una solución puede desglosarse en tres costes diferenciados, los cuales
mostraremos por separado en la solución:
Coste por distancia: Es el coste que depende directamente de la distancia total recorrida. Tiene un
valor de 1 u.m. y representa el coste en combustible, depreciación del vehículo, etc.
Coste por vehículos: Coste fijo asociado al uso de cada vehículo. Este coste tiene un valor de 10
unidades monetarias por vehículo, y será 0 cuando el vehículo quede ocioso, ya que consideraremos
que el vehículo no forma parte de la distribución de tareas y que puede ser empleado para otro fin.
Este coste representa los salarios de los conductores, dietas, etc.
Coste por atrasos: Es el coste generado por el incumplimiento de las ventanas temporales. Tiene valor
de 10 u.m. por unidad de tiempo en los problemas con ventanas temporales suaves cuando se trata de
una ventana temporal de una tarea que comienza en la terminal. Se asocia a los costes por
almacenamiento que los clientes imponen a cambio de tener el contenedor fuera de horario. Este valor
es mayor, de valor 100, cuando la ventana temporal corresponde a un envío a la terminal, ya que
L
Resultados
48
puede implicar la pérdida del barco o tren encargado del trayecto principal. En los problemas con
ventanas temporales estrictas este coste no aparece en las soluciones factibles.
Otros datos del problema son la velocidad media de los vehículos, de 50 km/h, y los tiempo de carga y
descarga, estimados ambos en 15 minutos.
5.1 Problemas con 25 tareas y 13 vehículos. Ventanas temporales suaves.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 1089,50141 975,8347384 100 13,6666667 98,1639943
Test 02 1052,4364 961,6765938 90 0,75980926 94,1019442
Test 03 887,8239 817,8239 70 0 96,2132101
Test 04 902,530904 832,5309042 70 0 94,7757849
Test 05 1075,08652 975,0865213 100 0 96,4286388
Test 06 1013,16982 941,9881866 70 1,18162949 95,5543252
Test 07 1000,01257 918,3766542 80 1,63591568 96,7216297
Test 08 956,265504 886,2655039 70 0 95,2438888
Test 09 1007,60814 927,6081361 80 0 96,0602116
Test 10 922,377117 842,3771167 80 0 95,0524553
Test 11 983,670313 893,6703133 90 0 93,5820695
Test 12 940,854854 880,8548545 60 0 94,0734124
Tabla 28 Resultados del problema con 25 tareas y 13 vehículos, ventanas temporales suaves
5.2 Problemas con 25 tareas. Ventanas temporales estrictas.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 1153,18348 1023,183485 130 0 95,9148626
Test 02 1062,26488 982,2648828 80 0 94,5574186
Test 03 895,46322 815,4632203 80 0 95,8630561
Test 04 882,145672 812,1456723 70 0 95,2353587
Test 05 1070,27731 990,2773091 80 0 95,089988
Test 06 1010,57731 940,5773086 70 0 95,3341698
Test 07 1000,47306 920,4730567 80 0 93,5257294
Test 08 958,098294 888,098294 70 0 94,4023618
Test 09 1010,76125 920,761247 90 0 162,867256
Test 10 947,732512 857,7325124 90 0 183,345406
Test 11 955,285448 875,2854482 80 0 182,714684
Test 12 944,531352 874,5313517 70 0 183,016252
Tabla 29 Resultados del problema con 25 tareas, ventanas temporales estrictas
49 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
5.3 Problemas con 50 tareas y 25 vehículos. Ventanas temporales suaves.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 2131,70146 1921,544969 200 10,1564903 731,796215
Test 02 2008,04512 1825,705699 160 22,3394253 728,169741
Test 03 1844,4019 1694,401902 150 0 736,309043
Test 04 1794,4414 1664,4414 130 0 740,986678
Test 05 2090,67702 1904,579149 180 6,0978677 716,091345
Test 06 1898,2891 1748,784642 140 9,50445506 711,784237
Test 07 1848,39637 1694,391915 150 4,00445506 722,874254
Test 08 1750,93838 1638,10236 110 2,83601573 712,368559
Test 09 1917,08523 1766,172646 150 0,91258257 708,982721
Test 10 1876,73529 1713,423784 160 3,31151011 708,897955
Test 11 1935,45968 1795,19522 140 0,26446287 709,162569
Test 12 1831,55599 1671,431296 160 0,12469083 770,872337
Tabla 30 Resultados del problema con 50 tareas y 25 vehículos, ventanas temporales suaves
5.4 Problemas con 50 tareas. Ventanas temporales estrictas.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 2122,87071 1902,87071 220 0 739,77727
Test 02 2004,02845 1834,02845 170 0 717,649176
Test 03 1856,79292 1686,79292 170 0 725,094699
Test 04 1776,65054 1656,65054 120 0 738,294596
Test 05 2081,46315 1901,46315 180 0 787,605907
Test 06 1936,18512 1786,18512 150 0 714,518975
Test 07 1858,85405 1698,85405 160 0 735,930812
Test 08 1772,30333 1642,30333 130 0 718,786015
Test 09 1934,92302 1784,92302 150 0 723,060408
Test 10 1864,0791 1704,0791 160 0 720,998912
Test 11 1951,66984 1801,66984 150 0 722,917845
Test 12 1793,93418 1643,93418 150 0 720,156724
Tabla 31 Resultados del problema con 50 tareas, ventanas temporales estrictas
Resultados
50
5.5 Problemas con 100 tareas y 50 vehículos. Ventanas temporales suaves.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 4058,39753 3609,876838 420 28,5206919 4336,28794
Test 02 3818,56866 3464,664174 330 23,9044856 4336,98552
Test 03 3374,51067 3058,927973 300 15,5826954 4331,93207
Test 04 3241,44816 2991,448164 250 0 4346,31766
Test 05 3746,10303 3400,808549 340 5,29448377 5067,74339
Test 06 3594,77743 3300,342471 290 4,43495625 4680,15507
Test 07 3451,73328 3157,172488 290 4,56079235 4486,22613
Test 08 3187,87117 2946,402135 240 1,46903348 4492,3034
Test 09 3555,00363 3251,937507 300 3,06612548 4490,86301
Test 10 3412,78866 3074,993997 330 7,79466361 4463,83724
Test 11 3556,50497 3246,50497 310 0 4504,65138
Test 12 3362,26953 3032,269531 330 0 4608,44501
Tabla 32 Resultados del problema con 100 tareas y 50 vehículos, ventanas temporales suaves
5.6 Problemas con 100 tareas. Ventanas temporales estrictas.
Coste
Total
Coste por
distancia
Coste por
vehículos
Coste por
atrasos
Tiempo de
ejecución
Test 01 3996,09032 3576,09032 420 0 6036,91927
Test 02 3720,78401 3380,78401 340 0 5725,64292
Test 03 3337,0064 3027,0064 310 0 5729,5087
Test 04 3224,15869 2964,15869 260 0 5739,99755
Test 05 3687,07894 3357,07894 330 0 5753,32508
Test 06 3558,20237 3248,20237 310 0 5736,85968
Test 07 3314,48649 3054,48649 260 0 5731,77257
Test 08 3238,01678 3008,01678 230 0 5732,27262
Test 09 3555,8418 3225,8418 330 0 5733,00337
Test 10 3364,01925 3054,01925 310 0 5733,68322
Test 11 3565,37752 3275,37752 290 0 5727,98378
Test 12 3262,62039 2972,62039 290 0 5731,71368
Tabla 33 Resultados del problema con 100 tareas, ventanas temporales estrictas
Los resultados de los problemas pueden ser analizados desde diversos puntos de vista. En primer lugar, es
evidente que los tiempos de ejecución aumentan conforme aumenta el tamaño del problema. Sin embargo
podemos apreciar que, para problemas del mismo tamaño, estos tiempos son muy similares, luego la carga
computacional depende únicamente del tamaño del problema a resolver, y no de otras variantes como la
51 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
solución inicial aleatoria.
Resulta interesante desglosar los costes por conceptos para conocer qué aspectos pueden ser mejorados en el
futuro. Conociendo además la distancia total recorrida y el número de vehículos que van a emplearse se puede
conocer la distancia promedio de cada vehículo, lo que puede ser útil a la hora de gestionar los horarios de los
conductores.
Obviamente, los costes por atrasos en los problemas con ventanas temporales estrictas son cero. Sin embargo,
el cumplimiento estricto de las ventanas temporales no garantiza siempre encontrar mejores soluciones, como
puede verse en algunos de los problemas resueltos, donde se han encontrado mejores soluciones soportando
penalizaciones por incumplimientos de ventanas temporales. Esta conclusión dependerá de cada problema, ya
que las penalizaciones no siempre suponen los mismos costes.
Conclusiones
52
6 CONCLUSIONES
a metaheurística de Recocido Simulado cuenta con una gran ventaja ante otras metaheurísticas
empleadas en problemas de optimización, y es la convergencia al óptimo del problema demostrada por
diversos autores. Sin embargo, esta convergencia es lenta en problemas con un tamaño considerable, lo que
nos hace pensar que el Recocido Simulado es un muy buen método de optimización de problemas complejos
siempre y cuando no requeramos una solución inmediata. Esta restricción debida al coste computacional hace
que esta heurística no pueda ser empleada a día de hoy para resolver problemas dinámicos que necesitan
soluciones rápidas. Por contra, sí puede ser empleada por empresas de transporte o reparto que necesiten
programar rutas cada día.
Este equilibrio entre lo exacto que resulta el método y la carga computacional que conlleva hace que sea
necesario estudiar cada problema al que vaya a ser aplicado el algoritmo con el fin de encontrar los parámetros
que aceleren la convergencia del mismo. Se ha demostrado además que, como era de suponer, para un mismo
problema, la velocidad de convergencia dependerá directamente del tamaño del problema. A medida que el
tamaño del problema aumenta, los parámetros del algoritmo deben ser modificados para conseguir encontrar
buenas soluciones, aunque esto supone un ineludible aumento de la carga computacional. En nuestro
problema, podemos apreciar que el tiempo de ejecución se ha doblado cuando hemos pretendido resolver un
problema con el doble de tareas, lo que nos da una idea de que el tiempo de proceso de resolución con el
algoritmo de Recocido Simulado crece aproximadamente tanto como lo haga el tamaño del problema.
En cuanto al problema de acarreo terrestre resuelto, cabe destacar a la vista de los resultados que el
cumplimiento estricto de todas las ventanas temporales no garantiza una mejor solución. Esto debe ser tenido
en cuenta a la hora de programar rutas, si bien es cierto que los costes por atrasos no pueden ser siempre
estimados fácilmente y a veces no es cuantificable. A menudo el coste adicional por incumplir una ventana
temporal puede ser rentable si así se consigue disminuir el número de vehículos empleados, o la distancia total
recorrida.
En cuanto a la elección de parámetros seleccionados, si bien se ha demostrado que el algoritmo proporciona
L
53 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
buenas soluciones, no es única, y unos valores diferentes de los parámetros pueden hacer que el algoritmo
encuentre soluciones igual de válidas. La bondad de la solución que puede encontrar el algoritmo dependerá
sobre todo del número de iteraciones que se hagan a lo largo de toda la ejecución. Por tanto, seleccionar una
velocidad de enfriamiento más lenta se puede compensar con un menor número de iteraciones en cada
temperatura (L), y ambas configuraciones mostrar un comportamiento similar.
Sí es más determinante la función de enfriamiento elegida, ya que la temperatura marca la probabilidad de
aceptar una solución peor, por lo que a medida que la búsqueda avance debe ser menos probable aceptar
soluciones más costosas. Resulta conveniente que la función de enfriamiento haga descender rápidamente la
temperatura al principio, para escapar de óptimos locales, y lentamente después, para que el algoritmo busque
durante más tiempo soluciones únicamente de mejora.
Referencias
54
7 REFERENCIAS
[1] Arbelaitz, O. (2002). «Soluciones basadas en Simulated Annealing para el VRPTW». Tesis Doctoral.
Universidad del País Vasco, Donostia.
[2] Bodin, L.; Golden, B. y Assad, A. (1983). «Routing and Scheduling of vehicles and crews. The state
of the art». Computers and Operations Research, Vol 70 No 2, pp 63-211.
[3] Caris, A. y Janssens, G.K. (2010). «A deterministic annealing algorithm for the pre- and end-haulage
of intermodal container terminals». Internatiolan Journal of Computer Aided Engineering and
Technology, 2(4), pp. 340-355.
[4] Černý, V. (1985). «Thermodynamical approach to the traveling salesman problem: An efficient
simulation algorithm». Optimizacion Theory and Applications 45, pp. 41-51.
[5] Chiang, W.C. y Rusell, R.A. (1996) «Simulated Annealing Metaheuristics for the Vehicle Routing
Problem with Time Windows». Annals of Operations Research 63, pp 3-27.
[6] Dowsland, K.A. y Díaz, A. (2003). «Diseño de Heurísticas y Fundamentos del Recocido Simulado».
Inteligencia Artificial, vol 2, no 19.
[7] Eglese, R.W. «Simulated Annealing: a Tool for Operationar Research». European Journal of
Operational Research, 46, 1990, pp 271-281.
[8] Escudero, A. (2013) «Mejoras en el transporte intermodal: optimización en tiempo real del acarreo
terrestre». Tesis doctoral. Universidad de Sevilla.
[9] Escudero, A.; Munuzuri, J.; Arango, C. y Onieva, L. (2011). «A satellite navigation system to
improve the management of intermodal drayage». Advanced Engineering Informatics, 25(3), pp. 427-
434.
[10] Escudero, A.; Munuzuri, J.; Guadix, J. y Arango, C. (2013). «Dynamic approach to solve the daily
drayage problem with transit time uncertainty». Computers in Industry, 64, pp. 65-75.
55 Heurística de Recocido Simulado para la resolución del problema del acarreo terrestre
[11] European Comission (2012). http://epp.eurostat.ec.europa.eu
[12] European Conference of Ministers of Transport (1993). «Terminology on combined transport». En:
European Conference of Ministers of Transport.
[13] Gendreau, M. y Potvin, J-Y. (2010). «Handbook of metaheuristics». Springer, Second Edition, pp. 1-
17.
[14] Glover, F. y Kochenberger, G.A. (2003). «Handbook of metaheuristics». Kluwer Academic
Publishers, pp. 287-302.
[15] Grosso, R. (2010) «Cálculo de rutas de vehículos de reparto en una ciudad con ventanas temporales
de acceso». Proyecto fin de carrera, Universidad de Sevilla.
[16] Jones, W.B.; Cassady, C.R. y Bowden Jr, R.O. (2000). «Developing a standard definition of
intermodal transportation». Transportation Law Journal, 27, p. 345.
[17] Kirkpatrick, S.; Gelatt, C.D. y Vecchi, M.P. (1983). «Optimization by Simulated Annealing».
Science 220 (4598), pp. 671-680.
[18] Metropolis, N.; Rosenbluth, A.W.; Rosenbluth, M.N.; Teller, A.H. y Teller, E. (1953). «Equation of
State Calculations by Fast Computing Machines». Journal of Chemical Physics 21 (6), p 1087.
[19] Solomon, M.M. (1987). «Algorithms for the vehicle routing and scheduling problems with time
window constraints. » Operations Research, 35(2), pp. 254-265.
[20] Southworth, F. y Peterson, B.E. (2000). «Intermodal and international freight network modeling».
Transportation Research Part C-Emerging Technologies, 8(1-6), pp. 147-166.
[21] Van Duin, R. y Van Ham, H. (1998). «Three-stage modeling approach for the design and
organization of intermodal transportation services». En: Proceedings of the IEEE International
Conference of Systems, Man and Cybernetics. Part4, October 11-14, volume 4, pp. 4051-4056. IEEE,
San Diega, CA.