Proyecto Fin de Carrera Ingeniería...

86
OPTIMIZACIÓN DE RUTAS EN VEIASA 1 Proyecto Fin de Carrera Ingeniería Industrial Autora: Macarena González Gutiérrez Tutor: D. Ignacio Eguía Salinas Dpto. Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2014 Desarrollo de una herramienta de optimización de rutas para la empresa Verificaciones Industriales de Andalucía (VEIASA)

Transcript of Proyecto Fin de Carrera Ingeniería...

OPTIMIZACIÓN DE RUTAS EN VEIASA 1

Proyecto Fin de Carrera Ingeniería Industrial

Autora: Macarena González Gutiérrez

Tutor: D. Ignacio Eguía Salinas

Dpto. Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Desarrollo de una herramienta de optimización de rutas para la empresa Verificaciones Industriales de Andalucía (VEIASA)

OPTIMIZACIÓN DE RUTAS EN VEIASA 2

Proyecto Fin de Carrera Ingeniería Industrial

Desarrollo de una herramienta de optimización de rutas para la empresa Verificaciones Industriales

de Andalucía (VEIASA)

Autora:

Macarena González Gutiérrez

Tutor:

D. Ignacio Eguía Salinas

Profesor Titular

Dpto. Organización Industrial y Gestión de Empresas I

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

OPTIMIZACIÓN DE RUTAS EN VEIASA 3

Índice

Índice ................................................................................................................ 3

Índice de Figuras ............................................................................................. 5

1. INTRODUCCIÓN Y OBJETIVOS .............................................................. 7

1.1. Introducción ............................................................................................................ 7

1.2. Objetivos ................................................................................................................. 9

1.3. Estructura del documento ....................................................................................... 9

2. REVISIÓN DE LA LITERATURA ............................................................ 11

2.1. Introducción al problema del diseño de rutas ....................................................... 11

2.2. Características del problema VRP ........................................................................ 12

2.3. Variantes y extensiones del VRP ......................................................................... 13

2.4. Métodos de resolución del VRP ........................................................................... 16

3. DEFINICION DEL PROBLEMA EN VEIASA .......................................... 25

3.1. Introducción al problema del diseño de rutas en VEIASA .................................... 25

3.2. Descripción de la empresa VEIASA ..................................................................... 25

3.3. Problemática del diseño de rutas en VEIASA ...................................................... 29

3.4. Estudio de soluciones comerciales para el diseño de rutas ................................. 37 3.4.1. LogisPlan 37

3.4.2. Involve 40

3.4.3. Ventajas e inconvenientes 42

4. METODOLOGÍAS PROPUESTAS PARA VEIASA ................................ 43

4.1. Introducción .......................................................................................................... 43

4.2. Modelo de optimización del problema .................................................................. 43 4.2.1. Uso de modelos de programación matemática 43

4.2.2. Modelo de programación lineal mixta-entera 44

4.2.3. Limitaciones de los modelos de optimización 49

4.3. Resolución aproximada mediante Clúster y Enrutado .......................................... 51 4.3.1. Introducción al método. 51

OPTIMIZACIÓN DE RUTAS EN VEIASA 4

4.3.2. Selección del clúster de clientes. 52

4.3.3. Resolución basada en Google Maps Engine Lite & RouteXL. 53

4.3.4. Resolución e integración de la solución usando Microsoft MapPoint. 56

5. APLICACIÓN PRÁCTICA PARA VEIASA EN SEVILLA ....................... 59

5.1. Introducción .......................................................................................................... 59

5.2. Preparación de los servicios ................................................................................. 59

5.3. Diseño de las rutas de servicios ........................................................................... 61

6. ANÁLISIS DE RESULTADOS ................................................................ 71

7. CONCLUSIONES .................................................................................... 72

8. BIBLIOGRAFÍA ....................................................................................... 73

9. ANEXOS .................................................................................................. 74

9.1. Datos de VEIASA ................................................................................................. 74 9.1.1. Grupo de Verificaciones 74

9.1.2. Tipos de Verificación 74

9.1.3. Patrones 74

9.1.4. Descripción de patrones 74

9.1.5. Verificación – Patrón 80

9.2. Códigos Fuente (VBA en Excel) ........................................................................... 80 9.2.1. Hoja basada en GMEL & RouteXL 80

9.2.2. Hoja basada en Microsoft MapPoint 85

OPTIMIZACIÓN DE RUTAS EN VEIASA 5

Índice de Figuras

FIGURA 1. RED DE LABORATORIOS DE VEIASA ........................................................................................................... 7 FIGURA 2. REPRESENTACIÓN GRÁFICA DEL PROBLEMA VRP ......................................................................................... 11 FIGURA 3. VARIANTES DEL PROBLEMA VRP ............................................................................................................. 14 FIGURA 4. PROBLEMÁTICA ASOCIADA A LAS VARIANTES DEL VRP ................................................................................. 14 FIGURA 5. REPRESENTACIÓN DEL VRPTW ............................................................................................................... 16 FIGURA 6. PSEUDOCÓDIGO DEL RECOCIDO SIMULADO ............................................................................................... 20 FIGURA 7. PSEUDOCÓDIGO DEL ALGORITMO GENÉTICO ............................................................................................. 20 FIGURA 8. PSEUDOCÓDIGO DE LA BÚSQUEDA TABÚ SIMPLE ........................................................................................ 21 FIGURA 9. ESQUEMA DE FUNCIONAMIENTO DEL AMP ............................................................................................... 22 FIGURA 10. PSEUDOCÓDIGO DE LA CONSTRUCCIÓN DEL GRASP ................................................................................... 22 FIGURA 11. EVOLUCIÓN DE LOS MÉTODOS APROXIMADOS PARA EL VRP .......................................................................... 23 FIGURA 12. ESTACIONES FIJAS DE ITV EN 2012 .......................................................................................................... 26 FIGURA 13. DATOS DE PRIMERAS INSPECCIONES EN ITV 2012 ...................................................................................... 27 FIGURA 14. LABORATORIOS DE CONTROL METROLÓGICO DE VEIASA EN 2012 ............................................................... 27 FIGURA 15. TABLAS DE ESTADÍSTICAS DEL LABORATORIO CENTRAL DE VEIASA ................................................................. 28 FIGURA 16. TABLAS DE ESTADÍSTICAS DE LABORATORIOS PROVINCIALES DE VEIASA.......................................................... 29 FIGURA 17. ESQUEMA DEL PROCESO DE DISEÑO DE RUTAS EN VEIASA ........................................................................... 30 FIGURA 18. LOGISPLAN. INFORMACIÓN DE CLIENTES ................................................................................................... 38 FIGURA 19. LOGISPLAN. INFORMACIÓN DE RECURSOS ................................................................................................. 38 FIGURA 20. LOGISPLAN. SELECCIÓN DE FECHA DE PLANIFICACIÓN .................................................................................. 38 FIGURA 21. LOGISPLAN. MAPA E INFORMACIÓN DE RUTAS CALCULADAS ......................................................................... 39 FIGURA 22. LOGISPLAN. PARÁMETROS DE PLANIFICACIÓN ............................................................................................ 39 FIGURA 23. LOGISPLAN. RESUMEN DE LA SOLUCIÓN CALCULADA ................................................................................... 40 FIGURA 24. INVOLVE. INFORMACIÓN DE CLIENTES ....................................................................................................... 41 FIGURA 25. INVOLVE. INFORMACIÓN DE VENDEDORES ................................................................................................. 41 FIGURA 26. INVOLVE. REPRESENTACIÓN DE LA RUTA CALCULADA ................................................................................... 42 FIGURA 27. CÓDIGO FUENTE CPLEX PARA TSP .......................................................................................................... 50 FIGURA 28. FICHERO DE DATOS CPLEX PARA TSP ...................................................................................................... 51 FIGURA 29. MENÚ INCRUSTADO EN EXCEL PARA MACROS DESARROLLADAS ...................................................................... 52 FIGURA 30. SOLICITUDES ADMITIDAS Y ORDENADAS EN EXCEL ....................................................................................... 53 FIGURA 31. SELECCIÓN DE ARCHIVO PARA IMPORTAR EN GMEL .................................................................................... 54 FIGURA 32. VISUALIZACIÓN DE CLIENTES EN GOOGLE MAPS ENGINE LITE ........................................................................ 55 FIGURA 33. PÁGINA PRINCIPAL DE ROUTEXL .............................................................................................................. 55 FIGURA 34. VISUALIZACIÓN DE RUTA EN ROUTEXL ...................................................................................................... 56 FIGURA 35. VISUALIZACIÓN DE RUTA CREADA EN MAPPOINT ........................................................................................ 57 FIGURA 36. PARAMETRIZACIÓN DE RUTA EN MAPPOINT .............................................................................................. 58 FIGURA 37. COMPROBACIÓN DIRECCIONES CORRECTAS EN MAPPOINT ........................................................................... 58 FIGURA 38. FICHERO DE ENTRADA DE DATOS DE SERVICIOS PROCEDENTES DE ERP DE VEIASA ............................................ 59 FIGURA 39. IMPORTACIÓN DE DATOS DE SERVICIOS A CLIENTES EN EXCEL PARA VEIASA ..................................................... 60 FIGURA 40. DATOS CON TIEMPOS DE SERVICIOS A CLIENTES EN EXCEL PARA VEIASA ......................................................... 60 FIGURA 41. FILTRO DE SERVICIOS DE HIDROCARBUROS EN EXCEL PARA VEIASA ............................................................... 61 FIGURA 42. LOCALIZACIÓN DE CLIENTES CON SERVICIOS DE HIDROCARBUROS PARA VEIASA ............................................... 61

OPTIMIZACIÓN DE RUTAS EN VEIASA 6

FIGURA 43. PLANIFICACIÓN DE JORNADAS CON SERVICIOS DE HIDROCARBUROS PARA VEIASA ............................................ 62 FIGURA 44. LOCALIZACIÓN DE CLIENTES CON SERVICIOS DE MASAS PARA VEIASA ............................................................. 63 FIGURA 45. MAPA CON DISEÑO DE RUTA PARA SERVICIOS DE MASAS PARA VEIASA .......................................................... 63 FIGURA 46. PLANIFICACIÓN DE JORNADAS CON SERVICIOS DE MASAS PARA VEIASA ......................................................... 64 FIGURA 47. RUTAS CON SERVICIOS DE MASAS PARA VEIASA ........................................................................................ 65 FIGURA 48. LOCALIZACIÓN DE CLIENTES CON SERVICIOS DE GASES PARA VEIASA .............................................................. 66 FIGURA 49. PLANIFICACIÓN DE JORNADAS CON SERVICIOS DE GASES PARA VEIASA ........................................................... 66 FIGURA 50. RUTAS CON SERVICIOS DE GASES PARA VEIASA ......................................................................................... 67 FIGURA 51. LOCALIZACIÓN DE CLIENTES CON SERVICIOS DE VOLUMEN PARA VEIASA......................................................... 68 FIGURA 52. PLANIFICACIÓN DE JORNADAS CON SERVICIOS DE VOLUMEN PARA VEIASA ..................................................... 68 FIGURA 53. LOCALIZACIÓN DE CLIENTES CON SERVICIOS DE PRESIÓN PARA VEIASA ........................................................... 68 FIGURA 54. PLANIFICACIÓN DE JORNADAS CON SERVICIOS DE PRESIÓN PARA VEIASA ........................................................ 69 FIGURA 55. RUTAS CON SERVICIOS DE PRESIÓN PARA VEIASA ...................................................................................... 70

OPTIMIZACIÓN DE RUTAS EN VEIASA 7

1. INTRODUCCIÓN Y OBJETIVOS

1.1. Introducción

Verificaciones Industriales de Andalucía, S. A. (VEIASA) es una empresa que se encarga del Control

Metrológico de equipos de medida y de las Inspecciones Técnicas de Vehículos (ITV).

VEIASA cuenta con ocho laboratorios provinciales de control metrológico y un laboratorio central en

Sevilla, unidades móviles ligeras y camiones para la verificación de básculas de gran tonelaje (Figura

1).

Figura 1. Red de laboratorios de VEIASA

A VEIASA llegan diariamente servicios de control metrológico (verificaciones) para ser realizados en

la ubicación del cliente o en el laboratorio provincial. Para efectuar el control metrológico en las

ubicaciones de los clientes, los laboratorios provinciales disponen de una flota de vehículos

(furgonetas) que se dedican a prestar el servicio en la ubicación del cliente. Esta flota es fija, aunque

varía en cuanto a cantidad según la provincia. Hay dos tipos de furgonetas:

1. Normales (estándar).

2. Especiales: con una instalación de tuberías especial para analizadores de gases y

opacímetros.

También se requiere del personal adecuado para el servicio. Este personal lo conforman los

verificadores, personas cualificadas adecuadamente para cada tipo de petición. El tiempo en ruta de

cada verificador no debe superar el horario de su jornada de trabajo. El verificador partirá del

laboratorio (origen) con un vehículo, realizará una serie de verificaciones o calibraciones y retornará

al laboratorio, todo ello antes de que se haya consumado el número de horas que debe trabajar cada

uno.

Hay diferentes tipos de turnos (según una planificación previa del personal), y los verificadores van

rotando en ellos. Éstos son:

OPTIMIZACIÓN DE RUTAS EN VEIASA 8

- Turno Mañana: De [7:45 – 15:15] (en verano es el mismo horario).

- Turno Tarde: De [9:00 – 14:00] y de [16:00 – 18:00]

Es necesario también prever un número de horas semanales a dedicar a tareas administrativas

(rellenar informes…).

Los verificadores usan diferentes equipos (patrones) según la tipología del servicio a realizar (tipo de

verificación). Estos patrones son elementos físicos que sirven de referencia para las medidas a

realizar en las verificaciones. Cada servicio debe ser realizado usando un patrón concreto. Los

patrones son cargados en los vehículos, pudiéndose cargar más de un patrón por vehículo. Sin

embargo no todas las combinaciones de patrones son posibles, ya que existen patrones voluminosos

que no pueden ser cargados con otros, ni la capacidad de carga de los vehículos es ilimitada.

También existe una restricción en cuanto al número de patrones disponibles, ya que cada laboratorio

dispone de una serie de patrones de cada tipo. Finalmente, cada verificador está especializado en la

realización de un conjunto de tipos de verificaciones.

También se contempla la planificación de algunas prestaciones de servicios que pueden realizarse en

el laboratorio central de VEIASA. En esta forma de proceder, los clientes depositan su aparato y se

trata de igual manera que en el caso anterior, exceptuando que no conlleva ruta externa ni vehículo.

Las peticiones de los clientes se almacenan en una base de datos, donde se guarda su tipo de

verificación y el lugar a realizarla. Cada día, el número potencial de servicios a atender por los

vehículos supera con creces su capacidad, es decir, si se intentasen atender todos los servicios

encolados, no sería suficiente con un día de trabajo.

Cada día, a cada vehículo se le asignan unos patrones y un verificador, seleccionando una ruta

acorde con los mismos.

Los tipos de verificaciones o servicios que pueden desarrollarse así son:

Sistemas de medida en camiones cisterna

Registradores de temperatura y termómetros

Opacímetros

Manómetros de inflado de neumáticos

Instrumentos de pesaje de funcionamiento no automático < 60 Kg

Instrumentos de pesaje de funcionamiento no automático entre 60 Kg y 500 Kg

Instrumentos de pesaje de funcionamiento no automático > 500 Kg

Equipos de medida de aparatos surtidores

Analizadores de Gases

Masas

Las distintas prestaciones de servicio a realizar cubren toda la zona geográfica de Andalucía. Cada

provincia cuenta con un laboratorio provincial de donde partirán los verificadores de cada zona y a

donde retornarán después de terminar con su ruta. Málaga y Cádiz cuentan con servicios comarcales,

OPTIMIZACIÓN DE RUTAS EN VEIASA 9

desde donde se efectúan rutas ya que no cuentan con laboratorios (éstos son Marbella, Jerez y

Algeciras). Esto implica, que desde el punto de vista de distribución, las rutas están establecidas por

