Una empresa de la región está interesada en incorporar a su sistema una nueva funcionalidad que le permita diseñar de forma eficiente el reparto de los paquetes, en este caso muebles, a las tiendas más pequeñas. Se pretende incorporar un algoritmo de rutas y cargas para la gestión de la flota de camiones.
El problema de rutas es un problema clásico en la literatura, donde hay una serie de destinos a visitar y hay que encontrar la mejor ruta minimizando la distancia recorrida, (problema del viajante). El problema de cargas de contenedores es un problema también clásico que se ha abordado durante años mediante técnicas heurísticas y exactas.
El objetivo del proyecto es diseñar un algoritmo que encuentre una buena ruta en función de una serie de parámetros configurables en los destinos a visitar, como son: hora a la que se quiere llegar, tiempo de parada en cada destino, congestión en la ruta, número de paquetes, volumen de la carga, etc.
El algoritmo debe incorporar la siguiente funcionalidad:
- Posibilidad de incorporar múltiples destinos.
- Lugar de salida, donde comience y termine la ruta.
- Hora de salida, se puede incorporar como dato inicial o el algoritmo debe estimarlo en función de a la hora que se quiera llegar al primer destino.
- Tiempo estimado de cada parada, el usuario incorporará cuanto tiempo estima demorarse en cada destino, para que el algoritmo a parte de la ruta indique tiempos estimados de llegada a cada destino.
- Hora destino, incorporar la hora a la que se quiere estar en un destino determinado, por ejemplo hora a la que se tiene una reunión. En función de esta se determinará la hora de salida y la llegada y salida a los destinos previos.
- Cómo se distribuye la carga dentro del vehículo, ya que no se permitirá cambiar la posición de los objetos una vez se ha cargado el camión. Además debe ser factible por posición, hay veces en que es posible por volumen pero no por la forma de los objetos.
Con toda esta información se debe diseñar un algoritmo que devuelva el orden en que debe visitar los destinos y tiempo estimado de llagada a cada destino.
Lenguaje de desarrollo
El sistema será implementado en C++ con STL, para la visulación de las soluciones se utilizará un librería gráfica similar a OpenGl.