PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se...

131
CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO. Proyecto fin de carrera. Autor: Rafael Grosso de la Vega Profesor Tutor: Jesús Muñuzuri Sanz Abril 2010

Transcript of PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se...

Page 1: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA

CIUDAD CON VENTANAS

TEMPORALES DE ACCESO.

Proyecto fin de carrera.

Autor: Rafael Grosso de la Vega

Profesor Tutor: Jesús Muñuzuri Sanz

Abril 2010

Page 2: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

2 Rafael Grosso de la Vega

ÍNDICE:

1 INTRODUCCIÓN Y OBJETIVOS DEL PROYECTO.- ................................................. 5

2 LOGÍSTICA URBANA: INTRODUCCIÓN.- .................................................................. 9

2.1 Acercamiento a la logística urbana en España. ............................................................................. 9

2.2 Logística urbana de mercancías en el centro histórico de Sevilla. ............................................... 13

2.2.1 Problemática. .......................................................................................................................... 13

2.2.2 Soluciones posibles. ................................................................................................................ 14

3 PLANTEAMIENTO DEL PROBLEMA.- .................................................................... 17

3.1 Introducción al problema a resolver.- ......................................................................................... 17

3.2 Presentación del problema ......................................................................................................... 19

3.2.1 Proceso General ...................................................................................................................... 19

3.2.2 Restricciones consideradas ..................................................................................................... 20

3.2.3 Modelado matemático. ........................................................................................................... 22

4 HERRAMIENTAS DE RESOLUCIÓN. ........................................................................ 26

4.1 Introducción a los problemas de optimización de rutas.- ............................................................ 26

4.1.1 Métodos exactos.- ................................................................................................................... 29

4.1.2 Métodos heurísticos.-.............................................................................................................. 30

4.1.3 Metaheurísticas.-..................................................................................................................... 32

4.1.3.1 Simulated Annealing ...................................................................................................... 33

4.1.3.2 Búsquedas tabú ............................................................................................................. 34

4.1.3.3 Métodos Evolutivos ....................................................................................................... 34

4.1.3.3.1 Algoritmos Genéticos ................................................................................................ 34

4.1.3.3.2 Programación Genética ............................................................................................. 35

4.1.3.3.3 Programación Evolutiva ............................................................................................ 35

4.2 Introducción a los algoritmos genéticos. ..................................................................................... 36

4.2.1 Introducción histórica ............................................................................................................. 36

4.2.1.1 Mecanismos de cambio en la evolución ........................................................................ 38

4.2.1.2 Evolución de la informática evolutiva ............................................................................ 39

4.2.2 Los Algoritmos Genéticos. ....................................................................................................... 43

4.2.2.1 Estructura del Algoritmo Genético Simple. ................................................................... 44

5 EXPOSICIÓN DEL MÉTODO DE RESOLUCIÓN: ALGORITMO GENÉTICO.- .. 47

5.1 Casuística .................................................................................................................................... 47

5.1.1 Caso General ........................................................................................................................... 48

5.1.2 Entrada en la Zona Restringida................................................................................................ 49

5.1.2.1 Con la ventana temporal abierta. .................................................................................. 50

5.1.2.2 Con la ventana temporal cerrada. ................................................................................. 50

5.1.3 Salida de la Zona Restringida ................................................................................................... 54

5.2 Desarrollo del algoritmo. Diagrama de flujos. ............................................................................. 57

Page 3: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

3 Rafael Grosso de la Vega

5.2.1 Fitness. .................................................................................................................................... 59

5.2.2 Cruce. ...................................................................................................................................... 65

5.2.3 Mutación. ................................................................................................................................ 67

5.2.4 Selección por Ranking. ............................................................................................................ 68

5.2.5 Población nueva. ..................................................................................................................... 68

6 RED DE PRUEBA. RESULTADOS.- ........................................................................... 71

6.1 Exposición de la red de prueba ................................................................................................... 71

6.2 Resultados .................................................................................................................................. 73

7 RED DE SEVILLA. RESULTADOS.- ........................................................................... 76

7.1 Exposición de la red de Sevilla .................................................................................................... 76

7.2 Resultados .................................................................................................................................. 80

8 CONCLUSIONES. ........................................................................................................... 85

9 BIBLIOGRAFÍA. ............................................................................................................. 87

ANEXO: PROGRAMACIÓN DEL ALGORITMO. .............................................................. 88

1 RED DE PRUEBA. ......................................................................................................... 89

1.1 Generación de los problemas. .................................................................................................... 89

1.1.1 A_parametros: ......................................................................................................................... 90

1.1.2 B_creanodos: ........................................................................................................................... 91

1.1.3 C_construirmatrizincidencias: ................................................................................................. 92

1.1.4 D_zonarestringida: .................................................................................................................. 93

1.1.5 E_nodosinicioydestino: ........................................................................................................... 94

1.1.6 F_rutasminimas: ...................................................................................................................... 96

1.2 Resolución de los problemas. ..................................................................................................... 98

1.2.1 G_poblinicial: ......................................................................................................................... 101

1.2.2 H_paradasZR: ........................................................................................................................ 102

1.2.3 I_previofitness: ...................................................................................................................... 102

1.2.3.1 I_fitness: ...................................................................................................................... 105

1.2.3.1.1 I_1_bucle_J: ............................................................................................................ 106

1.2.3.1.2 J_bucle_K: ............................................................................................................... 107

1.2.3.1.3 I_2_bucle_N: .......................................................................................................... 108

1.2.4 K_cruce: ................................................................................................................................. 110

1.2.5 L_mutacion: ........................................................................................................................... 113

1.2.6 M_previofitnessDescendientes: ............................................................................................ 114

1.2.7 N_seleccionporranking: ......................................................................................................... 116

1.2.8 O_poblinicial2:....................................................................................................................... 118

1.2.9 P_previofitnesspoblinicial2: .................................................................................................. 119

2 RED DE SEVILLA. ...................................................................................................... 121

2.1 Generación de los problemas. .................................................................................................. 121

2.1.1 B_creanodosSevilla................................................................................................................ 123

Page 4: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

4 Rafael Grosso de la Vega

2.1.2 C_construirmatrizincidenciasSev........................................................................................... 124

2.1.3 D_zonarestringidaSev ............................................................................................................ 124

2.1.4 E_nodosinicioydestinoSevde100 ........................................................................................... 126

2.1.5 F_rutasminimasSev ............................................................................................................... 128

Page 5: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

5 Rafael Grosso de la Vega

PROYECTO FIN DE CARRERA

“La mayoría de los problemas del mundo real no

pueden ser solucionados por métodos tradicionales;

si se pudiesen solucionar por medio de un

procedimiento clásico, ya no seria un problema”.

Zbigniew Michalewicz, University of

Adelaide

1 INTRODUCCIÓN Y OBJETIVOS DEL PROYECTO.-

Los objetivos de este proyecto son llevar a cabo la resolución de un problema

de optimización de rutas por medio de Algoritmos Genéticos (AAGG).

Apoyándose, en la medida en que se pueda, en los conceptos metodológicos

de utilizar una visión sistémica del proyecto, es decir no aportar una suma de

soluciones a sus diferentes partes sino analizarlo en conjunto para buscar la

mejor solución, además de intentar utilizar los conceptos básicos de la

ingeniería concurrente, esto es tener en cuenta las necesidades y objetivos de

todas las etapas del proyecto en cualquier momento del desarrollo de este.

Los problemas de optimización de rutas, como el problema básico del viajero

de comercio (TSP) o el problema de optimización de rutas de vehículos con

ventana de tiempo (VRPTW), han sido y siguen siendo profundamente

estudiados. Se puede encontrar multitud de documentación y software sobre el

tema en las cuales podremos hallar una larga lista de métodos de resolución,

pasando por la optimización lineal y terminando por las técnicas

metaheurísticas más avanzadas y modernas. En este documento no se

pretende avanzar en el estudio de las técnicas de resolución para estos

problemas, más si se pretende resolver un nuevo tipo de problema de

optimización de rutas con unas características diferentes a los planteados

hasta ahora.

El problema en cuestión aparece, como todos, de la observación de la realidad.

Page 6: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

6 Rafael Grosso de la Vega

Dada la tendencia cada vez más creciente de las autoridades locales de

peatonalizar los centros urbanos, es decir, de impedir el acceso de vehículos a

ciertas partes de la ciudad, las empresas de reparto de mercancía se

encuentran con nuevos problemas. Además sabiendo que estas zonas de las

ciudades suelen tener una densidad muy alta de comercios a los que es

imprescindible abastecer, el problema parece mayor para la logística de estos

comercios. Estas restricciones de movilidad suelen ir acompañadas de otras

temporales: se suele imponer un horario de acceso a los centros urbanos.

Incluso esta imposición horaria suele coincidir con el horario laboral tipo, cosa

que complejiza más el problema. La combinación de estos dos factores, uno

zonal y otro temporal, en un problema de optimización de rutas es lo que se

viene ha llamar aquí Vehicle Routing Problem with Acess Time Windows

(VRPATW).

Este nuevo tipo de ventana temporal difiere en sus características básicas con

las definidas en otros problemas que también la contemplan, en este caso no

es el cliente el que me impone un determinado horario (como sucede en el

problema VRPTW) en el que se le debe servir la mercancía, sino las

autoridades locales o ayuntamientos. Además esta ventana de tiempo se

impone para todos los clientes que se encuentren en la zona peatonalizada,

sumando también la imposibilidad de entrar o permanecer en dicha zona. En

resumen, se esta ante una zona con el acceso restringido bajo un determinado

horario, horario que será el mismo para todos los clientes que se encuentren

dentro de la zona.

Mediante la herramienta informática MATLAB se programará el modelo de este

problema con todas sus características y restricciones, al igual que la

implementación y desarrollo del propio AAGG. Dentro de MATLAB mediante

los llamados M-files, que son ficheros de texto ASCII con la extensión *.m que

contienen conjuntos de comandos y/o definiciones de funciones, se ira

programando en una primer momento el modelo del problema, y

posteriormente se programará y desarrollará el algoritmo de resolución. Para

todo este proceso de modelado e implementación se pasará por diversas

Page 7: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

7 Rafael Grosso de la Vega

fases:

• Estudio y modelado del problema.

• Estudio y definición de la estructura general del AAGG.

• Estudio de la adaptación del AAGG al problema concreto.

• Programación del modelo del problema en función de los futuros inputs

del AAGG.

• Implementación del AAGG en el lenguaje de programación de la

herramienta informática MATLAB.

• Depuración y probaturas del algoritmo sobre el modelo hasta su correcto

funcionamiento.

Cabe decir que todo el proceso de modelado e implementación del algoritmo

esta cruzado por el objetivo general de conseguir solucionar el problema de

manera que el esfuerzo computacional sea mínimo, es decir, que el algoritmo

sea lo más eficiente posible, hablando en términos de tiempo de resolución.

Para todo ello durante el proceso de implementación del algoritmo se realizaran

las probaturas sobre un modelo básico compuesto por una red de nodos, que

llamaremos red de prueba, cuyas características detallaremos en un apartado

posterior. Una vez verificado el funcionamiento eficiente y óptimo del algoritmo

en dicha red de prueba, se procederá finalmente a su aplicación sobre el

modelo de una red de la ciudad de Sevilla y su área metropolitana.

Con respecto a la finalidad del proyecto, además de la obvia y propia de la

realización de un proyecto fin de carrera (véase normativa para proyectos fin de

carrera), se pretende evaluar, en términos económicos y temporales, y desde

un punto de vista neutro con respecto a los dos entes implicados en el proceso

Page 8: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

8 Rafael Grosso de la Vega

(la empresa privada y los ayuntamientos) el coste de implantar ventanas

temporales en los centros de las ciudades. Nos referimos a la tendencia de los

ayuntamientos de peatonalizar los cascos antiguos y los centros de las

ciudades. Lo que conlleva que el acceso de los vehículos de reparto a los

comercios que se encuentran en estas zonas se encuentra limitado en horario,

es decir tienen una ventana temporal. De ese modo se pretende cuantificar los

costes en los que se incurre, por parte de las empresas de reparto, con la

implantación de este tipo de medidas enlas ciudades.

Page 9: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

9 Rafael Grosso de la Vega

2 LOGÍSTICA URBANA: INTRODUCCIÓN.-

2.1 Acercamiento a la logística urbana en España. La logística urbana de mercancías no ha venido teniendo una atención

especial como un concepto singular en España. Esta es probablemente la

razón principal para la escasez de datos disponibles sobre el sector. Pocos

estudios han analizado esta actividad obteniendo información relevante para el

análisis de la distribución urbana de mercancías, y sólo algunas ciudades han

abierto esta línea de trabajo recientemente.

No consta la existencia de ningún estudio general a nivel español que se haya

dedicado a la obtención de datos cuantitativos dirigidos a describir los múltiples

aspectos relacionados con la Logística Urbana de Mercancías.

El sector del transporte por carretera en España no ha venido considerando la

Logística Urbana de Mercancías (LUM) como un subsector de su industria. Por

tanto, no existen bancos de datos que muestren la importancia de la actividad.

No existen listados de compañías cuyo negocio se centre en la LUM, ni de los

ingresos agregados generados por la actividad, ni del número de vehículos

utilizados, etc. Por tanto, sólo se puede, en el momento actual, presentar una

visión global deducida a partir de la información existente sobre el transporte de

mercancías.

El transporte de mercancías en España se divide en un 85% para la

carretera, un 12% por barco, 3% en tren y mínimas cantidades en avión. El

transporte de mercancías por carretera constituye un sector que factura 6.000

millones de euros, repartido entre 500 empresas que absorben el 99% de la

actividad. Existe una clasificación generalmente aceptada en función de los

distintos tipos de mercancía. El tipo de mercancía relacionado más

directamente con la distribución urbana es el denominado mercancía

fraccionada, que corresponde aproximadamente al 10% del transporte por

carretera, es decir 600 millones de euros. Por otro lado, el transporte de carga

Page 10: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

10 Rafael Grosso de la Vega

completa representa el 25% del transporte por carretera, 1.500 millones de

euros. Los grandes centros comerciales situados en áreas urbanas hacen uso

frecuentemente del transporte de carga completa, pero es difícil dar una

estimación acerca de qué proporción de este tipo de transporte tiene el final de

su cadena de suministro localizado en una zona urbana.

Existen otros dos tipos de transporte de mercancías que a menudo incluyen

áreas urbanas en al menos uno de los dos extremos de su cadena de

suministro: paquetería y servicios de courier. Se trata de un mercado de 3.000

millones de euros cubierto por unas 4.000 empresas, la mayoría de las cuales

son pequeñas y de ámbito local (las cinco mayores compañías aglutinan el

40% de la actividad). Además, la tercera y cuarta empresas en el ranking de

servicios de paquetería y courier son también las dos primeras en el ranking de

carga fraccionada, con el 45% de este tipo de mercancía. Se trata de las

principales compañías de logística y transporte que actúan también en la

distribución urbana en las áreas metropolitanas españolas

Los principales indicadores de actividades comerciales en España pueden

ser resumidos en las siguientes cifras: existen 20 establecimientos comerciales

por cada 1000 habitantes, incluyendo tiendas y también bares, cafeterías y

restaurantes. Existe una relación de 9 a 1 entre clientes finales y centros de

distribución. La localización de estos establecimientos es aproximadamente:

40% en el centro, 40% en la corona metropolitana y 20% en áreas no urbanas

(pueblos, zonas rurales).

No existen indicadores de validez general a nivel español para operaciones de

carga y descarga en relación con la población, el empleo o el tamaño de los

comercios. Pero no hay razones para esperar valores muy diferentes de los ya

obtenidos en Barcelona, Sevilla y otras ciudades: 100.000 operaciones diarias

en Barcelona representan aproximadamente 1 operación semanal por empleo.

Los resultados obtenidos en algunos estudios estiman en 50.000 operaciones

diarias de entrega y recogida en Sevilla.

Cerca de 11 millones de personas viven en las 20 principales ciudades

Page 11: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

11 Rafael Grosso de la Vega

españolas, todas ellas con más de 200.000 habitantes. Dado que la tasa de

población activa es del 55%, puede concluirse que un total de 6 millones de

operaciones de carga y descarga se llevan a cabo diariamente en estas áreas

urbanas.

Es tradicional en España considerar la Logística Urbana de Mercancías como

un tipo de tráfico que debe ser regulado dentro de las normativas generales

que se ocupan del tráfico y el transporte a nivel local. En las ordenanzas

municipales, bajo el encabezamiento de carga y descarga, se encuentra

normalmente un amplio artículo que contempla el tipo de vehículos permitidos

en las distintas zonas de la ciudad, las ventanas temporales de acceso para los

vehículos de reparto de mercancías y el uso de espacios de aparcamiento para

carga y descarga.

La mayoría de las normas de tráfico a nivel local fueron dictadas a finales de

los años 60 y principios de los 70, y duraron tres décadas con sólo

modificaciones y actualizaciones menores. Se ha producido una reciente

reformulación de la mayoría de ordenanzas de transportes en la segunda mitad

de los 90, por lo que muchas de ellas son recientes, de menos de 10 años de

antigüedad.

Por otro lado, no existen instrumentos formales para incluir el concepto de la

LUM en los niveles de decisión político y operacional a nivel local en otros

departamentos que no sea el de tráfico. Muchas ciudades españolas están

realizando una planificación estratégica que tendrá importantes efectos en

cuanto al espacio asignado a los múltiples requerimientos posibles en el futuro.

El transporte es uno de los principales conceptos a tener en cuenta en la

planificación, pero el transporte urbano de mercancías está considerado sólo

tangencialmente.

Las compañías logísticas planifican sus inversiones y sus operaciones de

acuerdo con sus perspectivas de negocio, que suelen necesitar de gran rapidez

en la toma de decisiones. Sin embargo, cualquier movimiento estratégico en el

entorno del transporte urbano de mercancías necesita de la aprobación de las

Page 12: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

12 Rafael Grosso de la Vega

autoridades locales, que suelen seguir un ritmo muy diferente.

Las compañías perciben la burocracia y los cambios políticos como grandes

lastres sobre la logística urbana de mercancías, ya que operaciones como las

licencias para construcción (para la ampliación de instalaciones),

modificaciones de la regulación o simplemente la resolución de problemas

localizados de movilidad representan procesos muy lentos que pueden durar

varios meses o incluso años.

Las condiciones de las operaciones diarias pueden ser calificadas de

anarquía suave. Existe una cierta tolerancia a la hora de permitir el

incumplimiento de la mayoría de normas locales siempre que las molestias

causadas a otros tipos de tráfico no sean excesivas. Existe una posición de

seguridad moral de los transportistas por estar trabajando, mientras que al

resto de usuarios de la calle – excepto los taxis – no se les supone lo mismo.

La situación de los receptores les resulta bastante satisfactoria. Todas las

políticas modernas de gestión de stocks – reducción de inventario, entregas

frecuentes, just in time - pueden ser implantadas sin siquiera imponer

restricciones derivadas desde el transportista. Existen múltiples proveedores

con precios muy ajustados dispuestos a aceptar las condiciones que se

impongan, por lo que la LUM no supone una restricción para las actividades

empresariales o comerciales de las zonas urbanas

Las normativas de tráfico actuales pueden ser consideradas como una simple

manera de regular estos aspectos, a pesar de ser bastante rígidas y

rudimentarias. Además, no han sido coordinadas formalmente entre las

distintas autoridades locales de España, lo cual es de especial importancia en

términos del tipo de vehículo que puede acceder a cada ciudad. Las compañías

de transporte que operan a nivel nacional deben enfrentarse a diferentes

regulaciones dependiendo de la ciudad.

El tráfico, el transporte y la construcción están entre las máximas prioridades

de cualquier Ayuntamiento , pero son necesarios menores tiempos de reacción

en la modificación de las normas, para conseguir una implementación flexible

Page 13: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

13 Rafael Grosso de la Vega

de nuevas medidas e iniciativas. Estas iniciativas podrían así ser probadas y

modificadas, y dar como resultado un crecimiento de las oportunidades para los

distribuidores locales de mercancías.

Estas consideraciones no sólo retrasan los proyectos logísticos propuestos por

las compañías, sino que pueden convertirlos en no viables. Los retrasos

implican mayores incertidumbres en cuanto al resultado de la iniciativa, y las

compañías no están preparadas para arriesgar sus finanzas y sus clientes por

una simple y remota posibilidad.

Por tanto, ya que las compañías no pueden permitirse funcionar más despacio

y las ciudades no pueden (de momento) acelerar sus procesos de decisión, el

resultado es a menudo el rechazo del proyecto por parte de la compañía. O

quizás, aún peor, el inicio del proyecto, asumiendo el riesgo de que finalmente

podría no ser aprobado por las autoridades locales.

2.2 Logística urbana de mercancías en el centro histórico de Sevilla.

2.2.1 Problemática. La posición del centro histórico de Sevilla como centro comercial, de negocios y

turístico de la ciudad implica una ingente afluencia diaria de personas,

vehículos y mercancías. Los principales problemas a los que se enfrenta el

transporte de mercancías en el centro de la ciudad pueden ser resumidos de la

siguiente manera:

• Colapso de las zonas de carga y descarga, tomadas por parte de vehículos

privados, imposibilitando las tareas propias de los transportes de

mercancías.

• Incompatibilidad de los horarios de apertura de los comercios con los

horarios definidos para el acceso de vehículos de mercancías al centro

histórico, imposibilitando una eficaz gestión de la distribución de las

mercancías.

Page 14: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

14 Rafael Grosso de la Vega

• Mala accesibilidad de la zona, congestionada y con muchas zonas

peatonales.

Esta situación planteada en la ciudad de Sevilla es perfectamente paralela a la

encontrada en otras ciudades españolas. En general, por parte de los

proveedores, se realiza una distribución urbana de mercancías centrada en el

día a día, pero no demasiada logística urbana. Y desde el punto de vista de la

oferta, los problemas son tratados independientemente desde cada compañía.

2.2.2 Soluciones posibles. Desde el punto de vista de todos los grupos implicados en esta problemática,

entiéndase como tal a transportistas, receptores, residentes y administración

local, y después de estudiar las posibles soluciones planteadas en otras

ciudades se exponen algunas de ellas:

• Repartos nocturnos: La intención de esta medida es evitar la

interferencia entre el tráfico privado de la mañana y el transporte de

mercancías, realizando este último durante la noche. Ya que es

imposible cambiar los hábitos horarios de las personas que utilizan el

coche para ir a trabajar al centro, quizás sería posible cambiar el horario

del movimiento de mercancías.

• Road pricing: El establecimiento de peajes a la circulación de vehículos

por determinadas zonas de la ciudad es un método “agresivo” para

disminuir la congestión en las áreas urbanas más sobrecargadas.

Consiste en cobrar una cantidad (a determinar) por utilizar determinadas

rutas o acceder a determinadas zonas. Económicamente, responde a un

intento de internalizar las externalidades provocadas por el hecho de

circular con un vehículo por áreas densamente saturadas (congestión,

contaminación, acaparamiento de aparcamientos...).

