Mi primera publicación aquí - con la esperanza de que pueda ayudarme a diseñar un algoritmo que he estado considerando por un tiempo - no estoy seguro de qué enfoque tomar (VRPTW o programación de recursos o algo más por completo !?)Diseño de algoritmo de enrutamiento de vehículos/programación de recursos
Para ponerlo en un ejemplo de palabra real, tenemos una gran cantidad de residuos de jardín en un pequeño número de ubicaciones (generalmente menos de 5). Todos los desechos deben ser transportados a otros lugares dentro de los plazos establecidos. Para mover los desechos del jardín tenemos remolques que deben ser remolcados por automóviles. Los desperdicios de jardín solo se pueden tirar en el depósito de desechos en ciertos momentos (ventanas de tiempo). En algunos sitios podemos dejar el remolque para que lo llene o vacíe la gente de allí, pero en otros lugares el conductor del automóvil tiene que hacerlo él mismo y el automóvil debe permanecer allí. Se pueden calcular todos los tiempos (es decir, tiempos de carga/descarga, tiempos de tránsito, etc.). Los automóviles pueden moverse entre sitios sin un remolque, los remolques pueden ser remolcados vacíos, pero los remolques no pueden moverse entre ubicaciones.
Nuestro objetivo es asegurar que todas las cargas de remolque de los residuos son transportados mientras
- reducir al mínimo el número de remolques y coches en uso
- reunión todas las ventanas de tiempo para dejar a los residuos
- “equilibrar” la remolques - es decir, al final del día tenemos tantos remolques en cada ubicación como estaban al comienzo del día
Pensé en abordar esto como una algoritmo de programación de recursos, pero no estoy seguro de cómo manejar el "equilibrio" de los trailers.
Otro método que consideré fue considerar primero los autos. Luego podría seleccionar la tarea más antigua y crear un gráfico de todas las tareas posibles después de eso. Si luego elegí el camino más largo a través del gráfico que serviría la cantidad máxima de cargas de remolque. Luego pude eliminar estas tareas de la lista de tareas y repetir hasta que se repararon todas las tareas. Entonces necesitaría revisar esta lista de cargas de remolque para calcular la cantidad de trailers requeridos.
¡Se agradecerá cualquier idea sobre el enfoque!
Creo que la 'programación dinámica' es una solución popular para la resolución de restricciones. Ha pasado un tiempo desde que hice cambios en los problemas de programación. –