zonas geográficas y días de la semana.

1.2. Objetivos

La motivación principal de este trabajo radica en los siguientes objetivos:

• Revisión del estado del arte del problema de diseño de rutas, conocido como Vehicle

Routing Problem (VRP). En concreto, se analizará el problema general y sus variantes, así

como una clasificación de los métodos de resolución.

• Análisis de la problemática para el diseño de rutas de verificación en la empresa VEIASA.

Este análisis incluye los requisitos del cliente respecto a la necesidad de una herramienta que

diseñe las rutas y que cumpla las limitaciones de recursos existentes.

• Analizar la información disponible en VEIASA para abordar el problema: listado de los

pedidos, datos de los clientes (demanda, ubicación, tipo de verificación), listado de patrones

disponibles, incompatibilidades, etc.

• Estudio de soluciones comerciales para el diseño de rutas. Como resultado se analizan las

limitaciones de las herramientas existentes para cumplir con los requisitos del cliente.

• Diseño de un modelo de programación lineal para el cálculo de rutas de verificación en

VEIASA y que cumpla con todas las limitaciones de recursos del problema. Se analiza

también la dificultad de su resolución de forma óptima para ser integrada en una herramienta

real.

• Desarrollo de un método de resolución del problema de diseño de rutas de verificación en

VEIASA basado en la integración de varias herramientas comerciales y usando una solución

aproximada basada en “primero agrupar los clientes y después calcular las rutas” (First

Cluster-Route Second Method).

• Aplicación de la metodología a un caso real de VEIASA en la provincia de Sevilla.

1.3. Estructura del documento

El documento está dividido en siete capítulos.

En el primer capítulo se ha expuesto la problemática actual de la empresa y el por qué se decide

abordarlo. Se emplea mucho tiempo y esfuerzo semanal en dicha tarea, y por ello se intenta mejorar

con alguna solución de apoyo a la toma de decisiones.

En el segundo capítulo se expone brevemente la literatura que existe respecto al diseño de rutas. A

pesar de ser un problema conocido, estos problemas son de difícil resolución por su complejidad

matemática.

OPTIMIZACIÓN DE RUTAS EN VEIASA 10

El tercer capítulo profundiza en todas las cuestiones particularizadas de la empresa objeto de estudio:

VEIASA. Se describen todos los aspectos a tener en cuenta en el problema (restricciones,

prestaciones de servicio, horarios, turnos).

También se abordan las soluciones comerciales más apropiadas para este caso. Se ha contactado

con varias empresas, y finalmente se exponen en este documento dos soluciones comerciales como

posibles candidatas a resolver el problema planteado. Se analizan las limitaciones de estas

soluciones y se expone la necesidad de buscar una solución específica.

En el cuarto capítulo se analiza el modelo matemático, y se expone una metodología propia para la

resolución parcial del problema a medida usando VBA incrustada en Excel y varias herramientas de

mercado como Google Maps Engine Lite, RouteXL o MapPoint.

En el capítulo quinto se aplica la metodología en la resolución de un caso práctico real para la

provincia de Sevilla de una planificación semanal.

En el capítulo sexto se analizan los distintos resultados según las opciones contempladas.

En el séptimo capítulo se resume toda la metodología usada, ideas, argumentos y se aprecia el área

de mejora posible a desarrollar por VEIASA para optimizar el problema.

OPTIMIZACIÓN DE RUTAS EN VEIASA 11

2. REVISIÓN DE LA LITERATURA

2.1. Introducción al problema del diseño de rutas

El problema del diseño de rutas de transporte (Vehicle Routing Problem, VRP) es un nombre genérico

aplicado a una clase de problemas en los que debe determinarse un conjunto de rutas para una flota

de vehículos que parten de uno o más depósitos o almacenes para satisfacer la demanda de varios

clientes dispersos geográficamente (Figura 2). El objetivo es entregar la demanda a dichos clientes

minimizando el coste total que se incurre en las rutas.

El VRP es un problema muy conocido que cae dentro de la denominada clase de problemas NP-

Completa. Esto significa que el esfuerzo de computación que se ha de realizar para encontrar una

solución óptima crece de forma exponencial con el tamaño del problema. Por este motivo se recurre

al empleo de métodos aproximados de manera que se pueda encontrar soluciones suficientemente

buenas en un tiempo de computación razonable.

El VRP aparece de forma natural en áreas como transporte, distribución y logística. En muchos

sectores del mercado, el transporte implica un gran coste que se imputa a los productos que se

distribuyen y, además, el mismo transporte del producto puede suponer un valor añadido. La

utilización de métodos de computación para calcular las rutas óptimas o cercanas a las óptimas

puede suponer unos ahorros de costes importantes (del orden del 5% al 20%).

Figura 2. Representación gráfica del problema VRP

OPTIMIZACIÓN DE RUTAS EN VEIASA 12

2.2. Características del problema VRP

A grandes rasgos un Problema de diseño de rutas de vehículos (VRP) consiste en, dado un conjunto

de clientes y depósitos dispersos geográficamente y una flota de vehículos, determinar un conjunto

de rutas de costo mínimo que comiencen y terminen en los depósitos, para que los vehículos visiten a

los clientes (Toth and Vigo (2002)).

El VRP procede como extensión de los tradicionales Problemas del viajante de negocios (TSP,

Travelling Salesman Problem), donde se dispone de un solo vehículo que debe visitar a todos los

clientes en una sola ruta y a costo mínimo. No suele haber un depósito (y si lo hubiera no se distingue

de los clientes), no hay demanda asociada a los clientes y tampoco hay restricciones temporales ni

de capacidad del vehículo. Aunque el TSP es un problema más simple que el VRP también está

clasificado como problema de clase NP-Completa. Como extensión del problema TSP, existe el

problema m-TSP (multiple - Travelling Salesman Problem), donde se tiene un depósito y m vehículos

con el objetivo de construir exactamente m rutas, una para cada vehículo, de modo que cada cliente

sea visitado una vez por uno de los vehículos. Cada ruta debe comenzar y finalizar en el depósito y a

veces la ruta se puede limitar a p clientes.

Las VRP se caracterizan por tres elementos fundamentales: los clientes, los depósitos y los vehículos,

así como diferentes restricciones operativas sobre las rutas. Las propiedades de dichos elementos

dan lugar a diferentes variantes del problema que luego se analizarán.

Los clientes

Cada cliente tiene cierta demanda que deberá ser satisfecha por algún vehículo. En muchos casos, la

demanda es un bien que ocupa lugar en los vehículos y es usual que un mismo vehículo no pueda

satisfacer la demanda de todos los clientes en una misma ruta. Un caso equivalente al anterior ocurre

cuando los clientes son proveedores y lo que se desea es recoger la mercadería y transportarla hacia

el depósito. También podría ocurrir que la mercadería deba ser transportada a los clientes pero no

esté inicialmente en el depósito, sino distribuida en ciertos sitios proveedores. En este caso, los

proveedores deben ser visitados antes que los clientes.

En otros casos la demanda no es un bien sino un servicio: el cliente simplemente debe ser visitado

por el vehículo. Un mismo vehículo podría, potencialmente, visitar a todos los clientes. En otra

variante del problema, cada cliente tiene una ubicación y desea ser transportado hacia otro sitio. Aquí

la capacidad del vehículo impone una cota sobre la cantidad de clientes que puede alojar

simultáneamente.

Es usual que cada cliente deba ser visitado exactamente una vez. Sin embargo, en ciertos casos se

acepta que la demanda de un cliente sea satisfecha en momentos diferentes y por vehículos

diferentes.

Los clientes podrían tener restricciones relativas su horario de servicio. Usualmente estas

restricciones se expresan en forma de intervalos de tiempo (llamados ventanas de tiempo) en los que

se debe llegar al cliente.

En problemas con varios vehículos diferentes podrían existir restricciones de compatibilidad entre

éstos y los clientes. En estos casos, cada cliente sólo puede ser visitado por algunos de los vehículos

(por ejemplo, algunos vehículos muy pesados no pueden ingresar en ciertas localidades).

OPTIMIZACIÓN DE RUTAS EN VEIASA 13

Los depósitos

Tanto los vehículos como las mercaderías a distribuir (si las hubiera) suelen estar ubicadas en

depósitos. Usualmente se exige que cada ruta comience y finalice en un mismo depósito, aunque

este podría no ser el caso en algunas aplicaciones (por ejemplo, podría ser que el viaje debiera

finalizar en el domicilio del conductor del vehículo).

En los problemas con múltiples depósitos cada uno de estos tiene diferentes características, por

ejemplo, su ubicación y capacidad máxima de producción. Podría ocurrir que cada depósito tenga

una flota de vehículos asignada a priori o que dicha asignación sea parte de lo que se desea

determinar.

Los depósitos, al igual que los clientes, podrían tener ventanas de tiempo asociadas. En algunos

casos debe considerarse el tiempo necesario para cargar o preparar un vehículo antes de que

comience su ruta, o el tiempo invertido en su limpieza al regresar. Incluso, por limitaciones de los

propios depósitos, podría querer evitarse que demasiados vehículos estén operando en un mismo

depósito a la vez (es decir, la congestión del depósito).

Los vehículos

La capacidad de un vehículo podría tener varias dimensiones, como por ejemplo peso y volumen.

Cuando en un mismo problema existen diferentes tipos de producto, los vehículos podrían tener

compartimentos, de modo que la capacidad del vehículo dependa del tipo de producto de que se trate.

En general, cada vehículo tiene asociado un costo fijo en el que se incurre al utilizarlo y un costo

variable proporcional a la distancia que recorra.

Los problemas en que los atributos (capacidad, costo, etc.) son los mismos para todos los vehículos

se denominan de flota homogénea, y, si hay diferencias, de flota heterogénea. La cantidad de

vehículos disponibles podría ser un dato de entrada o una variable de decisión. El objetivo más usual

suele ser utilizar la menor cantidad de vehículos y minimizar la distancia recorrida ocupa un segundo

lugar.

Regulaciones legales podrían imponer restricciones sobre el tiempo máximo que un vehículo puede

estar en circulación e incluso prohibir el pasaje de ciertos vehículos por ciertas zonas. En algunos

casos se desea que la cantidad de trabajo realizado por los vehículos (usualmente el tiempo de viaje)

no sea muy dispar.

En general se asume que cada vehículo recorre una sola ruta en el período de planificación, pero

últimamente se han estudiado modelos en los que un mismo vehículo puede recorrer más de una ruta.

2.3. Variantes y extensiones del VRP

En los problemas VRP reales aparecen muchas restricciones y características propias de la flota,

dando lugar a las variantes y extensiones del VRP (Figura 3). Cada variante lleva asociada una

problemática diferente y requiere una resolución específica (Figura 4).

OPTIMIZACIÓN DE RUTAS EN VEIASA 14

Figura 3. Variantes del problema VRP

Figura 4. Problemática asociada a las variantes del VRP

Entre las variantes más ampliamente estudiadas en la literatura se puede citar las siguientes:

VRP con capacidad limitada (CVRP)

El VRP es una extensión del m-TSP en la cual cada cliente tiene asociada una demanda di y cada

vehículo tiene una misma capacidad C (la flota es homogénea). En este problema la cantidad de

rutas no es fijada de antemano como en el TSP y en el m-TSP. En algunos casos se agrega a este

problema la restricción de que ninguna ruta puede tener largo mayor que cierta cota L. Cada vehículo,

además, puede recorrer a lo sumo una ruta. Se asume en la mayoría de los casos que m es una

variable de decisión que no tiene cota superior, es decir, la disponibilidad de los vehículos es ilimitada.

VRP con múltiples depósitos (MDVRP)

Una empresa puede disponer de varios depósitos o almacenes desde los que suministra la demanda

a sus clientes. Si los clientes están agrupados alrededor de los depósitos, entonces el problema

puede verse como un conjunto de problemas independientes VRP. Pero si los clientes y los depósitos

están mezclados, entonces se ha de resolver un problema MDVRP.

Para resolver un problema MDVRP se necesita asignar los clientes a los depósitos. Para cada

depósito se tiene una flota de vehículos. Cada vehículo que parte de un depósito, sirve a los clientes

asignados a ese depósito y después regresa a dicho depósito. El objetivo del problema es servir a

todos los clientes minimizando el número de vehículos y la distancia total viajada.

OPTIMIZACIÓN DE RUTAS EN VEIASA 15

VRP periódico (PVRP):

En el problema VRP clásico, el periodo de planificación es un día. En el caso del problema PVRP, el

periodo de planificación se extiende a M días.

El objetivo es minimizar la flota de vehículos y el tiempo total de viaje. Un vehículo puede o no

regresar al depósito el mismo día de su partida. Durante el periodo de M días, cada cliente debe ser

visitado al menos una vez.

VRP de entrega dividida (SDVRP):

Se trata de un problema VRP en el que se permite que un cliente pueda ser atendido por varios

vehículos si el coste total se reduce. Esto es importante si el tamaño de los pedidos de un cliente

excede la capacidad de un vehículo.

El objetivo es minimizar la flota de vehículos y el tiempo total de viaje.

VRP estocástico (SVRP):

Se trata de un VRP en que uno o varios componentes son aleatorios. Por ejemplo:

- Clientes aleatorios. Un cliente aleatorio i, es un cliente que tiene una probabilidad pi de estar

presente y una probabilidad (1-pi) de estar ausente.

- Demandas estocásticas: La demanda del cliente i, di, tiene una determinada distribución de

probabilidad.

- Tiempos estocásticos: el tiempo de servicio, ti, y los tiempos de viaje tij, son variables

aleatorias.

Cuando algunos datos son aleatorios es posible que tras una decisión inicial y una aleatoriedad

posterior, no sea posible cumplir con todas las restricciones si se establece una única secuencia. Por

tanto se puede llevar a cabo ciertas acciones correctivas cuando una restricción es violada, según

sea la realización de la variable aleatoria.

VRP con recogidas y entregas (VRPPD):

Es un VRP en que cabe la posibilidad de que los clientes pueden devolver determinados bienes. Por

tanto, se debe tener presente que los bienes devueltos por los clientes han de caber en el vehículo.

Esta restricción hace más difícil el problema de planificación y puede obligar a una mala utilización de

las capacidades de los vehículos, un aumento de las distancias recorridas o a un mayor número de

vehículos.

Por todo lo dicho, se suelen considerar situaciones tales como que las entregas comienzan en un

depósito y las recogidas se traen a la vuelta al depósito, de manera que no hay intercambio de bienes

entre clientes. Otra alternativa es relajar la restricción de que todos los clientes deben ser visitados

exactamente una vez.

OPTIMIZACIÓN DE RUTAS EN VEIASA 16

El objetivo es minimizar la flota de vehículos y el tiempo total de recorrido con la restricción de que el

vehículo debe tener suficiente capacidad para transportar los bienes a entregar así como los

recogidos para devolverlos al depósito.

VRP con backhauls (VRPB):

El VRPB es un caso particular del VRPPD en que los clientes pueden demandar o devolver artículos,

donde además se debe cumplir que todas las entregas se realicen antes de las recogidas. Esto se

debe al hecho de que los vehículos se cargan por la parte trasera y que la recolocación de la carga

en los vehículos se considera antieconómica o no factible. Las cantidades demandadas y las

recogidas se conocen de antemano.

El objetivo es encontrar un conjunto de rutas que minimice la distancia total recorrida.

VRP con ventanas de tiempo (VRPTW):

Es un VRP con la restricción adicional de que se asocia una ventana de tiempo a cada cliente (Figura

5). Al cliente i, se le asocia la ventana de tiempo [ei,li]. Si un vehículo llega al cliente antes del instante

ei el vehículo espera hasta ese instante para atender al cliente. Si llega en el intervalo de la ventana

de tiempo, el vehículo suministra la demanda en el momento de la llegada; y, finalmente, si el

vehículo llega con posterioridad a li entonces el cliente queda sin atender.

Figura 5. Representación del VRPTW

El objetivo general es minimizar la flota de vehículos, el tiempo total de viaje, así como el tiempo total

