Servicio de resolución del problema de guiado de vehículos basado

Anuncio
Servicio de resolución del problema de guiado de
vehículos basado en Google Maps
A service for solving the Vehicle Routing Problem
based on Google Maps
Autor: José Fernando Acosta García
Directores: José Francisco Chicano García, Enrique Alba Torres
Introducción
El problema de guiado de vehículos (VRP) consiste en encontrar un conjunto de rutas
óptimas para realizar el reparto de una serie de paquetes a sus correspondientes destinos
[TV01]. Todos los paquetes se encuentran inicialmente en un almacén y los
transportistas deben repartirlos de forma que se minimice el tiempo de reparto o el coste
del mismo. Además hay que tener en cuenta que los vehículos usados para el transporte
tienen una capacidad limitada y una tasa de consumo de combustible determinada. Este
problema tiene un gran interés para las empresas de transporte y logística, ya que el uso
de rutas óptimas o casi óptimas supone un ahorro importante en el coste para la
empresa.
Figura 1 Una solución para una instancia del problema VRP
Dado su gran interés, este problema ha sido abordado por multitud de investigadores en
todo el mundo y existe una gran cantidad de proyectos de investigación y congresos
centrados en él. Asimismo, existen distintas variantes entre las que cabe destacar VRP
con límites de capacidad (CVRP) [LGW04] o VRP con ventanas de tiempo (VRPTW)
[Sol95]. Sin embargo, incluso en sus versiones más simples el problema es NP-difícil.
Esto significa que por el momento las técnicas exactas conocidas para obtener el óptimo
global de cualquier instancia del problema requieren un tiempo exponencial con
respecto al tamaño del mismo. Este hecho ha motivado la investigación de técnicas
aproximadas para la resolución del problema y hoy en día existe un amplio abanico de
métodos de optimización desarrollados para resolverlo [NEO].
Podemos clasificar estas técnicas en tres grandes categorías: técnicas exactas,
heurísticas ad hoc y metaheurísticas. Como mencionamos anteriormente, las técnicas
exactas [Fisher94] permiten encontrar una solución óptima al problema pero suelen ser
costosas computacionalmente. No obstante, estas técnicas son muy útiles cuando el
tamaño de las instancias a resolver es pequeño. Un ejemplo destacado es Ramificación y
Poda (Branch & Bound). Por otro lado, las heurísticas ad hoc son algoritmos
especialmente diseñados para resolver un problema concreto, VRP en el caso que nos
ocupa. Aunque no aseguran obtener una solución óptima, normalmente consiguen una
solución casi óptima en tiempo polinomial. Algunos ejemplos de heurísticas ad hoc para
VRP son: la heurística de Clarke y Wright [CR94] y la de Fisher y Jaikumar [FJ81].
Finalmente, las técnicas metaheurísticas son algoritmos de optimización global cuya
estructura es general y no depende del problema de optimización concreto que
resuelven. El principal vínculo con el problema a resolver se establece a través de una
función de evaluación o función objetivo que indica a la metaheurística cuál es la
calidad de una solución determinada. Estos algoritmos han obtenido en muchos casos
las mejores soluciones conocidas para determinadas instancias de VRP populares en la
literatura específica [AD06]. Algunos ejemplos de técnicas metaheurísticas son:
algoritmos genéticos [Gold89], optimización basada en colonias de hormigas [DS04] y
enfriamiento simulado [KGV83].
La mayoría de las implementaciones de algoritmos que resuelven el problema usan
como entrada un fichero de texto plano. En dicho fichero se presentan las coordenadas
de los distintos puntos de reparto y del almacén. Además, se indican otras características
asociadas a los vehículos o a los puntos de entrega, como por ejemplo: la capacidad de
los vehículos, la ventana de tiempo dentro de la cual debe hacerse la entrega, etc. Desde
el punto de vista de una empresa, la generación de estos ficheros de texto puede ser
tediosa. En este sentido, Google Maps [GM] puede ser de gran ayuda para especificar
con un simple click de ratón los puntos geográficos relevantes para el problema.
Figura 2 Una imagen de Google Maps mostrando una ruta en Málaga
No sólo se puede usar Google Maps para la especificación de los puntos de reparto, sino
que es posible utilizar sus servicios web para cosultar la distancia y el tiempo estimado
para llegar desde uno a otro. Estos datos forman parte de la información básica que
necesitan los algoritmos de resolución para proponer las rutas que más tarde recorrerán
los vehículos. Google Maps ofrece una API en Javascript [GMA] para realizar todas
estas consultas desde cualquier navegador Web.
Así pues, la combinación de Google Maps junto con los algoritmos de resolución del
problema VRP permiten, en principio, desarrollar un servicio para calcular
cómodamente rutas (casi) optimas de reparto. Al ofrecerse a través de la Web, dicho
servicio posee el don de la ubicuidad, permitiendo a personas de todo el mundo hacer
uso del mismo sin importar donde se encuentren: un claro ejemplo de transferencia de
conocimiento a la Sociedad.
Objetivos
El objetivo del presente proyecto consiste en desarrollar un servicio para resolver el
problema de guiado de vehículos (VRP) en algunas de sus variantes usando Google
Maps como base para la especificación de los puntos relevantes y el cálculo de la
distancia entre puntos. El servicio se ofrecerá a través de una interfaz Web donde los
clientes deben registrarse y pueden crear diferentes solicitudes de resolución. El cliente
deberá marcar la localización del almacén y los destinos en un mapa de Google Maps y
el sistema deberá proporcionar una solución de acuerdo con las preferencias del cliente
(minimizar distancia o tiempo). Las solicitudes y soluciones se almacenarán en una base
de datos para que el cliente las modifique o elimine cuando estime oportuno.
Para la programación de la aplicación en el servidor se usará Java. En particular se
programarán servlets y páginas JSP que interactuarán con la base de datos y con el
servicio de optimización remota. Estos servlets serán ejecutados dentro de un Servidor
Web Tomcat configurado para establecer conexiones seguras con los navegadores por
medio de SSL (Socket Secure Layer). La base de datos se implementará en MySQL
haciendo uso de herramientas CASE para su diseño. La parte de la aplicación que se
ejecuta en el lado del cliente se implementará con Javascript inmerso en páginas HTML.
El código implementado deberá acceder a la API de Google Maps para consultar
información geográfica. Como se puede observar, el proyectando deberá dominar una
gran variedad de tecnologías para desarrollar el proyecto.
Fases del proyecto
El proyecto se realizará siguiendo un proceso de desarrollo en espiral. En cada iteración
se irán incorporando nuevas funciones a la herramienta. A continuación se muestran las
distintas iteraciones para el desarrollo de la herramienta final. Estas iteraciones se
corresponden con las distintas fases del proyecto.
1. Diseñar y desarrollar una versión simple de la interfaz en HTML y del servidor
(servlets) que permita el envío al servidor de los puntos marcados en el
navegador Web usando un mapa de Google Maps inmerso en la página Web.
2. Añadir la función de consulta de distancias entre puntos usando la API en
Javascript y la información que ofrece Google Maps.
3. Añadir una capa de seguridad al sistema usando SSL para establecer un canal
seguro de paso de información entre el cliente y el servidor.
4. Diseñar una base de datos para almacenar la información de las solicitudes de
resolución de los clientes y soluciones de las mismas. Se usarán herramientas
CASE para el diseño y se implementará en MySQL.
5. Añadir un sistema de autenticación para entrar al sistema y crear páginas Web
para gestionar las solicitudes de los usuarios.
6. Añadir al sistema una conexión con un sistema de optimización remota que
permita resolver las solicitudes planteadas por los clientes. Este sistema podrá
ejecutarse en una máquina diferente y deberán enviarse los detalles de las
instancias por un canal seguro de comunicación. Dependiendo de la urgencia del
resultado el sistema debe escoger entre un amplio abanico de técnicas de
resolución.
7. Crear manuales de uso y páginas Web de ayuda para los usuarios. Mejorar las
páginas Web del servicio desde un punto de vista estético haciendo uso de hojas
de estilo CSS y datos en XML para homogeneizar el aspecto visual.
Medios materiales
 Equipo portátil o PC
 Entorno de desarrollo Java
 Adobe Dreamweaver para el desarrollo de las páginas Web, hojas de estilo y