• Reparto conjunto: medidas que buscan el funcionamiento conjunto de

varios transportistas, dentro de determinadas parcelas de la distribución

urbana.

Page 15: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

15 Rafael Grosso de la Vega

• Lanzaderas: Esta medida persigue la introducción en el centro de la

ciudad de una serie de “zonas lanzadera”, que típicamente serían

aparcamientos reservados para las furgonetas de mercancías, a los que

podrían acceder a primera hora de la mañana. Desde ellos, la entrega

final se realizaría a pie o utilizando vehículos alternativos.

• Terminal urbana: Las terminales urbanas son pequeños centros de

transbordo, y quizás de almacenamiento, situados dentro de la ciudad,

cerca de las zonas de elevada densidad comercial y que precisan por

tanto de abundantes envíos de mercancías. En ciudades grandes

pueden servir de complemento a los centros de transporte de

mercancías situados en las afueras, y en ciudades pequeñas pueden

sustituirlos.

• Sistemas de información en tiempo real: La base de cualquier sistema

de gestión en tiempo real de una flota de transporte urbano de

mercancías está en la disponibilidad de información actualizada sobre el

estado del tráfico. Esta información debería hacerse disponible a través

de internet a todas las empresas de transporte de mercancías, y en

general a cualquier vehículo que circule por la ciudad.

• Gestión dinámica de zonas de carga y descarga: Se contempla aquí la

introducción de un sistema para optimizar el uso de las zonas de carga y

descarga, de manera que se garantice su exclusividad para el uso de

vehículos de transporte de mercancías. Igualmente, este sistema

garantizaría la rotación de vehículos en las zonas de carga y descarga,

evitando el estacionamiento indefinido de vehículos de reparto en ellas.

• Ventanas temporales: Esta medida consiste en establecer intervalos

temporales durante los cuales el acceso a las zonas céntricas de la

ciudad está permitido para los vehículos de transporte de mercancías.

Estos intervalos suelen estar situados al principio de la mañana y de la

Page 16: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

16 Rafael Grosso de la Vega

tarde, y se pretende con ellos separar las horas de reparto de

mercancías y las horas de máxima afluencia al centro de compradores,

turistas, etc. Además, como ya se ha mencionado, esta medida es

objeto de estudio de este proyecto, en concreto se estudiará la

influencia económica de la presencia de una ventana temporal en la

ciudad en que opera una empresa de reparto de paquetería.

Page 17: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

17 Rafael Grosso de la Vega

3 PLANTEAMIENTO DEL PROBLEMA.-

3.1 Introducción al problema a resolver.-

Para una mejor comprensión previamente a la definición del problema

introduciremos los elementos que participan en él:

• Se considera un problema de optimización de rutas sobre un grafo

�: ��, �� , donde � denota al conjunto de nodos que lo componen y � el

conjunto de arcos que unen dichos nodos.

• En el conjunto de nodos � existe un único nodo � con nivel de oferta

mayor que cero (depósito), un subconjunto de nodos con nivel de

demanda mayor que cero (clientes), y otro subconjunto de nodos que

se suponen con oferta y demanda cero. Se sabe que .

• Se define también un número de vehículos que pueden recorrer el

grafo y que realizarán las rutas.

• El problema se incluye dentro de un horizonte temporal �� , ��� y el

objetivo del problema es minimizar el coste (en términos temporales) del

transporte de varias mercancías desde el nodo � hacia cada uno de los

nodos del conjunto , pasando para ello por los nodos que sea

necesario del conjunto � .

• Así se definen también un conjunto de costes temporales � asociados a

cada uno de los arcos del grafo. Estos costes son función únicamente

del transito por los arcos y no están relacionados con la cantidad de

mercancía que se transporta por ellos. Así incurriremos en el coste ���

cuando transitemos del nodo � al nodo �, con � � �.

• Además se computará un coste único � o tiempo de entrega, también en

términos temporales, en el que se incurrirá cada vez que un de los

Page 18: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

18 Rafael Grosso de la Vega

vehículos pase por uno de los nodos del subconjunto .

• Se considera también, dentro del conjunto �, un subconjunto �� de

nodos que tiene asociados una serie de restricciones. Estas son que no

se podrá transitar por ellos ni permanecer en ellos durante el transcurso

de una ventana temporal (TW). Se supone también que � �� � � y

que � � �� � �.

• Una Ventana Temporal (TW), que será única y que se aplica a todos los

clientes que se encuentren en la zona Restringida. Para todos estos

clientes esta consiste en un intervalo de tiempo, el cual obviamente será

menor que el horizonte temporal, dentro del cual pueden ser

servidos ��� , ��!�.

• Un coste "#$%�"&' , a las rutas que lo requieran, de utilización de cada

vehículo adicional (aparte del primero) que se necesite para cubrir el

reparto a los clientes del horizonte temporal.

Se puede ver un esquema del problema en la ilustración 1.

Ilustración 1: Esquema de la ciudad.

Page 19: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

19 Rafael Grosso de la Vega

Una vez introducidos estos elementos podemos decir que el problema que

pretendemos resolver consiste en construir un conjunto de rutas de coste

mínimo que empiecen y terminen en el depósito y sirvan todos los pedidos de

los clientes. Todas las soluciones factibles deberán atender a las siguientes

restricciones:

• Cada pedido debe ser servido por un único vehículo.

• Todos los pedidos deben ser servidos dentro del horizonte temporal.

• No se podrán incumplir las restricciones impuestas por la Ventana

Temporal y por la Zona Restringida.

• Se deberán utilizar el mínimo número de vehículos.

Como ya se ha mencionado el problema a resolver se puede asemejar a un

VRPTW pero con algunas restricciones adicionales a la ventana temporal pero

con la diferencia de las restricciones que se imponen con la zona restringida.

3.2 Presentación del problema

3.2.1 Proceso General

Dentro del horizonte temporal de un día un conjunto de clientes han realizado

pedidos que deben ser servidos ese mismo día. Estos clientes se modelan

como nodos de la red, unos estarán fuera de la zona restringida y otros dentro.

A estos nodos de los clientes a servir los denominaremos en adelante

“paradas” y el número de ellas será uno de los parámetros del problema.

Parece claro que el número de paradas del problema influirá en el valor de la

función objetivo, en la rapidez de resolución y en la complejidad del problema.

Este número de pedidos se pretende cubrir con el mínimo número de

Page 20: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

20 Rafael Grosso de la Vega

vehículos, por lo que se inicia el algoritmo con uno solo de ellos. Este,

partiendo desde el depósito que también se modela como un nodo, ira pasando

por los nodos de la red mientras recorre los arcos que los unen y así llegará a

la primera parada, para en ella permanecer un tiempo para la entrega de la

mercancía. Pasado este tiempo partirá hacia la siguiente parada siempre

buscando la distancia mínima entre cada una de ellas. Este proceso general se

repetirá hasta haber servido a todos los clientes y haber regresado al depósito.

Durante esta rutina el vehículo se puede encontrar con alguna “dificultad”, es

decir, con que puede incumplir alguna de las restricciones impuestas por la

zona restringida y con la ventana temporal. En estos casos el algoritmo deberá

buscar como no incumplirlas, haciendo esperar al vehículo fuera de ZR

mientras la ventana temporal permanece cerrada. También se puede dar el

caso en que el vehículo inicial no pueda repartir todos los pedidos dentro del

horizonte temporal y por tanto necesitar uno o más vehículos adicionales para

poder hacerlo. Cabe decir que cada vehículo deberá regresar al depósito antes

de que el día termine, y que los vehículos adicionales iniciaran su ruta desde el

inicio del horizonte temporal (con � ( )), desde el depósito y tomando como

parada inicial la primera en la cual el vehículo anterior no pudo parar.

Con respecto a la función objetivo o función de coste que debemos minimizar y

que evaluaremos en términos temporales, aunque se podría poner en términos

de coste económico, esta compuesta por el tiempo que emplea el vehículo o

vehículos en recorrer todas las paradas partiendo desde el depósito y

concluyendo su ruta en él, más el coste de el o los posibles vehículos

adicionales en el caso en que se necesiten.

3.2.2 Restricciones consideradas

En el modelado del problema y partiendo de la definición general antes descrita

de él, se han considerado algunas restricciones las cuales lo simplifican;

aunque estas contribuyen a alejar aun más el modelo del posible caso real,

también se hacen necesarias para así poder solucionar el problema con una

Page 21: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

21 Rafael Grosso de la Vega

relativa facilidad, o dificultad como se quiera ver. El criterio utilizado para la

consideración de dichas restricciones es simplemente el de facilitar la

resolución del problema, sin que ello nos haga salirnos o desviarnos de los

objetivos y finalidades de su resolución.

A continuación enunciamos, acompañando con algunas aclaraciones más

concretas, estas restricciones:

• Con respecto a la capacidad de los vehículos hemos supuesto que sea

ilimitada.

o Aunque esto puede parecer irreal podemos suponer que la

mercancía a repartir no ocupa mucho volumen y que con un

vehículo medio de transporte de mercancías tendríamos

capacidad suficiente para cargarla toda. Esta restricción es

habitual en las situaciones de logística urbana para carga

fraccionada pues es difícil que se lleguen a llenar completamente

los vehículos.

• Se ha dicho que la función objetivo se evaluará en términos temporales,

por lo que se hace necesario aclarar que el coste "�� también se

cuantifica en dichos términos.

o Para ello se ha supuesto una velocidad constante (20 Km/h) a la

cual se desplaza el vehículo por los arcos que unen los nodos y

se ha fijando previamente una distancia en términos de longitud

de los arcos. Así con un cálculo sencillo de cinemática podremos

asociar el mencionado coste a cada arco.

o Con esta velocidad aparentemente baja se pretende simular la

velocidad media a la que puede circular un vehículo por el casco

urbano de una ciudad mientras interactúa con elementos del

tráfico tales como retenciones, semáforos, obras, etc.

Page 22: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

22 Rafael Grosso de la Vega

• El Tiempo de entrega lo modelaremos como � ( *)+�,. Estimado

como tiempo medio empleado en realizar dicha acción.

• La Longitud de la Ventana Temporal, ��� , ��!� , lo tomaremos como un

parámetro del modelo de la red por lo que le asignaremos diferentes

valores para poder evaluar su repercusión en la solución.

• La duración del horizonte temporal lo hemos estimado como una jornada

laboral de 10 horas, �� , ��� ( -)% ( .))+�,..

• Con respecto a la Zona Restringida se tiene que acordar cual es su

límite. Como la red esta compuesta de nodos y lazos se ha tomado

como limite los nodos, es decir, los primeros nodos de la Zona

Restringida serán su límite. Así el vehículo de reparto podrá circular por

el lazo que llega al nodo límite pero no llegar o permanecer en él cuando

la ventana temporal permanezca cerrada. En cuanto al tamaño de esta,

también lo tomaremos como un parámetro del problema por lo que se

asignarán diferentes valores de tamaño para analizar sus

consecuencias.

3.2.3 Modelado matemático.

La nomenclatura que se utilizará en la formulación modelo es:

G(N, A): grafo que representa al área urbana.

N: nodo del depósito (hay solamente un depósito)

D: nodos destino.

Q: nodo final (el mismo nodo que el depósito)

AV: longitud del período del día previo al inicio del periodo restrictivo (en

unidades de tiempo)

V: longitud del período restrictivo (en unidades del tiempo)

DV: longitud del período del día posterior al periodo restrictivo (en unidades de

tiempo)

Page 23: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

23 Rafael Grosso de la Vega

cij: tiempo requerido para viajar de nodo i al nodo j por el arco (i, j) fuera del

período restrictivo (en unidades del tiempo).

dij: tiempo requerido para viajar de nodo i al nodo j por el arco (i, j) dentro del

período restrictivo (en unidades del tiempo). Son iguales a cij para los nodos

fuera del área restrictiva, e infinito (muy alto) para los que se encuentran

dentro de la zona restrictiva.

TD: plazo de permanencia en el nodo destino D.

K: coste fijo de usar un vehículo.

K': constante de valor muy elevado.

tijx : para cada arco (i, j) del grafo, toma el valor 1 si el vehículo t cruza el arco

antes del período restrictivo, y 0 si no. tijy : para cada arco (i, j) del grafo, toma el valor 1 si el vehículo t cruza el arco

durante el período restrictivo, y 0 si no. tijz : para cada arco (i, j) del grafo, toma el valor 1 si el vehículo t cruza el arco

después del período restrictivo, y 0 si no. tis : representa el tiempo en el cual el vehículo t pasa por el nodo j del grafo.

tDα : toma el valor 1 si el vehículo t hace una entrega en el nodo destino D

antes del período restrictivo, y 0 en otro caso. tDβ : toma el valor 1 si el vehículo t hace una entrega en el nodo destino D

durante el período restrictivo, y 0 en otro caso. tDγ : toma el valor 1 si el vehículo t hace una entrega en el nodo destino D

después del período restrictivo, y 0 en otro caso.

Minimizar: ∑ ⋅

tji

tijij xc

,,

+ ∑ ⋅tji

tijij yd

,,

+ ∑ ⋅tji

tijij zc

,,

+ ( )∑ ++⋅tj

tNj

tNj

tNj zyxK

,

Sujeto a: tjizyx tij

tij

tij ,,,1 ∀≤++ [1]

tjyxxk

tjk

k

tjk

i

tij ,,∀+= ∑∑∑ [2]

tjzyyk

tjk

k

tjk

i

tij ,,∀+= ∑∑∑ [3]

tjzzk

tjk

i

tij ,,∀=∑∑ [4]

Page 24: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

24 Rafael Grosso de la Vega

( ) ( )∑∑ ++=++ti

tiQ

tiQ

tiQ

tj

tNj

tNj

tNj zyxzyx

,,

[5]

∑ ∀=++t

tD

tD