de espera al suministro de los clientes.

2.4. Métodos de resolución del VRP

Las técnicas de resolución del VRP más comunes son casi todos heurísticos o metaheurísticos

porque los métodos exactos de resolución no garantizan encontrar la solución óptima en un tiempo

razonable de computación cuando el número de clientes es grande.

OPTIMIZACIÓN DE RUTAS EN VEIASA 17

Las técnicas de resolución se clasifican así:

Optimización o técnicas exactas: Son métodos que garantizan encontrar una solución óptima. A

su vez se clasifican en:

o Ramificación y acotamiento.

o Ramificación y corte.

Heurísticos:

Deriva del griego heuriskein, que significa “encontrar” o “descubrir”. Realizan una exploración

limitada en el espacio de soluciones. Producen soluciones razonablemente buenas con tiempos

de computación modestos. Una buena definición podría ser: “un método heurístico es un

procedimiento para resolver un problema de optimización bien definido mediante una

aproximación intuitiva, en la que la estructura del problema se utiliza de forma inteligente para

obtener una buena solución”.

En general resultan interesantes cuando no existan métodos exactos para el problema

considerado; en caso de que los métodos exactos sean ineficaces en términos de tiempo, se

pueden utilizar como paso previo para obtener una solución suficientemente buena y a partir de

ella encontrar otras soluciones mejores con otros métodos.

Los métodos heurísticos se clasifican en:

o Métodos de construcción: Construyen de forma gradual una solución factible a la vez

que tratan de minimizar el coste, pero de por sí no tienen una fase de mejora. Entre estos

se encuentran:

▪ Método de los ahorros (Clarke and Wright (1964)): Es uno de los métodos más conocidos y básicamente la mecánica de este modelo es que si en una solución de dos rutas diferentes pueden ser combinadas formando una nueva ruta, el ahorro obtenido en distancia por dicha unión es la nueva solución. En este algoritmo se parte de una solución inicial donde se asume que cada cliente es visitado por un vehículo y se realizan las uniones de rutas que den mayores ahorros siempre que no violen las restricciones del problema.

Este método ha permanecido a través de los años por ser lo suficientemente flexible como para manejar un amplio rango de restricciones prácticas, siendo relativamente rápido de calcular en un ordenador para problemas con número moderado de paradas y capaz de generar soluciones que están cerca de lo óptimo. Las comparaciones con los resultados óptimos de problemas pequeños, con un número limitado de restricciones, han mostrado que la valoración del método "de ahorros" genera soluciones que están, en promedio, a un 2% del óptimo. El método puede manejar muchas restricciones prácticas, principalmente porque es capaz de formar rutas y ordenar paradas en las rutas simultáneamente.

El objetivo del método de ahorros es minimizar la distancia total viajada por todos los vehículos y minimizar indirectamente el número de vehículos necesarios para atender todas las paradas.

Existe una versión paralela en la que se trabaja sobre todas las rutas simultáneamente y otra secuencial que construye las rutas de una por vez. Las

OPTIMIZACIÓN DE RUTAS EN VEIASA 18

soluciones obtenidas con el algoritmo de ahorros pueden, en general, ser mejoradas mediante operadores de búsqueda local como:

▪ Método de emparejamientos ▪ Heurístico de mejora de multi-rutas.

o Algoritmo de 2 fases: el problema se descompone en sus dos componentes naturales:

▪ Agrupamiento de vehículos en rutas factibles.

▪ Construcción de la ruta.

A su vez, dependiendo del orden en que se efectúan las dos tareas anteriores, se tienen:

▪ Algoritmos de agrupamiento primero y enrutamiento después (cluster first –route second).

Lo que busca este método es generar grupos de cliente (clusters) que estarán en una misma ruta en la solución final y luego, para cada cluster crear una ruta que visite a todos sus clientes. En la primera etapa se tiene en cuenta la restricción de capacidad de cada vehículo, asegurando que la demanda total de cada cluster pueda ser atendida por un vehículo específico.

▪ Algoritmos de enrutamiento primero y agrupamiento después.

Es el algoritmo inverso al anterior, de forma que primero se forma una única ruta y luego se va dividiendo en grupos de cliente (clusters) teniendo en cuenta la restricción de capacidad de cada vehículo, asegurando que la demanda total de cada cluster pueda ser atendida por un vehículo específico.

Metaheurísticos:

Heurística de nivel más alto. Son métodos que realizan una exploración intensiva del espacio de

soluciones. La calidad de las soluciones de estos métodos es mucho mayor que la obtenida por

los heurísticos clásicos.

Es una estrategia que guía el proceso de búsqueda, incluyendo en general heurísticas

subordinadas.

Entre ellos, podemos encontrar:

o Algoritmos de hormigas (Dorigo, Maniezzo y Colorni (1996)):

Las colonias de hormigas (Ant Colony Optimization, ACO) se basan en que en la

naturaleza varias hormigas exploran distintas direcciones del espacio de soluciones

factibles, dejando tras de sí un rastro de feromonas, que le indican a la siguiente hormiga

las direcciones más “interesantes” para ser exploradas.

Este comportamiento tiene como etapa inicial la exploración aleatoria del área cercana al

nido de la hormiga. Tan pronto como una hormiga encuentra la comida, la lleva al nido.

Mientras que realiza este camino, la hormiga va depositando una sustancia química

denominada feromona, que ayudará al resto de las hormigas a encontrar la comida. Esta

comunicación indirecta entre las hormigas mediante el rastro de feromona las capacita

para encontrar el camino más corto entre el nido y la comida. Esta funcionalidad es la que

OPTIMIZACIÓN DE RUTAS EN VEIASA 19

intenta simular este método para resolver problemas de optimización, donde el rastro de

feromona se simula mediante un modelo probabilístico.

Dichas direcciones se toman con una probabilidad proporcional al nivel de feromona

existente, en un intento por no caer en un óptimo local. Además, los niveles de feromonas

disminuyen tras cada iteración (se evapora).

o Programación restringida.

La programación con restricciones es un método ampliamente utilizado para la

descripción y resolución de problemas combinatorios particularmente difíciles, por

ejemplo en las áreas de planificación y scheduling. Es un paradigma de programación

que se basa en la especificación de un conjunto de variables, y otro conjunto de

restricciones que deben ser satisfechas por cualquier solución del problema. Estos

métodos combinan búsqueda con mecanismos de propagación de restricciones, que son

capaces de reducir en gran medida el espacio de búsqueda.

Se basan en construir una planificación trabajo por trabajo, y en cada paso se ordenan

los trabajos candidatos según la regla utilizada.

Aunque por sí solas las reglas de prioridad no suelen obtener muy buenos resultados, es

muy habitual utilizarlas en combinación con otras técnicas.

o Recocido simulado (Kirkpatrick, Gelatt and Vecchi (1983))

El nombre proviene del proceso de recocido del acero y cerámicas, una técnica que

consiste en calentar y luego enfriar lentamente el material para variar sus propiedades

físicas. El método de recocido se utiliza muy comúnmente para mejorar las cualidades

físicas de un material (así los átomos quedan en equilibrio).

La idea del SA es simular el proceso de recocido del metal y del cristal, donde para evitar

los óptimos locales, el algoritmo permite elegir una solución peor que la solución actual.

En cada iteración se elige, a partir de la solución actual s, una solución s´ del vecindario

N(s). Si s’ es mejor que s (es decir, tiene un mejor valor en la función de fitness), se

sustituye s por s’ como solución actual.

Si la solución s’ es peor, entonces se acepta con una determinada probabilidad que

depende de la temperatura actual T y de la variación en la función de fitness f (s’) - f (s)

(caso de minimización). Esta probabilidad generalmente se calcula siguiendo la

distribución de Boltzmann, que se presenta en la ecuación: ))()'(

(T

sfsfeP

−⋅=

OPTIMIZACIÓN DE RUTAS EN VEIASA 20

Figura 6. Pseudocódigo del Recocido Simulado

o Algoritmos genéticos (Holland (1975):

Es una técnica aleatoria de búsqueda global que es capaz de resolver problemas

mediante la imitación de procesos observados durante la evolución natural. Por tanto,

puede ser aplicado en un amplio rango de problemas poco definidos, los cuales no se

prestan a ser resueltos por métodos más especializados. Un algoritmo genético,

básicamente desarrolla una población representado por una cadena de dígitos (bits),

también denominada cromosomas, donde cada uno de estos cromosomas tiene

codificado una solución para un determinado problema. Esa evolución se lleva a cabo a

partir de la aplicación de unos operadores, los cuales imitan los fenómenos naturales

observados en la naturaleza (como la reproducción, mutación, etc.…).

Figura 7. Pseudocódigo del Algoritmo Genético

o Búsqueda tabú (Glover, 1989):

Se examinan secuencias de soluciones, al igual que en el recocido simulado, con la

particularidad de que el siguiente movimiento se realiza hacia el mejor vecino de la actual

solución aunque sea peor. Para impedir caer en comportamientos cíclicos, se prohíben

(se hacen tabú) las soluciones examinadas recientemente para un determinado número

de iteraciones. El mecanismo básico de búsqueda tabú puede ser mejorado

implementando estrategias de intensificación y diversificación.

OPTIMIZACIÓN DE RUTAS EN VEIASA 21

Figura 8. Pseudocódigo de la Búsqueda Tabú simple

o Tabú granular.

El problema principal de la Búsqueda Tabú es el gran tiempo computacional requerido en

la exploración de vecindarios.

Tabú granular lleva a una reducción drástica en el tiempo computacional requerido por

cada iteración del algoritmo de Búsqueda Tabú.

El objetivo es alcanzado utilizando vecindarios que pueden ser examinados en un tiempo

mucho menor al requerido en la forma tradicional pero sin afectar considerablemente la

calidad de la soluciones hayadas. El método propone generar vecindarios acotados

descartando de los vecindarios tradicionales una gran cantidad de movimientos no

prometedores y explorando sólo un subconjunto que contiene movimientos más

prometedores.

o Procedimiento de memoria adaptativa (Adaptive Memory Procedure (AMP))

Es una metaheurística que puede utilizarse en combinación con cualquier algoritmo de

búsqueda local. Consiste en utilizar una estructura de memoria para generar soluciones

iniciales sobre las que se ejecuta una heurística de búsqueda local. Las soluciones

obtenidas por dicha heurística se utilizan, a su vez, para modificar la información

almacenada en la memoria.

La idea consiste en almacenar componentes de algunas de las mejores soluciones en-

contradas por el algoritmo, en una estructura llamada memoria de largo plazo.

Periódicamente, se construye una solución en base a la información almacenada en la

memoria y se realiza una búsqueda local comenzando en dicha solución. La solución

obtenida por el algoritmo de búsqueda local se utiliza para actualizar la información

almacenada en la memoria.

OPTIMIZACIÓN DE RUTAS EN VEIASA 22

Figura 9. Esquema de funcionamiento del AMP

o GRASP (Feo and Resende (1995))

GRASP (Greedy Randomized Adaptive Search Procedure) es una metaheurística que combina

procedimientos constructivos y de búsqueda local.

GRASP es un procedimiento iterativo en dos fases:

1. Una de construcción de la solución (heurística)

2. Otra de mejora.

La construcción de la solución se caracteriza por ser dinámica y aleatoria. Los valores de la

heurística son actualizados en cada iteración.

Figura 10. Pseudocódigo de la Construcción del GRASP

Todas estas técnicas comparten algunas características:

Son “ciegas” lo que significa que a lo largo del proceso no se dispone de ninguna

información relativa a la proximidad de la solución considerada al óptimo global del problema.

Son métodos aproximados y, en caso de que se pueda hablar de optimalidad, no garantizan

la obtención de la solución óptima (o de una de ellas si existen varias).

OPTIMIZACIÓN DE RUTAS EN VEIASA 23

Aceptan ocasionalmente malos movimientos (es decir, se trata de procesos de búsqueda en

los que cada nueva solución no es necesariamente mejor -en términos de la función objetivo-

que la inmediatamente anterior).

Algunas veces aceptan, incluso, soluciones no factibles como paso intermedio para acceder a

nuevas regiones con soluciones factibles no exploradas.

Son relativamente sencillas; todo lo que se necesita es una representación adecuada del

espacio de soluciones, una solución inicial (o un conjunto de ellas) y un mecanismo para

explorar el campo de soluciones. Sin embargo, a medida que se han aplicado a problemas

específicos, se han ido desarrollando variantes menos sencillas de las técnicas originales. En

esencia se trata de realizar un elevadísimo número de iteraciones sencillas.

Son generales: prácticamente se pueden aplicar en la resolución de cualquier problema de

carácter combinatorio. Sin embargo, la técnica será más o menos eficiente en la medida en

que la representación de las soluciones sea adecuada, las operaciones que realiza el

metaheurístico tengan relación con el problema considerado y se exploten adecuadamente

sus características.

En cada iteración, la nueva solución depende de la solución de partida y de la trayectoria

seguida hasta ese momento, de forma que el proceso de búsqueda puede pasar varias veces

por la misma solución, eligiendo en cada una de las ocasiones una nueva solución distinta

A excepción del GRASP y las colonias de hormigas, todas las técnicas son de carácter

iterativo, esto es, se parte de una solución completa (o varias) a partir de la cual se obtienen

nuevas soluciones también completas. Las diferencias entre unas técnicas y otras radican en

la forma de obtener unas soluciones a partir de otras.

Figura 11. Evolución de los métodos aproximados para el VRP

OPTIMIZACIÓN DE RUTAS EN VEIASA 24

Generalmente, cuando se plantea un problema VRP, se tiende a buscar directamente métodos

heurísticos para su resolución. Pero los métodos heurísticos tienen que ser validados con un método

de optimización para comprobar que los resultados de las heurísticas son cercanos a las soluciones

óptimas. Una posibilidad que se va a plantear en este proyecto es el desarrollo de un modelo de

programación lineal capaz de resolver de forma óptima el problema planteado.

OPTIMIZACIÓN DE RUTAS EN VEIASA 25

3. DEFINICION DEL PROBLEMA EN VEIASA

3.1. Introducción al problema del diseño de rutas en VEIASA

El objetivo de este proyecto se centra en solucionar dos áreas fundamentales en VEIASA:

1. Planificar de forma más eficiente las rutas a realizar por los verificadores durante la

prestación de servicios de los laboratorios provinciales.

2. Unificar el método de diseño de las rutas. Actualmente las rutas se deciden en base a unos

criterios y objetivos, pero no hay un método único. Cada jefe de laboratorio provincial realiza

esta gestión en base a su experiencia.

En una primera instancia se analizan algunas soluciones comerciales adaptables al problema.

Después de analizarse detenidamente se desestiman debido a su gran desembolso económico y a la

poca flexibilidad que permiten en la planificación.

Por tanto, se concluye crear una solución usando la herramienta Excel integrada con macros para

ayudar en dicha planificación. Esta herramienta no proporciona la totalidad de la solución requerida

de planificación pues no calcula las rutas, pero ayuda proporcionando flexibilidad en la selección de

los clientes a visitar. Por ello, para el cálculo de cada ruta se utilizarán herramientas GIS gratuitas.

Además, al ser Excel una herramienta instalada en todos los ordenadores de la empresa y que los

jefes de laboratorio conocen, se unificarán criterios a la vez que eliminará el impacto económico de

una nueva herramienta.

Se pretende optimizar el problema semanal que tiene VEIASA en la planificación de sus rutas y

prestaciones de servicio.

La mayoría de problemas de éste tipo suelen tener una restricción fuerte (pudiendo ser límite de

capacidad en un vehículo, abastecimiento de mercancía….), mientras que éste problema tiene dos

más:

Restricciones asociadas a los Patrones: La limitación del número de patrones disponibles y la

incompatibilidad que hay entre ellos produce una dificultad añadida.

Restricciones asociadas a la Cualificación del personal: No todas las prestaciones de servicio

pueden ser realizadas por los mismos verificadores.

Esto dificulta enormemente la optimización del problema convencional.

3.2. Descripción de la empresa VEIASA

Verificaciones Industriales de Andalucía, S. A. (VEIASA) es una empresa pública, dependiente de la

Consejería de Economía, Innovación, Ciencia y Empleo de la Junta de Andalucía, fundada en 1990

con el objetivo de realizar las actuaciones de inspección y control derivadas de la aplicación de las

OPTIMIZACIÓN DE RUTAS EN VEIASA 26

distintas reglamentaciones industriales y la prestación de todo tipo de servicios que contribuyan al

desarrollo de la industria en la comunidad autónoma de Andalucía.

Sus dos ramas de actividad son la Inspección Técnica de Vehículos y el Control Metrológico de los

equipos de medida, contribuyendo con ello a la seguridad vial, a la protección del medio ambiente y a

la defensa de los consumidores.

VEIASA da cobertura a las necesidades de más de 3,6 millones de vehículos en 60 estaciones ITV

fijas en Andalucía. Además realiza servicios de control metrológico en ocho laboratorios provinciales,

un laboratorio central de referencia y cinco bases comarcales. Para acercar el servicio a aquellos

ciudadanos que poseen vehículos con limitaciones para circular (ciclomotores y vehículos agrícolas),

o que cuenten con instrumentos de medida obligados a pasar control legal, VEIASA cuenta con una

flota compuesta por 13 unidades móviles de ITV (8 para ciclomotores y 5 para vehículos agrícolas),

34 unidades móviles ligeras y 6 camiones para las verificaciones de básculas de gran tonelaje.

Figura 12. Estaciones fijas de ITV en 2012

OPTIMIZACIÓN DE RUTAS EN VEIASA 27

Como se ha comentado, las dos líneas de negocio son: la Inspección Técnica de Vehículos y el

Control Metrológico. Respecto al sector de la ITV en Andalucía, creció en 2012 un 2,56% alcanzando

2.936.715 primeras inspecciones. El mayor número de dichas primeras inspecciones (97,69%) se

realizaron en las estaciones ITV fijas, seguidas de las unidades móviles de vehículos agrícolas

(1,36%) y las unidades móviles de ciclomotores (0,95%).

Figura 13. Datos de primeras inspecciones en ITV 2012

Este proyecto se centra en la segunda línea de negocio dedicada al Control Metrológico. VEIASA

ejerce desde 1992 el control de los equipos de medida que exigen la metrología legal. El área de

metrología de VEIASA controla la comercialización y puesta en servicio de los instrumentos, aparatos,

medios y sistemas de medida para garantizar que cumplan los requisitos esenciales y específicos

establecidos por ley. Además se encargan de la verificación después de reparación o modificación y

la verificación periódica de los instrumentos de medida en servicio, en los que así esté establecido.

Figura 14. Laboratorios de Control Metrológico de VEIASA en 2012

OPTIMIZACIÓN DE RUTAS EN VEIASA 28

En las siguientes tablas se reflejan las actividades de calibración y verificación realizadas en el

laboratorio central y en los laboratorios provinciales.

Figura 15. Tablas de estadísticas del Laboratorio Central de VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 29

Figura 16. Tablas de estadísticas de Laboratorios Provinciales de VEIASA

Respecto a los trabajadores de VEIASA, se trata en su mayoría de ingenieros, ingenieros técnicos y

técnicos especialistas en automoción. La plantilla a inicios de 2013 la componían 1.264 personas.

Finalmente respecto a los resultados económicos, el importe neto de la cifra de negocios en el

ejercicio 2012 alcanzó la cantidad de 98,90 millones de euros, con un resultado después de

impuestos de 20,52 millones de euros.

3.3. Problemática del diseño de rutas en VEIASA

Dentro de la línea de negocio de Control Metrológico de VEIASA, se va a desarrollar una nueva

metodología única para el diseño de rutas de calibración y verificación en clientes.

Actualmente las rutas se planifican según la experiencia y lógica de cada jefe de laboratorio provincial,

siendo imposible determinar si es o no la más óptima. Además no hay un método único establecido

de las rutas de prestaciones de servicio, cada día puede variar en función de las tipologías de

solicitudes y en función del criterio de los jefes de laboratorio.

Las desventajas que se aprecian con este método son:

• Pérdida de tiempo de los Verificadores al no ser la ruta óptima. Exceso de tiempo de la

jornada laboral, incapacidad de cumplir con los objetivos establecidos, imposibilidad de

rehacer la ruta ante cualquier incidente (un cliente decide en el último momento que no se

realice el trabajo, una avería en la furgoneta….).

• Pérdida de tiempo de los Jefes de Laboratorio en la planificación diaria. La planificación se

realiza a una semana vista, ocupando aproximadamente 5 horas semanales para dicha

planificación.

OPTIMIZACIÓN DE RUTAS EN VEIASA 30

Definimos a continuación los requisitos y características para cada prestación de servicio realizada,

es decir, todo la información necesaria para completarla satisfactoriamente.

La siguiente figura muestra un esquema del proceso, con parte de la información requerida.

Figura 17. Esquema del proceso de diseño de rutas en VEIASA

Entrada: información de clientes, personal (verificadores), tipos de servicios (verificaciones),

patrones y vehículos.

CLIENTES

La información de los clientes se obtiene por el volcado de un programa ERP, software de

gestión, de la empresa VEIASA.

Estos clientes pueden ser nuevos o recurrentes. En ambos casos se tiene de ellos la

siguiente información:

• Razón social.

• Razón comercial (si existiese).

• Dirección, teléfono y correo electrónico.

• Prestación de servicio a realizar (tipo de servicio y cantidad de servicios).

• Fecha de recepción

PERSONAL

La información del personal de verificación (verificadores) se obtiene de la BBDD de recursos

humanos, completándose con las cualificaciones de cada uno de ellos, es decir, qué tipos de

verificaciones pueden realizar.

OPTIMIZACIÓN DE RUTAS EN VEIASA 31

VEHÍCULOS

La empresa dispone para cada laboratorio provincial de un listado de su flota de vehículos

para visitar a los clientes, que son furgonetas, furgonetas especiales y camiones.

PATRONES

Cada uno de los servicios a realizar necesita de instrumental específico. Este instrumental se

agrupa en unidades denominadas patrones (por ejemplo, medidor de condiciones

ambientales, juegos de pesas, etc.). Cada tipo de servicio al cliente necesita uno o varios de

dichos patrones y un tipo de vehículo concreto. De cada patrón se dispone de un número

limitado en cada laboratorio provincial. Se dispone de un listado de patrones disponibles en

cada laboratorio.

TIPOS DE SERVICIOS

Existen dos categorías de servicios que se pueden realizar en cliente: las Calibraciones y las

Verificaciones.

• Calibración (no obligatoria): es el conjunto de operaciones que establecen la relación entre los valores de una magnitud indicados por un instrumento de medida y los valores correspondientes de esa magnitud realizados por patrones. La calibración determina las características metrológicas del instrumento y se realiza mediante comparación directa con patrones de medida.

• Verificación (obligatoria): Es el conjunto de exámenes administrativos, visuales y técnicos que tienen por objeto comprobar y confirmar que un instrumento de medida en servicio mantiene desde su última verificación las características metrológicas que le sean de aplicación, en especial en lo referente a los errores máximos permitidos, así como que funcione conforme a su diseño y sea conforme a su reglamentación específica y, en su caso, al diseño o modelo aprobado.

En este proyecto usaremos el concepto de tipo de verificación a cualquier tipo de servicio,

sea de calibración o verificación. La empresa dispone de un listado de tipos de verificaciones,

donde se han estimado los tiempos medios de realización de las mismas y los patrones y tipo

de vehículo necesario para su realización.

En este proyecto se van a estudiar los tipos de verificaciones más habituales que son las

prestaciones de servicios periódicas y que son las siguientes:

1) Surtidores de combustibles.

2) Instrumentos de pesaje de funcionamiento no automático (Balanzas y básculas).

