Trabajo Fin de Grado Ingeniería en Tecnologías...

75
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

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

5.6 Problemas con 100 tareas. Ventanas temporales estrictas. 50

6 Conclusiones 52

7 Referencias 54

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