documentos XML
 Herramientas CASE para el diseño de los diagramas UML y la base de datos
 Servidores Web Tomcat
 Servidor de base de datos MySQL
 Editor de textos y compilador de LaTeX para la memoria y documentos
intermedios.
 Libros y artículos aportados por los directores del proyecto. Revistas de la
hemeroteca y de acceso electrónico.
Referencias
[AD06]
E. Alba, B. Dorronsoro, Computing Nine New Best-So-Far Solutions for
Capacitated VRP with a Cellular Genetic Algorithm, Information
Processing Letters, 98(6):225-230. 2006. ISSN: 0020-0190.
[CR64]
G. Clarke and J. Wright "Scheduling of vehicles from a central depot to a
number of delivery points", Operations Research, 12 (4), 568-581, 1964.
[DS04]
Dorigo, M. & Stützle, T. Ant Colony Optimization The MIT Press, 2004
[Fisher94]
M. L. Fisher, "Optimal Solution of Vehicle Routing Problems Using
Minimum K-trees", Operations Research 42, 626-642, 1994
[FJ81]
M. L. Fisher and R. Jaikumar. "A Generalized Assignment Heuristic for
Vehicle Routing". Networks, 11:109-124, 1981
[GM]
http://maps.google.com
[GMA]
http://code.google.com/intl/es-ES/apis/maps/
[Gold89]
Goldberg, D. E. Genetic Algorithms in Search, Optimization and
Machine Learning Addison-Wesley, 1989
[KGV83]
Kirkpatrick, S.; Gelatt, C. D. & Vecchi, M. P. Optimization by Simulated
Annealing Science, 1983, 4598, 671-680
[LGW04]
F. Li, B. Golden, E. Wasil: "Very large-scale vehicle routing: new test
problems, algorithms, and results". Computers & Operations Research,
32 (5), pp. 1165-1179. 2005.
[NEO]
http://neo.lcc.uma.es/radi-aeb/WebVRP/index.html
[Sol95]
M. M. Solomon. "Algorithms for the Vehicle Routing Problem with
Time Windows". Transportation Science, 29(2), pp. 156-166. 1995.
[TV01]
P. Toth, D. Vigo: "The Vehicle Routing Problem". Monographs on
Discrete Mathematics and Applications. SIAM, Philadelphia. 2001.
Descargar