3) Manómetros para neumáticos de vehículos (aquellos existentes en algunas gasolineras).

4) Analizadores de gases de escape de vehículos de gasolina.

5) Opacímetros.

6) Contadores volumétricos de camiones cisterna.

OPTIMIZACIÓN DE RUTAS EN VEIASA 32

7) Termómetros y registradores de temperatura.

A continuación se muestra la información que relaciona cada tipo de verificación periódica

con los patrones y vehículos necesarios, junto con los tiempos medios de realización.

1) Sistemas de medida de carburantes:

Líquidos, distintos del agua, destinados al suministro de carburantes y combustibles

líquidos instalados en establecimientos de venta al público (estaciones de servicio y unidades

de suministro).

2) Instrumentos de pesaje de funcionamiento no automático:

Son instrumentos de pesar que requieren la intervención de un operador durante el proceso de

pesada; por ejemplo para depositar o retirar la carga a medir del receptor de carga, así como para la

obtención del resultado. Estos instrumentos permiten la observación directa de la pesada, bien sea

visualizada o impresa. En el caso de balanzas y básculas de > 60 Kg es necesario un camión para el

transporte de masas patrón.

OPTIMIZACIÓN DE RUTAS EN VEIASA 33

3) Manómetros para neumáticos de vehículos:

Destinados a medir la presión de los neumáticos de los vehículos a motor, que sólo

tengan componentes mecánicos y no dispongan de dispositivos de predeterminación, y

sean de uso público (incluidos talleres de reparación) o bien estén dotados total o parcialmente de

componentes electrónicos y provistos o no de dispositivos de predeterminación, y que sean tanto de

uso público como profesional.

OPTIMIZACIÓN DE RUTAS EN VEIASA 34

4) Analizadores de Gases de Escape:

Instrumentos destinados a medir las emisiones de los gases de escape que se utilizan

en la inspección y mantenimiento profesional de vehículos a motor en circulación

equipados con motores de encendido por chispa (gasolina), que sirven para determinar las fracciones

en volumen de los componentes especificados de los gases de escape siguientes: monóxido de

carbono (CO), dióxido de carbono (CO2), oxígeno (O2) e hidrocarburos (HC).

5) Opacímetros:

Instrumentos destinados a medir la opacidad y determinar el coeficiente de absorción luminosa de los

gases de escape de los vehículos equipados con motores de encendido por compresión (diésel).

OPTIMIZACIÓN DE RUTAS EN VEIASA 35

6) Sistemas de medida en camiones cisterna para líquidos de baja viscosidad:

Procedimiento de control de los sistemas de medida de líquidos distintos del agua

montados sobre camiones cisterna. Dicho procedimiento establece como única opción la utilización

como medio de comparación de vasijas patrón.

7) Registradores de temperatura y termómetros:

Se instalan o utilizan en el transporte, almacenamiento, distribución y control de productos

a temperatura controlada, en cumplimiento de disposiciones reglamentarias.

OPTIMIZACIÓN DE RUTAS EN VEIASA 36

Salida: como resultado de la aplicación que diseña las rutas de servicios de verificación, la

empresa quiere disponer semanalmente un listado de rutas con:

• El orden de visita a los clientes en cada ruta

• La ruta física a seguir de cada cliente a cada cliente

• El verificador que realizará cada ruta

• El vehículo donde se realizará cada ruta

• Los patrones a cargar en cada vehículo para cada ruta

• Los tiempos estimados para realizar cada ruta

Al finalizar cada prestación de servicio existe un Control de Verificación a través de un

albarán que será firmado por el verificador y el cliente. Después el verificador realiza un

informe con el trabajo desarrollado (tarea administrativa).

A modo de resumen, la metodología a aplicar debe tener en cuenta las siguientes restricciones o

requerimientos propios de la empresa:

a) La capacidad de los vehículos a través de las incompatibilidades con el tipo de servicio.

Cada tipo de vehículo puede realizar unos determinados tipos de servicios (no

cualquiera).

b) Los juegos de patrones disponibles. En cada laboratorio se cuenta con un número

limitado de juegos de patrones de cada tipología.

c) La incompatibilidad entre distintos patrones. Existen patrones que no pueden ir juntos en

los vehículos.

d) Las ventanas horarias de los clientes. Algunos clientes son comercios a los que no

pueden efectuárseles la prestación de servicio a determinadas horas o bien necesitan

realizarlo en un determinado momento de su jornada.

e) Los clientes pueden demandar más de un tipo de servicio. Hay que maximizar siempre

los clientes que requieran más prestaciones de servicio (siempre que los patrones

necesarios para ello lo permitan).

f) Cada vehículo hace una ruta y al terminar la jornada laboral vuelve a su laboratorio

provincial (la flota duerme en el laboratorio).

g) Cada día el listado de clientes a servir es diferente, es por tanto dinámico. Se va a

realizar planificaciones semanales y por tanto, el listado de servicios a clientes se

congelará para toda la semana.

OPTIMIZACIÓN DE RUTAS EN VEIASA 37

3.4. Estudio de soluciones comerciales para el diseño de rutas

El primer paso que se analizó para resolver el problema de diseño de rutas de verificación en VEIASA

consistió en el estudio de las soluciones ya existentes para el diseño de rutas comerciales. Para ello,

se contactó con numerosas empresas de desarrollo de software especializado en este tipo de

productos.

Todas estas empresas coincidieron en que las dos restricciones adicionales que poseía VEIASA y

que no son típicas en el problema VRP, presentaban una dificultad añadida a sus productos

convencionales, cuya resolución no podría reflejarlas como tal. Es decir, había que adaptar el

problema de VEIASA al modelo estándar de un problema de estas características. Muchas de estas

empresas incluso no profundizaron más al considerar que su producto no iba a ser útil.

Recordemos que las dos restricciones adicionales son (ver apartado 3.1):

Restricciones asociadas a los Patrones: La limitación del número de patrones disponibles y la

incompatibilidad que hay entre ellos produce una dificultad añadida.

Restricciones asociadas a la Cualificación del personal: No todas las prestaciones de servicio

pueden ser realizadas por los mismos verificadores.

Entre las aplicaciones de software contactadas y analizadas cabe destacar las siguientes:

3.4.1. LogisPlan

Es una potente herramienta que utiliza algoritmos inteligentes avanzados para

planificar y optimizar rutas de distribución o de visitas a clientes.

Se usó la versión “Visitas a clientes” por asemejarse más a la actividad de verificación metrológica.

Consiste en un software con dos entradas en formato Excel predefinidas por el programa con los

datos de nuestra planificación.

Los clientes a visitar. Se van introduciendo datos de direcciones, horarios, fechas de visita,

condicionantes…

OPTIMIZACIÓN DE RUTAS EN VEIASA 38

Figura 18. LogisPlan. Información de clientes

Los recursos disponibles de la empresa. Información de nombre de los vendedores, jornada laboral,

origen de la ruta…

Figura 19. LogisPlan. Información de recursos

Una vez introducida la información en las tablas, se procede a efectuar la previsión de ruta. Para ello,

se ejecuta el programa, y se selecciona el horizonte de planificación:

Figura 20. LogisPlan. Selección de fecha de planificación

A continuación, se introducen los recursos y clientes almacenados anteriormente y “Logisplan”

comienza a realizar la planificación.

Se obtiene un mapa con la localización y las primeras rutas establecidas, junto con dos ventanas

inferiores con detalles de la ruta, tiempos, clientes, vendedores….

OPTIMIZACIÓN DE RUTAS EN VEIASA 39

Figura 21. LogisPlan. Mapa e información de rutas calculadas

Presenta una gran ventaja, y es que se puede seleccionar de forma muy sencilla el criterio de ruta,

por ejemplo, minimizar coste, distancia, tiempo de trabajo….

Figura 22. LogisPlan. Parámetros de planificación

El programa actúa buscando continuamente el óptimo, por lo que es conveniente darle unos minutos

para que llegue a la situación más estable dentro de las posibles:

OPTIMIZACIÓN DE RUTAS EN VEIASA 40

Figura 23. LogisPlan. Resumen de la solución calculada

Muestra además cómo va buscando el óptimo junto con muchas estadísticas relevantes en el proceso.

3.4.2. Involve

Software que optimiza la planificación de visitas comerciales usando como

metaheurística un Algoritmo Genético. Muy similar al anterior pero más flexible.

En primer lugar, se introducen los datos de los clientes a visitar:

