VRP RUTEO DE VEHICULOS CVRP

download VRP RUTEO DE VEHICULOS CVRP

of 15

Transcript of VRP RUTEO DE VEHICULOS CVRP

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    1/15

    Problema de Ruteo de Vehculos Capacitados

    (CVRP)

    Ing. Edwin Montes Orozco

    Universidad Autonoma Metropolitana Azcapotzalco

    Posgrado en Optimizacion

    21 de noviembre de 2015

    Resumen

    Los problemas de ruteo de vehculos han sido objeto de investiga-cion intensiva por mas de 50 anos, debido al gran interes cientfico queestos tienen p or ser considerados NP-duros. Por otra parte, se debe a suimportancia como modelo de optimizacion, en cantidades de campos deaplicacion, como son, transporte, logstica, comunicaciones, manufactura,militar, entre otros.

    El problema tradicionalCVRP (por sus siglas en ingles CapacitatedVehicle Routing Problem) puede ser descrito en su forma mas sencillacomo una flota de vehculos con capacidades uniformes que tiene que sa-tisfacer la demanda de un grupo de clientes a traves de un conjunto derutas que empiezan y terminan en un almacen comun y que representan

    el menor costo posible, as como la identificacion del orden de visita a losmismos (Gendreau et al. (2012)).

    1. Definicion

    ElCVRPse define como, dada una flota dekvehculos homogenea, esdecir, todos cuentan con la misma capacidad Q. El problema consiste enencontrar una coleccion de exactamente m ciclos (cada uno de ellos quecorresponde a una ruta de un vehculo) con mnimo costo[1]. Se define elcosto total como la suma de los costos de los arcos que pertenecen al cicloy tal que:

    1. Cada ciclo parte de, y regresa al deposito.

    2. Cada cliente es visitado exactamente por un ciclo.

    3. La suma de las demandas de los vertices de un ciclo no exceda lacapacidad Q del vehculo k.

    El problema de ruteo de vehculos es un problema que puede enten-derse como la interseccion de dos conocidos problemas de optimizacioncombinatoria[3].

    1

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    2/15

    1. Bin Packing ProblemBPP; debido al hecho que cada vehculo deberealizar por lo menos una ruta, se debe asumir que k (numero de

    vehculos) no puede ser menor que un numero mnimo kmin, quees el numero mnimo de vehculos necesarios para servir a toda lademanda de los clientes.

    El valor de este parametro mnimo puede ser determinado resolvien-do un BPPasociado especficamente con el VRP, el cual determinael mnimo numero de vehculos, cada uno con capacidad Q, requeri-dos para cargar todos los n elementos, cada uno con una demandano negativa, denotada por di, i= 1, 2,...,n.

    2. Problema del Agente ViajeroTSP; existe un conjunto de n clientes,V = 1, 2, 3,...,n, y un conjunto de caminos (arcos) uniendo cadauna de los clientes (i, j)A, con (Cij) como la distancia para ir del

    cliente ial cliente j; el problema es realizar un recorrido por cadavehculo, partiendo de un origen (deposito), pasando por cada unade los clientes una sola vez, y regresando al origen.

    A grandes rasgos un Problema de Ruteo de Vehculosconsiste en da-do un conjunto de clientes y depositos dispersos geograficamente y unaflota de vehculos, determinar un conjunto de rutas de costo mnimo quecomiencen y terminen en los depositos, para que los vehculos visiten a losclientes. Las caractersticas de los clientes, depositos y vehculos, as comodiferentes restricciones operativas sobre las rutas, dan lugar a diferentesvariantes del problema[4].

    2. Estado del Arte

    En 1956 Flood desarrollo el primer problema planteado tipo VRP(aunque en esa fecha todava no se conoca el concepto VRP) el cualfue el problema del agente viajero o TSP.

    En 1960 el concepto VRP fue introducido por Dantzig y Ramser,quienes propusieron una formulacion matematica.

    En 1964 Clarke y Wright propusieron el primer algoritmo que re-sulto efectivo para resolver el VRP, conocido como el algoritmo deahorros.

    Sin denotar fechas exactas, se desarrollaron diversas adecuacionesdel algoritmo de ahorros en forma secuencial y paralela, as como lassiguientes heursticas:

    1. Heursticas de Insercion Secuencial de Mole and Jameson.

    2. Insercion en Paralelo de Christofides, Mingozzi y Toth.

    3. Asignacion Generalizada de Fisher y Jaikumar.

    4. Localizacion de Bramel y Simchi-Levi.

    En1981Rinooy Kan demostro que este problema pertenece al tipoNP-Hard.

    2

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    3/15

    En 1993 K. Jansen publico el artculo A tabu search heuristic forthe vehicle routing problem.

    En 1998 Shaw, P. publico un artculo donde definio y resolvio di-versas modificaciones al VRPutilizando programacion lineal.

    En 2004 Prins, C. publico el artculo Evolutionary Algorithms forVehicle Routing Problems.

    En2008Tramontani, A. publico algunas meta-heursticas utilizadaspara resolver problemas de VRP con ventanas de tiempo.

    En2012 Gendreau et al. publico diversas soluciones para el CVRPutilizando heursticas.

    3. Modelo[5]

    Como se menciono, el desarrollo de los problemas del tipo VRP,en general, dependen de la fundamentacion y desarrollo de dos pro-blemas de optimizacion del tipo NP-duro; el Problema del AgenteViajero y el Bin Packing Problem.

    3.1. Definicion

    Se tiene:

    G= (V, A). Grafo completo no dirigido.V =v0, v1, v2,...,vn. Conjunto de nodos, donde v0 es el deposito.A= (i, j) : i,jV, i=j . Conjunto de aristas.C= (Cij). Matriz de costos de ir del nodo ial nodo j.diZ

    + = demanda del nodo i.

    QZ+ = capacidad de los vehculos.

    Se consideran las Variables de decision:

    Xvij =

    1, si el vehiculovviaja de ia j0, en otro caso

    Yiv = Demanda del cliente ientregada por el vehculo v

    3.2. Formulacion Matematica

    La formulacion Matematica para un CVRPse denota de la siguientemanera:

    Minimizarni=0nj=0kv=0 CijXvijSujeto a:

    ni=0

    kv=0

    Xvij 1; j= 0, 1, 2,...,n (1)

    ni=0

    Xvipn

    j=0Xvpj = 0; p= 0, 1,...,n; v= 1, 2,...,k (2)

    3

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    4/15

    Yiv =din

    j=0Xvij; i= 1, 2,...,n; v= 1, 2,...,k (3)

    kv=0

    Yiv = di i = 1, 2,...,n (4)

    ni=0

    Yiv Q v= 1, 2,...,k (5)

    Xvij {0, 1} ; i= 0, 1,...,n; j= 0, 1,...,n; v= 1, 2,...,k (6)

    Yiv 0; i= 1, 2,...,n; v= 1, 2,...,k (7)

    ui uj + QXvij Q dj i,jV \ {0} (8)

    i,jV \ {0}, i=j , tal que di+ dj Q (9)

    di ui Q; iV \ {0} (10)

    donde ui,iV{0}, son variables continuas adicionales que representan lacarga del vehculo despues de visitar al nodo i.

    La ecuacion (1) establece que al menos un vehculo debe visitar acada nodo.

    La restriccion (2) es de conservacion de flujo, que indican que losvehculos que parten del deposito deben regresar a el.

    La restriccion (3) impone que el cliente ipuede ser servido por elvehculo vsi y solo si vpasa por i.

    La restriccion (4) asegura que la demanda completa de cada clientees satisfecha en su totalidad.

    La restriccion (5) impone que la cantidad entregada en cada viaje noexceda la capacidad del vehculo.

    Las restricciones (8), (9) y (10) se utilizan para la formacion de sub-ciclos.

    Nota: La funcion objetivo depende de la tipologa y caractersticasdel problema. Lo mas habitual es intentar:

    1. Minimizar el costo total de operacion,

    2. Minimizar el tiempo total de transporte,

    3. Minimizar la distancia total recorrida,

    4. Minimizar la utilizacion de vehculos,

    5. Equilibrar la utilizacion de los recursos, etc.

    4. Algoritmos de Busqueda Local

    4.1. Ascenso a la Montana[6]

    Es un algoritmo iterativo que comienza con una soluci on arbitraria aun problema, luego intenta encontrar una mejor solucion variando incre-

    4

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    5/15

    mentalmente un unico elemento de la solucion. Si el cambio produce unamejor solucion, otro cambio incremental se le realiza a la nueva solucion,

    repitiendo este proceso hasta que no se puedan encontrar mejoras.

    El algoritmo de Ascenso a la Montana es bueno para encontrar unoptimo local (una solucion que no puede ser mejorada considerando unaconfiguracion de la vecindad) pero no garantiza encontrar la mejor solu-cion posible (el optimo global) de todas las posibles soluciones (el espaciode busqueda).

    4.2. Busqueda Local Iterada[4]

    El esquema basico que gobierna la busqueda local iterada es el siguien-te:

    Construir una solucion inicial s0 para el problema combinatorio

    Aplicar un algoritmo de busqueda, que proporcione un optimo locals

    Mientras no se encuentre un criterio de parada:

    1. Aplicar una perturbacion a la solucion spara transformarla ens

    2. Emplear el algoritmo de busqueda para obtener s

    3. Si s supera un criterio de aceptacion, considerar a s como elsiguientes

    4.2.1. Busqueda Local

    Debe optimizarse la eleccion lo mas posible.

    No siempre la mejor busqueda local lleva a una mejora en ILS.

    Si el tiempo de computacion es fijo, puede ser mejor aplicar con masfrecuencia un algoritmo de busqueda local mas rapido aunque menosefectivo, que uno mas lento y mas poderoso.

    4.2.2. Perturbaciones [8]

    Fuerza de la perturbacion:Numero de componentes de la solucionque son modificados.

    La busqueda local no debera ser capaz de deshacer la p erturbacion,ya que se caera en un optimo local ya visitado.

    Se pueden obtener mejores resultados si las perturbaciones tienen encuenta propiedades del problema.

    Para este trabajo se eligieron tres tipos de permutaciones.

    1. Fuerte: Perturbacion double-bridge move. Esta perturbacion se

    considera fuerte debido a que puede ocasionar la aleatoriedad delas soluciones y diversificar el espacio de busqueda.

    2. Media: Perturbacion Ejection Chain. Esta perturbacion se con-sidera como de las mejores perturbacionespara el tipo de pro-blemasVRP.

    5

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    6/15

    Figura 1: Perturbacion double-bridge move

    Figura 2: Ejection Chain (Antes y Despues)

    3. Debil: Perturbacion Double Swap. Esta perturbacion se consi-dera debil, ya que realiza el intercambio de dos clientes dentrode la ruta (de forma aleatoria), y dependiendo del vecindario uti-lizado en la Busqueda Local puede ser que se visite un optimolocal visitado con anterioridad.

    Perturbacion double-bridge move Problemas simples (comoTSP o VRP):

    Se puede obtener resultados satisfactorios usando perturbaciones de

    tamano fijoEj.: Una perturbacion exitosa para TSP/VRP es el double-bridge move,sin embargo es muy fuerte.

    Nota: Para este trabajo, se realizaron pruebas con y sin esta pertur-bacion.

    Perturbacion Ejection Chain Problemas simples (como VRP):

    La perturbacion Ejection Chain es aplicable eficientemente para elVRP, esta perturbacion ofrece buenos resultados para todo el tamanode instancias.

    Perturbacion Double Swap Problemas simples (como TSP oVRP):

    Otra perturbacion exitosa para TSP/VRP es el double swap, a dife-rencia del double-bridge move esta perturbacion es demasiado suave.

    4.2.3. Criterio de Aceptacion

    Numero de Iteraciones:Se establece el numero total de iteraciones (n) para el algoritmo y se

    6

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    7/15

    Figura 3: Movimiento Swap, en esta perturbacion se realiza 2 veces

    devuelve la mejor solucion encontrada hasta la ejecucion de la ultimaiteracion n.

    4.3. Metodo Multi-Arranque[7]

    El principal inconveniente de las Busquedas Locales es que, en general,suministran soluciones localmente optimas que pueden estar muy aleja-das (en terminos del valor objetivo) de la solucion o soluciones optimasglobales.

    Una alternativa para solventar este inconveniente consiste en aplicarBusquedas Locales desde varias soluciones de partida. La repeticion de losprocesos Generar Solucion Inicialy Busqueda Localconstituye el primerMetodo Multi-arranquedescrito en la literatura

    .El esquema basico que gobierna el Metodo Multi-Arranque es:Haceri = 1

    while(Condicion de Parada)Fase 1 (Generacion)Construir solucion XiFase 2 (Busqueda)Aplicar metodo de busqueda para mejorar Xi

    Sea Xi la solucion obtenidaif (Xi mejora a Xi )Actualizar la mejor solucioni= i + 1

    5. Codificacion

    5.1. Generacion de la primer solucion[2]

    Para generar la primer solucion se realizo:La creacion del nodo deposito utilizando una estructura del tipodeposito, la cual contiene la informacion sobre el ID del nodo depositoy los vehculos que parten de el.

    En este problema todos los vehculos parten del deposito.

    7

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    8/15

    La creacion y asignacion de los n nodos clientes a los k vehculos.Estos nodos se crean con una estructura del tipo Cliente, la cual con-

    tiene la informacion sobre el ID del nodo Cliente y el unico vehculoque lo visita.

    Una vez asignado cada nodo Cliente a un vehculo, se separan todoslos nodos Cliente y Deposito por ID de vehculo en un vector unopor cada vehculo, es decir, si se tienen los siguientes no dos clientes.

    ID: 1, ID VEHICULO = 1,ID: 2, ID VEHICULO = 2,ID: 3, ID VEHICULO = 1.

    Vector 1:ID: 0, ID VEHICULO = 1,ID: 1, ID VEHICULO = 1,ID: 3, ID VEHICULO = 1.

    Vector 2:ID: 0, ID VEHICULO = 2,ID: 2, ID VEHICULO = 2.

    Finalmente, al tener esa informacion dentro del vector, se agrega elnodo deposito al final de este para p oder tener as, un ciclo por cadavehculo que parte del deposito y regresa al mismo despues de visitar asus clientes.

    Vehculo 1:

    ID: 0,ID: 1,ID: 3,ID: 0.

    Vehculo 2:

    ID: 0,ID: 2,ID: 0.

    Estos vectores se guardan en una matriz nxm donde n es el numerode nodos y m es el numero de vehculos.

    0> 1> 3> 00> 2> 0> 0

    Nota Si el numero de elementos en alguna ruta es menor, esos espaciosvacoscon 0s.

    5.2. Busqueda Local Iterada

    De la primer solucion se calcula el valor de la funcion objetivo to-mando la sumatoria del costo de ir del nodo ial nodo j, para cadaruta o ciclo k.

    8

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    9/15

    Figura 4: Ejemplo de intercambio para el vecindario 2.

    Se toma la solucionaleatoriay se le aplican intercambios de vecindad

    2 para cada ruta, es decir, de la soluci on actual se toman dos nodos yse intercambian para generar una nueva solucion vecina, y se evaluasu funcion objetivo (esto se hace para todos los vecinos posibles).

    Al evaluar la funcion objetivo para cada ruta se busca cual tienela mejor solucion que minimice el costo de las rutas y se regresa lainformacion de la siguiente manera:

    0> 1> 3> 00> 2> 0> 0

    Con una funcion objetivo: mejor solucion

    Despues de esto se repite el proceso para la mejor solucion vecinaencontrada al momento, as hasta que se encuentra el mejor optimolocal o nos encontremos en un estado de estancamiento. As pode-

    mos regresar s

    para continuar con la ILS.

    Una vez obtenida las, para comenzar el proceso de busqueda localiterada, se realizan los siguientes pasos:

    Mientras no se encuentre un criterio de parada:

    Aplicar una perturbacion a la solucionspara transformarla ens

    Emplear el algoritmo de busqueda para obtener s

    Si s supera un criterio de aceptacion, considerar a s comoel siguiente s

    Como se describio, para este problema se utilizan dos o tres tiposde perturbaciones. En la codificacion, para escoger una de esas trescuando se entra a la parte de perturbacion, se genera un numeroaleatorio entre 1 y 3 y se realiza la perturbaci on. Entonces, si tene-mos:

    1. Se realiza la perturbacion Ejection Chain.

    9

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    10/15

    0 1 2 3 4 50 0 10 4 3 10 11

    1 1 0 2 5 4 62 2 5 0 4 5 83 2 9 1 0 4 34 5 6 2 3 0 15 3 5 6 7 4 0

    2. Se realiza la perturbacion Double Swap.

    3. Se realiza la perturbacion Double-Bridge Move.

    Nota: Se encuentran mejores soluciones sin la perturbacion 3

    Una vez que se cumplio con el criterio de parada, se devuelvela mejor solucion s como s del problema en cuestion de lasiguiente manera:

    0> 1> 3> 00> 2> 0> 0

    Con una funcion objetivo: mejor solucion f(s)

    6. Pruebas

    6.1. Instancia

    Se tomo la instancia de 5 clientes, 2 vehculos con capacidad 50 parael producto, sin embargo, el programa se desarrollo para realizar el

    procedimiento para cualquier tamano de instancia. La matriz de costo de transportarse del cliente ial cliente j se

    muestra a continuacion:

    El vector de demanda de producto por cliente se muestra acontinuacion:

    30, 5, 20, 15, 10

    6.2. Resultados

    El programa arroja las siguientes soluciones para las rutas de losvehculos 1 y 2:

    Ruta vehculo 1:

    0-2-1-0

    Ruta vehculo 2:

    0-3-4-5-0

    10

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    11/15

    Figura 5: Diagrama de Caja HC.

    Funcion Objetivo: 21.

    Esta solucion es la mejor encontrada.

    Comparando con el programa anterior de Ascenso en la Mon-tana, se encontro un mejor resultado. Ademas la probabilidadde encontrar soluciones mejores soluciones es mas alta para laILS. A continuacion se muestran las pruebas estadsticas com-parando el Ascenso a la Montanay la ILS.

    6.3. Pruebas Estadsticas

    6.3.1. Ascenso a la Montana

    Evaluando 40 corridas, se tiene:

    Media: 29.825

    Error Estandar de la media: 0.338

    Desviacion Estandar: 2.135

    Cuartil 1: 29

    Mediana: 30

    Cuartil 3: 31

    6.3.2. ILS con 3 perturbaciones

    Evaluando 40 corridas, se tiene:

    11

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    12/15

    Figura 6: Diagrama de Caja ILS con 3 perturbaciones.

    Media: 29.950

    Error Estandar de la media: 0.338

    Desviacion Estandar: 2.136

    Cuartil 1: 29

    Mediana: 30

    Cuartil 3: 31

    6.3.3. ILS con 2 perturbaciones

    Evaluando 40 corridas, se tiene:

    Media: 24.375

    Error Estandar de la media: 0.333

    Desviacion Estandar: 2.108

    Cuartil 1: 23

    Mediana: 25

    Cuartil 3: 25

    12

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    13/15

    Figura 7: Diagrama de Caja ILS con 2 perturbaciones.

    Figura 8: Tabla Comparativa Pruebas Estadsticas.

    6.3.4. Comparaciones

    6.4. Prueba de los signos

    Utilizando la prueba de los signos con = 0,05 para la ILS con dosperturbaciones y el Ascenso a la montana, tenemos que P(Xi, Yi),con Xi la sumatoria de las diferencias negativas, y Yi la sumatoriade las diferencias positivas. Tenemos que:

    La hipotesis nula puede expresarse como:Si menor(P(Xi, Yi)) Valor crtico de la tabla, los resultadosson iguales.

    La hipotesis alternativa:

    Si menor(P(Xi, Yi)) < Valor crtico de la tabla, los resultados son

    mejores para Xi o Yi.

    P(Xi, Yi) = 18

    .

    El valor obtenido de la tabla es 13.

    13

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    14/15

    Figura 9: Diagrama de Caja HC,ILS2,ILS3.

    Entonces menor(P(Xi, Yi))> 13.

    Por lo tanto, los resultados son casi iguales y las heursti-cas se comportan de la misma forma.

    Prueba de los signos HC-ILS2P Utilizando la prueba de lossignos con = 0,05para la ILS con dos perturbaciones y el Ascensoa la montana, tenemos que P(Xi, Yi), con Xi la sumatoria de lasdiferencias negativas, y Yi la sumatoria de las diferencias positivas.Tenemos que:

    La hipotesis nula puede expresarse como:Si menor(P(Xi, Yi)) Valor crtico de la tabla, los resultadosson iguales.

    La hipotesis alternativa:

    Si menor(P(Xi, Yi)) < Valor crtico de la tabla, los resultados sonmejores para Xi o Yi.

    P(Xi, Yi) = 0

    .

    Prueba de los signos HC-ILS2P El valor obtenido de la tabla es 13.

    Entonces menor(P(Xi, Yi))< 13.

    Por lo tanto, los resultados mejoran para la heursti-ca 2 (ILS con 2 perturbaciones).

    14

  • 7/24/2019 VRP RUTEO DE VEHICULOS CVRP

    15/15

    Referencias

    [1] Rocha Medina, Linda Bibiana; Gonzalez La Rota, Elsa Cristina,State of the art review of the vehicle routing problem: A historicaccount with solving methods.Chile, 2011.

    [2] Benavides Madrid, Fernando, diseno e Implementacion de unabusqueda Tabu para el problema de ruteo de vehclos, 2012.

    [3] Zabala, Paula,Problemas de Ruteo de Vehculos, Tesis Doctoral,Departamento de Computacion. Facultad de Ciencias Exactasy Naturales, Universidad de Buenos Aires.

    [4] G. Berbeglia, J.F. Cordeau, I. Gribkovskaia y G. Laporte, Sta-tic pickup and delivery problems: a classification scheme andsurvey, TOP, vol. 15, 2007, 1-31.

    [5] N. Christofides, Worst-case analysis of a new heuristic for thetraveling salesman problem, Graduate School of Industrial Ad-

    ministration, Carnegie Mellon University, 1976.[6] M. Wattenberg, A. Juels Stochastic Hillclimbing as a Base-line

    Method for Evaluationg Genetic Algorithms University of Ca-lifornia - Berkeley, CSD94-834, 1994.

    [7] J.A. Moreno, N. Mladenovic,J. M. Moreno-Vega An StatisticalAnalysis of Strategies for Multistart Heuristic Searches for p-Facility Location-Allocation Problems Eighth Meeting of theEWG on Locational Analysis, Lambrecht, Germany, 1995.

    [8] C.G.E. Boender, A.H.G. Rinnooy Kan, L. Stougie, G.T. Tim-mer. A Stochastic Method for Global Optimization. Mathema-tical Programming vol. 22 pp. 125-140,1982.

    [9] D.H. Ackley An Empirical Study of Bit Vector Function Op-timization. Genetic Algorithms and Simulated Annealing, Ed.Davis, Morgan Kaufmann Publishers,1987.

    15