tD D,1)( γβα [6]

tAVTxcD

DtD

ji

tijij ∀≤⋅+⋅ ∑∑ ,

,

α [7]

tDVTzcD

DtD

ji

tijij ∀≤⋅+⋅ ∑∑ ,

,

β [8]

tVTydD

DtD

ji

tijij ∀≤⋅+⋅ ∑∑ ,

,

γ [9]

tDx tD

i

tiD ,, ∀≥∑ α [10]

tDy tD

ti

tiD ,,

,

∀≥∑ β [11]

tDz tD

ti

tiD ,,

,

∀≥∑ γ [12]

tjisxKcs tj

tijij

ti ,,)1( ∀≤−′−+ [13]

tis ti ,0 ∀≥

ts tN ∀= 0

[14]

tijx , t

ijy , tijz = 0,1 [15]

Es por tanto un modelo linear con variables binarias. La función objetivo reduce

al mínimo la suma total de costes de la ruta, incluyendo en estos en los que se

incurre antes, durante y después del período restrictivo, más el coste asociado

al uso de vehículos. Las restricciones tienen las implicaciones siguientes:

[1] El vehículo t solo puede transcurrir por el arco (i, j) antes, durante o después

del período restrictivo.

[2] Si el vehículo t se incorpora a un nodo j antes del período restrictivo, debe

dejar el nodo antes o durante el período restrictivo.

[3] Si el vehículo t se incorpora a un nodo j durante el período restrictivo, debe

dejar el nodo durante o después del período restrictivo.

[4] Si el vehículo t se incorpora a un nodo j después del período restrictivo,

debe dejar el nodo después del período restrictivo.

[5] Todos los vehículos t deben salir del depósito N y deben volver al nodo final

Q (estos dos nodos son el mismo).

[6] Todas las entregas en los nodos destino D se deben hacer.

[7] El tiempo durante el cual un vehículo t está circulando antes del período

restrictivo debe ser más pequeño o igual a la longitud del tiempo AV.

[8] El tiempo durante el cual un vehículo t está circulando después del período

restrictivo debe ser más pequeño o igual a la longitud del tiempo DV.

Page 25: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

25 Rafael Grosso de la Vega

[9] El tiempo durante el cual un vehículo t está circulando durante el período

restrictivo debe ser más pequeño o igual a la longitud del tiempo V del

período restrictivo.

[10] Si un vehículo debe entregar en un nodo destino antes del comienzo del

período restrictivo, debe tener acceso al nodo antes del período restrictivo.

[11] Si un vehículo debe entregar en un nodo destino durante el período

restrictivo, debe tener acceso al nodo durante el período restrictivo.

[12] Si un vehículo debe entregar en un nodo destino después del período

restrictivos, debe tener acceso al nodo después del período restrictivo.

[13] Estas restricciones evitan lazos en las rutas de los vehículos. Esto implica

que si el vehículo t cruza el arco (i, j), el tiempo en que alcanza i debe ser

más pequeño que el tiempo en el cual alcanza j.

[14] Los vehículos están disponibles en el depósito N desde el tiempo cero, y

alcanzan el resto de los nodos en tiempos positivos.

[15] Restricciones que imponen los valores 0 y 1 para las variables binarias.

Page 26: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

26 Rafael Grosso de la Vega

4 HERRAMIENTAS DE RESOLUCIÓN.

4.1 Introducción a los problemas de optimización de rutas.-

Muchas empresas de nuestro entorno deben hacer frente a diario al transporte

de personas, productos, etc. Y la necesidad de transporte interno entre

empresas esta aumentando debido a la especialización cada vez más

extendida y al proceso de globalización. Por ello el coste derivado del

transporte pasa a ser un factor importante en cualquier tipo de empresa, y dado

este impacto económico en el mundo empresarial, el esfuerzo de investigación

dedicado a resolver este tipo de problemas es considerable. En estos casos

mejorar la optimización de rutas de vehículos, junto con la planificación o

scheduling representa un ahorro significativo que repercute notablemente en la

productividad y economía de las empresas.

Un problema de optimización de rutas simple se podría reducir a que el único

objetivo es encontrar el camino mínimo entre varios puntos. Pero los problemas

de optimización de rutas y scheduling son más amplios, ya que además se han

de solucionar aspectos como la utilización adecuada de recursos y otro tipo de

restricciones; lo que hace que encontrar una solución óptima sea muy difícil y

costoso. Este tipo de problemas se pueden considerar problemas de

optimización combinatoria, es decir, problemas para los que el conjunto de

soluciones es finito pero exponencial o contablemente infinito en función de los

parámetros del problema. Para este tipo de problemas el conjunto de

soluciones posibles crece exponencialmente cuando el tamaño de la entrada

del problema aumenta. Así se hace evidente que realizar una búsqueda

exhaustiva entre todas las posibles soluciones no será factible en problemas de

tamaño considerable.

Los problemas del mundo real son de mucha mayor complejidad que la

mayoría de los problemas simplificados objeto de investigación, por lo que las

soluciones obtenidas al resolverlos constituirán únicamente el núcleo de las

soluciones que han de darse a los problemas de la vida real.

Page 27: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

27 Rafael Grosso de la Vega

“Las proposiciones matemáticas, en cuanto tienen que ver

con la realidad, no son ciertas; y en cuanto que son ciertas,

no tienen nada que ver con la realidad”.

Albert Einstein

Los problemas de optimización de rutas y scheduling pueden formularse como

problemas de optimización y son un subconjunto de los problemas logísticos

que aparecen en la mayoría de las empresas. A modo de introducción a los

problemas de optimización podrían ser definidos de la forma siguiente:

Minimizar una determinada función �/01, sujeta a un conjunto de restricciones

que acota el espacio posible de soluciones 0 2 !. A �/01 se le denomina

función objetivo y mide una cierta cantidad (coste) que debe ser minimizada.

Cualquier problema de optimización se puede formular de diferentes maneras,

aunque corresponda a todas la misma solución optima.

El problema básico y más estudiado de optimización de rutas es el problema

del viajero (Traveling Salesman Problem, TSP). Este se puede definir de la

siguiente manera: dado un grafo (representando una red de calles, por

ejemplo) con costes asociados a los arcos (distancia, por ejemplo) el problema

consiste en encontrar la ruta cerrada más barata o corta que recorriendo todos

los nodos de la red una sola vez vuelva al punto de partida. Podríamos decir

que el TSP modela el problema de un vendedor que ha de visitar una serie de

clientes situados en una serie de ciudades y volver a casa. Aunque este es el

problema básico, simplemente añadiendo restricciones estaríamos ante

distintas variantes del mismo. Si en vez de una única ruta hubiese que

minimizar un conjunto de rutas, es decir, si existieran m vendedores, el

problema se denominaría mTSP. Si a este nuevo problema le añadiésemos

restricciones de capacidad, nos encontraríamos ante una de las variantes más

investigadas, el Problema de Optimización de rutas de Vehículos (Vehicle

Routing Problem, VRP). Este problema consiste en diseñar un conjunto de

rutas de coste mínimo donde se sirvan todos los pedidos de unos determinados

clientes utilizando para ello una flota de vehículos limitada. Todas las rutas

deben comenzar y finalizar en un depósito central. Cada cliente hace un pedido

que debe ser servido con un único vehículo y cada vehículo tiene un a

Page 28: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

28 Rafael Grosso de la Vega

limitación de capacidad máxima que puede transporta. Cuando los clientes no

se pueden servir a cualquier hora del día, es decir cuando a cada cliente le

corresponde un intervalo de tiempo, llamado ventana de tiempo (Time Window,

TW), durante el cual puede recibir sus pedidos (ni antes ni después), el

problema a resolver se convierte en un problema de optimización de rutas de

vehículos con ventana de tiempo (Vehicle Routing Problem with Time Windows,

VRPTW). Como complejidad adicional, en el problema de VRPTW aparece una

restricción en la longitud de las rutas, que se deriva de la ventana de tiempo

correspondiente al depósito. En este caso, los costes totales de la optimización

de rutas y scheduling depende de la distancia total recorrida, del número de

vehículos utilizados y del tiempo total de servicio de todos los pedidos.

Este tipo de problemas de optimización de rutas y scheduling son de gran

complejidad si miramos el recurso tiempo de ejecución. Podemos definir un

algoritmo como un procedimiento paso a paso para resolver un problema. Uno

de los objetivos cuando se diseña un algoritmo es el de encontrar el método

más eficiente, midiéndose dicha eficiencia en tiempo de ejecución. Este tiempo

depende del tamaño de la entrada del problema, por tanto el coste de un

problema, en términos de tiempo de ejecución, se mide mediante una función

que relaciona el tamaño de la entrada con el tiempo. Así los problemas de

optimización de rutas de vehículos se pueden clasificar dentro de los

denominados NP-duros, los cuales podríamos definirlos a grandes rasgos

diciendo que el esfuerzo computacional requerido para resolverlos aumenta

exponencialmente con el tamaño de la entrada. Como el VRPTW engloba

diferentes problemas de optimización conocidos que son NP-duros, podemos

decir que el VRPTW es NP-duro en sentido fuerte.

Debido a la dificultad del problema a resolver, no es evidente que tipo método

será el adecuado para solucionarlo. Obviamente la enumeración de todas las

soluciones posibles será inviable cuando el tamaño de la entrada crece.

Cualquier método de resolución exacto será difícil de formular de forma que

pueda obtener la solución óptima y además en un tiempo aceptable, y además

será poco flexible a la hora de introducir cambios, cosa común en el mundo

Page 29: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

29 Rafael Grosso de la Vega

real. Los método heurísticas, son estrategias más flexibles y fáciles de formular

que obtienen a menudo soluciones de suficiente calidad en tiempo más que

aceptable.

Para todo problema de optimización combinatoria, para el que la solución

optima no es conocida, existe un procedimiento elemental para solucionarlo, la

búsqueda exhaustiva, que consiste en generar todas las soluciones factibles,

calcular el coste para todas ellas y escoger la que mejor valor tenga. Pero este

método no es sencillo, puesto que será necesario encontrar alguna forma de

generar una secuencia de todas las soluciones factibles y esto dependerá en

gran medida de la representación utilizada para el problema. Este

procedimiento resulta imposible en la mayoría de los casos debido a la

magnitud del espacio de soluciones y no servirá en absoluto cuando el espacio

de búsqueda sea continuo, puesto que el número de soluciones a explorar será

infinito. El único caso para el que serviría la búsqueda exhaustiva seria par

problemas de tamaño reducido para los que se cuenta con tiempo para

enumerar el espacio de búsqueda. Será necesario buscar métodos más

inteligentes capaces de abordar la complejidad de los problemas en cuestión.

4.1.1 Métodos exactos.-

Muchas veces se han de encontrar soluciones óptimas para problemas que se

pueden expresar con una función en la que aparecen variables de decisión y

posiblemente algunas restricciones. En principio si la función objetivo y las

restricciones son lineales, estos problemas se pueden solucionar mediante la

Programación Linear (Linear Programming, LP). Si alguna de las variables es

entera, nos encontramos ante una mezcla entre programación linear y entera; y

si todas son enteras, estaremos ante un problema de Programación Entera

(Integer Programming, IP). En el caso en que las variables de decisión sean

discretas, como en el caso de VRPTW, nos encontramos ante problemas de

optimización combinatoria.

Page 30: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

30 Rafael Grosso de la Vega

Existe la posibilidad de intentar convertir este tipo de problemas en

programación entera o programación lineal, pero con el aumento del tamaño

del espacio de búsqueda el tiempo de resolución pasa a ser inadmisible y por

lo tanto los resultados no suelen ser satisfactorios. Por esto, los métodos

exacto utilizados para la búsqueda de la solución optima de los problemas de

optimización de rutas y sheduling se basan principalmente en la regla divide y

vencerás. Estas técnicas descomponen el problema o el espacio de soluciones

para poder obtener la solución final a base de solucionar subproblemas más

sencillos.

4.1.2 Métodos heurísticos.-

Se podrían encontrar diversas definiciones para el concepto heurísticas,

ponemos a continuación dos:

• 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 del óptimo.

• Procedimientos simples, a menudo basados en el sentido común, que se

supone que ofrecerá una buena solución, aunque no necesariamente

optima, a problemas difíciles de un modo fácil y rápido.

Como se puede deducir de las definiciones, los métodos heurísticas para la

búsqueda de soluciones no garantizan que se vaya a encontrar un óptimo, ni

local ni global.

Para aplicar algún método de optimización a problemas del mundo real, es

necesario construir un modelo de la realidad que será lo que se tratara de

resolver en vez del problema en si. Los métodos heurísticas suelen ser más

flexibles a la hora de representar funciones objetivos de los problemas del

Page 31: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

31 Rafael Grosso de la Vega

mundo real que los métodos exactos (no requieren especificación matemática

completa del sistema). Aunque la solución obtenida no sea exacta, muchas

veces no se puede probar que sea peor que la que se obtendría mediante un

método exacto puesto que el modelo utilizado para solucionar este será

probablemente más lejano al mundo real. Por ello siempre nos quedara

pregunta ¿preferimos una solución exacta a un modelo aproximado a una

solución aproximada a un modelo exacto?.

Además de la reflexión anterior, las razones para la utilización de métodos

heurísticas pueden ser muy diversas:

• Para muchos de los problemas de optimización más comunes no existe

un método exacto de resolución o el tiempo de cálculo requerido es

desorbitado.

• Existen casos de problemas en los que la solución óptima no es

indispensable; el objetivo es simplemente buscar una solución de

calidad aceptable.

• Los métodos heurísticas resultan a menudo muy útiles como paso

intermedio en la utilización de otro algoritmo.

• Estos métodos permiten una mayor flexibilidad en el manejo de las

características del problema y son más explicativos que los métodos

exactos.

Por otra parte no puede quedar sin mencionar que todo no son ventajas,

puesto que, así como en los métodos exactos se puede asegurar que la

solución obtenida es la mejor solución que se puede obtener para el modelo

resuelto, al utilizar métodos heurísticas no se puede conocer la calidad de la

solución obtenida porque no conocemos el optimo. Así que, en caso de que

exista un método factible y queramos asegurar que la solución obtenida es la

óptima, será preferible utilizarlo.

Page 32: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

32 Rafael Grosso de la Vega

Analizando la bibliográfica existente podemos deducir que los métodos

heurísticos utilizados para solucionar el VRPTW se dividen principalmente,

basándonos en las distintas estrategias utilizadas para construir las soluciones,

en dos grupos:

• Métodos constructivos: en los que la solución se construye paso a paso

hasta que se obtiene una solución factible. En concreto los métodos

utilizados se denominan métodos de construcción de rutas.

• Métodos de búsqueda por entorno: en los que se parte de una solución

factible inicial y mediante alteraciones de esa solución van pasando a

otras soluciones factibles de su entorno de forma iterativa hasta que se

cumpla cierto criterio deparada, almacenando como optima la mejor de

las soluciones visitadas. En concreto para la aplicación al VRPTW se

utiliza el método de mejora de rutas.

4.1.3 Metaheurísticas.-

La característica general que comparten las técnicas metaheurísticas es la de

guiar una heurística subordinada de acuerdo con algún concepto derivado de la

inteligencia artificial, la biología, las matemáticas o la física, para mejorar su

rendimiento. La mayoría de los métodos metaheurísticas se basan en efectuar

modificaciones sobre soluciones, para encontrar soluciones mejores hasta que

no se pueda encontrar ninguna solución que presente mejora, es decir, en la

búsqueda local dentro del vecindario. El concepto de vecindario de una

solución se define como el conjunto formado por las soluciones obtenidas a

partir de ella por medio de una operación básica a menudo llamada

movimiento. Dos de las variantes más sencillas de esta búsqueda en el

vecindario son:

• Descenso aleatorio: en el que en cada iteración se escoge un vecino al

azar para proseguir la búsqueda. En cada iteración se pasa de la

solución actual a una del vecindario para la que el valor de la función

Page 33: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

33 Rafael Grosso de la Vega

objetivo sea menor, terminando cuando todas las soluciones del entorno

de la actual sean peores que ella misma.

• Método descendente de la mayor pendiente (steepest descent): en el

que se explora en cada iteración todo el vecindario para quedarse con la

mejor solución.

Estos y otros métodos basados en el vecindario tienen gran probabilidad de

caer en un óptimo local y no ser capaces de salir de él. Por ello aparece la

necesidad de buscar métodos heurísticas que posibiliten el abandono de estos

y exploren otras partes del espacio de búsqueda. La mayoría de los métodos

usados se basan en la búsqueda local o búsqueda en vecindario, pero

añadiendo a estos algunas estrategias para escapar de los óptimos locales y

explorar otras partes del espacio de búsqueda. A continuación introduciremos

algunos delos más utilizados.

4.1.3.1 Simulated Annealing

Las ideas que forman la base de este algoritmo, (también llamado enfriamiento

estadístico, método descendente probabilístico, algoritmo de intercambio

probabilístico, etc.) fueron introducidas al crearse un algoritmo para simular el

enfriamiento de un material; posteriormente se sugirió que este tipo de

simulación se podía utilizar para encontrar soluciones factibles de un problema

de optimización, con el objeto de llegar a una solución optima.

El enfriamiento estadístico es un método de búsqueda por entornos, en el que

el vecindario se examina aleatoriamente, que disminuye la probabilidad de caer

en un mínimo local aceptando, en medio del proceso de búsqueda, soluciones

peores.

Page 34: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

34 Rafael Grosso de la Vega

4.1.3.2 Búsquedas tabú

Muchos de los algoritmos metaheurísticas que se plantean resultan lentos

incluso para problemas pequeños. La búsqueda Tabú intenta acelerar el

proceso de búsqueda mediante la exploración “inteligente” del espacio de

soluciones. Son muchas las definiciones que se pueden encontrar de esta

técnica, como por ejemplo: “Es una metaestrategia que se puede insertar en

cualquier método de búsqueda local para guiar la búsqueda fuera de óptimos

locales y evitar la ocurrencia de ciclos”. La búsqueda Tabú podría equipararse

a algunos de los métodos descendentes, que al evolucionar selecciona el mejor

de los movimientos posibles en cada paso, pero a diferencia de lo que ocurre

en la búsqueda local, que siempre se finaliza en un óptimo local, la búsqueda

Tabú ofrece la opción de moverse a una solución del entorno aunque su

calidad sea peor que la calidad de la solución actual, permitiendo así el

abandono de óptimos locales. Podríamos decir que el método descarta, o al

menos usa poco, la aleatorización, asumiendo que la búsqueda inteligente he

de hacerse de una forma más sistemática y guiada.

4.1.3.3 Métodos Evolutivos

La familia de métodos evolutivos se basan en los conceptos biológicos

referentes a la evolución, y sus diferencias principales estriban en los

elementos que participan en la evolución los operadores que se utilizan durante

esta evolución. Tal vez la Técnica más utilizada y más conocida entre las de

esta familia, para la resolución de problemas de optimización combinatoria es

la los Algoritmos Genéticos, AAGG.

4.1.3.3.1 Algoritmos Genéticos

El nombre de algoritmo genético proviene de la analogía entre la

representación de una estructura compleja por medio de un vector de

componentes y la idea, familiar para los biólogos, de la estructura Genética de

Page 35: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

35 Rafael Grosso de la Vega

un cromosoma. En la selección natural de plantas o animales, por ejemplo,

perduran aquellos que tengan alguna característica deseable, la cual viene

determinada a nivel genético por la forma de combinarse los cromosomas

padres. De forma similar, en los AAGG, se plantea combinar partes de

soluciones existentes para buscar soluciones mejores a problemas complejos.

Podríamos definir los AAGG como técnicas de búsqueda basadas en la

mecánica de la selección natural y la Genética. Se caracterizan por ser flexibles

y de ámbito general y por poder ser aplicados en un amplio número de

problemas. Podríamos resumir la idea de los AAGG como la exploración

inteligente de la búsqueda aleatoria.

Por ser este el método elegido para resolver nuestro problema le dedicaremos

un apartado entero de este proyecto para profundizar en este tipo de

algoritmos.

4.1.3.3.2 Programación Genética

La programación Genética extiende el paradigma de los AAGG a estructuras

no lineales. Trata de encontrar el programa que resuelve un determinado

problema, efectuándose el proceso de búsqueda sobre un espacio de posibles

programas. El funcionamiento global es similar al de los AAGG pero se utiliza

como población una estructura formada por un conjunto de programas

estructurados en forma jerárquica: estructura de árbol. Dichos programas se

construyen a partir de un conjunto predefinido de funciones y terminales, y su

forma, contenido y tamaño puede cambiar a lo largo del proceso.

4.1.3.3.3 Programación Evolutiva

La programación evolutiva trata de resolver problemas de optimización

combinatoria. La estructura de estos algoritmos se asemeja en gran medida a

la de los AAGG, con la diferencia de que los nuevos individuos se crean

Page 36: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

36 Rafael Grosso de la Vega

utilizando tan solo mutación, es decir no existen operadores de cruce. De esta

manera la programación evolutiva podría verse como un algoritmo genético

asexual.

4.2 Introducción a los algoritmos genéticos.

4.2.1 Introducción histórica

“Aunque el ingenio humano puede lograr infinidad de

inventos, nunca ideará ninguno mejor, más sencillo y

directo que los que hace la naturaleza, ya que en sus

inventos no falta nada y nada es superfluo.”

Leonardo da Vinci

“La naturaleza perpetúa aquello que resulta mejor.”

Motu Locali Animalium

La teoría de la evolución, fue descrita por Charles Darwin 20 años después de

su viaje por las islas Galápagos en el Beagle, en el libro Sobre el Origen de las

Especies por medio de la Selección Natural. Este libro fue bastante polémico

en su tiempo, y en cualquier caso es una descripción incompleta de la

evolución. La hipótesis de Darwin, presentada junto con Wallace, que llegó a

las mismas conclusiones independientemente, es que pequeños cambios

heredables en los seres vivos y la selección son los dos hechos que provocan

el cambio en la Naturaleza y la generación de nuevas especies. Pero Darwin

desconocía cual es la base de la herencia, pensaba que los rasgos de un ser

vivo eran como un fluido, y que los "fluidos" de los dos padres se mezclaban en

la descendencia; esta hipótesis tenía el problema de que al cabo de cierto

tiempo, una población tendría los mismos rasgos intermedios.

Fue Mendel quien descubrió que los caracteres se heredaban de forma

discreta, y que se tomaban del padre o de la madre, dependiendo de su

carácter dominante o recesivo. A estos caracteres que podían tomar diferentes

valores se les llamaron genes, y a los valores que podían tomar, alelos. En

realidad, las teorías de Mendel, que trabajó en total aislamiento, se olvidaron y

Page 37: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

37 Rafael Grosso de la Vega

no se volvieron a redes cubrir hasta principios del siglo XX. Además, hasta

1930 el geneticista inglés Robert Aylmer no relacionó ambas teorías,

demostrando que los genes mendelianos eran los que proporcionaban el

mecanismo necesario para la evolución.

Más o menos por la misma época, el biólogo alemán Walther Flemming

describió los cromosomas, como ciertos filamentos en los que se agregaba la

cromatina del núcleo celular durante la división; poco más adelante se

descubrió que las células de cada especie viviente tenían un número fijo y

característico de cromosomas.

Y no fue hasta los años 50, cuando Watson y Crick descubrieron que la base

molecular de los genes está en el ADN, ácido desoxirribonucleico, los

cromosomas están compuestos de ADN, y por tanto los genes están en los

cromosomas.

Todos estos hechos forman hoy en día la teoría del neo-darwinismo, que afirma

que la historia de la mayoría de la vida está causada por una serie de procesos

que actúan en y dentro de las poblaciones: reproducción, mutación,

competición y selección. La evolución se puede definir entonces como cambios

en el pool o conjunto genético de una población.

Un tema polémico, con opiniones variadas dependiendo de si se trata de

informáticos evolutivos o de biólogos o geneticistas, es si la evolución optimiza

o no. Según los informáticos evolutivos, la evolución optimiza, puesto que va

creando seres cada vez más perfectos, cuyo culmen es el hombre; además,

indicios de esta optimización se encuentran en el organismo de los animales,

desde el tamaño y tasa de ramificación de las arterias, diseñada para

maximizar flujo, hasta el metabolismo, que optimiza la cantidad de energía

extraída de los alimentos. Sin embargo, los geneticistas y biólogos evolutivos

afirman que la evolución no optimiza, sino que adapta y optimiza localmente en

el espacio y el tiempo; evolución no significa progreso. Un organismo más

evolucionado puede estar en desventaja competitiva con uno de sus

Page 38: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

38 Rafael Grosso de la Vega

antepasados, si se colocan en el ambiente del último.

4.2.1.1 Mecanismos de cambio en la evolución

Estos mecanismos de cambio serán necesarios para entender los algoritmos

evolutivos, pues se trata de imitarlos para resolver problemas de ingeniería; por

eso merece la pena conocerlos en más profundidad. Los mecanismos de

cambio alteran la proporción de alelos de un tipo determinado en una

población, y se dividen en dos tipos: los que disminuyen la variabilidad, y los

que la aumentan.

Los principales mecanismos que disminuyen la variabilidad son los siguientes:

• Selección natural: los individuos que tengan algún rasgo que los haga

menos válidos para realizar su tarea de seres vivos, no llegarán a

reproducirse, y, por tanto, su patrimonio genético desaparecerá del pool;

algunos no llegarán ni siquiera a nacer.

• Deriva génica: el simple hecho de que un alelo sea más común en la

población que otro, causará que la proporción de alelos de esa

población vaya aumentando en una población aislada, lo cual a veces da

lugar a fenómenos de especiación, por ejemplo, por el denominado

efecto fundador.

Otros mecanismos aumentan la diversidad, y suceden generalmente en el

ámbito molecular. Los más importantes son:

• Mutación: la mutación es una alteración del código genético, que puede

suceder por múltiples razones. Las mutaciones son totalmente

aleatorias, y son el mecanismo básico de generación de variedad

genética.

Page 39: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

39 Rafael Grosso de la Vega

• Poliploidía: mientras que las células normales poseen dos copias de

cada cromosoma, y las células reproductivas una (haploides), puede

suceder por accidente que alguna célula reproductiva tenga dos copias;

si se logra combinar con otra célula diploide o haploide dará lugar a un

ser vivo con varias copias de cada cromosoma. La mayoría de las

veces, la poliploidía da lugar a individuos con algún defecto (por

ejemplo, el tener 3 copias del cromosoma 21 da lugar al mongolismo),

pero en algunos casos se crean individuos viables. Un caso conocido de

mutación fue el que sufrió (o disfrutó) el mosquito Culex pipiens, en el

cual se duplicó un gen que generaba una enzima que rompía los

organofosfatos, componentes habituales de los insecticidas;

• Recombinación: cuando las dos células sexuales, o gametos, una

masculina y otra femenina se combinan, los cromosomas de cada una

también lo hacen, intercambiándose genes, que a partir de ese momento

pertenecerán a un cromosoma diferente.

• Flujo genético: o intercambio de material genético entre seres vivos de

diferentes especies. Normalmente se produce a través de un vector, que

suelen ser virus o bacterias;

En resumen, la selección natural actúa sobre el fenotipo y suele disminuir la

diversidad, haciendo que sobrevivan solo los individuos más aptos; los

mecanismos que generan diversidad y que combinan características actúan

habitualmente sobre el genotipo.

4.2.1.2 Evolución de la informática evolutiva

Ya que se han descrito cuales son los mecanismos de la evolución podemos

contar, desde sus principios, como evolucionó la idea de simular o imitar la

evolución con el objeto de resolver problemas humanos.

Page 40: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

40 Rafael Grosso de la Vega

Las primeras ideas, incluso antes del descubrimiento del ADN, vinieron de Von

Neumann, uno de los mayores científicos de este siglo. Von Neumann afirmó

que la vida debía de estar apoyada por un código que a la vez describiera

como se puede construir un ser vivo, y tal que ese ser creado fuera capaz de

autorreproducirse; por tanto, un autómata o máquina autorreproductiva tendría

que ser capaz, aparte de contener las instrucciones para hacerlo, de ser capaz

de copiar tales instrucciones a su descendencia.

Sin embargo, no fue hasta mediados de los años cincuenta, cuando el

rompecabezas de la evolución se había prácticamente completado, cuando

Box comenzó a pensar en imitarla para, en su caso, mejorar procesos

industriales. A grosso modo aplicó mutación y selección a los valores de las

variables que regían diversos procesos, con el objeto de mejorar la calidad del

proceso. Este procedimiento se aplicó con éxito a algunas industrias químicas.

Un poco más adelante, en 1958, Friedberg y sus colaboradores pensaron en

mejorar usando técnicas evolutivas la operación de un programa. En realidad,

lo que estaba haciendo es usar mutación para generar nuevos programas; al

parecer, no tuvo más éxito que si hubiera buscado aleatoriamente un programa

que hiciera la misma tarea. El problema es que la mutación sola, sin ayuda de

la selección, hace que la búsqueda sea prácticamente una búsqueda aleatoria.

Más o menos simultáneamente, Bremmerman trató de usar la evolución para

"entender los procesos de pensamiento creativo y aprendizaje", y empezó a

considerar la evolución como un proceso de aprendizaje. Para resolver un

problema, codificaba las variables del problema en una cadena binaria de 0s y

1s, y sometía la cadena a mutación, cambiando un número de bit cada vez; de

esta forma, estableció que la tasa ideal de mutación debía de ser tal que se

cambiara un bit cada vez. Bremmerman trató de resolver problemas de

minimización de funciones, aunque no está muy claro qué tipo de selección

usó, si es que usó alguna, y el tamaño y tipo de la población. En todo caso, se

llegaba a un punto, la "trampa de Bremmerman", en el cual la solución no

mejoraba; en intentos sucesivos trató de añadir entrecruzamiento entre

Page 41: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

41 Rafael Grosso de la Vega

soluciones, pero tampoco obtuvo buenos resultados. Una vez más, el simple

uso de operadores que creen diversidad no es suficiente para dirigir la

búsqueda genética hacia la solución correcta; y corresponde a un concepto de

la evolución darwiniana clásico: por mutación, se puede mejorar a un individuo;

en realidad, la evolución actúa a nivel de población.

El primer uso de procedimientos evolutivos en inteligencia artificial se debe a

Reed, Toombs y Baricelli, que trataron de hacer evolucionar un tahúr que

jugaba a un juego de cartas simplificado. Aparte de, probablemente, crear

buenas estrategias, llegaron a la conclusión de que el entrecruzamiento no

aportaba mucho a la búsqueda.

Los intentos posteriores, ya realizados en los años 60, ya corresponden a los

algoritmos evolutivos modernos, y se han seguido investigando hasta nuestros

días. Algunos de ellos son simultáneos a los algoritmos genéticos, pero se

desarrollaron sin conocimiento unos de otros. Uno de ellos, la programación

evolutiva de Fogel, se inició como un intento de usar la evolución para crear

máquinas inteligentes, que pudieran prever su entorno y reaccionar

adecuadamente a él. Fogel trataba de hacer aprender a autómatas a encontrar

regularidades en los símbolos que se le iban enviando. Se lograron hacer

evolucionar autómatas que predecían algunos números primos. En cualquier

caso, estos primeros experimentos demostraron el potencial de la evolución

como método de búsqueda de soluciones novedosas.

John Holland desde pequeño, se preguntaba cómo logra la naturaleza, crear

seres cada vez más perfectos. Lo curioso era que todo se lleva a cabo a base

de interacciones locales entre individuos, y entre estos y lo que les rodea. No

sabía la respuesta, pero tenía una cierta idea de como hallarla: tratando de

hacer pequeños modelos de la naturaleza, que tuvieran alguna de sus

características, y ver cómo funcionaban, para luego extrapolar sus

conclusiones a la totalidad. De hecho, ya de pequeño hacía simulaciones de

batallas célebres con todos sus elementos: copiaba mapas y los cubría luego

de pequeños ejércitos que se enfrentaban entre sí.

Page 42: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

42 Rafael Grosso de la Vega

En los años 50 entró en contacto con los primeros ordenadores, donde pudo

llevar a cabo algunas de sus ideas, aunque no se encontró con un ambiente

intelectual fértil para propagarlas. Fue a principios de los 60, en la Universidad

de Michigan en Ann Arbor, donde, dentro del grupo Logic of Computers, sus

ideas comenzaron a desarrollarse y a dar frutos. Y fue, además, leyendo un

libro escrito por un biólogo evolucionista, R. A. Fisher, titulado La teoría

genética de la selección natural, como comenzó a descubrir los medios de

llevar a cabo sus propósitos de comprensión de la naturaleza. De ese libro

aprendió que la evolución era una forma de adaptación más potente que el

simple aprendizaje, y tomó la decisión de aplicar estas ideas para desarrollar

programas bien adaptados para un fin determinado.

En esa universidad, Holland impartía un curso titulado Teoría de sistemas

adaptativos. Dentro de este curso, y con una participación activa por parte de

sus estudiantes, fue donde se crearon las ideas que más tarde se convertirían

en los algoritmos genéticos.

Por tanto, cuando Holland se enfrentó a los algoritmos genéticos, los objetivos

de su investigación fueron dos:

• Imitar los procesos adaptativos de los sistemas naturales, y

• Diseñar sistemas artificiales (normalmente programas) que retengan los

mecanismos importantes de los sistemas naturales.

Unos 15 años más adelante, David Goldberg, actual delfín de los algoritmos

genéticos, conoció a Holland, y se convirtió en su estudiante. Golberg era un

ingeniero industrial trabajando en diseño de pipelines, y fue uno de los primeros

que trató de aplicar los algoritmos genéticos a problemas industriales. Aunque

Holland trató de disuadirle, porque pensaba que el problema era

excesivamente complicado como para aplicarle algoritmos genéticos, Goldberg

consiguió lo que quería, escribiendo un algoritmo genético en un ordenador

personal Apple II. Estas y otras aplicaciones creadas por estudiantes de

Page 43: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

43 Rafael Grosso de la Vega

Holland convirtieron a los algoritmos genéticos en un campo con base

suficiente aceptado para celebrar la primera conferencia en 1985, ICGA´85. Tal

conferencia se sigue celebrando bianualmente.

4.2.2 Los Algoritmos Genéticos. Los Algoritmos Genéticos usan una analogía directa con el comportamiento

natural. Trabajan con una población de individuos, cada uno de los cuales

representa una solución factible a un problema dado. A cada individuo se le

asigna un valor o puntuación, relacionado con la bondad de dicha solución. En

la naturaleza esto equivaldría al grado de efectividad de un organismo para

competir por unos determinados recursos. Cuanto mayor sea la adaptación de

un individuo al problema, mayor será la probabilidad de que el mismo sea

seleccionado para reproducirse, cruzando su material genético con otro

individuo seleccionado de igual forma. Este cruce producirá nuevos individuos

(descendientes de los anteriores) los cuales comparten algunas de las

características de sus padres. Cuanto menor sea la adaptación de un individuo,

menor será la probabilidad de que dicho individuo sea seleccionado para la

reproducción, y por tanto de que su material genético se propague en

sucesivas generaciones.

De esta manera se produce una nueva población de posibles soluciones, la

cual reemplaza a la anterior y verifica la interesante propiedad de que contiene

una mayor proporción de buenas características en comparación con la

población anterior. Así a lo largo de las generaciones las buenas características

se propagan a través de la población. Favoreciendo el cruce de los individuos

mejor adaptados, van siendo exploradas las áreas más prometedoras del

espacio de búsqueda. Si el Algoritmo Genético ha sido bien diseñado, la

población convergerá hacia una solución óptima del problema.

El poder de los Algoritmos Genéticos proviene del hecho de que se trata de

una técnica robusta, y pueden tratar con éxito una gran variedad de problemas

provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos

encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético

encuentre la solución optima del problema, existe evidencia empica de que se

encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el

Page 44: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

44 Rafael Grosso de la Vega

resto de algoritmos de optimización combinatoria. En el caso de que existan

técnicas especializadas para resolver un determinado problema, lo más

probable es que superen al Algoritmo Genético, tanto en rapidez como en

eficacia. El gran campo de aplicación de los Algoritmos Genéticos se relaciona

con aquellos problemas para los cuales no existen técnicas especializadas.

Incluso en el caso en que dichas técnicas existan, y funcionen bien, pueden

efectuarse mejoras de las mismas hibridándolas con los Algoritmos Genéticos.

4.2.2.1 Estructura del Algoritmo Genético Simple.

El Algoritmo Genético Simple, también denominado

Canónico, se representa en la ilustración 2. Como se

vera a continuación, se necesita una codificación o

representación del problema, que resulte adecuada al

mismo. Además se requiere una función de ajuste o

fitness del problema, la cual asigna un número real a

cada posible solución codificada. Durante la ejecución

del algoritmo, los padres deben ser seleccionados para

la reproducción, a continuación dichos padres

seleccionados se cruzaran generando dos hijos, sobre

cada uno de los cuales actuara un operador de

mutación. El resultado de la combinación de las

anteriores funciones será un conjunto de individuos

(posibles soluciones al problema), los cuales en la

evolución del Algoritmo Genético formaran parte de la

siguiente población.

• Codificación : Se supone que los individuos (posibles soluciones del

problema), pueden representarse como un conjunto de parámetros (que

denominaremos genes), los cuales agrupados forman una ristra de

valores(a menudo referida como cromosoma). En términos biológicos, el

conjunto de parámetros representando un cromosoma particular se

denomina fenotipo. El fenotipo contiene la información requerida para

construir un organismo, el cual se refiere como genotipo. Los mismos

Ilustración 2: Esquema del

AAGG simple.

Page 45: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

45 Rafael Grosso de la Vega

términos se utilizan en el campo de los Algoritmos Genéticos.

• Fitness : La adaptación al problema de un individuo depende de la

evaluación del genotipo. Esta última puede inferirse a partir del fenotipo,

es decir puede ser computada a partir del cromosoma, usando la función

de evaluación. La función de adaptación o Fitness debe ser diseñada

para cada problema de manera específica. Dado un cromosoma

particular, la función de adaptación le asigna un número real, que se

supone refleja el nivel de adaptación al problema del individuo

representado por el cromosoma.

• Fase Reproductiva : Durante esta fase (destacada en rojo en la figura)

se seleccionan los individuos de la población para cruzarse y producir

descendientes, que constituirán, una vez mutados, la siguiente

generación de individuos.

o La selección de padres se efectúa al azar usando un

procedimiento que favorezca a los individuos mejor adaptados, ya

que a cada individuo se le asigna una probabilidad de ser

seleccionado que es proporcional a su función de adaptación.

Este procedimiento se dice que esta basado en la ruleta sesgada.

Según dicho esquema, los individuos bien adaptados se

escogerán probablemente varias veces por generación, mientras

que los pobremente adaptados al problema, no se escogerán más

que de vez en cuando. Una vez seleccionados dos padres, sus

cromosomas se combinan, utilizando habitualmente los

operadores de cruce y mutación. Las formas básicas de dichos

operadores se describen a continuación.

o El operador de cruce , coge dos padres seleccionados y corta sus

ristras de cromosomas en una posición escogida al azar, para

producir dos subristras iniciales y dos subristras finales. Después

se intercambian las subristras finales, produciéndose dos nuevos

cromosomas completos. Ambos descendientes heredan genes de

cada uno de los padres.

Page 46: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

46 Rafael Grosso de la Vega

o El operador de mutación se aplica a cada hijo de manera

individual, y consiste en la alteración aleatoria (normalmente con

probabilidad pequeña) de cada gen componente del cromosoma.

Si bien puede en principio pensarse que el operador de cruce es

más importante que el operador de mutación, ya que proporciona

una exploración rápida del espacio de búsqueda, este último

asegura que ningún punto del espacio de búsqueda tenga

probabilidad cero de ser examinado, y es de capital importancia

para asegurar la convergencia de los Algoritmos Genéticos.

Page 47: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

47 Rafael Grosso de la Vega

5 EXPOSICIÓN DEL MÉTODO DE RESOLUCIÓN: ALGORITMO GENÉTICO.-

5.1 Casuística

Previo al análisis de la casuística del problema se definirán los conceptos y

nomenclaturas utilizados.

Con respecto a la ventana temporal se definirán los tiempos:

345 6Tiempo de Ventana Abierta, es decir este el tiempo donde la

ventana temporal deja de ser efectiva.

347 6Tiempo de Ventana Cerrada, es decir, este es el tiempo en el que

la ventana temporal empieza a ser efectiva.

En relación al horizonte temporal, que se considera de un día o una jornada

laboral, se definen:

38 6Tiempo cero o inicio del día o jornada laboral.

39 6Tiempo final o final del día o jornada laboral.

Representando la recta del tiempo en la ilustración 3 se pueden ver los tiempos

definidos de la siguiente forma:

Ilustración 3: Recta del tiempo.

El coste : modeliza el hecho de que el vehículo al llegar a la ubicación del

cliente se detiene para realizar la descarga de la mercancía, por lo que se debe

distinguir un tiempo de llegada y otro de salida en el paso por cada uno de los

nodos del subconjunto ; de cara al análisis y resolución del problema. Estos

Page 48: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

48 Rafael Grosso de la Vega

tiempos se han denominado:

3<= 6Tiempo de llegada a la parada “>”.

3<? 6Tiempo de salida de la parada “>” hacia la parada “> @ 1”

Volviendo a la recta del tiempo se puede representar como se observa en la

ilustración 4 denotando con B< el cliente o parada “>”:

Una vez definido el problema, la ventana temporal, la zona restringida y la

nomenclatura utilizada se pasa a analizar la casuística del problema. Esto es,

empezando por la descripción del caso general de paso de una parada a otra,

se ira describiendo los posibles casos que se producirán en el transcurso de la

ruta de reparto y su interacción con la ventana temporal y la zona restringida,

además de cómo deberá actuar el algoritmo ante cada uno de ellos.

5.1.1 Caso General

El vehículo comienza en el nodo inicial o depósito en el tiempo cero 38,

entonces el algoritmo deberá buscar la primera parada definida por el algoritmo

genético y almacenar el tiempo transcurrido en el trayecto de un lugar a otro. A

este tiempo se le suma el coste : de descarga generando así los dos

parámetros temporales que definen a cada parada. Posteriormente el algoritmo

debe revisar si dicha parada esta en la zona restringida, si es así debe

continuar verificando si la ventana temporal esta abierta o cerrada actuando en

consecuencia como explicaremos posteriormente. Una vez hecho estos pasos

Ilustración 4: Representación de la Parada "i".

Page 49: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

49 Rafael Grosso de la Vega

se recalcula el coste de la ruta (en términos temporales) y se pasa a la

siguiente parada para volver a aplicarle el mismo procedimiento. Este proceso

se repite hasta completar todas las paradas del día o hasta que se llegue al

final del día sin completarse estas, en tal caso se recurrirá a un nuevo vehículo.

Este iniciará su ruta, con tiempo cero pues se considera que sale al mismo

tiempo que el primero, desde el nodo inicial y su primera parada será la

siguiente, refiriéndose al orden establecido por el algoritmo genético, a la última

que realizó el vehículo anterior. Con los nuevos vehículos que fuesen

necesarios se repite el proceso.

5.1.2 Entrada en la Zona Restringida

Se supone el caso de una parada > fuera de la zona restringida y otra parada

> @ 1 dentro de dicha zona (Denotada así por el superíndice “RZ”).

En la ruta seguida por el vehículo de una parada a otra, en busca de un óptimo

análisis, se deben distinguir dos parámetros. La distancia recorrida se divide en

dos para diferenciar la parte del trayecto realizado fuera y la realizada dentro

de la zona restringida. Aunque se denote estos parámetros como “distancias”

no olvidamos que estamos trabajando en unidades temporales.

C9 6 Distancia recorrida fuera de la zona restringida.

CD 6 Distancia recorrida dentro de la zona restringida.

EF 6 Zona Restringida.

En la ilustración 5 se puede ver un esquema aclaratorio de los conceptos arriba

expuestos.

Page 50: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

50 Rafael Grosso de la Vega

Ilustración 5: Entrada en la Zona Restringida.

Así en este caso se pueden distinguir varias situaciones dependiendo del

estado de la ventana temporal.

5.1.2.1 Con la ventana temporal abierta.

En este caso la asignación de la parada sigue el procedimiento general como

se puede ver en la ilustración 6.

Ilustración 6: Entrada en la ZR con la VT abierta.

5.1.2.2 Con la ventana temporal cerrada.

Suponiendo que la ventana temporal se cierra en el trayecto de un nodo a otro,

y como se observa en la ilustración 7, se llega a una situación inadmisible, ya

que el vehículo estaría en la zona restringida con la ventana temporal cerrada.

Page 51: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

51 Rafael Grosso de la Vega

Ilustración 7: Entrada en la ZR con la VT cerrada.

En este caso el vehículo debe esperar en la parada anterior hasta que la

ventana temporal se vuelva a abrir y se pueda circular por la zona restringida.

Así el algoritmo deberá revisar hacia atrás para buscar la anterior parada y

verificar que no se encuentra en la zona restringida, y seguidamente llevarse

hacia delante en el tiempo la parada “> @ 1” haciendo que coincidan el tiempo

de ventana abierta con el momento en que el vehículo entra en la zona

restringida (véase ilustración 8). Con esto se asegura que el vehículo no se

encuentre en la zona restringida mientras la ventana temporal esta cerrada.

Ilustración 8: Reubicación de la Parada fuera de la VT.

En busca de reducir el tiempo de la ruta del vehículo, aunque se modifique el

tiempo de inicio de esta, el algoritmo deberá desplazar en el tiempo la parada

anterior, que no se encuentra en la zona restringida, llevándola hacia delante

junto al la parada “> @ 1”. Este mecanismo del algoritmo se representa en la

ilustración 9.

Page 52: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

52 Rafael Grosso de la Vega

Ilustración 9: Desplazamiento hacia delante de la parada anterior.

Ahora, partiendo del caso que se ha descrito anteriormente, se realizará un

estudio en profundidad para poder encontrar todos los posibles casos en que

se puede incurrir cuando el vehículo entra en la zona restringida y como

debería actuar en consecuencia el algoritmo.

En el caso de que existan varias paradas consecutivas dentro de la zona

restringida y la ventana temporal se cierre cuando se transcurre por ellas el

algoritmo deberá realizar los siguientes pasos:

• Primero revisar hacia atrás hasta encontrar la primera parada que se

encuentre fuera de la zona restringida (Parada Referencia), que será en

la que se podrá esperar a que se abra la ventana. Y después debe

mover hacia delante, tal y como se ha descrito arriba, todo el grupo de

paradas que están dentro de la zona restringida para dejarlas fuera de

la ventana temporal (véase ilustración 10).

Page 53: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

53 Rafael Grosso de la Vega

Ilustración 10: Reubicación de un grupo de paradas dentro de la zona restringida.

o Esta operación, dependiendo del número de paradas

desplazadas hacia delante, puede encontrarse con que al ir

actualizando los nuevos tiempos de cada parada se vea

superado el tiempo fin del día 39.. Entonces se almacenará la ruta

anterior con las paradas que queden dentro del horizonte

temporal y se iniciaría otra ruta con un nuevo vehículo que

deberá recorrer las paradas que no pudieron ser cubiertas por el

vehículo anterior.

• Segundo el algoritmo deberá mover hacia delante la parada referencia y

las que se encuentren antes que esta. Esta parada en el caso más

extremo podría tratarse de la sede de la empresa. Al realizar esta

operación el algoritmo podrá encontrarse con varias posibles

situaciones:

o Que justo antes de la parada de referencia existan una o varias

paradas que se encuentre dentro de la zona restringida, como se

observa en la ilustración 11, en cuyo caso el algoritmo deberá

desplazar hacia delante todas las paradas anteriores haciendo

coincidir el tiempo de entrada de la parada de referencia menos

la distancia fuera de la RZ, con el tiempo de ventana cerrada:

3GHIJ= K C9 ( 347

Page 54: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

54 Rafael Grosso de la Vega

Ilustración 11: Desplazamiento hacia delante de una parada fuera de la ZR precedida por un grupo de paradas

dentro de ella.

o Que detrás de la parada de referencia existan varias paradas

fuera de la ZR, y antes que estas, otra dentro de la ZR. En tal

caso el algoritmo deberá desplazar hacia delante todas las

paradas anteriores, siempre dejando fuera de la ventana

temporal las que están en la ZR; como se ve en la ilustración 12.

Ilustración 12: Desplazamiento hacia delante de un grupo de paradas fuera de la ZR precedidas por una parada

dentro de ella.

5.1.3 Salida de la Zona Restringida

Se supone una parada “>” dentro de la zona restringida y una parada “> @ 1”

fuera de la zona restringida, véase esquema en ilustración 13.

Page 55: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

55 Rafael Grosso de la Vega

Se vuelve a distinguir dos partes en el trayecto de un nodo a otro, una dentro

de la zona restringida y otra fuera. Los posibles casos que se pueden dar

dependiendo del estado de la ventana temporal son:

• La ventana temporal abierta : En este caso la asignación de la parada

sigue el procedimiento general sin alterar ningún parámetro, como se

observa en la ilustración 14.

• La ventana temporal se cierra durante el trayecto : se supone que la

ventana temporal se cierra durante el trayecto de un nodo a otro

pudiéndose distinguir dos casos posibles.

o Se cierra cuando se ha salido de la zona restringida: En este caso la

asignación de la parada sigue el procedimiento general sin alterar

ningún parámetro (ver ilustración 15).

Ilustración 13: Salida de la Zona restringida.

Ilustración 14: Salida de la ZR con la VA.

Page 56: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

56 Rafael Grosso de la Vega

o Se cierra cuando se esta en la zona restringida: Es un caso

inadmisible, como se puede observar en la ilustración 16.

Así que el algoritmo deberá buscar en las paradas anteriores a la “>”

hasta encontrar la primera que no se encuentre en la zona restringida

para posteriormente llevársela hacia delante en el tiempo justo

después de que la ventana temporal se vuelva a abrir. La parada

“> @ 1” se asignará después con respecto a la nueva posición de la

parada “>”. Se puede ver un esquema aclaratorio en la ilustración 17.

Ilustración 17: Salida de la ZR con VT cerrando durante el trayecto. Caso admisible.

NO

Ilustración 16: Salida de la ZR con VT cerrando durante el trayecto. Caso admisible.

Ilustración 16: Salida de la ZR con VT cerrando durante el trayecto. Caso inadmisible.

Ilustración 15: Salida de la ZR con VT cerrando durante el trayecto. Caso admisible.

Page 57: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

57 Rafael Grosso de la Vega

Posteriormente, al igual que en los casos anteriores, el algoritmo

buscaría hacia atrás en las paradas para ver si puede traer hacia delante

alguna parada anterior a la “>”. Como se ha visto en los casos anteriores

el algoritmo deberá verificar que la parada donde se espera que se abra

la ventana temporal no este en la zona restringida, además de verificar

que con las paradas adelantadas en el tiempo no se sobrepase el tiempo

fin del día.

5.2 Desarrollo del algoritmo. Diagrama de flujos.

A continuación se describirá el algoritmo utilizado (véase diagrama de flujos en

ilustración 18) para la resolución del modelo del problema, como se ha dicho

anteriormente se utilizará un algoritmo genético:

Ilustración 18: Esquema general del Algoritmo.

Ilustración 17: Reubicación de la parada dentro de la ZR y desplazamiento de la parada posterior.

Page 58: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

58 Rafael Grosso de la Vega

Al iniciar el algoritmo se genera el modelo de la red, a continuación se

generaran en dicha red los nodos que serán paradas y el nodo que será el

nodo inicial. Cabe decir que cada nodo tiene asignado un cardinal que lo define

y diferencia de los demás.

Posteriormente se realiza un cálculo de las rutas mínimas entre el nodo inicial y

las paradas, además de las rutas mínimas de cada parada al resto de ellas.

Esta información se utilizará posteriormente en el algoritmo.

Después de estos pasos comienza el algoritmo genético propiamente dicho (en

rojo). Se inicia con la generación de la población inicial. Esta consiste en una

matriz que almacena por filas los individuos solución, los cuales albergan los

cardinales de todas las paradas ordenadas aleatoriamente. En cada individuo

el orden en que estén dispuestas las paradas indica el orden en que las

recorrerá el vehículo, es decir la ruta a seguir.

A continuación se le aplica el Fitness a esta población inicial, con esto

obtenemos el valor del coste de cada ruta definida por cada individuo.

Seguidamente se realiza el cruce de individuos y la mutación con lo que se

genera una población nueva de descendientes de igual tamaño a la inicial.

La selección por Ranking ordena los individuos de las dos poblaciones, con

respecto al valor del Fitness, de menor a mayor. Y asignándole una

probabilidad decreciente a cada uno de ellos, de tal forma que el individuo con

menor valor de Fitness tiene la probabilidad mayor, realiza la selección de

individuos para quedarse finalmente con tantos como tenia la población inicial.

El siguiente paso es aplicarle el Fitness a esta población seleccionada y

calcular el valor del coste temporal de las rutas.

Según un criterio que se basa en lo cerca que se encuentren el menor valor del

Fitness y el valor del Fitness Medio de toda la población, se generará, en este

momento del proceso, una Población Nueva en la que sólo permanecerán los

tres mejores individuos de la última población implementada. El resto de

individuos se generará aleatoriamente. Con esto se pretende no caer en

máximos locales e intentar ampliar la zona de búsqueda de soluciones.

Como herramienta de parada del algoritmo se utilizará un contador que es

función del tamaño de la población que se use en la implementación. El valor

de este contador llevará al algoritmo a repetir el proceso volviendo al paso del

Page 59: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

59 Rafael Grosso de la Vega

cruce o a finalizarlo devolviendo de esa manera el menor valor del Fitness

conseguido en el proceso.

5.2.1 Fitness.

Una vez definidos los casos generales y el modo en que en ellos debería

actuar el algoritmo, se pasará a exponer de manera más profunda la estructura

del Fitness. Se expone el diagrama de flujos esquemático del Fitness en la

ilustración 19.

Cabe decir que es la parte más importante del algoritmo. En el fitness esta la

clave del buen o mal funcionamiento de este, ademas de la estructura más

compleja y dificil de implementar. Se ha necesitado de muchos procesos de

prueba y error para su depuracion, aun habiendo realizado el trabajo previo de

estudio de la casuistica y diseño del diagrama de flujos.

Ilustración 19: Esquema general del Fitness del Algoritmo Genético.

Page 60: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

60 Rafael Grosso de la Vega

Al comienzo del algoritmo se inicia ruta vacía, que consiste en un vector donde

se almacenaran los tiempos de entrada y salida de cada parada después de

ser calculados y ajustados por el Fitness del algoritmo. Seguidamente se llama

al algoritmo genético y este nos devuelve el individuo que se va a evaluar, se

selecciona la primera de sus paradas, a la cual se le realizara la pregunta de si

esta en la zona restringida.

• Si la respuesta es NO, el algoritmo pasa al Bloque N , al cual se le

asignado el nombre del índice que recorrerá el vector de tiempos para

su revisión o posibles ajustes. Este bloque explora las paradas

anteriores y verifica, si la anterior a la que estamos estudiando estuviera

en la ZR, que la ventana temporal no se cerrara durante el camino de

una a otra de forma no apta. Y actúa en consecuencia si esto sucede

modificando los tiempos de las paradas correspondientes. Cuando

termina este proceso el Fitness continua a Calcular coste de ruta.

o Como se puede observar en la ilustración 20, el bloque N esta

compuesto por una entrada o input y por varias salidas u outputs,

siendo estas últimas las que se han numerado, en la ilustración

20 se puede ver también esta numeración para que se pueda

completar la comprensión del funcionamiento del algoritmo.

Page 61: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

61 Rafael Grosso de la Vega

Ilustración 20: Bucle N

� Como se puede ver se entra en el Bloque N y lo primero

que se pregunta es que si L ( 1, esto es para verificar que

el algoritmo no ha pasado por el Bloque J-K. De esta

manera se evita una redundancia en las acciones del

algoritmo, pues el bloque J-K ha podido previamente

ordenar las paradas en la recta de tiempos.

� Posteriormente se fija el índice N en la parada anterior a la

que se estaba estudiando y se verifica que no sea esta la

primera. Porque si así lo fuese no seria necesario entrar en

el Bloque N por lo que se saldría de el por la salida 1.

� Después se verifica que la parada fijada por el índice N

este en la ZR.

• Si no lo esta se sale del Bloque N por la salida 2.

Page 62: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

62 Rafael Grosso de la Vega

• Si esta en la ZR, se verifica que la ventana de

tiempo no se halla cerrado en le trayecto de la

parada en cuestión hacia la siguiente.

o Si no se ha dado el supuesto se sale del

Bloque N por la salida 2.

o Si se da el caso que se cierra la ventana

temporal en dicho trayecto, se busca hacia

atrás la primera parada que no este en la ZR

y se desplazan hacia adelante en el tiempo la

parada o grupo de paradas hasta

posicionarlas en el limite de la ventana

temporal, haciendo coincidir el tiempo de

ventana abierta con el momento en que el

vehículo entra en la ZR. Obviamente se

ajustan todos los tiempos con respecto al de

la parada que entraba en conflicto con las

restricciones de la ZR.

• Si la respuesta es SI, el Fitness sigue con la pregunta de si la ventana

temporal esta cerrada.

o Si la respuesta es SI, el algoritmo pasa al Bloque J-K, cuyo

nombre también proviene de los índices utilizados en el. Este

bloque explora las paradas anteriores en busca de la primera

parada que no se encuentre en la zona restringida, para colocar

delante de la ventana temporal las paradas que corresponda y

arrastrar hasta donde pueda las paradas anteriores a estas, de la

forma descrita en apartados anteriores.

Page 63: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

63 Rafael Grosso de la Vega

Ilustración 21: Bloque J-K

� Como se puede ver en la ilustración 21, los posibles inputs

iniciales de este bloque son los denominados A y B. Si lo

hacemos por la entrada A, se verifica que la ventana

temporal no se halla cerrado cuando el vehículo esta

saliendo de la ZR. Si es así se llega a la entrada B, si no es

así se sale del bloque J-K.

� En la entrada B se fija el índice J en la parada anterior a la

que se estaba estudiando y se verifica que no este en la

ZR. Si lo esta se busca hacia atrás en las paradas hasta

encontrar la primera que no este en ella. Ajustándose los

tiempos de esta parada para que coincida el momento en

que se entra en la ZR con el tiempo de ventana abierta.

Page 64: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

64 Rafael Grosso de la Vega

� Posteriormente, con ayuda del índice K, se reajustan los

tiempos de las paradas posteriores a la modificada

anteriormente. Además de intentar traer hacia adelante las

paradas que quedaron atrás, con el fin de buscar es peras

del vehículo lo más cortas posibles.

• También se encuentra en esta parte del bloque la

entrada C, que proviene del Bloque N. En este

bloque cuando se reajustan los tiempos de paradas

y el índice C coincide con el índice I, que es el que

se utiliza en el cuerpo principal del algoritmo, es

necesario reajustar paradas anteriores para

traérselas hacia delante. Y en busca de una

programación más corta y rápida se ha decidido

utilizar esta parte del algoritmo en este caso.

o Si la respuesta es NO, el algoritmo pregunta si durante el paso

del vehículo por la parada anterior a la que se esta estudiando la

ventana temporal estaba cerrada. Esto se hace para verificar que

el vehículo entra en la zona restringida con la ventana temporal

abierta.

� Si la respuesta es SI, el algoritmo pasa al Bloque J-K para

que verifique que el vehículo ha entrado en la zona

restringida con la ventana abierta, y si no lo ha hecho

desplaza las paradas explorando hacia atrás y

actualizando los nuevos tiempos de estas.

� Si la respuesta es NO, se calcula el coste de la ruta que se

lleva recorrida.

Posteriormente se verifica que no se halla sobrepasado el tiempo fin del día.

• Si se ha sobrepasado, se inicia una nueva ruta con un vehículo nuevo.

Como primera parada para esta nueva ruta se asigna la última parada

que no se pudo realizar con el vehículo anterior.

Page 65: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

65 Rafael Grosso de la Vega

• Si no se ha sobrepasado o si se ha iniciado una nueva ruta, se pregunta

si quedan más paradas por realizar.

o Si la respuesta es SI, se pasa a la siguiente parada y se repite el

proceso.

o Si la respuesta es NO, se finaliza el Fitness del individuo.

Este proceso, como es obvio, se repite con todos los individuos de la población

a evaluar.

5.2.2 Cruce.

El tipo de operador de cruce que se ha elegido para este algoritmo genético es

el basado en dos puntos. Se agrupan los individuos de la población de dos en

dos. Dentro de cada par de individuos se eligen aleatoriamente dos puntos de

cruce y se intercambian las paradas comprendidas entre estos puntos de un

individuo con otro. Esta operación se realiza con la totalidad de la población

generándose así una población de descendientes del mismo tamaño que la

anterior.

Al realizarse esta operación, como es conocido, se produce una duplicidad de

paradas en los descendientes, cosa que no es admisible. Para solucionar esto

se buscan las paradas repetidas y se sustituyen por las paradas que no estén

en el individuo.

Para realizar esta operación se ha optado por basarse en el trabajo de

Uchimura y Sakaguchi (1995), los cuales proponen una sustitución de paradas

repetidas basada en las relaciones adyacentes con el fin de crear

Page 66: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

66 Rafael Grosso de la Vega

descendientes más óptimos con respecto a la función objetivo. Esto es, cuando

se tiene dos paradas repetidas, se evalúa, en cada caso, el tiempo usado en

recorrer la subruta compuesta por la parada adyacente anterior a la repetida, la

repetida y la adyacente siguiente en las dos posiciones de la parada en

cuestión. Posteriormente se eligen las situaciones de las paradas repetidas que

hagan que la ruta sea más rápida. Las opciones desechadas deberán se

ocupadas por las paradas, dos en este caso, que no existían en el individuo

descendiente. Y para elegir cual será la situación más óptima de estas se

vuelven ha evaluar las subrutas compuestas por las paradas adyacentes

anterior y posterior a los dos huecos por ocupar, con las dos paradas que

deben ocuparlos y se selecciona la situación que haga la ruta más rápida. Se

puede ver un esquema del proceso en la ilustración 22.

Ilustración 22: Esquema del cruce basado en las relaciones adyacentes.

En el caso de que cada individuo contenga un número significativamente mayor

de paradas que las del ejemplo anterior, como es el caso de este problema, la

duplicidad de paras se produce en un número también mayor, haciendo que la

solución del cruce se complejice.

Page 67: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

67 Rafael Grosso de la Vega

El procedimiento que sigue el algoritmo es el siguiente:

• Localiza la o las paradas repetidas.

• Evalúa en cada caso las dos subrutas que ocupa cada parada repetida,

seleccionando la más rápida y generando un hueco en el otro caso.

• Crea una matriz donde almacena por filas los costes de evaluar cada

parada que falta en cada posible hueco. De tal modo que cada fila

corresponde a una parada que falta y cada columna a un hueco por

ocupar.

• Seleccionar el mínimo valor de la matriz y asignar en el hueco

correspondiente a la columna la parada que corresponde a la fila.

Después elimina la fila y la columna seleccionadas.

• Se realiza el último paso tantas veces como sea necesario para rellenar

todos los huecos existentes.

El problema resuelto es un problema de asignación en el que se ha optado por

utilizar un método de resolución sencillo de programar, dado que se estima que

la posible mejora del tiempo de ruta conseguida por otros métodos más

complejos no seria significativa para el análisis que se pretende realizar del

problema.

5.2.3 Mutación.

En relación a este operador básico del algoritmo genético se ha diseñado de

forma que se seleccionan los individuos a mutar según una probabilidad

función de la tasa de mutación seleccionada. Esta tasa de mutación se ha

tomado fija y además es uno de los parámetros seleccionados del algoritmo

Page 68: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

68 Rafael Grosso de la Vega

genético.

De esta forma se seleccionan los individuos que van a ser mutados en función

de la tasa de mutación, dicha mutación consiste en la elección de forma

aleatoria de dos paradas dentro de cada individuo las cuales son

intercambiadas de posición una con la otra. Así se generan individuos casi

idénticos pero con dos paradas cambiadas.

5.2.4 Selección por Ranking.

El operador de selección se ha basado en la función de selección proporcional.

En la que cada individuo tiene una probabilidad de ser seleccionado, como

padre de la siguiente generación, que es proporcional al valor del su Fitness.

De esta manera la población anterior de padres y la de sus descendientes es

ordenada, de menor a mayor, por el algoritmo según su valor de Fitness. Y

posteriormente se le asigna a cada individuo un valor de probabilidad gradiente

que va desde el valor unidad para el mejor individuo de las dos poblaciones, al

valor cero que se asigna al peor individuo. Con esto se asegura seleccionar al

mejor individuo y desechar al peor para la siguiente generación de padres,

además de retrasar de alguna manera la rápida convergencia de las

poblaciones que suele ocurrir en este tipo de algoritmos.

5.2.5 Población nueva. En busca de poder explorar el la mayor parte, sino toda, del espacio de

soluciones se utiliza este criterio de generar una población nueva cada cierto

intervalo de iteraciones. Con esto se pretende solucionar el problema en que

caen este tipo de algoritmos cuando han realizado ciertas iteraciones: la

población a considerar se va haciendo cada vez más homogénea, los

individuos de ella se parecen más unos a otros con el paso de las iteraciones.

Este fenómeno, que por un lado es lo que se busca pues con ello se generan

individuos cada vez mejor adaptados al problema a solucionar, tiene el

inconveniente de que puede llevar al algoritmo a caer en un máximo local. Si se

visualiza el espacio de soluciones como una superficie con distintos desniveles

Page 69: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

69 Rafael Grosso de la Vega

y elevaciones, que representarían los mínimos y los máximos de la función

objetivo. El algoritmo genético podría “escalar”, en un número determinado de

iteraciones, hacia una de esas elevaciones encontrando un máximo; y dado su

diseño en las siguientes iteraciones permanecería en dicha elevación buscando

nuevas soluciones en un área muy pequeña alrededor de esta, es decir no

saldría de ese máximo y la población a evaluar en cada iteración seria más

homogénea.

Bien y siguiendo con la idea de visualizar el espacio de soluciones como una

superficie con desniveles y elevaciones, si se pudiera ver en su extensión

completa, cabe la posibilidad de que existieran elevaciones aun más altas que

la que escaló el algoritmo genético. Por tanto se debe dotar al algoritmo de

herramientas que le permitan bajar del máximo local, es decir buscar en

soluciones peores, para que posteriormente se puedan encontrar y escalar

máximos aun más altos que los encontrados con anterioridad.

De esta manera se diseña un criterio de generación de poblaciones nuevas

basado en lo cerca que se encuentren el mejor Fitness encontrado en la

población y el Fitness medio de dicha población. Este mecanismo genera una

población nueva totalmente aleatoria excepto por los tres mejores individuos de

la población que si permanecerán en la nueva. Con esto se asegura la

permanencia del máximo encontrado y además se intenta buscar nuevos

máximos mejores.

En la ilustración 23 (corresponde al experimento 2 con 50 paradas, 20 de

tamaño de zona restringida y 8 horas de longitud de ventana temporal) se

puede ver una gráfica donde se muestra la evolución del fitness medio de la

población y del fitness mejor encontrado en todas las iteraciones. En el eje de

ordenadas se representa el valor del fitness y en el de abscisa el número de

iteraciones realizadas por el algoritmo. Como se puede ver, siguiendo la

leyenda y sabiendo que se busca minimizar la función, el fitness mejor tiene

periodos de valor constante o casi caso constante, seguidos de descensos

bruscos de su valor, indicando con esto la mejora de las soluciones. Y el fitness

medio sigue una evolución con muchos altibajos, los bajos indican el momento

en que el criterio activó la generación de una nueva población y los altos

indican el momento en que esa nueva población es evaluada por primera vez

obteniéndose, en general, un fitness medio mayor.

Page 70: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

70 Rafael Grosso de la Vega

Ilustración 23: Gráfica de evolución del Fitness medio y del fitness mejor.

Page 71: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

71 Rafael Grosso de la Vega

6 RED DE PRUEBA. RESULTADOS.-

6.1 Exposición de la red de prueba

Para la implementación y probaturas del algoritmo, además de la elección de

los parámetros más idóneos y adecuados para el estudio sobre la red de

Sevilla, se utilizará una red de prueba. Se busca con esto realizar un análisis

de sensibilidad de los parámetros que se elegirán. Esta tendrá un diseño

sencillo y manejable que facilitará la comprensión de los resultados obtenidos y

su posterior análisis. La red constará de 900 (30x30) nodos unidos por arcos de

igual distancia, en concreto consideraremos que dicha distancia es de 200

metros. La configuración de esta se muestra en la ilustración 24, en la cual se

numeran los nodos para una mejor comprensión:

Ilustración 24: Esquema reducido de la Red de Prueba.

En la figura las flechas indican el sentido en el que se puede desplazar el

vehículo. Tal y como se ha definido esta red de prueba el sentido se alterna en

las filas y en las columnas. De tal modo que en las filas impares el sentido es

hacia la izquierda y en la pares es hacia la derecha, de igual forma en las

columnas impares el sentido es hacia arriba y en las pares es hacia abajo.

Cabe decir que la elección del nodo de partida y finalización, es decir el

depósito, además de los nodos destino o paradas, en esta red de prueba, se

Page 72: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

72 Rafael Grosso de la Vega

realizará aleatoriamente.

Además la zona restringida se ubicará en el centro de esta red considerándose

como límite de esta los nodos y no los arcos. Se ha programado la generación

de los nodos destinos para que tengan una densidad mayor en la zona

restringida, para así asemejarse más a la realidad.

En la ilustración 25 se puede ver uno de los problemas resueltos:

Ilustración 25: Red de prueba.

En ella se pueden apreciar:

• En el conjunto de nodos � representados como puntos azules.

• El subconjunto �� de nodos de la zona restringida representados con

cuadrado rojo rodeando el punto azul del nodo.

• El subconjunto de paradas o clientes de la ruta resaltadas con un

círculo azul que rodea al punto azul del nodo.

• El nodo de partida o depósito que se destaca con un cuadrado negro.

Page 73: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

73 Rafael Grosso de la Vega

6.2 Resultados

Para la obtención de resultados se ha decidido un diseño de experimento

basados en tres parámetros del problema y tres parámetros del algoritmo

Genético. Asignándoles diferentes valores se obtienen 8 tipos de problemas y 8

tipos de algoritmos. Así se aplica a cada tipo de problema los 8 tipos de

algoritmos y se obtiene el valor del Fitness en cada uno de ellos además del

número de vehículos utilizados.

Los parámetros que se han tomado son:

• Parámetros de los problemas:

o Número de paradas (Nº Stop).

o Tamaño de la Zona Restringida (RZ) : En unidades de longitud

de la red de prueba. Cada 2 unidades equivalen a 100 metros.

o Longitud de la Ventana Temporal (TW): En horas.

• Parámetros de los Algoritmos Genéticos:

o Tamaño de la población (A) : Se ha decidido que sea función del

número de paradas por lo que se toman valores del factor que

multiplica a este parámetro de los problemas. Así

MNONñP QPRSNT>PU ( V W Xº BNYNZN[.

o Número de iteraciones (B) : También se ha decidido que sea

función del número de paradas. De esta forma Xº ]3^YNT>PU^[ (

_ W Xº BNYNZN[.

o Tasa de mutación (TM) .

Page 74: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

74 Rafael Grosso de la Vega

En la Tabla 1 se pueden observar los valores de los parámetros tomados

además de los resultados de las pruebas realizadas, 64 en total. Los resultados

se componen del valor del Fitness acompañado por el número de vehículos

utilizados para la realización de la ruta. Se destacan en negrita los valores de

los Fitness menores dentro de cada tipo de problema. Con esto se deciden los

parámetros de los Algoritmos genéticos más idóneos para resolver la red de

Sevilla que es el objeto del problema.

Cabe decir que en los valores de Fitness expuestos en la tabla se ha eliminado

el cote U` para con ello poder decidir sobre la bondad de la solución en función

del número de vehículo, además del valor del Fitness obviamente.

Sto

p

RZ

TW

Exp

.1

Exp

.2

Exp

.3

Exp

.4

Exp

.5

Exp

.6

Exp

.7

Exp

.8

A 0,5 0,5 0,5 0,5 2 2 2 2 B 3 3 6 6 3 3 6 6

TM 0,1 0,5 0,1 0,5 0,1 0,5 0,1 0,5 P1 50 20 4 2932 1 2948 1 2932 1 2916 1 2916 1 2916 1 2916 1 2916 1 P2 50 20 8 3894 1 3912 1 3902 1 3900 1 3894 1 3894 1 3894 1 3894 1 P3 50 50 4 2948 1 2918 1 2936 1 2908 1 2912 1 2920 1 2904 1 2908 1 P4 50 50 8 3902 1 3908 1 3916 1 3904 1 3900 1 3892 1 3898 1 3904 1 P5 120 20 4 7132 2 7124 2 7166 2 7082 2 7072 2 6978 2 7092 2 6986 2 P6 120 20 8 8152 2 8184 2 8030 2 8132 2 8036 2 8112 2 7986 2 8012 2 P7 120 50 4 7102 2 7176 2 7150 2 7154 2 7084 2 7104 2 6006 2 5812 2 P8 120 50 8 7166 2 7914 2 8142 2 7950 2 7914 2 7902 2 7982 2 7942 2

Tabla 1: Resultados de los experimentos realizados sobre la Red de Prueba.

Con la intención de buscar una mejor comprensión de los resultados se

presenta a continuación los mismos resultados pero expresados en horas:

Page 75: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

75 Rafael Grosso de la Vega

N

º S

top

RZ

TW

Exp

.1

Exp

.2

Exp

.3

Exp

.4

Exp

.5

Exp

.6

Exp

.7

Exp

.8

A 0,5 0,5 0,5 0,5 2 2 2 2 B 3 3 6 6 3 3 6 6

TM 0,1 0,5 0,1 0,5 0,1 0,5 0,1 0,5 P1 50 20 4 7,33 1 7,37 1 7,33 1 7,29 1 7,29 1 7,29 1 7,29 1 7,29 1 P2 50 20 8 9,74 1 9,78 1 9,76 1 9,75 1 9,74 1 9,74 1 9,74 1 9,74 1 P3 50 50 4 7,37 1 7,30 1 7,34 1 7,27 1 7,28 1 7,30 1 7,26 1 7,27 1 P4 50 50 8 9,76 1 9,77 1 9,79 1 9,76 1 9,75 1 9,73 1 9,75 1 9,76 1 P5 120 20 4 17,83 2 17,81 2 17,92 2 17,71 2 17,68 2 17,45 2 17,73 2 17,47 2 P6 120 20 8 20,38 2 20,46 2 20,08 2 20,33 2 20,09 2 20,28 2 19,97 2 20,03 2 P7 120 50 4 17,76 2 17,94 2 17,88 2 17,89 2 17,71 2 17,76 2 15,02 2 14,53 2 P8 120 50 8 17,92 2 19,79 2 20,36 2 19,88 2 19,79 2 19,76 2 19,96 2 19,86 2

Tabla 2: Resultados de la red de prueba expresados en horas.

Ante el resultado de los experimentos se han llegado a las siguientes

conclusiones:

• Con respecto al parámetro ! relativo al tamaño de la población se

observa que con el valor de ! ( * se obtienen mejores resultados en la

mayoría de los experimentos.

• En relación al parámetro a factor del número de iteraciones se puede

apreciar que el valor a ( . es el que obtiene mejores resultados.

• Con la tasa de mutación no se puede concluir nada relevante sobre que

valor de este parámetro obtienen mejores resultados, dado que los

Fitness mejores de cada problema aparecen bajo la influencia de los dos

valores indistintamente. Ante esta situación se decidió realizar

experimentos adicionales, con un valor diferente de tasa de mutación, a

los 8 tipos de problemas, para intentar con ello llegar a una conclusión

concreta del valor más óptimo. Pero los resultados obtenidos tampoco

fueron concluyentes por lo que se decidió tomar los dos valores

considerados inicialmente (Mb ( 0,1 y Mb ( 0,5) como parámetros a

utilizar con la red de Sevilla. Por el mismo motivo de antes no se

exponen los resultados de estos experimentos adicionales.

Page 76: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

76 Rafael Grosso de la Vega

7 RED DE SEVILLA. RESULTADOS.- Una vez validado el algoritmo genético, es decir después de haber verificado

con la red de prueba que el algoritmo cumple con los objetivos y requisitos para

los que se diseñó, se pasa a su aplicación en una situación real. Para ello se

aplicará el algoritmo sobre el modelo, lo más cercano a la realidad posible, de

una ciudad real. Para poder analizar todas las situaciones posibles en que se

puede encontrar una empresa de reparto en esta ciudad se realizaran varias

simulaciones del algoritmo variando, en cada una de ellas, los parámetros

número de paradas, tamaño de la zona restringida y longitud de la ventana

temporal.

7.1 Exposición de la red de Sevilla

El problema se sitúa en una ciudad, en concreto en la ciudad de Sevilla.

La ciudad se modelará como un grafo, compuesto por un conjunto de nodos y

arcos, que simulará las posibles paradas o lugares de reparto y las calles que

los unen (ver ilustración 26).

Ilustración 26: Vista de los nodos del modelo de la red de Sevilla.

Page 77: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

77 Rafael Grosso de la Vega

Se supondrá la existencia de una pequeña/mediana empresa de reparto de

paquetería, la cual dispondrá de una pequeña flota de vehículos suficiente para

la realización de las entregas requeridas. Es decir el número de vehículos no

será una restricción en el problema porque se considerará infinito, eso si, la

utilización de cada unidad más que se necesite, además de la inicial, tendrá un

coste adicional fijo.

El tamaño de estos vehículos es irrelevante dado que se supondrá que la

mercancía a repartir consistirá en bultos de tamaño pequeño/medio; así no se

tendrá en cuenta, o se considerará infinita la capacidad de los vehículos en el

modelo del problema.

A empresa le supondremos un número de clientes de entre 50 y 200 a los que

tendrá que atender. La concentración mayor de estos clientes se dará en la

zona del centro de la ciudad.

Para simular los desplazamientos y el hecho físico de la entrega del paquete,

se supondrá una velocidad de desplazamiento del vehículo de 20 Km/h y un

tiempo de permanencia en cada parada de 20 min. Además el horizonte

temporal del modelo será el de un día, más concretamente, se considerará una

jornada laboral de 10 horas. Por tanto el número total de clientes deberá ser

satisfecho dentro de este intervalo de tiempo.

La sede de la empresa se supondrá localizada en un polígono industrial de la

ciudad, zona esta apartada del centro pero no fuera de ella. Esta sede será el

punto de partida de cada ruta de reparto, así como el punto de finalización de

esta. Así el vehículo deberá partir de la sede, realizar su ruta de reparto y

regresar a ella.

Con respecto a la ventana temporal, que como se introdujo antes, será única y

la supondremos en la mitad del horizonte temporal o día. Su duración o

longitud se considerará un parámetro del problema y por tanto le asignaremos

diferentes valores en las diferentes simulaciones que se realizarán,

pretendiendo con esto tener una visión más amplia de la casuística del

Page 78: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

78 Rafael Grosso de la Vega

problema.

En cuanto a la zona peatonalizada que va asociada a la ventana temporal se

situará en el centro de la ciudad. Su amplitud o radio también se considerará un

parámetro del problema asignándole diferentes valores por los mismos motivos

arriba expuestos. Cabe decir que no se podrá acceder a ella ni se podrá

permanecer en ella durante la duración de la ventana temporal.

• Los valores que se le asignaran al radio de la ZR serán tres, y en

kilómetros tienen los valores siguientes:

o 1,59 fO

o 3,96 fO

o 7,14 fO

o Además de estos tres valores se considerará el caso de que la

ventana temporal no exista y en este supuesto el radio de la zona

restringida carece de sentido por lo que este parámetro tomará

también el valor cero.

• A continuación se representa en las figuras siguientes, de forma

aproximada, los tamaños de los tres radios considerados sobre la

imagen aérea de la ciudad de Sevilla:

Page 79: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

79 Rafael Grosso de la Vega

Ilustración 27: Representación aproximada de la ZR con radio de 1,59 Km.

Ilustración 28: Representación aproximada de la ZR con radio de 3,96 Km.

Page 80: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

80 Rafael Grosso de la Vega

Ilustración 29: Representación aproximada de la ZR con radio de 7,14 Km.

Y por último se debe decir que la función objetivo o de costes a optimizar se

calculará en términos temporales. Y para trabajar y calcular los costes en

términos temporales debemos transformar las distancias de los arcos de la red

en tiempo por medio de un sencillo cálculo cinemático además del dato, ya

mencionado, de la velocidad del vehículo. Otro componente de la función

objetivo es el coste añadido de los vehículos adicionales. El primer vehículo no

lo tiene, pero a partir del segundo se sumaran 8000 unidades temporales al

coste total. Se ha optado por una cifra elevada para penalizar la utilización de

excesiva de vehículos y así intentar que el algoritmo mejore en ese sentido.

7.2 Resultados

Para obtener los resultados definitivos sobre la red de Sevilla se ha realizado

una serie de experimentos cuyo diseño ha seguido los criterios siguientes:

Page 81: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

81 Rafael Grosso de la Vega

• Parámetros del problema:

o Se ha optado por fijar el número de paradas (Nº Stop) en 100.

Esta decisión se tomado según el criterio de economía temporal,

pues la duración de la ejecución del algoritmo, con las

herramientas computacionales con que se ha realizado este

proyecto, conlleva un tiempo considerable en cada experimento.

Así se ha tomado este valor como representativo del valor medio

del posible número de clientes que pudiera tener una empresa de

reparto en un día.

o El tamaño o radio de la ZR como se ha mencionado antes tomará

tres valores diferentes: 1,59 fO , 3,96 fO y 7,14 fO

o Con respecto a la longitud de la ventana temporal se ha decidido

que tomará los siguientes valores en horas: 0, 2, 4 y 6.

Obviamente el valor cero representa la ausencia de ventana

temporal y por tanto de zona restringida.

• Parámetros del algoritmo genético:

o Como se decidió en base a los resultados de los experimentos

sobre la red de prueba el número de paradas quedará fijado con

el valor del parámetro ! ( * .

o Del mismo modo el número de iteraciones quedó fijado con el

valor del parámetro a ( ..

o En relación a la tasa de mutación se decidió que tomara los dos

valores Mb ( 0,1 y Mb ( 0,5 .

Con estos valores se obtienen 10 diferentes problemas que se deberán

resolver dos veces cada uno, una vez con cada valor de la tasa de mutación.

En la tabla siguiente se presentan los resultados numéricos de los

experimentos:

Page 82: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

82 Rafael Grosso de la Vega

RZ

TW

TM

Resultados Resultados (horas)

P1 0 0 0,5 57148,58 8 72,42

P2 1,59 2 0,5 57057,12 8 66,65

P3 1,59 4 0,5 57040,43 8 65,60

P4 1,59 6 0,1 57120,56 8 70,65

P5 3,96 2 0,1 65109,25 9 69,94

P6 3,96 4 0,5 89188,22 12 74,91

P7 3,96 6 0,5 186017,52 24 127,20

P8 7,14 2 0,5 81497,19 11 94,39

P9 7,14 4 0,1 138329,89 18 146,90

P10 7,14 6 0,1 236196,02 30 264,55 Tabla 3: Resultados de los experimentos sobre la red de Sevilla.

En ellos se puede observar los valores tomados por los diferentes parámetros,

excepto los que se han tomado como fijos, y el valor numérico de fitness

acompañado del número de vehículos utilizados para cubrir la ruta.

Adicionalmente y para una mejor comprensión de estos resultados se muestran

una “traducción” de estos a horas. Cabe decir que se ha mostrado únicamente

el mejor resultado obtenido de cada problema acompañado del valor de la tasa

de mutación con que obtuvo.

A modo de análisis de los resultados se puede decir que en los cuatro primeros

problemas el tamaño de la zona restringida es casi irrelevante para la solución,

incluso la duración de la ventana temporal pues el número de vehículos es el

mismo para todos y el valor numérico del fitness varia poco si se mira desde el

punto de vista del número medio de horas que debe estar en ruta cada

vehículo (estas son de 8 horas y media a nueve aproximadamente).

En el problema 5, en el que el valor del tamaño de la zona restringida es 3.96

Km, se puede ver que el número de vehículos necesarios para cubrir la ruta

aumenta en una unidad, como es lógico al aumentar dicho parámetro; pero si

se analiza el número medio de horas que consumen cada uno de ellos se

observa que es sensiblemente inferior al de los cuatro primeros problemas.

Esto se puede deber a que la influencia en la optimización de las rutas del

aumento del tamaño de la zona restringida requiere más vehículos, aunque

estos se ven obligados a realizar rutas más cortas en el tiempo. Esta tendencia

continúa también en los problemas 6 y 7 donde va aumentando la duración de

la ventana temporal. Dado que la zona restringida es mayor y el número de

horas en las que los vehículos no pueden interactuar con ella aumenta, las

Page 83: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

83 Rafael Grosso de la Vega

rutas óptimas buscan repartir en la zona restringida en las primeras horas de la

jornada laboral para después regresar al depósito pasando por alguna parada

situada fuera de esta, o viceversa, es decir repartir primero fuera de la zona

restringida para hacerlo dentro de ella al final de la jornada, pudiendo incluso

comenzar la jornada laboral en un tiempo mayor al tiempo cero; provocando

esto que la duración total de estas rutas sea menor.

También se puede observar que el número total de horas necesarias para

realizar las rutas en los primeros 6 problemas no sufre cambios significativos.

En el problema 8 se observa que el número de vehículos disminuye

considerablemente con respecto al problema anterior, siendo esto lógico pues

aunque el tamaño de la zona restringida es mayor la duración de la ventana

temporal es sólo de 2 horas por lo que los vehículos pueden encontrar rutas

optimas más fácilmente. Aunque comparando con el problema 5, que tiene

igual duración de ventana temporal, si se observa un aumento lógico del

número de vehículos provocado por la diferencia en el tamaño de la zona

restringida.

Cabe decir para los restantes problemas que el aumento del número de

vehículos ya es considerable y que el tiempo medio en que los vehículos están

en ruta crece con respecto a los tiempos medios de los problemas intermedios,

hasta igualarse, en términos generales, con los tiempos medios de ruta de los

problemas iniciales.

A modo ilustrativo se expone a continuación la evolución del fitness comparado

con el fitness medio de uno de los experimentos realizados sobre el modelo de

la ciudad de Sevilla. Concretamente la ilustración corresponde al problema 10.

Page 84: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

84 Rafael Grosso de la Vega

Ilustración 29: Evolución del fitness y del fitness medio en el problema 10 realizado sobre el modelo de la ciudad

de Sevilla.

Page 85: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

85 Rafael Grosso de la Vega

8 CONCLUSIONES. Llegado a este punto del proyecto es preciso recordar los objetivos de este

para así centrar mejor las conclusiones sacadas.

Los objetivos, después de haber presentado el problema, eran poder sacar

conclusiones de los sobrecostes generados en una empresa de reparto de

mercancía cuando se ve obligada a actuar en una ciudad, en este caso Sevilla,

donde se implantan medidas de restricción de tráfico en una determinada zona

de esta.

Para ello se han resuelto diferentes problemas de este supuesto en el modelo

generado de la ciudad. Estos diferentes problemas van desde el supuesto de

que no exista restricción de tráfico alguna en toda la ciudad, hasta el supuesto

de una restricción de tráfico y horario que ocupa gran parte de la ciudad y más

de la mitad del horario comercial tipo.

Y a la vista de los resultados obtenidos (véase tabla 3) se puede concluir que

los sobrecostes, en términos temporales, pueden llegar al 400%. Observando

un poco más detalladamente se puede ver:

• En los problemas con el menor tamaño de zona restringida se aprecia

una variación pequeña con respecto al caso nulo, pero si se aprecia una

diferencia mayor cuando la duración de la ventana temporal es la mayor.

• En los problemas con el tamaño medio de zona restringida ya se puede

observar una diferencia significativa, siendo esta aun más marcada en el

caso que dure la ventana temporal 6 horas.

• En los problemas con el tamaño de la zona restringida mayor las

diferencias apreciadas son marcadamente amplias. Es curioso la

comparación de que el caso de tamaño de zona restringida mayor y

longitud de ventana temporal pequeño tenga una solución mejor que el

caso de tamaño de zona restringida medio y longitud de ventana

temporal mayor. De lo que se deduce que la duración de la ventana

temporal influye en el problema de manera significativa a medida que va

aumentando el tamaño de la zona restringida.

Por tanto se puede decir que la implantación de este tipo de medidas de

restricción de tráfico en determinadas zonas de las ciudades esta directamente

relacionado con un sobrecoste, cuya cuantía puede variar dependiendo del

Page 86: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

86 Rafael Grosso de la Vega

número de clientes que puedan sufrir dicha restricción además del tamaño y

horario de esta, que deberán soportar las empresas de reparto que actúen en

la ciudad en cuestión.

Estas conclusiones aparentemente obvias, no lo son tanto si el problema es

analizado sin el enfoque práctico y cuantificador que se ha intentado hacer en

este trabajo. Es más, después de observar que los estudios, por parte de las

administraciones locales, sobre logística urbana de mercancías son nulos o

simplemente incipientes, se puede deducir que la decisión de implantar sobre

los cascos antiguos medidas tales como zonas restrictivas con ventanas

temporales se tomaron sin tener en cuenta conclusiones como las sacadas en

este proyecto.

Page 87: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

87 Rafael Grosso de la Vega

9 BIBLIOGRAFÍA.

[1] Uchimura, K & Sakaguchi, H 'Vehicle routing problem using genetic

algorithms based on adjacencyrelations', Vehicle Navigation and Information

Systems Conference, . Proceedings. In conjunction w ith the Pacific Rim

TransTech Conference. 6th International VNIS. 'A Ri de into the Future' ,

Seattle, WA, USA, pp. 214-217

[2] Muñuzuri, J. (2003). La logística urbana de mercancías: soluciones,

modelado y evaluación. PhD Tesis, Universidad de Sevilla.

[3] Larrañeta, J., Muñuzuri, J., Montero, G. y Canca, D. La logística urbana de

mercancías en España. IV Congreso de Ingeniería de Organización, 2001.

[4] Munuzuri, J., Larraneta, J., Onieva, L. and Cortes, P., "Solutions applicable

by local administrations for urban logistics improvement," Cities, v22, pp. 15-28,

2005.

[5] Arbelaitz, O. 2002, “Soluciones basadas en Simulated Annealing para el

VRPTW”, Tesis doctoral, Universidad del País Vasco, Donostia.

Page 88: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

88 Rafael Grosso de la Vega

ANEXO: PROGRAMACIÓN DEL ALGORITMO. Como se ha comentado anteriormente para la programación e implementación del algoritmo genético que ocupa este proyecto se

ha utilizado la herramienta informática Matlab. La elección de esta no ha seguido ningún criterio de búsqueda de herramientas que

permitan una programación más eficiente o especializada en el tipo de algoritmos utilizados, sino que se ha elegido por su

cercanía y familiaridad. Aun así se esta hablando de una herramienta lo suficientemente potente como para soportar la

programación que se le exige y lo suficientemente eficiente para las exigencias de un proyecto fin de carrera como este.

Así utilizando los elementos básicos de programación en esta herramienta informática como son las sentencias if, while, for se ha

ido programando línea a línea todo el algoritmo que se expone a continuación.

La estructura general seguida en la programación del proyecto, y que esta determinada por la elección de los parámetros que se

tienen en cuenta, es la siguiente:

• Generación de los problemas : como primer paso se generan todos los problemas que posteriormente se evaluaran con

el algoritmo genético. Entendiendo como problemas la red de nodos y arcos con los diferentes valores de los parámetros

del problema (número deparadas, tamaño de la zona restringida y longitud de la ventana temporal).

• Resolución de los problemas : posteriormente se implementará un programa que toma cada problema y lo evalúa con los

diferentes algoritmos genéticos que surgen de los diferentes valores de los parámetros de los AAGG (tamaño de población,

número de iteraciones y tasa de mutación)

Obviamente cada una de estas divisiones constará de diferentes programas y archivos de datos.

Page 89: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

89 Rafael Grosso de la Vega

1 Red de prueba.

1.1 Generación de los problemas.

El programa que genera los problemas es:

clear load ParametrosProblemas ; NumeroProblema=0; for indVNP=1:2 for indVTZR=1:2 for indVVT=1:2 NumeroProblema=NumeroProblema+1 Numparadas=VectorNumeroParadas(indVNP) Distanciarestringidos=VectorTamanoZR(in dVTZR) TiempoVC=VectorVentanaTemporal(indVVT,1 ) TiempoVA=VectorVentanaTemporal(indVVT,2 ) A_parametros; B_creanodos; C_construirmatrizincidencias; D_zonarestringida; E_nodosinicioydestino; F_rutasminimas; if NumeroProblema==1 save Problema_1 end if NumeroProblema==2 save Problema_2 end if NumeroProblema==3 save Problema_3 end if NumeroProblema==4 save Problema_4

Page 90: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

90 Rafael Grosso de la Vega

end if NumeroProblema==5 save Problema_5 end if NumeroProblema==6 save Problema_6 end if NumeroProblema==7 save Problema_7 end if NumeroProblema==8 save Problema_8 end save NumeroProblema NumeroProblema indVNP indVTZR indVVT clear load NumeroProblema ; load ParametrosProblemas ; end end end

Este llama al archivo ParametrosProblemas , previamente diseñado, que contiene los tres vectores de datos en los cuales se

encuentran los diferentes valores de los parámetros de los problemas. Posteriormente se almacenan los problemas

generados en archivos con indicadores numéricos que servirán para su diferenciación.

También llama a los diferentes archivos que se muestran a continuación y que realizan las diferentes acciones necesarias

para la generación de la red.

1.1.1 A_parametros:

Este archivo contiene algunos parámetros del problema.

Page 91: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

91 Rafael Grosso de la Vega

Costevehiculo=8000; % A aplicar a partir del segundo vehiculo; Findia=4400; %660/0.15; Tiempoentregamax=20;

1.1.2 B_creanodos:

Este archivo genera los nodos de la red y los saca en una ventana grafica.

% Tamano de la red se utiliza tanto para el número de nodos como para la extension de la ciudad numnodos=900; %La red de pruebas consta de 900 nodos nodos=zeros(numnodos,2); for i=1:30 for j=1:30 nodos((i-1)*30+j,1)=2*(i-1); nodos((i-1)*30+j,2)=2*(j-1); end end nodos=nodos+ones(numnodos,2); %Se le suma una matriz de unos para que el nodo-1 n o este en las coordenadas %(0,0) sino (1,1) plot(nodos(1:numnodos,1),nodos(1:numnodos,2), 'b.' ); %Dibuja los nodos como puntos de color azul title( 'Red de Nodos' ) hold on %Mantiene lo pintado en los siguientes graficos

Page 92: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

92 Rafael Grosso de la Vega

1.1.3 C_construirmatrizincidencias:

Con el se genera la matriz de incidencias que es una matriz que determina la dirección y sentido en la que se puede circular por la

red. También se genera a partir de la anterior la matriz Distancias que alverga la distancia de los arcos de la red.

%Construccion de la matriz de incidencias Matrizincidencias=zeros(numnodos); for mi=1:60:871 for mj=0:28 Matrizincidencias(mi+mj,mi+mj+1)=1; %La matriz de incidencias se contruye de la siguien te manera: end %El elemento (i,j)=1 indica que se puede ir del nod o "i" al "j" end %El elemento (k,l)=0 No se puede ir del nodo "k" al nodo "l" for mi=31:60:871 %Los nodos se comunican de la siguiente manera: for mj=1:29 %Por filas: Matrizincidencias(mi+mj,mi+mj-1)=1; %Si impar: Van hacia la izquierda end %Si par: Van hacia la derecha end %Por columnas: %Si impar: Van hacia arriba for mj=0:2:28 %Si par: Van hacia abajo for mi=31:30:871 %En cada fila o columna solo hay uno o dos unos, en general a cada Matrizincidencias(mi+mj,mi+mj-30)=1; %nodo se puede llegar desde otros dos nodos end end for mj=1:2:29 for mi=31:30:871 Matrizincidencias(mi+mj-30,mi+mj)=1; end

Page 93: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

93 Rafael Grosso de la Vega

end Distancia=2*Matrizincidencias; %Porque una longitud de arco de 2 son 100 metros Matrizincidencias=sparse(Matrizincidencias); %sparse de una matriz dispersa(es una matriz con gr an número de ceros) %coge solo los valores significativos (los distinto s de ceros) Distancia=sparse(Distancia);

1.1.4 D_zonarestringida:

Con este archivo se determina los nodos que formaran parte de la zona restringida a partir deltamaño de dicha zona y de un nodo

central de esta.

% Identificacion de nodos de la zona restringida centrozonarestringida=435; Nodosrestringido=zeros(1,numnodos); Nodosrestringido(centrozonarestringida)=1; Matrizincidencias2=Matrizincidencias'+Matrizinciden cias; Distancia2=2*Matrizincidencias2; lambda=100000*ones(numnodos,1); lambda(centrozonarestringida)=0; cambio=1; while cambio>0 cambio=0; for j=1:numnodos Adyacentesanteriores=find(Matrizincidencias 2(1:numnodos,j)); for i=1:length(Adyacentesanteriores) if lambda(Adyacentesanteriores(i))>lambda(j)+Distanci a2(Adyacentesanteriores(i),j) lambda(Adyacentesanteriores(i))=lam bda(j)+Distancia2(Adyacentesanteriores(i),j); cambio=1; end end

Page 94: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

94 Rafael Grosso de la Vega

end end Nodosrestringido(find(lambda<Distanciarestringidos) )=1; % Identificacion de impresion de arcos de la zona r estringida Indicesrestringidos=find(Nodosrestringido); for k=1:length(Indicesrestringidos) for j=1:numnodos if Matrizincidencias(Indicesrestringidos(k),j)>0 plot(nodos(Indicesrestringidos(k),1),no dos(Indicesrestringidos(k),2), 'rs' ) end end end hold on

1.1.5 E_nodosinicioydestino:

Aquí se seleccionan el nodo inicial o depósito y los diferentes nodos destinos partiendo del número de paradas que tenga cada

problema.

Probabilidaddestino=0.03; % Tiene que ser un número entre 0 y 1 nodosaleatorio=randperm(numnodos); % Identificacion e impresion de nodo origen cambio2=1; posibleorigen=2; while cambio2>0 cambio2=0; Nodoorigen=nodosaleatorio(posibleorigen); if (Nodosrestringido(Nodoorigen))==1 cambio2=1; posibleorigen=posibleorigen+1;

Page 95: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

95 Rafael Grosso de la Vega

end end plot(nodos(Nodoorigen,1),nodos(Nodoorigen,2), 'ks' ); % Identificacion e impresion de nodos destino Nodosdestino=zeros(1,numnodos); Destinosenrestringido=0; Nodosdestino(Nodoorigen)=1; numparadas=0; salirbucle=0; nodosdesorden=randperm(numnodos); while salirbucle==0 for i=1:numnodos if (i~=Nodoorigen)&(Nodosdestino(nodosdesorden(i))~=1 ) if Nodosrestringido(nodosdesorden(i))==1 if (rand<3*Probabilidaddestino)&(numparadas<Numparad as) Nodosdestino(nodosdesorden(i))= 1; numparadas=numparadas+1; if numparadas==Numparadas salirbucle=1; end Destinosenrestringido=Destinose nrestringido+1; end else if (rand<Probabilidaddestino)&(numparadas<Numparadas ) Nodosdestino(nodosdesorden(i))= 1; numparadas=numparadas+1; if numparadas==Numparadas salirbucle=1; end end end end end end for i=1:numnodos if i~=Nodoorigen

Page 96: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

96 Rafael Grosso de la Vega

if Nodosdestino(i)==1 plot(nodos(i,1),nodos(i,2), 'bo' ); end end end hold off

1.1.6 F_rutasminimas:

En este archivo se calculan las rutas minimas entre cada par de nodos destino además de las distancias dentro y distancias fuera

de la ZR que después se utilizaran en el calculo del fitness de cada individuo.

Indicesdestinos=find(Nodosdestino); paradas=find(Indicesdestinos~=Nodoorigen); Indicesparadas=Indicesdestinos(paradas); Indicesdestinos=[Indicesparadas,Nodoorigen]; % CALCULO DE LAS RUTAS MINIMAS Matrizcostes=Distancia; Longitudrutas=zeros(length(Indicesdestinos)); % cada elemento refleja la longitud de la ruta entr e cada par de nodos destino Rutas=zeros(numnodos,length(Indicesdestinos)); % cada elemento (i,j) refleja hacia que nodo se deb e ir desde i en la ruta hacia j for k=1:length(Indicesdestinos) lambda1=100000*ones(numnodos,1); lambda1(Indicesdestinos(k))=0; cambio=1; while cambio>0 cambio=0; for j=1:numnodos Adyacentesanteriores=find(Matrizinciden cias(1:numnodos,j));

Page 97: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

97 Rafael Grosso de la Vega

for i=1:length(Adyacentesanteriores) if lambda1(Adyacentesanteriores(i))>lambda1(j)+Matriz costes(Adyacentesanteriores(i),j) lambda1(Adyacentesanteriores(i) )=lambda1(j)+Matrizcostes(Adyacentesanteriores(i),j ); Rutas(Adyacentesanteriores(i),k )=j; cambio=1; end end end end Longitudrutas(1:length(Indicesdestinos),k)=lamb da1(Indicesdestinos); end % CALCULO DE LA MATRIZ DE RECORRIDOS INTERNOS % % Es una matriz con tantas filas y columnas como destinos, con todo ceros salvo: % - Si i no pertenece a la zona restringida y j s i, (i,j) es el tiempo de la ruta i-j que se recorre dentro de la zona restringida % - Si i pertenece a la zona restringida y j no, (i,j) es el tiempo de la ruta i-j que se recorre de ntro de la zona restringida LongitudDentro=zeros(length(Indicesdestinos)); for i=1:length(Indicesdestinos) for j=1:length(Indicesdestinos) if (Nodosrestringido(Indicesdestinos(i))==0)&(Nodosre stringido(Indicesdestinos(j))==1) longitudtrozodentro=0; nodoinicial=Indicesdestinos(i); while nodoinicial~=Indicesdestinos(j) nodofinal=Rutas(nodoinicial,j); if (Nodosrestringido(nodofinal)==1)&(Nodosrestringido (nodoinicial)==1) longitudtrozodentro=longitudtro zodentro+Distancia(nodoinicial,nodofinal); end nodoinicial=nodofinal; end LongitudDentro(i,j)=longitudtrozodentro ; %Si el nodo "i" pertenece a la ZR y el nodo "j" NO pertenece a la ZR elseif (Nodosrestringido(Indicesdestinos(i))==1)&(Nodosre stringido(Indicesdestinos(j))==0) longitudtrozodentro=0;

Page 98: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

98 Rafael Grosso de la Vega

nodoinicial=Indicesdestinos(i); while nodoinicial~=Indicesdestinos(j) nodofinal=Rutas(nodoinicial,j); if (Nodosrestringido(nodoinicial)==1) longitudtrozodentro=longitudtro zodentro+Distancia(nodoinicial,nodofinal); end nodoinicial=nodofinal; end LongitudDentro(i,j)=longitudtrozodentro ; end end end

1.2 Resolución de los problemas.

El programa que resuelve los problemas es el siguiente:

clear NumeroExperimento=0; for indExperimento=1:8 load Parametros ; if indExperimento==1 load Problema_1 ; end if indExperimento==2 load Problema_2 ; end if indExperimento==3 load Problema_3 ; end if indExperimento==4 load Problema_4 ; end if indExperimento==5

Page 99: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

99 Rafael Grosso de la Vega

load Problema_5 ; end if indExperimento==6 load Problema_6 ; end if indExperimento==7 load Problema_7 ; end if indExperimento==8 load Problema_8 ; end for indTP=1:2 for indNMI=1:2 for indTM=1:2 NumeroExperimento=NumeroExperimento +1; Tamanopoblacion=VectorTP(indTP)*Num paradas Tasamutacion=VectorTM(indTM) evolucion=0; cambiar=0; it=0; convergencia=0; Poblacionnueva=0; % Probabilidades de ser eliminados para el operador de seleccion en funcion del ranking Probabilidades=zeros(2*Tamanopoblac ion,1); for contaprob=1:2*Tamanopoblacion Probabilidades(contaprob)=(cont aprob-1)/(2*Tamanopoblacion); end Probabilidades=ones(length(Probabil idades),1)-Probabilidades; tic G_poblinicial; H_paradasZR; I_previofitness; FitnessEvolucion=FitnessFinal(:,Num paradas+1:Numparadas+2); MejorIndividuo=FitnessFinal(1,1:Num paradas+1); while convergencia==0

Page 100: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

100 Rafael Grosso de la Vega

it=it+1 K_cruce; L_mutacion; M_previofitnessDescendientes; N_seleccionporranking; if ((sum(FitnessEvolucion(:,(end-1)),1))/(Tamanopobla cion))<((1.1)*(RutaMejor(end,1))) cambiar8=cambiar8+1; else cambiar8=0; end if cambiar8==1 O_poblinicial2; P_previofitnesspoblinicial2 ; disp( 'Poblacion nueva' ) cambiar8=0; end if it==VectorNMI(indNMI)*Numparadas convergencia=1; disp( 'Parada por número de iteraciones' ) end end TiempoResolucion=toc FO=evolucion(end) if NumeroExperimento==1 save Experimento_1 end if NumeroExperimento==2 save Experimento_2 end

. . .

if NumeroExperimento==63

Page 101: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

101 Rafael Grosso de la Vega

save Experimento_63 end if NumeroExperimento==64 save Experimento_64 end end end end save indExperimento indExperimento NumeroExperimento ; clear load indExperimento ; end

El programa repite el proceso de llamar al archivo Parametros que contiene los tres vectores en los cuales se encuentran

los diferentes valores delos parámetros del AAGG. También llama a cada tipo de problema y lo resuelve con los 8 diferentes

tipos de AAGG generando así los 64 experimentos diferentes que componen el análisis de sensibilidad que se almacenaran

en sus archivos correspondientes.

Se puede apreciar que este programa sigue la estructura del diagrama de flujos del algoritmo genético diseñado y que esta

expuesto en apartados anteriores.

Se detalla a continuación los diferentes archivos que compones este programa.

1.2.1 G_poblinicial:

Genera aleatoriamente la población inicial según el tamaño de población y el número deparadas del problema.

Page 102: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

102 Rafael Grosso de la Vega

Poblacion1=zeros(Tamanopoblacion,Numparadas); for i=1:Tamanopoblacion Poblacion1(i,1:Numparadas)=randperm(Numparadas) ; end

1.2.2 H_paradasZR:

Busca y encuentra las paradas que se encuentran dentro de la zona restringida para que el fitness las pueda identificar.

%Busca los indices de las paradas que estan en la Z R y los pone en IndicesparadasZR IndicesparadasZR=zeros(1,numnodos); for i=1:length(Indicesparadas) if find(Indicesparadas(i)==Indicesrestringidos(1:leng th(Indicesrestringidos)))>0 IndicesparadasZR(Indicesparadas(i))=1; end end

1.2.3 I_previofitness:

Prepara los vectores de tiempo y matrices de almacenamiento de estos además de los índices que gobiernan el fitness.

Posteriormente almacena la mejor ruta encontrada en cada problema para su posterior utilización.

Page 103: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

103 Rafael Grosso de la Vega

MatriztiemposrutaSalida=zeros(1,length(Indicesparad as)); MatriztiemposrutaEntrada=zeros(1,length(Indicespara das)); Indicesrutamejor=zeros(length(Poblacion1(:,1)),1); FitnessInicial=zeros(1,2); nv=1; i=1; j=0; k=0; n=0; m=0; pasoveh=1; iAux=0; finfitness=0; for m=1:Tamanopoblacion nv=1; FitnessAux=0; i=1; j=0; k=0; n=0; pasoveh=1; iAux=0; TiemposrutaEntrada=zeros(1,length(Indicesparada s)); TiemposrutaSalida=zeros(1,length(Indicesparadas )); VectorPoblacion=Poblacion1(m,1:length(Indicespa radas)); VectorPoblacionAux=VectorPoblacion; while finfitness==0 I_fitness; end %calculamos el fitness restando el max tiempo menos el menor tiempo que %es el de inicio de ruta FitnessAuxMax=(max(TiemposrutaSalida)+Longitudr utas(VectorPoblacion(i-1),Numparadas+1)); FitnessAuxMin=(TiemposrutaEntrada(1)-Longitudru tas(Numparadas+1,VectorPoblacion(1))); FitnessAux=FitnessAux+(FitnessAuxMax-FitnessAux Min); FitnessInicial=[FitnessInicial;FitnessAux,nv]; MatriztiemposrutaEntrada=[MatriztiemposrutaEntr ada;TiemposrutaEntrada]; MatriztiemposrutaSalida=[MatriztiemposrutaSalid a;TiemposrutaSalida];

Page 104: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

104 Rafael Grosso de la Vega

finfitness=0; end FitnessInicial=FitnessInicial(2:length(FitnessInici al),:); %Aplicamos al fitness el costo fijo de los vehiculo s adicionales for indvehiculo=1:length(FitnessInicial(:,1)) if FitnessInicial(indvehiculo,2)>=2 FitnessInicial(indvehiculo,1)=FitnessInicia l(indvehiculo,1)+Costevehiculo*((FitnessInicial(ind vehiculo,2))-1); end end Indicefitness=[1:Tamanopoblacion]; Indicefitness=Indicefitness'; FitnessInicial=[Poblacion1,FitnessInicial,Indicefit ness,Indicesrutamejor]; FitnessFinal=sortrows(FitnessInicial,Numparadas+1); %Fitness ordenado de mejor a peor FitnessEvolucion=FitnessFinal(:,Numparadas+1:Numpar adas+2); RutaMejor=zeros(FitnessFinal(1,Numparadas+2)+1,Nump aradas); if FitnessFinal(1,Numparadas+2)==1 RutaMejor(1,:)=FitnessFinal(1,1:Numparadas); RutaMejor(2,1)=FitnessFinal(1,Numparadas+1); else for indnv=1:(FitnessFinal(1,Numparadas+2))-1 if indnv==1 RutaMejor(indnv,1:FitnessFinal(1,Numparadas+3+indnv ))=FitnessFinal(1,1:FitnessFinal(1,Numparadas+3+ind nv)); end if indnv==(FitnessFinal(1,Numparadas+2))-1 RutaMejor(indnv+1,1:(Numparadas-(FitnessFinal(1,Numparadas+3+indnv))))=FitnessFinal (1,1+FitnessFinal(1,Numparadas+3+indnv):Numparadas) ; end if (1<=indnv)&&(indnv<(FitnessFinal(1,Numparadas+2))- 1) RutaMejor(indnv+1,1:((FitnessFinal(1,Nu mparadas+4+indnv))-(FitnessFinal(1,Numparadas+3+indnv))))=FitnessFinal (1,1+FitnessFinal(1,Numparadas+3+indnv):FitnessFina l(1,Numparadas+4+indnv)); end end RutaMejor(indnv+2,1)=FitnessFinal(1,Numparadas+ 1);

Page 105: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

105 Rafael Grosso de la Vega

end

1.2.3.1 I_fitness:

Este archivo contiene el código del fitness propiamente dicho, siguiendo la estructura del diagrama de flujos expuesto con

anterioridad.

if i==1 TiemposrutaEntrada(i)=Longitudrutas(Numparadas+ 1,VectorPoblacion(i)); TiemposrutaSalida(i)=TiemposrutaEntrada(i)+Tiem poentregamax; else TiemposrutaEntrada(i)=TiemposrutaSalida(i-1)+Lo ngitudrutas(VectorPoblacion(i-1),VectorPoblacion(i) ); TiemposrutaSalida(i)=TiemposrutaEntrada(i)+Tiem poentregamax; end if (IndicesparadasZR(Indicesparadas(VectorPoblacion (i)))==1) %Si igual a uno,la parada estara en la ZR if ((TiemposrutaSalida(i)>TiempoVC)&&(TiempoVA>Tiempos rutaSalida(i)))||((TiemposrutaEntrada(i)>TiempoVC)& &(TiempoVA>TiemposrutaEntrada(i))) I_1_bucle_J; else if ((i>1)&&(((TiemposrutaSalida(i-1)>TiempoVC)&&( TiempoVA>TiemposrutaSalida(i-1)))||((TiemposrutaEntrada(i-1)>TiempoVC)&&(TiempoV A>TiemposrutaEntrada(i-1))))) if ((i>1)&&(TiempoVA>TiemposrutaEntrada(i)+LongitudDe ntro(VectorPoblacion(i-1),VectorPoblacion(i)))) I_1_bucle_J; end end end else I_2_bucle_N; end if i>0

Page 106: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

106 Rafael Grosso de la Vega

if TiemposrutaSalida(i)+Longitudrutas(VectorPoblaci on(i),Numparadas+1)>Findia I_3_vehiculosiguiente; end if (i+iAux)>=length(Indicesparadas) finfitness=1; end else end i=i+1;

1.2.3.1.1 I_1_bucle_J:

La función de este bloque ha sido explicada ya.

j=i; j=j-1; cam=0; if j>=1 while cam==0 if j==1 TiemposrutaSalida(j)=TiempoVA-(Longitud rutas(VectorPoblacion(j),VectorPoblacion(j+1))-LongitudDentro(VectorPoblacion(j),VectorPoblacion(j +1))); cam=1; else if IndicesparadasZR(Indicesparadas(VectorPoblacion( j)))==0 %Si igual a cero,la parada NO estara en la ZR TiemposrutaSalida(j)=TiempoVA-(Long itudrutas(VectorPoblacion(j),VectorPoblacion(j+1))-LongitudDentro(VectorPoblacion(j),VectorPoblacion(j +1))); TiemposrutaEntrada(j)=TiemposrutaSa lida(j)-Tiempoentregamax; cam=1; else

Page 107: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

107 Rafael Grosso de la Vega

j=j-1; end end end k=j; j=j+1; while j<=i TiemposrutaEntrada(j)=TiemposrutaSalida(j-1 )+Longitudrutas(VectorPoblacion(j-1),VectorPoblacio n(j)); TiemposrutaSalida(j)=TiemposrutaEntrada(j)+ Tiempoentregamax; j=j+1; end k=k-1; J_bucle_K; end

1.2.3.1.2 J_bucle_K:

La función de este bloque ha sido explicada ya.

for k=(k):-1:1 TiemposrutaSalida(k)=TiemposrutaEntrada(k+1)-Lo ngitudrutas(VectorPoblacion(k),VectorPoblacion(k+1) ); TiemposrutaEntrada(k)=TiemposrutaSalida(k)-Tiem poentregamax; if IndicesparadasZR(Indicesparadas(VectorPoblacion(k) ))==1 %Si igual a uno,la parada estara en la ZR if ((TiempoVA>TiemposrutaSalida(k)>TiempoVC)|(TiempoV A>TiemposrutaEntrada(k)>TiempoVC)) TiemposrutaSalida(k)=TiempoVC-LongitudDen tro(VectorPoblacion(k),VectorPoblacion(k+1)); TiemposrutaEntrada(k)=TiemposrutaSalida(k )-Tiempoentregamax; end end end

Page 108: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

108 Rafael Grosso de la Vega

1.2.3.1.3 I_2_bucle_N:

La función de este bloque ha sido explicada ya.

bucleN2=0; bucleN=0; if k~=1 n=i-1; if n>0 if IndicesparadasZR(Indicesparadas(VectorPoblacion(n) ))==1 %Si igual a uno,la parada estara en la ZR if (((TiemposrutaSalida(n)+LongitudDentro(VectorPoblac ion(n),VectorPoblacion(n+1)))<=TiempoVC)||((Tiempos rutaSalida(n)+LongitudDentro(VectorPoblacion(n),VectorPoblacion(n +1)))>=TiempoVA)) else while bucleN==0 n=n-1; if n>0 if IndicesparadasZR(Indicesparadas(VectorPoblacion( n)))==1 %Si igual a uno,la parada estara en la ZR else bucleN=1; k=n; TiemposrutaEntrada(n+1)=TiempoVA+LongitudDentro(Vec torPoblacion(n),VectorPoblacion(n+1)); TiemposrutaSalida(n+1)= TiemposrutaEntrada(n+1)+Tiempoentregamax; n=n+2; while bucleN2==0 if n==0 else TiemposrutaEntr ada(n)=TiemposrutaSalida(n-1)+Longitudrutas(VectorP oblacion(n-1),VectorPoblacion(n)); TiemposrutaSali da(n)=TiemposrutaEntrada(n)+Tiempoentregamax; if TiemposrutaSalida(n)+Longitudrutas(VectorPoblacio n(n),Numparadas+1)>Findia J_bucle_K;

Page 109: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

109 Rafael Grosso de la Vega

i=n; I_3_vehicul osiguiente; bucleN2=1; else if n==i bucleN2 =1; J_bucle _K; else n=n+1; end end bucleN=1; end end end else bucleN=1; end end end end end end

Page 110: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

110 Rafael Grosso de la Vega

1.2.4 K_cruce:

Uno de las partes del algoritmo más complejas y difíciles de programar, sigue el proceso explicado en su apartado

correspondiente.

if Poblacionnueva==1 FitnessFinal=FitnessFinalPoblacionNueva; Poblacionnueva=0; end ordencruce=randperm(Tamanopoblacion); yaexisten=zeros(4,1); yaexistenmayores=zeros(3,1); Descendientes=Poblacion1; %Creamos los descendientes con dos puntos de cruce elegidos aleatoriamente para cada vector for i2=1:2:Tamanopoblacion-1 vectororden=randperm(Numparadas-1); puntoscruce=[vectororden(1) vectororden(Numpara das-1)]; puntoscruce=sort(puntoscruce); Descendientes(ordencruce(i2:i2+1),puntoscruce(1 ):puntoscruce(2))=Poblacion1(ordencruce(i2+1:-1:i2),puntoscruce(1):puntoscruce(2)); end %Buscamos y almacenamos en el vector yaexisten las paradas repetidas que existen en los descendientes provocadas por el cruce for i3=1:Tamanopoblacion for i4=1:Numparadas for i5=(i4+1):Numparadas if Descendientes(i3,i4)==Descendientes(i3,i5) yaexisten=[yaexisten [i3;i4;i5;Desc endientes(i3,i4)]]; end end end end

Page 111: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

111 Rafael Grosso de la Vega

yaexisten=yaexisten(:,2:length(yaexisten(1,:))); %Comparamos las longitudes de ruta de las paradas r epeticas con sus adyacentes y almacenamos las mayor es para despues sustituirlas for i6=1:length(yaexisten(1,:)) if (yaexisten(2,i6)==1&yaexisten(3,i6)==Numparadas) %Si las paradas repetidas son la primera y la ultim a del vector descendiente if (Longitudrutas(Numparadas+1,Descendientes(yaexisten (1,i6),yaexisten(2,i6)))+Longitudrutas((Descendient es(yaexisten(1,i6),yaexisten(2,i6))),(Descendientes(yaexisten(1,i 6),(yaexisten(2,i6)+1)))))>(((Longitudrutas(Descend ientes(yaexisten(1,i6),yaexisten(3,i6)-1),Descendientes(yaexisten(1,i6),yaexisten(3,i6)))+ Longitudrutas((Descendientes(yaexisten(1,i6),yaexis ten(3,i6))),Numparadas+1)))) yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(3,i6);yaexisten(4,i6)]]; else yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(2,i6);yaexisten(4,i6)]]; end elseif yaexisten(2,i6)==1 %Si las paradas repetidas son la primera y otra del vector descendiente if (Longitudrutas(Numparadas+1,Descendientes(yaexisten (1,i6),yaexisten(2,i6)))+Longitudrutas((Descendient es(yaexisten(1,i6),yaexisten(2,i6))),(Descendientes(yaexisten(1,i 6),(yaexisten(2,i6)+1)))))>(Longitudrutas(Descendie ntes(yaexisten(1,i6),yaexisten(3,i6)-1),Descendientes(yaexisten(1,i6),yaexisten(3,i6)))+ Longitudrutas((Descendientes(yaexisten(1,i6),yaexis ten(3,i6))),(Descendientes(yaexisten(1,i6),(yaexisten(3,i6)+1)))) ) yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(3,i6);yaexisten(4,i6)]]; else yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(2,i6);yaexisten(4,i6)]]; end elseif yaexisten(3,i6)==Numparadas %Si las paradas repetidas son otra y la ultima del vector descendiente if ((Longitudrutas(Descendientes(yaexisten(1,i6),yaex isten(2,i6)-1),Descendientes(yaexisten(1,i6),yaexisten(2,i6)))+ Longitudrutas((Descendientes(yaexisten(1,i6),yaexis ten(2,i6))),Descendientes(yaexisten(1,i6),yaexisten(2,i6)+1))))>( ((Longitudrutas(Descendientes(yaexisten(1,i6),yaexi sten(3,i6)-1),Descendientes(yaexisten(1,i6),yaexisten(3,i6)))+ Longitudrutas((Descendientes(yaexisten(1,i6),yaexis ten(3,i6))),Numparadas+1)))) yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(3,i6);yaexisten(4,i6)]]; else yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(2,i6);yaexisten(4,i6)]]; end

Page 112: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

112 Rafael Grosso de la Vega

else %Si las paradas repetidas no son ni la primera ni l a ultima ni las dos cosas if (Longitudrutas(Descendientes((yaexisten(1,i6)),ya existen(2,i6)-1),(Descendientes(yaexisten(1,i6),yaexisten(2,i6))) )+(Longitudrutas((Descendientes(yaexisten(1,i6),yae xisten(2,i6))),(Descendientes(yaexisten(1,i6),(yaexisten(2,i6)+1) ))))>((Longitudrutas(Descendientes(yaexisten(1,i6), (yaexisten(3,i6)-1)),Descendientes(yaexisten(1,i6),yaexisten(3,i6))) )+(Longitudrutas((Descendientes(yaexisten(1,i6),yae xisten(3,i6))),(Descendientes(yaexisten(1,i6),(yaexisten(3,i6)+1) )))))) yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(3,i6);yaexisten(4,i6)]]; else yaexistenmayores=[yaexistenmayores [yae xisten(1,i6);yaexisten(2,i6);yaexisten(4,i6)]]; end end end yaexistenmayores=yaexistenmayores(:,2:length(yaexis tenmayores(1,:))); %Buscamos los indices de las paradas que faltan el los vectores decendientes por haber tenido paradas repetidas for i7=1:length(Descendientes(:,1)) [faltanenDescendientes] = SETDIFF(Poblacion1(i7 ,:),Descendientes(i7,:)); longitudfaltan=0; indyaexmy=0; for i8=1:length(faltanenDescendientes) %Almacenamos en una matriz cuadrada los valores de las distancias de cada parada que falta evaluada en cada hueco posible i10=1; for i9=1:length(yaexistenmayores(1,:)) if (yaexistenmayores(1,i9)==i7) %Asi solo evaluamos las paradas que le faltan al ve ctor descendiente correspondiente if (yaexistenmayores(2,i9)==1) %Si las parada a eliminar es la primera longitudfaltan(i8,i10)=(Longitudrutas(Numparadas+1, faltanenDescendientes(i8))+Longitudrutas(faltanenDe scendientes(i8),(Descendientes(yaexistenmayores(1,i9),yaexistenma yores(2,i9)+1)))); elseif (yaexistenmayores(2,i9)==Numparadas) %Si las parada a eliminar es la ultima longitudfaltan(i8,i10)=(Longitudrutas((Descendiente s(yaexistenmayores(1,i9),yaexistenmayores(2,i9)-1)),faltanenDescendientes(i8))+Longitudrutas(faltan enDescendientes(i8),Numparadas+1)); else %En otro caso longitudfaltan(i8,i10)=(Longitudrutas((Descendiente s(yaexistenmayores(1,i9),yaexistenmayores(2,i9)-

Page 113: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

113 Rafael Grosso de la Vega

1)),faltanenDescendientes(i8))+Longitudrutas(faltan enDescendientes(i8),(Descendientes(yaexistenmayores (1,i9),yaexistenmayores(2,i9)+1)))); end indyaexmy(1,i10)=(i9); i10=i10+1; end end end %Buscando el minimo de la matriz anterior y ponemos la parada que falta correspondiente en el hueco correspondiente, haciendo la fila y la columna 1000 0 aseguramos que la siguiente no se asigne en el mi smo sitio if longitudfaltan==0 else for i11=1:length(longitudfaltan) [minporfilas,indminporfilas]=min(longit udfaltan); [mintotal,indmintotal]=min(minporfilas) ; Descendientes(i7,yaexistenmayores(2,indyaexmy(1,ind mintotal)))=(faltanenDescendientes(indminporfilas(i ndmintotal))); longitudfaltan(indminporfilas(indmintot al),:)=10000*ones(1,length(longitudfaltan)); longitudfaltan(:,indmintotal)=10000*one s(length(longitudfaltan),1); end end end

1.2.5 L_mutacion:

La función de este archivo ha sido explicada ya.

% Se escogen los individuos a mutar aleatoriamente segun la tasa de mutacion % Para los individuos a mutar, se intercambian dos elementos aleatoriamente for imut1=1:Tamanopoblacion

Page 114: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

114 Rafael Grosso de la Vega

if rand<Tasamutacion puntosmutacion=randperm(Numparadas); Intermedio=Descendientes(imut1,puntosmutaci on(1)); Descendientes(imut1,puntosmutacion(1))=Desc endientes(imut1,puntosmutacion(2)); Descendientes(imut1,puntosmutacion(2))=Inte rmedio; end end

1.2.6 M_previofitnessDescendientes:

Simplemente prepara los vectores de tiempo y las matrices de almacenamiento para evaluar, por medio del fitness, la población de

descendientes.

MatriztiemposrutaSalida=zeros(1,length(Indicesparad as)); MatriztiemposrutaEntrada=zeros(1,length(Indicespara das)); Indicesrutamejor=zeros(length(Descendientes(:,1)),1 ); FitnessDescendientes=zeros(1,2); fallotiemponegativo=0; nv=1; i=1; j=0; k=0; n=0; m=0; pasoveh=1; iAux=0; finfitness=0; for m=1:Tamanopoblacion nv=1;

Page 115: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

115 Rafael Grosso de la Vega

FitnessAux=0; i=1; j=0; k=0; n=0; pasoveh=1; iAux=0; TiemposrutaEntrada=zeros(1,length(Indicesparada s)); TiemposrutaSalida=zeros(1,length(Indicesparadas )); VectorPoblacion=Descendientes(m,1:length(Indice sparadas)); VectorPoblacionAux=VectorPoblacion; while finfitness==0 I_fitness; end FitnessAuxMax=(max(TiemposrutaSalida)+Longitudr utas(VectorPoblacion(i-1),Numparadas+1)); FitnessAuxMin=(TiemposrutaEntrada(1)-Longitudru tas(Numparadas+1,VectorPoblacion(1))); if FitnessAuxMin<0 fallotiemponegativo=1; disp( 'M' ); end FitnessAux=FitnessAux+(FitnessAuxMax-FitnessAux Min); FitnessDescendientes=[FitnessDescendientes;Fitn essAux,nv]; MatriztiemposrutaEntrada=[MatriztiemposrutaEntr ada;TiemposrutaEntrada]; MatriztiemposrutaSalida=[MatriztiemposrutaSalid a;TiemposrutaSalida]; finfitness=0; end FitnessDescendientes=FitnessDescendientes(2:length( FitnessDescendientes),:); %Aplicamos al fitness el costo fijo de los vehiculo s adicionales for indvehiculo2=1:length(FitnessDescendientes(:,1)) if FitnessDescendientes(indvehiculo,2)>=2 FitnessDescendientes(indvehiculo2,1)=FitnessDescend ientes(indvehiculo2,1)+Costevehiculo*((FitnessDesce ndientes(indvehiculo2,2))-1); end end Indicefitness=[1:Tamanopoblacion];

Page 116: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

116 Rafael Grosso de la Vega

Indicefitness=Indicefitness'; FitnessDescendientes=[Descendientes,FitnessDescendi entes,Indicefitness,Indicesrutamejor]; FitnessDescendientesFinal=sortrows(FitnessDescendie ntes,Numparadas+1); %Fitness ordenado de mejor a peor

1.2.7 N_seleccionporranking:

Realiza la selección por ranking y almacena la ruta mejor hasta el momento.

%Adecuamos el tamaño de las matrices a unir diferenciacolumnas=(length(FitnessFinal(1,:)))-(len gth(FitnessDescendientesFinal(1,:))); if diferenciacolumnas>0 FitnessDescendientesFinal=[FitnessDescendientesF inal zeros(length(FitnessDescendientesFinal(:,1)),difere nciacolumnas)]; end if diferenciacolumnas<0 FitnessFinal=[FitnessFinal zeros(length(FitnessF inal(:,1)),(-diferenciacolumnas))]; end PoblDesc=[FitnessFinal;FitnessDescendientesFinal]; PoblDesc=sortrows(PoblDesc,Numparadas+1); %Elegimos por probabilidad los individuos a quedars e en la poblacion inicial de la siguiente generacio n Indicesamantener=zeros(2*Tamanopoblacion,1); Numindividuosamantener=0; contaprob=1; while Numindividuosamantener<Tamanopoblacion if Indicesamantener(contaprob)==0 if rand<Probabilidades(contaprob)

Page 117: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

117 Rafael Grosso de la Vega

Indicesamantener(contaprob)=1; Numindividuosamantener=Numindividuosama ntener+1; end end contaprob=contaprob+1; if contaprob>2*Tamanopoblacion-1 contaprob=2; end end Indicesamantener=find(Indicesamantener==1); %creamos la matriz siguiente para verificar que nos quedamos siempre con el individuo mejor en cada se leccion por ranking %MatrizIndicesamantener=[MatrizIndicesamantener Ind icesamantener]; FitnessFinal=0; for indseleccFila=1:Tamanopoblacion for indseleccColumna=1:length(PoblDesc(1,:)) FitnessFinal(indseleccFila,indseleccColumna )=PoblDesc(Indicesamantener(indseleccFila),indselec cColumna); end end Poblacion1=FitnessFinal(:,1:Numparadas); Dpoblacion1=FitnessFinal(:,Numparadas+1:Numparadas+ 2); Indices_nv=FitnessFinal(:,Numparadas+3:end); %FitnessFinal=[Poblacion1 Dpoblacion1 Indices_nv]; FitnessEvolucion=[FitnessEvolucion Dpoblacion1]; %Creamos la matriz rutamejor if FitnessFinal(1,Numparadas+1)<(max(RutaMejor(:,1))) RutaMejor=zeros(FitnessFinal(1,Numparadas+2)+1,N umparadas); if FitnessFinal(1,Numparadas+2)==1 RutaMejor(1,:)=FitnessFinal(1,1:Numparadas); RutaMejor(2,1)=FitnessFinal(1,Numparadas+1); else for indnv=1:(FitnessFinal(1,Numparadas+2))-1

Page 118: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

118 Rafael Grosso de la Vega

if indnv==1 RutaMejor(indnv,1:FitnessFinal(1,Numparadas+3+indnv ))=FitnessFinal(1,1:FitnessFinal(1,Numparadas+3+ind nv)); end if indnv==(FitnessFinal(1,Numparadas+2))-1 RutaMejor(indnv+1,1:(Numparadas-(FitnessFinal(1,Numparadas+3+indnv))))=FitnessFinal (1,1+FitnessFinal(1,Numparadas+3+indnv):Numparadas) ; end if (1<=indnv)&(indnv<(FitnessFinal(1,Numparadas+2))-1 ) RutaMejor(indnv+1,1:((FitnessFinal(1, Numparadas+4+indnv))-(FitnessFinal(1,Numparadas+3+indnv))))=FitnessFinal (1,1+FitnessFinal(1,Numparadas+3+indnv):FitnessFina l(1,Numparadas+4+indnv)); end end RutaMejor(indnv+2,1)=FitnessFinal(1,Numparad as+1); end end evolucion=[FitnessEvolucion(1,1:2:length(FitnessEvo lucion(1,:)))];

1.2.8 O_poblinicial2:

Genera una población nueva aleatoria excepto por los tres mejores individuos de la población desechada.

%Reiniciamos con otra poblacion inicial nueva salvo los 3 individuos mejores PoblacionNueva=FitnessFinal(:,1:Numparadas); for indpobl=4:Tamanopoblacion PoblacionNueva(indpobl,1:Numparadas)=randperm(N umparadas); end

Page 119: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

119 Rafael Grosso de la Vega

Poblacion1=PoblacionNueva;

1.2.9 P_previofitnesspoblinicial2:

Prepara los vectores de tiempo y las matrices de almacenamiento para la evolución, por medio del fitness, de la población nueva

recién generada.

MatriztiemposrutaSalida=zeros(1,length(Indicesparad as)); MatriztiemposrutaEntrada=zeros(1,length(Indicespara das)); Indicesrutamejor=zeros(length(PoblacionNueva(:,1)), 1); FitnessNueva=zeros(1,2); fallotiemponegativo=0; nv=1; i=1; j=0; k=0; n=0; m=0; iAux=0; finfitness=0; for m=1:Tamanopoblacion nv=1; FitnessAux=0; i=1; j=0; k=0; n=0; pasoveh=1; iAux=0; TiemposrutaEntrada=zeros(1,length(Indicesparada s)); TiemposrutaSalida=zeros(1,length(Indicesparadas ));

Page 120: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

120 Rafael Grosso de la Vega

VectorPoblacion=PoblacionNueva(m,1:length(Indic esparadas)); VectorPoblacionAux=VectorPoblacion; while finfitness==0 I_fitness; end FitnessAuxMax=(max(TiemposrutaSalida)+Longitudr utas(VectorPoblacion(i-1),Numparadas+1)); FitnessAuxMin=(TiemposrutaEntrada(1)-Longitudru tas(Numparadas+1,VectorPoblacion(1))); if FitnessAuxMin<0 fallotiemponegativo=1; disp( 'P' ); end FitnessAux=FitnessAux+(FitnessAuxMax-FitnessAux Min); FitnessNueva=[FitnessNueva;FitnessAux,nv]; MatriztiemposrutaEntrada=[MatriztiemposrutaEntr ada;TiemposrutaEntrada]; MatriztiemposrutaSalida=[MatriztiemposrutaSalid a;TiemposrutaSalida]; finfitness=0; end FitnessNueva=FitnessNueva(2:length(FitnessNueva),: ); %Aplicamos al fitness el costo fijo de los vehiculo s adicionales for indvehiculo=1:length(FitnessNueva(:,1)) if FitnessNueva(indvehiculo,2)>=2 FitnessNueva(indvehiculo,1)=FitnessNueva(in dvehiculo,1)+Costevehiculo*(FitnessNueva(indvehicul o,2)-1); end end Indicefitness=[1:Tamanopoblacion]; Indicefitness=Indicefitness'; FitnessNueva=[PoblacionNueva,FitnessNueva,Indicefi tness,Indicesrutamejor]; FitnessFinalPoblacionNueva=sortrows(FitnessNueva,N umparadas+1); %Fitness ordenado de mejor a peor

Page 121: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

121 Rafael Grosso de la Vega

2 RED DE SEVILLA. Se prescindirá aquí del apartado de resolución de problemas pues es exactamente igual al mostrado en la red de prueba.

2.1 Generación de los problemas. En este caso de la red de Sevilla la generación de problema difiere un poco del caso anterior pues los datos de la ubicación de los

nodos y de la distancia de los arcos los toma el programa de un archivo de datos externo. Así se expondrán solo los archivos que

varían con respecto al caso de la red de prueba.

El archivo que genera los problemas es:

clear load ParametrosProblemas ; NumeroProblema=1; for indVTZR=1:3 for indVVT=1:3 load Nodosdestino ; NumeroProblema=NumeroProblema+1; Numparadas=100; Distanciarestringidos=VectorTamanoZR(in dVTZR); TiempoVC=VectorVentanaTemporal(indVVT,1 ); TiempoVA=VectorVentanaTemporal(indVVT,2 ); load arcossevilla ; load nodosSevilla2 ; A_parametros; B_creanodosSevilla; C_construirmatrizincidenciasSev; D_zonarestringidaSev; E_nodosinicioydestinoSevde100; F_rutasminimasSev;

Page 122: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

122 Rafael Grosso de la Vega

if NumeroProblema==1 save Problema_1 end if NumeroProblema==2 save Problema_2 end if NumeroProblema==3 save Problema_3 end if NumeroProblema==4 save Problema_4 end if NumeroProblema==5 save Problema_5 end if NumeroProblema==6 save Problema_6 end if NumeroProblema==7 save Problema_7 end if NumeroProblema==8 save Problema_8 end if NumeroProblema==9 save Problema_9 end if NumeroProblema==10 save Problema_10 end

Page 123: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

123 Rafael Grosso de la Vega

save NumeroProblema NumeroProblema indVTZR indVVT ; clear load NumeroProblema ; load ParametrosProblemas ; end end Como se puede observar el programa vuelve a llamar al archivo ParametrosProblemas donde están los vectores de datos de los

parámetros. Además se observa que también llama a los archivos arcossevilla y nodosSevilla2 donde se encuentran los datos

de la red de Sevilla. Posteriormente el programa funciona de la misma manera que el descrito en la red prueba con la salvedad de

los archivos específicos de esta red de Sevilla y que se enumeran a continuación.

2.1.1 B_creanodosSevilla

%Renumeramos los nodos del modelo de sevilla y lo d ibujamos Matrizanterior=coordenadas_sevilla; numnodos=length(Matrizanterior); Arcos=[nodosorigen nodosdestino longitudarco]; for indnodo= 1:numnodos Indicesustituir=find(Arcos(:,1)==Matrizanterior (indnodo,1)); for indnodo2=1:length(Indicesustituir) Arcos(Indicesustituir(indnodo2),4)=indnodo; end Indicesustituir2=find(Arcos(:,2)==Matrizanterio r(indnodo,1)); for indnodo3=1:length(Indicesustituir2) Arcos(Indicesustituir2(indnodo3),5)=indnodo ; end

Page 124: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

124 Rafael Grosso de la Vega

end MatrizanteriorFinal=[[1:numnodos]' Matrizanterior(: ,3) Matrizanterior(:,4)]; ArcosFinal=[Arcos(:,4) Arcos(:,5) Arcos(:,3)]; plot(MatrizanteriorFinal(1:numnodos,2),Matrizanteri orFinal(1:numnodos,3), 'b.' ); %Dibuja los nodos como puntos de color azul title( 'Red de Sevilla' )

2.1.2 C_construirmatrizincidenciasSev

MatrizincidenciasSevilla=zeros(numnodos,numnodos); DistanciasSevilla=zeros(numnodos,numnodos); for h=1:length(ArcosFinal) MatrizincidenciasSevilla(ArcosFinal(h,1),ArcosF inal(h,2))=1; DistanciasSevilla(ArcosFinal(h,1),ArcosFinal(h, 2))=ArcosFinal(h,3); end MatrizincidenciasSevilla=sparse(MatrizincidenciasSe villa); %sparse de una matriz dispersa(es una matriz con gr an número de ceros) %coge solo los valores significativos (los distinto s de ceros) DistanciasSevilla=sparse(DistanciasSevilla);

2.1.3 D_zonarestringidaSev

% Identificacion de nodos de la zona restringida centrozonarestringida=406; Nodosrestringido=zeros(1,numnodos); Nodosrestringido(centrozonarestringida)=1; %Para Sevilla Matrizincidencias=MatrizincidenciasSevilla;

Page 125: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

125 Rafael Grosso de la Vega

Matrizincidencias2=Matrizincidencias'+Matrizinciden cias; Distancia2=DistanciasSevilla; lambda=100000*ones(numnodos,1); lambda(centrozonarestringida)=0; cambio=1; while cambio>0 cambio=0; for j=1:numnodos Adyacentesanteriores=find(Matrizincidenci as2(1:numnodos,j)); for i=1:length(Adyacentesanteriores) if lambda(Adyacentesanteriores(i))>lambda(j)+Distanci a2(Adyacentesanteriores(i),j) lambda(Adyacentesanteriore s(i))=lambda(j)+Distancia2(Adyacentesanteriores(i), j); cambio=1; end end end end Nodosrestringido(find(lambda<Distanciarestringidos) )=1; % Identificacion de impresion de arcos de la zona r estringida Indicesrestringidos=find(Nodosrestringido); for k=1:length(Indicesrestringidos) for j=1:numnodos if Matrizincidencias(Indicesrestringidos(k),j)>0 plot(MatrizanteriorFinal(Indicesrestrin gidos(k),2),MatrizanteriorFinal(Indicesrestringidos (k),3), 'rs' ) end end

Page 126: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

126 Rafael Grosso de la Vega

end hold on

2.1.4 E_nodosinicioydestinoSevde100

Probabilidaddestino=0.03; % Tiene que ser un número entre 0 y 1 nodosaleatorio=randperm(numnodos); % Identificacion e impresion de nodo origen cambio2=1; posibleorigen=2; while cambio2>0 cambio2=0; Nodoorigen=nodosaleatorio(posibleorigen); if (Nodosrestringido(Nodoorigen))==1 cambio2=1; posibleorigen=posibleorigen+1; end end plot(MatrizanteriorFinal(Nodoorigen,2),Matrizanteri orFinal(Nodoorigen,3), 'ks' ); % Identificacion e impresion de nodos destino Nodosdestino=zeros(1,numnodos); Destinosenrestringido=0; Nodosdestino(Nodoorigen)=1; numparadas=0;

Page 127: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

127 Rafael Grosso de la Vega

salirbucle=0; nodosdesorden=randperm(numnodos); while salirbucle==0 for i=1:numnodos if (i~=Nodoorigen)&(Nodosdestino(nodosdesorden(i))~=1 ) if Nodosrestringido(nodosdesorden(i))==1 if (rand<3*Probabilidaddestino)&(numparadas<Numparad as) Nodosdestino(nodosdesorden(i))=1; numparadas=numparadas+1; if numparadas==Numparadas salirbucle=1; end Destinosenrestringido=Destinosenr estringido+1; end else if (rand<Probabilidaddestino)&(numparadas<Numparadas ) Nodosdestino(nodosdesorden(i))=1; numparadas=numparadas+1; if numparadas==Numparadas salirbucle=1; end end end end end end for i=1:numnodos if i~=Nodoorigen if Nodosdestino(i)==1 plot(MatrizanteriorFinal(i,2),Matrizant eriorFinal(i,3), 'bo' ); end end end

Page 128: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

128 Rafael Grosso de la Vega

hold off

2.1.5 F_rutasminimasSev

Indicesdestinos=find(Nodosdestino); paradas=find(Indicesdestinos~=Nodoorigen); Indicesparadas=Indicesdestinos(paradas); Indicesdestinos=[Indicesparadas,Nodoorigen]; % CALCULO DE LAS RUTAS MINIMAS Distancia=DistanciasSevilla; Matrizcostes=Distancia; Longitudrutas=zeros(length(Indicesdestinos)); % cada elemento refleja la longitud de la ruta entr e cada par de nodos destino Rutas=zeros(numnodos,length(Indicesdestinos)); % cada elemento (i,j) refleja hacia que nodo se deb e ir desde i en la ruta hacia j for k=1:length(Indicesdestinos) lambda1=100000*ones(numnodos,1); lambda1(Indicesdestinos(k))=0; cambio=1; while cambio>0 cambio=0; for j=1:numnodos Adyacentesanteriores=find(Matrizinciden cias(1:numnodos,j));

Page 129: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

129 Rafael Grosso de la Vega

for i=1:length(Adyacentesanteriores) if lambda1(Adyacentesanteriores(i))>lambda1(j)+Matriz costes(Adyacentesanteriores(i),j) lambda1(Adyacentesanteriores(i) )=lambda1(j)+Matrizcostes(Adyacentesanteriores(i),j ); Rutas(Adyacentesanteriores(i),k )=j; cambio=1; end end end end Longitudrutas(1:length(Indicesdestinos),k)=lamb da1(Indicesdestinos); end % CALCULO DE LA MATRIZ DE RECORRIDOS INTERNOS % % Es una matriz con tantas filas y columnas como destinos, con todo ceros salvo: % - Si i no pertenece a la zona restringida y j s i, (i,j) es el tiempo de la ruta i-j que se recorre dentro de la zona restringida % - Si i pertenece a la zona restringida y j no, (i,j) es el tiempo de la ruta i-j que se recorre de ntro de la zona restringida LongitudDentro=zeros(length(Indicesdestinos)); for i=1:length(Indicesdestinos) for j=1:length(Indicesdestinos)

Page 130: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

130 Rafael Grosso de la Vega

if (Nodosrestringido(Indicesdestinos(i))==0)&(Nodosre stringido(Indicesdestinos(j))==1) longitudtrozodentro=0; nodoinicial=Indicesdestinos(i); while nodoinicial~=Indicesdestinos(j) nodofinal=Rutas(nodoinicial,j); if (Nodosrestringido(nodofinal)==1)&(Nodosrestringido (nodoinicial)==1) longitudtrozodentro=longitudtro zodentro+Distancia(nodoinicial,nodofinal); end nodoinicial=nodofinal; end LongitudDentro(i,j)=longitudtrozodentro ; %Si el nodo "i" pertenece a la ZR y el nodo "j" NO pertenece a la ZR elseif (Nodosrestringido(Indicesdestinos(i))==1)&(Nodosre stringido(Indicesdestinos(j))==0) longitudtrozodentro=0; nodoinicial=Indicesdestinos(i); while nodoinicial~=Indicesdestinos(j) nodofinal=Rutas(nodoinicial,j); if (Nodosrestringido(nodoinicial)==1) longitudtrozodentro=longitudtro zodentro+Distancia(nodoinicial,nodofinal); end

Page 131: PFC- Rafael Grosso de la Vegabibing.us.es/proyectos/abreproy/4794/descargar... · temporales: se suele imponer un horario de acceso a los centros urbanos. Incluso esta imposición

CÁLCULO DE RUTAS DE VEHÍCULOS DE REPARTO EN UNA CIUDAD CON VENTANAS TEMPORALES DE ACCESO.

131 Rafael Grosso de la Vega

nodoinicial=nodofinal; end LongitudDentro(i,j)=longitudtrozodentro ; end end end