OPTIMIZACIÓN DE RUTAS EN VEIASA 41

Figura 24. Involve. Información de clientes

A continuación se introducen y personalizan los vendedores / comerciales disponibles:

Figura 25. Involve. Información de vendedores

Y se obtiene entonces la ruta de cada vendedor:

OPTIMIZACIÓN DE RUTAS EN VEIASA 42

Figura 26. Involve. Representación de la ruta calculada

3.4.3. Ventajas e inconvenientes

Después de analizar ambos software, se llegan a las siguientes conclusiones conjuntas:

Ventajas:

Optimizan eficientemente la ruta a seguir para cada verificador.

Resuelven el problema de las restricciones adicionales manualmente en forma de

condicionales del problema.

Inconvenientes:

Es necesario mucho tiempo en la parametrización de todos los componentes a calcular

(verificadores, patrones, solicitudes).

Tiene una planificación muy rígida, de tal forma, que en el supuesto de que hubiera un

problema de última hora (furgoneta/patrón roto) sería necesaria una nueva actualización de la

parametrización, dando lugar a un tiempo excesivo estipulado para esta tarea.

Precio bastante elevado, y aumentándolo aún más en el caso de requerir alguna modificación

adicional (como era el caso). El orden aproximado es de unos 7.500€ para 10 vehículos.

Por tanto, se descartó en una primera fase usar un software específico por todas estas desventajas y

elevado precio. Se pensó en una solución flexible y no tan compleja.

OPTIMIZACIÓN DE RUTAS EN VEIASA 43

4. METODOLOGÍAS PROPUESTAS PARA VEIASA

4.1. Introducción

Descartadas por tanto las soluciones comerciales, se pensó en una resolución práctica, accesible a

todos los jefes de laboratorio y de fácil manejo.

Se desestimó controlar toda la problemática, proponiéndose una solución que resolviera la gran parte

de las solicitudes, es decir, una herramienta organizativa que resolviera iterativamente los problemas.

No obstante, a nivel académico y para validar soluciones a pequeña escala, se planteó en primer

lugar un modelo de optimización basado en programación lineal. Esta alternativa no es viable en

problemas de tamaño medio (más de 15 clientes) y por tanto se propone una metodología alternativa

basada en la heurística First Cluster-Route Second y usando la hoja de cálculo Excel y herramientas

gratuitas para el cálculo de rutas.

4.2. Modelo de optimización del problema

4.2.1. Uso de modelos de programación matemática

Al plantear el problema real mediante modelos matemáticos, siempre se debe simplificar. La realidad

es muy compleja, e intervienen en su evolución múltiples factores. Un modelo sirve para evaluar,

entender y optimizar una realidad desde un punto de vista muy global y generalista.

Por ello, los modelos matemáticos sólo deben contemplar los factores más relevantes en la evolución

de esa realidad. El modelo simplifica la realidad para poder analizarla. Es muy importante antes de

hacer un modelo, analizar los factores generales que se aplican a la realidad que se quiere modelar.

Éstos deben estar ordenados por orden de prioridad, y ver cuáles son fundamentales dentro del

modelo. Una vez realizado el modelo básico, con las características básicas, se le pueden ir

introduciendo más factores que deban ser contemplados en la ejecución del modelo.

El uso del modelo de programación matemática permite conseguir el óptimo o un cuasióptimo, pero

con una tolerancia controlada.

El desarrollo de un modelo de optimización se realiza en diferentes etapas secuenciales:

a) Identificación del problema: consiste en la recolección y análisis de la información relevante

para el problema. Esta fase es crítica para poder entender y llegar al modelo.

b) Especificación matemática y formulación: diseño del modelo matemático con todos sus

elementos.

OPTIMIZACIÓN DE RUTAS EN VEIASA 44

c) Resolución: en ella se implanta un algoritmo de obtención de la solución numérica óptima o

cuasióptima. La solución óptima debe ser lo suficientemente satisfactoria.

d) Verificación, validación y refinamiento: se eliminan errores de codificación, se validan las

simplificaciones realizadas con los resultados obtenidos, y de ello surgen necesidades de

mejora y refinamiento del modelo.

e) Implantación, documentación y mantenimiento: Etapa fundamental para garantizar su amplia

difusión. La documentación ha de ser clara, concisa y completa. El código debe incluir buena

documentación.

Para poder diseñar una herramienta que sea válida, real y que sirva para la gestión de rutas, primero

hay que analizar qué es lo que se necesita y qué factores se toman en cuenta actualmente a la hora

de elaborar las rutas diarias a mano.

4.2.2. Modelo de programación lineal mixta-entera

Inicialmente el modelo se plantea como una herramienta que optimice las rutas y sus distancias y al

mismo tiempo realice el máximo número de visitas. Se busca que este modelo determine el orden

en que se va a los clientes, en función de su localización geográfica y las distancias entre

ellos, elija el vehículo adecuado considerando la incompatibilidad y limitación de patrones, y

asigne el verificador considerando su cualificación.

Como la empresa abarca cada día un área concreta, esta herramienta se diseña para determinar la

ruta a seguir en un día concreto, a partir de los clientes que han solicitado algún pedido. No obstante

con pequeños cambios se puede extender a un enfoque semanal.

El modelo matemático inicial, se basa principalmente en el problema del viajante (TSP), que consigue

“hacer un recorrido que pase por N ciudades sin repetir ninguna y volviendo a la ciudad de partida de

manera que la distancia (coste) total sea mínima.”

El objetivo del algoritmo será encontrar la combinación de patrones, rutas y vehículos tal que se

maximicen las visitas, es decir, la prioridad será satisfacer el número máximo posible de solicitudes.

Objetivo: Cuál debe ser la planificación óptima que se ha de hacer cada día.

Teniendo en cuenta:

1) Maximizar el número de servicios prestados por jornada (no tienen por qué pertenecer al

mismo cliente).

2) Minimizar distancias entre prestaciones de servicio (costes de desplazamiento).

3) Además, se tienen que tener en cuenta las prioridades de las solicitudes, puesto que hay

solicitudes críticas.

Contando con las restricciones ya comentadas en el apartado 3.3:

OPTIMIZACIÓN DE RUTAS EN VEIASA 45

a) La capacidad de los vehículos y/o incompatibilidades con el tipo de servicio.

b) Juegos de patrones máximos disponibles.

c) Incompatibilidad de patrones.

d) Las ventanas horarias de los clientes.

e) Más de un tipo de servicio por cliente.

f) Cada vehículo vuelve a su origen durante la jornada laboral.

g) Listado semanal con servicios a clientes.

La componente geográfica de los problemas se modela a través de un grafo conexo G = (N, A). El

conjunto de nodos N = {0, 1,. . ., n} representa los sitios que participan en el problema, es decir,

clientes y depósitos. El nodo 0 representa un depósito y los nodos 1,. . ., n representan clientes.

La existencia de un arco (i,j) ∈ A indica que es posible transportarse desde el sitio representado por i

al sitio representado por j.

Índices y Datos de Entrada:

Notación Descripción

i,j Índices de los sitios a visitar (laboratorio y clientes): 0 (Laboratorio),1,…,N

k Índice de los vehículos utilizados: 1,…,K; K+1 (Ficticio para no atendidos)

p Índice de los tipos de patrones: 1,…,P

s Índice del personal verificador: 1,…,S

TSi Tiempo de servicio necesario para llevar a cabo la(s) verificación(es) que componen el servicio solicitado por el cliente ubicado en el sitio i

TVij Tiempo de viaje para ir desde el sitio i al sitio j

TMaxs Tiempo máximo de servicio del verificador s (jornada laboral)

NPp Número máximo de patrones tipo p disponibles

Qip Indica si el servicio en el sitio i necesita el patrón p (Qip=1 si lo necesita, Qip=0 si no).

Ris Indica si verificador s está capacitado para realizar el servicio requerido en el sitio i (Ris =1 si lo está, Ris =0 si no lo está).

OPTIMIZACIÓN DE RUTAS EN VEIASA 46

Ei , Li Ventana temporal mínima y máxima para inicio del servicio en el sitio i

PSp , VLp Peso y volumen de cada tipo de patrón p

PVk , VVk Peso y volumen máximo de cada vehículo k

PRi Prioridad del servicio requerido en el sitio i

Dij Distancia de viaje para ir desde el sitio i al sitio j

Variables de decisión:

Notación Descripción

Xijk Variable binaria que indica el arco (i;j) ∈ A asociado a la ruta k (Xijk = 1 si vehículo k va de

verificación i a verificación j; 0 si no).

kjijiX kij ∀≠∀∀= ;;,)1,0(

XijK+1: es la lista de verificaciones i,j sin ser atendidas

Wpk Variable binaria que indica si vehículo k lleva tipo de patrón p (Wpk =1 si lo lleva, 0 si no).

1,)1,0( +≠∀∀= KkpW kp

Zsk Variable que indica si verificador s va en vehículo k (Zs

k =1 si va en el vehículo, 0 si no va).

1,)1,0( +≠∀∀= KksZ ks

Yik Variable que indica el inicio del servicio requerido en el nodo i con el vehículo k (Yi

k ≥ 0).

1,0 +≠∀∀≥ KkiY ki

Y0k: es la llegada al laboratorio del vehículo k

Restricciones:

Restricciones Descripción

1) No necesariamente saldrán en ruta todos los vehículos:

kXN

j

kj ∀≤

=

11

0

OPTIMIZACIÓN DE RUTAS EN VEIASA 47

2) Los vehículos sólo pueden recorrer cada arco como máximo una vez y en un solo sentido:

kiXXN

ijj

kij

N

ijj

kji ∀∀=−

≠=

≠=

,000

3) Todos los sitios son visitados (considerando también “visitas” las del vehículo ficticio K+1 que en

realidad representa los sitios que quedarán sin visitar):

+

=≠=

∀=1

1 0

1K

k

N

ijj

kij iX

4) Cálculo de los tiempos de inicio del servicio de verificación:

=

+≠∀≠∀≠∀−⋅+≤++S

s

kijs

kjiji

ki KkjijiXTMaxYTVTSY

1

1,;,0)1()(

=

+≠∀≠∀−⋅+≤S

s

kjs

kjj KkjXTMaxYTV

100 1,0)1()(

5) Limitación del tiempo total de cada verificador s:

Si el verificador s va en el vehículo k (Zsk = 1) ENTONCES la llegada del vehículo k al

laboratorio (Y0k) no puede superar el tiempo máximo del verificador s (TMaxs)

=

+≠∀∀−⋅+≤S

r

ksrs

k KksZTMaxTMaxY1

0 1,)1()(

6) Relación entre verificación i, vehículos k y patrón p:

Si se necesita verificación i con vehículo k (=

=N

j

kjiX

0

1 ) y se necesita patrón p en verificación

i (Qip =1) ENTONCES el vehículo k llevará patrón p (Wpk =1)

≠=

∀+≠∀≠∀+≤+N

ijj

kpip

kji pKkiWQX

0

,1,01

7) Incompatibilidad de patrones:

lesincompatibppKkWW k

pkp )',(;11' +≠∀≤+

8) Relación entre verificación i, vehículo k y verificador s:

OPTIMIZACIÓN DE RUTAS EN VEIASA 48

Si se necesita verificación i con vehículo k (=

=N

j

kjiX

0

1 ) y verificador s no puede hacer

verificación i (Ris =0) ENTONCES persona s no irá en vehículo k (Zsk =0)

sKkiZRX ksis

N

ijj

kji ∀+≠∀≠∀−+≤−+

≠=

,1,01110

9) Asignación de 1 verificador por vehículo k ≠ K+1 que se use:

Si vehículo k se usa ( 11

0 ==

N

j

kjX ), ENTONCES se asigna personal (

=

=S

s

ksZ

1

1)

Si no se usa ( 01

0 ==

N

j

kjX ), ENTONCES no se asigna (

=

=S

s

ksZ

1

0 )

111

0 +≠∀===

KkZXS

s

ks

N

j

kj

10) No se pueden asignar 2 verificadores a un mismo vehículo:

sZK

k

ks ∀≤

=

11

11) Ventanas de tiempo en verificaciones:

1,0 +≠∀≠∀≤≤ KkiLYE i

kii

Función Objetivo:

Principal: Maximizar el número de verificaciones ponderadas por sus prioridades:

= =

≠=

K

k

N

j

N

jii

kijj XPRMax

1 1 0

Secundaria: Minimizar las distancias recorridas:

= =

≠=

K

k

N

j

N

jii

kijij XDMin

1 0 0

Se podría aplicar métodos de programación multiobjetivos o ponderar ambas funciones objetivos. Se

opta por esta segunda posibilidad con la función objetivo:

OPTIMIZACIÓN DE RUTAS EN VEIASA 49

= =

≠== =

≠=

−K

k

N

j

N

jii

kijij

K

k

N

j

N

jii

kijj XDXPRMax

1 0 01 1 0

α

Siendo α un parámetro que normalice las distancias respecto a las prioridades y también dándole

menor peso a las distancias que a las prioridades. Por ejemplo:

=≠=

=

⋅=

N

j

N

jii

ij

N

ii

D

PR

0 0

1

10α

4.2.3. Limitaciones de los modelos de optimización

Al haber variables binarias y continuas, implica que es un modelo de programación lineal mixta entera.

El hecho de que existan variables enteras supone que en la ejecución se aplican métodos de

enumeración implícita. Para ello, mediante ramificación va buscando soluciones enteras y

contrastándolas con el resultado lineal que calcula, viendo lo cerca que está del óptimo.

Para validar el modelo y la dificultad de su resolución, se propone un modelo simplificado que

resuelve el modelo propuesto con 1 sólo vehículo (TSP) usando el software CPLEX.

ILOG CPLEX es un motor (programa optimizador ) de programación matemática que permite resolver

problemas de optimización reales a gran escala de forma rápida y con la mínima intervención por

parte del usuario, dado que cuenta con una variedad de algoritmos en su interior.

La optimización transforma los problemas empresariales en modelos matemáticos que, una vez

solucionados con los algoritmos de ILOG CPLEX, permiten tomar decisiones más inteligentes para

utilizar los recursos de forma eficaz. Ofrece optimizadores flexibles y de alto rendimiento.

En una primera instancia, se plantea el modelo en la versión 12.6 con la versión de prueba, licencia

académica permitida durante 3 meses por IBM.

OPTIMIZACIÓN DE RUTAS EN VEIASA 50

Figura 27. Código fuente CPLEX para TSP

Junto con el fichero de datos:

OPTIMIZACIÓN DE RUTAS EN VEIASA 51

Figura 28. Fichero de datos CPLEX para TSP

Conocer las distancias entre clientes es muy relevante, ya que es un dato fundamental de entrada del

modelo matemático.

Inicialmente se planteó sacar la matriz de distancias de todos los clientes con todos los clientes,

incluida también la localización del laboratorio central de VEIASA. Pero el alto volumen de clientes

provocaba que la ejecución del modelo matemático inicial fuese demasiado lenta. Al final no se

consideró esta posibilidad porque lo que se pretendía simplemente era validar el modelo básico.

Siendo el caso de VEIASA un problema muy dinámico y diferente semanalmente se desestimó seguir

por esta vía.

4.3. Resolución aproximada mediante Clúster y Enrutado

4.3.1. Introducción al método.

La dificultad del problema de VEIASA lleva a buscar una resolución aproximada que es la que se

plantea en este proyecto.

Se propusieron dos alternativas basadas en VBA incrustado en Excel, puesto que es una herramienta

conocida y que además no requiere instalación de software adicional. Las macros en VBA permiten

una automatización de la planificación y a la vez no resulta una solución tan tan rígida como con los

softwares anteriores.

Basada en la técnica First Cluster-Route Second (“Divide y vencerás ó Cluster”), se trata de ir

aislando solicitudes para satisfacerlas.

1) Partimos de la base de datos inicial, y se van agrupando solicitudes en Excel en función de

los criterios del jefe de laboratorio (tipología de servicio, comarca a la que pertenece,

OPTIMIZACIÓN DE RUTAS EN VEIASA 52

prioridad….). Con ello se seleccionan las solicitudes de clientes para intentar formar una ruta

para un vehículo y un verificador.

2) A continuación, se trasladan a un mapa las solicitudes de los clientes mediante dos

aplicaciones gratuitas:

Google Maps Engine Lite: permite a los usuarios crear fácilmente sus propios mapas

sobre los mapas base de Google Maps. Es una aplicación gratuita, pero tiene un límite

de 100 registros al importar hojas de cálculo de Google, CSV o XLSX.

Route XL: es un planificador de rutas que calcula las rutas de mínima distancias entre

puntos. Es una aplicación gratuita hasta 20 direcciones.

3) Se asigna la ruta calculada si se cumplen restricciones de tiempos a un verificador y vehículo

y se prosigue de igual manera para el resto de solicitudes pendientes.

Como alternativa al punto 2), se ha integrado el Mapa dentro de la hoja Excel a través de la aplicación

Microsoft MapPoint. Esta aplicación no es gratuita pero a diferencia de las otras dos, permite una

integración completa dentro de la hoja Excel.

Para desarrollar la metodología anterior (inicial o alternativa), se han desarrollado macros VBA en

Excel que facilitan la labor al jefe de laboratorio. A continuación se explican los procedimientos

desarrollados.

4.3.2. Selección del clúster de clientes.

Se dispone de una hoja Excel habitual donde se han añadido unos botones en la parte superior:

Figura 29. Menú incrustado en Excel para macros desarrolladas

Importar Datos: Se actualizan las solicitudes a través de un fichero de datos de entrada

“Metro3.TXT”, con el contenido de los servicios a realizar semanalmente y exportados desde

el ERP de la empresa. A continuación, se importan a ésta plantilla mediante éste botón, de tal

forma, que ya se tienen aquellas solicitudes que van a ser planificadas semanalmente. Hay

que comentar que a las solicitudes importadas se les ha añadido un campo con un valor

numérico que refleja la prioridad de la solicitud (por defecto todas valen “1”).

Ordenar Datos: Se ordenan ascendentemente según fecha de solicitud y se calculan los

tiempos empleados en cada una de ellas según tipología. Respecto a los tiempos de servicios

estimados, se han completado en el mismo fichero Excel una hoja de cálculo con los tiempos

estimados para cada tipo de servicio posible.

OPTIMIZACIÓN DE RUTAS EN VEIASA 53

Se incorpora la opción de la distribución de las solicitudes según comarca y municipio, para una

mayor comodidad en la planificación. Para ello, también se ha añadido una hoja con los códigos de

las comarcas de Andalucía.

También se cuenta con la posibilidad de poder filtrar solicitudes por el criterio que se desee (prioridad,

verificador, municipio, tipo de servicio), para así organizar la planificación de forma más eficiente.

Crear Total: Se separa la hoja principal de las demás para poder prepararla para los

planificadores existentes.

Planificadores: Una vez hecho todo esto, el jefe de laboratorio selecciona los servicios

según criterio personal, y se prepara la hoja Excel para la aplicación gratuita Google Maps

Engine Lite (hasta un máximo de 100 direcciones).

Se adjuntan capturas de pantalla del proceso.

Figura 30. Solicitudes admitidas y ordenadas en Excel

4.3.3. Resolución basada en Google Maps Engine Lite & RouteXL.

Una vez seleccionados los clientes a visitar por un verificador a través de sus solicitudes, la idea es

pintarlos en un mapa visualizando así las ubicaciones de dichos puntos, las características de los

mismos y el tiempo en carretera necesario para ir de un punto a otro. De esta forma se consigue una

visualización global de todas las prestaciones de servicio para facilitar el diseño de la ruta.

Para ello se utilizan las aplicaciones gratuitas Google Maps Engine Lite (GMEL) y RouteXL.

Para ello se utiliza la aplicación gratuita Google Maps Engine Lite (GMEL) y RouteXL.

o Google Maps Engine Lite:

Es una aplicación de Google que ayuda a crear mapas personalizados, que pueden compartirse y

publicar online.

Una vez creado el mapa, GMEL contiene varias opciones:

OPTIMIZACIÓN DE RUTAS EN VEIASA 54

Dibujos: se pueden añadir líneas, formas o marcadores al mapa.

Importación de datos: se añade un archivo CSV, un archivo XLSX, un mapa de Mis mapas,

un archivo KML o una hoja de cálculo de Google Drive con datos geográficos como

direcciones, nombres de lugares o latitudes y longitudes.

Capas: muestra u oculta diferentes tipos de contenido.

Estilos: diferentes colores, iconos de marcadores y anchos de línea.

¿Cómo se usa dentro de la aplicación desarrollada en Excel? :

En primera instancia, se hace click en el icono de Total para separar la hoja de datos del

resto del documento. Esto es conveniente porque así se evita sobrecargar la hoja de

subida con elementos que no son necesarios a tal efecto.

A continuación, en el apartado Planificadores, se hace click

en el icono representativo de Google Maps

Automáticamente se elimina todo el contenido adyacente, quedando únicamente toda la información

de las prestaciones de servicio escogidas. Al mismo tiempo, se abre una ventana de internet (en el

motor de búsqueda configurado en el ordenador) con la aplicación lista para copiar y pegar la

información y representar gráficamente las solicitudes.

Aparece entonces la siguiente ventana (Figura 31):

Figura 31. Selección de archivo para importar en GMEL

Se hace click en Seleccionar archivo del equipo y se adjunta la hoja Total separada como se ha

explicado anteriormente.

OPTIMIZACIÓN DE RUTAS EN VEIASA 55

En la siguiente figura (Figura 32) se muestra un mapa en blanco, presentación estándar de la

aplicación donde aparecerían todos los puntos (clientes) seleccionados.

Figura 32. Visualización de clientes en Google Maps Engine Lite

o RouteXL:

RouteXL es un planificador de rutas holandés que se presenta a través de su dirección

www.routexl.es/

Diseña fácilmente el camino más rápido de entre diferentes destinos. Es gratuito para 20 direcciones

y conlleva un pequeño coste adicional para 150 direcciones.

Está pensado como último paso, para calcular el orden de las solicitudes una vez escogidas todas

aquellas que se van a incluir en una ruta.

Figura 33. Página principal de RouteXL

OPTIMIZACIÓN DE RUTAS EN VEIASA 56

Figura 34. Visualización de ruta en RouteXL

Esta página permite guardar la ruta junto a las indicaciones de cómo llegar y de tiempo estimado de

viaje (no incluye los tiempos de servicios).

4.3.4. Resolución e integración de la solución usando Microsoft MapPoint.

Microsoft MapPoint 2013 es un software específico GIS (Geographic Information System) creado por

Microsoft que tiene como funcionalidades la capacidad de mostrar, editar e integrar mapas desde

cualquier aplicación de Microsoft Office. También es posible analizar cualquier información o datos

incluidos en los mapas.

Como alternativa al procedimiento anterior de uso de GMEL y RouteXL, se ha procedido a usar

MapPoint con la salvedad de que en este caso el mapa y el cálculo de la ruta óptima están integrados

en la misma hoja Excel dónde se trabaja. Es decir, se ha incrustado MapPoint a la herramienta Excel,

de tal forma, que se visualiza de forma automática la ruta a medida que se va creando. Es quizá, más

cómodo de usar, puesto que es más intuitivo y tiene la ventaja de poder modificar la ruta

instantáneamente, consiguiendo un ahorro de tiempo en el proceso de optimización de rutas.

OPTIMIZACIÓN DE RUTAS EN VEIASA 57

Por contrapartida tiene un precio de 231 € por licencia y es necesario un ordenador potente para

soportar la herramienta con relativa fluidez.

El modo de proceder es similar al caso anterior, aunque se ha pensado como trabajo en paralelo

mayoritariamente. Es decir, se ha proporcionado un botón (macro) llamado Autofiltro que consiste en

copiar todos los datos seleccionados de la hoja inicial de Excel a ésta nueva hoja, para así poder

tener dos rutas posibles para elegir, la creada según el caso anterior con la ayuda de GMEL y

RouteXL y la creada por Microsoft MapPoint. De ésta forma, se pueden comparar resultados.

La cabecera de la hoja se diseña para este nuevo propósito:

Se puede observar que en la parte izquierda van saliendo las direcciones contempladas, mientras

que en la parte derecha va desarrollándose el mapa integrado en la misma hoja Excel (Figura 35):

Figura 35. Visualización de ruta creada en MapPoint

El diseño de la ruta se puede parametrizar según diversos criterios (Figura 36):

OPTIMIZACIÓN DE RUTAS EN VEIASA 58

Figura 36. Parametrización de ruta en MapPoint

También se ha incluido un botón de comprobación de direcciones, es decir, si alguna dirección no se

encontrara correctamente, se detectaría y se cambiaría.

Figura 37. Comprobación direcciones correctas en MapPoint

OPTIMIZACIÓN DE RUTAS EN VEIASA 59

5. APLICACIÓN PRÁCTICA PARA VEIASA EN SEVILLA

5.1. Introducción

La provincia de Sevilla cuenta actualmente con 8 verificadores. Estos trabajadores, desempeñan

tanto el trabajo requerido por prestaciones de servicio que se realizan en los propios laboratorios

como “in situ” (en el lugar del cliente).

Actualmente se ha determinado mantener 3 verificadores permanentemente en el Laboratorio Central

(C/ Albert Einstein, 2. Isla de la Cartuja) para trabajos exclusivamente en el laboratorio (agua, tiempo,

sonido….) y los 5 restantes están en el Laboratorio Provincial (Polígono Industrial El Pino. C/ Pino

Central, parcela 16-18), que son los encargados de realizar las prestaciones de servicios “in situ”.

Se ha determinado la necesidad de una jornada laboral semanal de cada verificador para tareas

administrativas. Por tanto, se tienen 5 trabajadores y 4 días laborales semanales por cada uno de

ellos, es decir, un total de 20 jornadas laborales semanales. Se deben planificar pues 20 jornadas.

En las jornadas que no se alcance el número total de horas establecidas, se completarán las horas

con prestaciones de servicio internas, es decir, aquellas que se realizan dentro del laboratorio.

Tomamos como ejemplo la planificación en el laboratorio provincial de Sevilla de 32 solicitudes

pendientes (clientes) con 5 tipos de servicios y un total de 244 verificaciones a realizar.

5.2. Preparación de los servicios

Partimos de las solicitudes pendientes volcadas a través de Metro3 (Software de Gestión, ERP), en

formato .txt.

Figura 38. Fichero de entrada de datos de servicios procedentes de ERP de VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 60

Se importan éstos datos al documento Excel y se ordenan de forma creciente según fecha:

Figura 39. Importación de datos de servicios a clientes en Excel para VEIASA

Figura 40. Datos con tiempos de servicios a clientes en Excel para VEIASA

Se han añadido mediante macros los códigos postales la comarca y el municipio al que

pertenece cada solicitud.

Se ha determinado el tiempo de servicio requerido para llevar a cabo según la prestación de

servicio, y en base a unos tiempos estándares calculados previamente.

Se pueden asignar prioridades a las prestaciones de servicio. Por defecto, se asigna prioridad

1 (la más baja).

Se puede asignar un verificador a un servicio o bien asignarlo después según preferencias.

OPTIMIZACIÓN DE RUTAS EN VEIASA 61

Con toda esta información, se escogen mediante filtros las solicitudes que interesen según

preferencias del jefe de laboratorio (según comarcas, prioridades, tipo de servicio), y se analizan

mediante las herramientas descritas anteriormente para así clarificar su posición, y ruta optimizada y

poder así llevarlas a cabo.

5.3. Diseño de las rutas de servicios

Empezamos por filtrar solicitudes según tipología de servicio (se recomienda desde la experiencia

hacerlo así para no tener problemas de incompatibilidades de patrones):

En primera instancia se planifica para “Hidrocarburos”:

Figura 41. Filtro de servicios de Hidrocarburos en Excel para VEIASA

Se introducen las direcciones en GMEL con la idea de ver la proximidad/lejanía de los distintos

puntos:

Figura 42. Localización de clientes con servicios de Hidrocarburos para VEIASA

Se comprueba que hay tres servicios que requieren de más de una jornada laboral, ambas dentro de

la comarca metropolitana de Sevilla, por tanto, con la ayuda del mapa, se pueden obtener en primera

instancia la siguiente planificación:

OPTIMIZACIÓN DE RUTAS EN VEIASA 62

Figura 43. Planificación de jornadas con servicios de Hidrocarburos para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 63

Se efectúa de forma análoga con “Masas” (Balanzas y pesas de establecimientos):

Figura 44. Localización de clientes con servicios de Masas para VEIASA

En este caso, se observa que el tiempo de servicio es bastante pequeño, por tanto, se pueden

agregar todos los trabajos excepto el de “El Corte Inglés”. Para establecer la ruta, se hace uso de la

herramienta RouteXL, que proporcionará la ruta más conveniente:

Figura 45. Mapa con diseño de ruta para servicios de Masas para VEIASA

Donde se ha establecido la siguiente planificación:

OPTIMIZACIÓN DE RUTAS EN VEIASA 64

Figura 46. Planificación de jornadas con servicios de Masas para VEIASA

Obtenemos en PDF la ruta a seguir, es decir, se imprime y se entrega a los verificadores para mayor

comodidad:

OPTIMIZACIÓN DE RUTAS EN VEIASA 65

Figura 47. Rutas con servicios de Masas para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 66

Se procede de forma análoga con “Gases”:

Figura 48. Localización de clientes con servicios de Gases para VEIASA

Figura 49. Planificación de jornadas con servicios de Gases para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 67

Figura 50. Rutas con servicios de Gases para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 68

Se procede de forma análoga con “Volumen”:

Figura 51. Localización de clientes con servicios de Volumen para VEIASA

Figura 52. Planificación de jornadas con servicios de Volumen para VEIASA

Análogamente con “Presión”:

Figura 53. Localización de clientes con servicios de Presión para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 69

Figura 54. Planificación de jornadas con servicios de Presión para VEIASA

OPTIMIZACIÓN DE RUTAS EN VEIASA 70

Figura 55. Rutas con servicios de Presión para VEIASA

En resumen, estas plantillas están pensadas como una herramienta de ayuda en la organización de

las solicitudes, sobretodo visualmente y en el cálculo más óptimo para satisfacerlas.

OPTIMIZACIÓN DE RUTAS EN VEIASA 71

6. ANÁLISIS DE RESULTADOS

Inicialmente se plantea el modelo matemático y se busca un optimizador, siendo CPLEX el elegido.

Se empieza a construir el modelo y a analizar las primeras soluciones. Al ver que el problema es

demasiado complejo (el número de nodos semanales supera 100), se desestima esta solución puesto

que no es computacionalmente viable.

Se piensa entonces en buscar un software existente en el mercado que se adapte en gran medida al

problema de VEIASA. Después de analizar varios, se escogen dos. Ambas herramientas software

sólo permiten una restricción fuerte, teniendo este problema dos más adicionales (incompatibilidad de

patrones y cualificación del personal). Además se estima que son poco flexibles y conllevan una

pérdida de tiempo importante en la introducción de los numerosos datos para su posterior

planificación.

Por tanto, se piensa en una solución a medida parcial, flexible y de fácil manejo, como es la

herramienta Excel con macros en VBA, que de forma muy automática permite una visualización de

los nodos, el tiempo total necesario de servicio y la comarca a la que pertenece, de tal forma que

complementada por dos herramientas como son Google Maps Engine Lite y Route XL, permiten

estimar el tiempo en carretera y una vez elegidos los puntos que constituirán una ruta, optimizar el

orden de paso por dichos puntos minimizando la distancia total recorrida.

El sistema de información actual de la empresa, es un sistema estático. El sistema se dedica a

almacenar información sin analizarla ni procesarla para sacar conclusiones. Para la realización del

proyecto se ha tenido que analizar el sistema de información de la empresa para ver cómo

funcionaba y en qué consistía.

Del estudio y utilización del sistema de información de la empresa se han detectado ciertas carencias

del sistema y se ven ciertas posibilidades de mejora, como por ejemplo integrar en su ERP las

ventanas horarias de los clientes, que actualmente el personal a cargo conoce con la práctica.

La herramienta de optimización en sí misma es una mejora del sistema de información. Se

proporciona un fichero Excel con macros, más dinámico que analiza la información que se le aporta y

devuelve información valiosa y útil para las tareas semanales de la empresa y de ayuda para la toma

de decisiones.

Pero también la solución aporta más información útil para los jefes de laboratorio. Gracias a la

herramienta también se informa del número de kilómetros que son necesarios hacer para llevar a

cabo esas rutas. Esta información sirve para controlar la forma en que hacen el reparto los

empleados, y para tomar decisiones respecto a ello. A partir de la implantación de esta herramienta,

se les puede exigir a los empleados explicaciones si el número de kilómetros realizados es muy

superior al estipulado.

OPTIMIZACIÓN DE RUTAS EN VEIASA 72

7. CONCLUSIONES

El problema de VEIASA en su diseño de rutas es complejo puesto que conlleva muchas más

restricciones que un problema tradicional de VRP.

Los jefes de laboratorio dedican unas 4 horas semanales a la planificación de las rutas, de una forma

poco óptima y sin criterios comunes a la empresa. Por tanto, es un área de mejora en la empresa.

Se proporciona una herramienta que ayuda en esta planificación, que junto con la experiencia de la

persona a cargo, diseña unas rutas en un menor tiempo, y más optimas que las anteriormente

pensadas, ya que se evita que el reparto entre las furgonetas y la secuencia de clientes se hagan sin

criterio, sin información de tiempos y basado en la experiencia del jefe de laboratorio.

Se han analizado también varios GPS que posee la empresa, con lo cual, una vez determinada la

ruta de un verificador cualquiera, ésta puede volcarse en los GPS, para mayor optimización y control

de kilómetros y de ruta.

En resumen, se minimiza el tiempo empleado en el diseño físico de rutas a la vez que se generaliza

el proceso para todos los jefes de laboratorios.

Además, es una herramienta que no requiere implantación ni mantenimiento adicional de ningún

software (queda ya en el criterio de los jefes de laboratorio la adquisición personal de la opción de

Microsoft MapPoint), proporcionado por unas herramientas muy eficaces a coste 0 para la empresa.

También se cuenta con un contrato con una empresa externa de control de flota de vehículos.

Actualmente esto no se usa. Se propone desarrollar con dicha empresa una aplicación de móvil o

tableta para mayor control y seguridad de la flota.

Sin embargo, se sugiere realizar en un futuro próximo por la empresa, aunque esto ya no es objeto de

éste proyecto, el encargo del diseño de un software a medida implementado en algún lenguaje de

programación orientado a objetos (C++, Java), que junto con la integración de las bases de datos

pertinentes, pudiera dar un resultado más directo y prácticamente sin necesidad de intervención

humana.

OPTIMIZACIÓN DE RUTAS EN VEIASA 73

8. BIBLIOGRAFÍA

• Beasley J.E. (1983). Route-first cluster-second methods for vehicle routing. Omega, 11: 403-

408.

• Clarke G. and Wright J. (1964) Scheduling of vehicles from a central depot to a number of

delivery points. Operations Research, 12(4), 568-581.

• Dorigo M., Maniezzo V. and Colorni A. (1996). Ant system: optimization by a colony of

cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics--Part B, 26 (1), 29-

41.

• Feo T.H. and Resende M.G.C. (1995). Greedy Randomized Adaptive Search Procedures.

Journal of Global Optimization, 6, 109–134.

• Glover, F. (1989). Tabu Search – Part I. ORSA Journal on computing, 1(3) 190-206.

• Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. Cambridge, MA: MIT

Press.

• Involve web page (http://www.involvegbi.es)

• Kirkpatrick S., Gelatt C.D. and Vecchi M.P. (1983). Optimization by Simulated

Annealing. Science, 220 (4598), 671–680.

• Logisplan web page (http://www.logisplan.com/es.html)

• Networking and Emerging Optimization Group web page. (http://neo.lcc.uma.es/vrp)

• Toth P. and Vigo D. (2002). The vehicle routing problem. SIAM Monographs on Discrete

Mathematics and Applications, SIAM, 195-224.

• Verificaciones Industriales de Andalucía S.A., página web (http://www.veiasa.es/).

OPTIMIZACIÓN DE RUTAS EN VEIASA 74

9. ANEXOS

9.1. Datos de VEIASA

9.1.1. Grupo de Verificaciones

9.1.2. Tipos de Verificación

9.1.3. Patrones

9.1.4. Descripción de patrones

EQUIPO NUM_CONTROL PATRON CLASE N_SERIE ESTADO MARCA MODELO

AMORTIGUADOR TÉRMICO M80098T **

En Servicio VEIASA **

OPTIMIZACIÓN DE RUTAS EN VEIASA 75

AMORTIGUADOR TÉRMICO M80099T **

En Servicio VEIASA **

AMORTIGUADOR TÉRMICO M80100T **

En Servicio VEIASA **

AMORTIGUADOR TÉRMICO M80101T **

En Servicio VEIASA **

BOTE DE SALES CON HUMEDAD DE 33% E80072K-1/2 ***

Sin Programar PCE ***

BOTE DE SALES CON HUMEDAD DE 75% E80072K-2/2 ***

Sin Programar PCE ***

BOTELLA DE GASE PATRON LINEA 1 E80077AG-1/6 -- ***

En Servicio *** ***

BOTELLA DE GASE PATRON LINEA 2 E80077AG-2/6 *** ***

En Servicio *** ***

BOTELLA DE GASE PATRON LINEA 3 E80077AG-3/6 *** ***

En Servicio *** ***

BOTELLA DE GASE PATRON LINEA 4 E80077AG-4/6 *** ***

En Servicio *** ***

BOTELLA DE GASE PATRON LINEA 5 E80077AG-5/6 *** ***

En Servicio *** ***

BOTELLA DE GASE PATRON LINEA 6 E80077AG-6/6 *** ***

Fuera de Servicio Temporal *** ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80089P ***

Sin Programar PRAXAIR ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80068P ***

Sin Programar PRAXAIR ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80067P ***

Sin Programar PRAXAIR ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80066P ***

Sin Programar PRAXAIR ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80065P ***

Sin Programar PRAXAIR ***

BOTELLA DE NITRÓGENO LÍQUIDO Y MANORREGULADOR E80069P ***

Sin Programar PRAXAIR ***

CINTA DE CONTORNO E80103X 950E8481

En Servicio SCWENK CJU 950

CRONÓMETRO E80064W CRONOMETRO *** *** En Servicio

OREGON SCIENTIF SL888L

CRONÓMETRO E80060W CRONOMETRO *** 30810101/2 En Servicio NAHITA NO CONSTA

CRONÓMETRO E80055W CRONOMETRO *** ****

Fuera de Servicio Definitivo

OREGON SCIENTIF SL888L

CRONÓMETRO E80061W CRONOMETRO *** 17020901 En Servicio NAHITA NO CONSTA

CRONÓMETRO E80063W CRONOMETRO *** 30810101/3 En Servicio NAHITA NO CONSTA

CRONÓMETRO E80062W CRONOMETRO *** 4141

Fuera de Servicio Temporal SPALDING SPORTS TIME

JUEGO DE FILTROS OPTICOS E80073O-3/8

9279-024,-A,-B

En Servicio SENSORS -

JUEGO DE FILTROS OPTICOS E80073O-7/8 -

F675,F688,F721

En Servicio MAHA -

JUEGO DE FILTROS OPTICOS E80073O-8/8 -

80V1,80V2,80V3

En Servicio VEIASA SCHOTT/NG

JUEGO DE FILTROS OPTICOS E80073O-6/8 -

VER ESPECIFICA

Fuera de Servicio Temporal AVL -

JUEGO DE FILTROS OPTICOS E80073O-5/8 -

VER ESPECIFICA

Fuera de Servicio Temporal TECNOTEST -

JUEGO DE FILTROS OPTICOS E80073O-4/8 -

VER ESPECIFICA

Fuera de Servicio Temporal BOSCH -

JUEGO DE PESAS DE CAMIONES E01005M

JUEGO DE PESAS DE CAMIONES

1/10000 E01005M

Fuera de Servicio Temporal

JUEGO DE PESAS DE CAMIONES E01006M

JUEGO DE PESAS DE CAMIONES

1/10000 E01006M

En Servicio

OPTIMIZACIÓN DE RUTAS EN VEIASA 76

JUEGO DE PESAS DE CAMIONES E01007M

JUEGO DE PESAS DE CAMIONES

1/10000 E01007M

En Servicio

JUEGO DE PESAS DE CAMIONES E01008M

JUEGO DE PESAS DE CAMIONES

1/10000 E01008M

Fuera de Servicio Temporal

JUEGO DE PESAS DE CAMIONES E01002M

JUEGO DE PESAS DE CAMIONES

1/10000 E01002M

En Servicio

JUEGO DE PESAS DE CAMIONES E01001M

JUEGO DE PESAS DE CAMIONES

1/10000 E01001M

En Servicio

JUEGO DE PESAS DE CAMIONES E01004M

JUEGO DE PESAS DE CAMIONES

1/10000 E01004M

Fuera de Servicio Temporal

JUEGO DE PESAS DE CAMIONES E01003M

JUEGO DE PESAS DE CAMIOMES

1/10000 E01003M

Fuera de Servicio Temporal

JUEGO DE PESAS DE 1 g A 10 kg E80018M

Juego de pesas desde 1g a 10Kg F1 15889/15872/

Fuera de Servicio Temporal

METTLER TOLEDO

VER ESPECIFICACIONES

JUEGO DE PESAS DE 1 mg A 10 kg E80086M M1

1111(7866/8067

En Servicio

METTLER TOLEDO **

JUEGO DE PESAS DE 1 mg A 10 kg E80084M M1 11117866

En Servicio

METTLER TOLEDO N/C

JUEGO DE PESAS DE 1 mg A 10 kg E80076M F1 ***

Fuera de Servicio Temporal

METTLER TOLEDO ***

JUEGO DE PESAS DE 1 mg A 500 mg E80087M F1 11119979

En Servicio

METTLER TOLEDO **

JUEGO DE PESAS DE 1 mg A 500 mg E80085M F1 11119979

En Servicio

METTLER TOLEDO **

JUEGO DE PESAS DE 1 mg A 500 mg E80035M

Juego de pesas desde 1mg a 500mg F1 E3620

En Servicio

METTLER TOLEDO ***

JUEGO DE PESAS DE 1 mg A 500 mg E80028M

Juego de pesas desde 1mg a 500mg F1 023619/00

Fuera de Servicio Temporal HÄFNER 7311MILJ

JUEGO DE PESAS DE 1 mg A 500 mg E80030M

Juego de pesas desde 1mg a 500mg M1 E3290

Fuera de Servicio Temporal

METTLER TOLEDO ***

JUEGO DE PESAS DE 100 kg A 200 kg E80005M-3/3

1/10000

En Servicio LAMIPE ***

JUEGO DE PESAS DE 100 mg A 10 kg E80038M

Juego de pesas desde 1g a 10Kg M1 ***

En Servicio

METTLER TOLEDO ***

JUEGO DE PESAS DE 100 mg A 10 kg E80039M

Juego de pesas desde 1g a 10kg M1 ***

En Servicio

METTLER TOLEDO ***

JUEGO DE PESAS DE 100 mg A 10 kg E80031M

Juego de pesas desde 1g a 10Kg M1 E3288

En Servicio

METTLER TOLEDO ***

JUEGO DE PESAS DE 100 mg A 10 kg E80037M

Juego de pesas desde 1g a 10 Kg M1 ***

En Servicio

METTLER TOLEDO ***

JUEGO DE PESAS DE 20 kg E80005M-1/3

26pesas de 20kg,3 palet de 50kg y 13 de 10Kg:1 pesa 200kg y 2 de 100kg M1 ***

En Servicio M.BERNAL ***

JUEGO DE PESAS PALETS E80005M-2/3 M1 ***

En Servicio LAMIPE ***

JUEGO MATRACES METÁLICOS DE 2, 5, 10 y 20 LITROS E80023H 362/99

Fuera de Servicio Definitivo

EDELSTAHLBAU TA ***

LECTOR ÓPTICO M80054A C00M03992

Fuera de Servicio Definitivo DATALOGIO GRYHPON D200

MANÓMETRO NEUMÁTICO DE REFERENCIA PARA VERIFICACIÓN EN SERVICIO E80071P 16861 001

Sin Programar CABECO WIKA

MASA VALOR NOMINAL 150 GR E80104X 23

En Servicio NO CONSTA NO CONSTA

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80014H-3/4

Matraz 10 litros - 75-9

Fuera de Servicio Temporal AFORA 5990/2H

OPTIMIZACIÓN DE RUTAS EN VEIASA 77

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80041H-3/4

Matraz 10 litros --- 158-8

En Servicio AFORA 5990/2E

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80082H-3/4 --- 79-9

Fuera de Servicio Temporal AFORA 10 LITROS

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80083H-3/4 - 284-12

En Servicio AFORA 10 L

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80020H-3/4

Matraz 10 litros - 343-3

En Servicio AFORA 10 L

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80040H-3/4

Matraz 10 litros - 412-8

En Servicio AFORA 5990/2H

MATRAZ DE 10 LITROS CAPACIDAD NOMINAL DE CRISTAL E80013H-3/4

Matraz 10 litros - 411-8

En Servicio AFORA 5990

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80020H-1/4

Matraz 2 litros - 265-4

Fuera de Servicio Temporal AFORA V-55938/2E

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80041H-1/4

Matraz 2 litros --- 991175

Fuera de Servicio Definitivo AFORA V-55938/2E

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80040H-1/4

Matraz 2 litros - 99993

En Servicio AFORA V-55938/2E

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80082H-1/4 --- 129-9

En Servicio AFORA 2 LITROS

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80014H-1/4

Matraz 2 litros - 99988

En Servicio AFORA V-55938/2H

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80083H-1/4 - 324-8

Fuera de Servicio Temporal AFORA 2 LITROS

MATRAZ DE 2 LITROS CAPACIDAD NOMINAL DE CRISTAL E80013H-1/4

Matraz 2 litros - 99111

Fuera de Servicio Temporal AFORA V-55938

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80083H-4/4 - 161-9

Fuera de Servicio Temporal AFORA 20 LITROS

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80082H-4/4 --- 159-9

Fuera de Servicio Temporal AFORA 20 LITROS

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80013H-4/4

Matraz 20 litros - 407-5

En Servicio AFORA V-55933

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80041H-4/4

Matraz 20 litros --- 398-8

En Servicio AFORA V-55933/2E

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80020H-4/4

Matraz 20 litros - 271-2

En Servicio AFORA 5990

OPTIMIZACIÓN DE RUTAS EN VEIASA 78

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80014H-4/4

Matraz 20 litros - 85-2

En Servicio AFORA V-55933/2H

MATRAZ DE 20 LITROS CAPACIDAD NOMINAL DE CRISTAL E80040H-4/4

Matraz 20 litros - 397-8

En Servicio AFORA V-55933/H

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80083H-2/4 278-12

En Servicio AFORA 5 LITROS

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80014H-2/4

Matraz 5 litros - 297-12

En Servicio AFORA V-55939/2H

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80020H-2/4

Matraz 5 litros - 280-12

En Servicio AFORA 5 L

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80013H-2/4

Matraz 5 litros - 399-8

En Servicio AFORA V-55939/2E

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80041H-2/4

Matraz 5 litros --- 83-12

En Servicio AFORA 5 L

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80040H-2/4

Matraz 5 litros - 124-12

En Servicio AFORA 5 L

MATRAZ DE 5 LITROS CAPACIDAD NOMINAL DE CRISTAL E80082H-2/4 --- 991180

En Servicio AFORA 5 LITROS

MEDIDOR CONDICIONES AMBIENTALES E80021W

MEDIDOR DE CONDICIONES AMBIENTALES - 050400988

Caduca este Mes CENTER PCE 313-A

MEDIDOR CONDICIONES AMBIENTALES E80012W ***

Fuera de Servicio Definitivo METEOSCOP 3 4765 BA-888

MEDIDOR CONDICIONES AMBIENTALES E80056W

MEDIDOR DE CONDICIONES AMBIENTALES - 041204521

Caduca este Mes CENTER 313

MEDIDOR CONDICIONES AMBIENTALES E80058W

MEDIDOR DE CONDICIONES AMBIENTALES - 041204093

Fuera de Servicio Temporal CENTER 313

MEDIDOR CONDICIONES AMBIENTALES E80059W

MEDIDOR DE CONDICIONES AMBIENTALES - 050400947

Fuera de Servicio Temporal CENTER PCE 313-A

MEDIDOR CONDICIONES AMBIENTALES E80024W

MEDIDOR DE CONDICIONES AMBIENTALES - 050400921

Caduca este Mes CENTER PCE 313-A

MEDIDOR CONDICIONES AMBIENTALES E80034W ***

Fuera de Servicio Definitivo METEOSCOP 3 4765 BA-888

MEDIDOR CONDICIONES AMBIENTALES E00039E-1/2 - V3140027

Fuera de Servicio Definitivo VAISALA HMP233

MEDIDOR CONDICIONES AMBIENTALES E00039E-2/2 - V3140027

Fuera de Servicio Definitivo VAISALA HMP233

MEDIDOR CONDICIONES AMBIENTALES E00004A-1/2 - V3140032

Fuera de Servicio Definitivo VAISALA HMP233

MEDIDOR CONDICIONES AMBIENTALES E00004A-2/2 - V3140032

Fuera de Servicio Definitivo VAISALA HMP233

MEDIDOR CONDICIONES AMBIENTALES E80081W 080901627

Fuera de Servicio Temporal PCE 313-A

MEDIDOR CONDICIONES AMBIENTALES E80088W - 080502420

Caduca este Mes CENTER PCE 313-A

OPTIMIZACIÓN DE RUTAS EN VEIASA 79

MEDIDOR CONDICIONES AMBIENTALES E80057W

MEDIDOR DE CONDICIONES AMBIENTALES - 050400959

Caduca este Mes CENTER 313

MEDIDOR VOLUMÉTRICO DE GASOLINAS Y GASOLEOS E80092H-1/2 805141

En Servicio TCS 700-25

MOTOR GENERADOR DE HUMOS PARA OPACÍMETROS M80075O - ***

En Servicio **** ****

OPACÍMETRO PATRÓN E80073O-1/8 - C106054343

En Servicio

ATE-MOTORSENS MAC-2012

PATRON INHALAMBRICO DE TEMPERATURA E80096T A136280

Caduca este Mes NOKEVAL MTR265-PT100

PATRON INHALAMBRICO DE TEMPERATURA E80095T A136279

Caduca este Mes NOKEVAL MTR265-PT100

PATRON INHALAMBRICO DE TEMPERATURA E80094T A1362559

Fuera de Servicio Temporal NOKEVAL MTR265-PT100

PATRON INHALAMBRICO DE TEMPERATURA E80093T A136258

Fuera de Servicio Temporal NOKEVAL MTR265-PT100

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80091P 70551624

Fuera de Servicio Temporal DRUCK DPI 705

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80090P 70551625

Fuera de Servicio Temporal DRUCK DPI 705

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80046P

PATRON DE TRABAJO PORTATIL PARA MANOMETROS NEUMATICOS 0,001 5895

Fuera de Servicio Temporal

SI PRESURE INST PC6-PRO-0020-C

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80022P

PATRON PORTATIL PARA MANOMETROS NEUMATICOS 0,1 2020/99-05

Fuera de Servicio Temporal DRUCK DPI 603

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80048P

PATRON PORTATIL PARA MANOMETROS NEUMATICOS 70557442

Fuera de Servicio Temporal DRUCK DPI 705

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80047P

PATRON DE TRABAJO PORTATIL PARA MANOMETROS NEUMATICOS 0,001 5900

Fuera de Servicio Temporal

SI PRESURE INST PC6-PRO-0020-C

PATRÓN PARA MANÓMETROS NEUMÁTICOS E80006P

PATRON PORTATIL PARA MANOMETROS NEUMATICOS 0,1 1506

Fuera de Servicio Definitivo PREMIER PIC-100

PC PORTÁTIL PARA OPACÍMETRO E80073O-2/8 -

VER ESPECIFICA

Sin Programar - -

SISTEMA DE MEDICIÓN DE TEMPERATURA INALÁMBRICO E80097T-2/3 VER 0.5

En Servicio VEIASA ITTMET-59

SISTEMA DE MEDICIÓN DE TEMPERATURA INALÁMBRICO E80097T-1/3 A1364767

En Servicio NOKEVAL FTR970-PRO

TERMÓMETRO CON SONDA DE TEMPERATURA E80049W

Termómetro con sonda de temperatura - 3050510176

Fuera de Servicio Temporal TESTO 925

TERMÓMETRO CON SONDA DE TEMPERATURA E80051W

Termómetro con sonda de temperatura - 3050510964

Fuera de Servicio Temporal TESTO 925

TERMÓMETRO CON SONDA DE TEMPERATURA E80050W

Termómetro con sonda de temperatura - 3060520620

Fuera de Servicio Temporal TESTO 925

TERMÓMETRO CON SONDA DE TEMPERATURA E80052W

Termómetro con sonda de temperatura - 3060520621

Fuera de Servicio Temporal TESTO 925

TERMÓMETRO CON SONDA DE TEMPERATURA E80033W

Termómetro con sonda de temperatura - 35009/7

Fuera de Servicio Temporal COMARK C9007

TERMÓMETRO CON SONDA DE TEMPERATURA E80079W 33765477/903

Fuera de Servicio Temporal TESTO 925

OPTIMIZACIÓN DE RUTAS EN VEIASA 80

TERMÓMETRO CON SONDA DE TEMPERATURA E80080W 33765473/903

Fuera de Servicio Temporal TESTO 925

TERMÓMETRO CON SONDA DE TEMPERATURA E80092H-2/2 090100950

Fuera de Servicio Temporal

RTD THERMOMETER PT-385

TERMÓMETRO CON SONDA DE TEMPERATURA E80036A-8/8 757-200

Fuera de Servicio Temporal OMRON E5CL-6

9.1.5. Verificación – Patrón

9.2. Códigos Fuente (VBA en Excel)

9.2.1. Hoja basada en GMEL & RouteXL

9.2.1.1. Importar Datos

Sub PreguntaImportaTXT()

Dim fileName

If fileName <> "False" Then

On Error GoTo Salir

With ActiveSheet.QueryTables.Add(Connection:= _"TEXT;" & fileName _, Destination:=Range("$D$8"))

.Name = "fileName"

.FieldNames = True

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.TextFilePromptOnRefresh = False

.TextFilePlatform = 850

.TextFileStartRow = 1

.TextFileParseType = xlDelimited

.TextFileTextQualifier = xlTextQualifierDoubleQuote

.TextFileConsecutiveDelimiter = False

OPTIMIZACIÓN DE RUTAS EN VEIASA 81

.TextFileTabDelimiter = True

.TextFileSemicolonDelimiter = False

.TextFileCommaDelimiter = False

.TextFileSpaceDelimiter = False

.TextFileColumnDataTypes = Array(1)

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False

End With

Cells.Select

Cells.EntireColumn.AutoFit

Rows("8:8").Select

Sheets("TOTAL").Select

Selection.ClearContents

Sheets("TOTAL").Select

On Error GoTo 0

Exit Sub

Salir:

Sheets("total").Select

MsgBox "Se canceló la Importación"

End If

Cells.Select

Cells.EntireColumn.AutoFit

Sheets("total").Select

End Sub

9.2.1.2. Ordenar Datos

Sub Ordenar_datos()

Range("F8").Select

Range("D8:R390").Sort Key1:=Range("F8"), Order1:=xlDescending, Header:= _

xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

DataOption1:=xlSortNormal

Cells.Select

Cells.EntireColumn.AutoFit

Sheets("AUX").Select

Range("I8:I408").Select

Selection.Copy

Sheets("TOTAL").Select

Range("R8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("TOTAL").Select

Range("O8:O408").Select

Selection.Copy

Sheets("COMARCA").Select

Range("A8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("COMARCA").Select

OPTIMIZACIÓN DE RUTAS EN VEIASA 82

Range("B8:B408").Select

Selection.Copy

Sheets("TOTAL").Select

Range("T8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("COMARCA").Select

Range("C8:C408").Select

Selection.Copy

Sheets("TOTAL").Select

Range("U8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("TOTAL").Select

Range("S8").Select

ActiveCell.FormulaR1C1 = "1"

Columns("U:U").EntireColumn.AutoFit

Columns("T:T").EntireColumn.AutoFit

End Sub

9.2.1.3. Crear Total (Separar la hoja del resto del documento)

Sub Crear_archivos_de_hojas()

Dim strHoja, strStartHoja, strRuta As String

Application.ScreenUpdating = False

strStartHoja = ActiveCell.Worksheet.Name

'copia la hoja a libro nuevo

Sheets("TOTAL").Activate

strHoja = ActiveCell.Worksheet.Name

Sheets(strHoja).Copy

'donde guardar los archivos creados

strRuta = "C:\Users\Maki\Documents\dropbox\PFC\"

'guarda el libro nuevo

ActiveWorkbook.SaveAs fileName:=strRuta & "\" & strHoja, _

FileFormat:=xlNormal, Password:="", WriteResPassword:="", _

ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWindow.Close Savechanges:=True

Sheets(strStartHoja).Activate

Application.ScreenUpdating = True

End Sub

OPTIMIZACIÓN DE RUTAS EN VEIASA 83

9.2.1.4. Reiniciar Plantilla (Borra todo el contenido)

Sub Limpiar_contenido()

'***** Limpia solo el contenido mas no el formato hecho

Range("D8:R408").ClearContents

Range("T8:U408").ClearContents

Sheets("COMARCA").Select

Range("A8:A408").Select

Application.CutCopyMode = False

Selection.ClearContents

Sheets("TOTAL").Select

ActiveWindow.ScrollColumn = 1

End Sub

9.2.1.5. Google Maps Engine Lite

Sub GMEL()

Range("D8").Select

I = 1

Do Until I = 408

If ActiveCell.Value = "" Then

Selection.EntireRow.Delete

Else

ActiveCell.Offset(1, 0).Select

End If

I = I + 1

Loop

Columns("A:C").Select

Selection.Delete Shift:=xlToLeft

Rows("1:6").Select

Selection.Delete Shift:=xlToLeft

'Dim IE As Object

'Dim PaginaWeb As String

'cambiar pagina web

'PaginaWeb = "https://mapsengine.google.com/map/"

'Set IE = CreateObject("InternetExplorer.Application")

'IE.navigate PaginaWeb

'Do While Not IE.busy

'DoEvents

'Loop

'IE.Visible = True

'si se quiere cerrar la ventana

'ie.quit

'Set IE = Nothing

'Se abre en Chrome

OPTIMIZACIÓN DE RUTAS EN VEIASA 84

ActiveWorkbook.FollowHyperlink "https://mapsengine.google.com/map/"

N = ActiveSheet.Shapes.Count

For I = N To 1 Step -1

'controla el tipo de objeto y elimina si se trata de Picture

On Error Resume Next

ActiveSheet.Shapes(I).Select

If Left(ActiveSheet.Shapes(I).Name, 7) = "Picture" Or

Left(ActiveSheet.Shapes(I).Name, 5) = "Image" Then

ActiveSheet.Shapes(I).Delete

End If

Next

End Sub

9.2.1.6. RouteXL

Sub Routexl() Range("D8").Select I = 1 Do Until I = 408 If ActiveCell.Value = "" Then Selection.EntireRow.Delete Else ActiveCell.Offset(1, 0).Select End If I = I + 1 Loop Columns("A:C").Select Selection.Delete Shift:=xlToLeft Rows("1:6").Select Selection.Delete Shift:=xlToLeft 'Dim IE As Object 'Dim PaginaWeb As String 'cambiar pagina web 'PaginaWeb = "http://www.routexl.nl/?lang=es" 'Set IE = CreateObject("InternetExplorer.Application") 'IE.navigate PaginaWeb 'Do While Not IE.busy 'DoEvents 'Loop 'IE.Visible = True 'si se quiere cerrar la ventana 'ie.quit 'Set IE = Nothing 'Se abre en Chrome ActiveWorkbook.FollowHyperlink "http://www.routexl.nl/?lang=es" N = ActiveSheet.Shapes.Count For I = N To 1 Step -1 'controla el tipo de objeto y elimina si se trata de Picture On Error Resume Next ActiveSheet.Shapes(I).Select If Left(ActiveSheet.Shapes(I).Name, 7) = "Picture" Or Left(ActiveSheet.Shapes(I).Name, 5) = "Image" Then ActiveSheet.Shapes(I).Delete

OPTIMIZACIÓN DE RUTAS EN VEIASA 85

End If Next Columns("A:H").Select Selection.Delete Shift:=xlToLeft Columns("B").Select Selection.Delete Shift:=xlToLeft Columns("D").Select Selection.Delete Shift:=xlToLeft Columns("E:T").Select Selection.Delete Shift:=xlToLeft Rows("1").Select Selection.Delete Shift:=xlToLeft End Sub

9.2.2. Hoja basada en Microsoft MapPoint

9.2.2.1. Autofiltro

Sub CopiarAutofiltro() Dim rng As Range Dim rng2 As Range With ActiveSheet.AutoFilter.Range On Error Resume Next Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With If rng2 Is Nothing Then MsgBox "No hay datos para copiar" Else Worksheets("AUTOFILTRO").Cells.Clear Set rng = ActiveSheet.AutoFilter.Range rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _ Destination:=Worksheets("AUTOFILTRO").Range("D8") End If ActiveSheet.ShowAllData End Sub

9.2.2.2. Crear Ruta

Sub EncontrarRuta() Dim miMapero As Object Dim miMapa As Object Dim miRuta As Object Dim i As Integer Dim numser As Integer ActiveSheet.Shapes("Mapa").Select Selection.Verb Verb:=xlPrimary Set miMapero = ActiveSheet.OLEObjects("Mapa") Set miMapa = miMapero.Object.Parent.activemap Set miRuta = miMapa.ActiveRoute 'Set rPrimerDestino = Range("rPrimerDestino")

OPTIMIZACIÓN DE RUTAS EN VEIASA 86

numser = Range("NumeroDestinos").Value - 1 For i = 0 To numser 'Agregar paradas a la ruta y calcular la ruta 'MsgBox Range("rPrimerDestino").Offset(i, 0).Text With Range("PrimerRegistro") If Not .Offset(i, 0).EntireRow.Hidden Then miRuta.waypoints.Add miMapa.FindResults(.Offset(i, 8).Text & ", " & _ .Offset(i, 11).Text & ", " & .Offset(i, 9).Text & ", " & _ .Offset(i, 10).Text).Item(1) ' MsgBox miRuta.waypoints.Item(i).Name End If End With Next 'objRoute.Calculate miRuta.waypoints.Optimize miRuta.Calculate Set miRuta = Nothing Set miMapa = Nothing Set miMapero = Nothing ActiveSheet.Shapes("Mapa").Select Selection.Verb Verb:=xlPrimary End Sub

9.2.2.3. Borrar Ruta

Sub BorrarRutaActiva() Dim miMapero As Object Dim miMapa As Object Dim miRuta As Object Dim i As Integer Dim numser As Integer Set miMapero = ActiveSheet.OLEObjects("Mapa") Set miMapa = miMapero.Object.Parent.activemap Set miRuta = miMapa.ActiveRoute miRuta.Clear Set miRuta = Nothing Set miMapa = Nothing Set miMapero = Nothing ActiveSheet.Shapes("Mapa").Select Selection.Verb Verb:=xlPrimary Range("AI4").Select End Sub