CVRP y VRP-XML

Como habreis podido observar los que estais siguiendo la pista al desarrollo de Grafos, últimamente estoy trabajando en problemas de transporte capacitados (CVRP). Para que Grafos pueda resolver este tipo de problemas y antes de programar las estrategias de resolución, se necesita una nueva estructura de datos flexible y extensible. Para ello, nada como el XML.

En la siguiente ilustración podeis observar la propuesta de estructura VRP-XML en la que estoy trabajando. De momento no es más que un prototipo, aunque su estructura extensible tiene muchas posibilidades (EDI, seguimiento de flotas, información geográfica, etc.).

Todo ese tipo de información no es objeto del proyecto grafos, pero la estructura de datos VRP-XML puede crecer para dar soporte a esta información y a nuevos proyectos futuros relacionados. Próximamente publicaré más información sobre el interfaz desarrollado y algunos ejemplos de ficheros del tipo (.vrpxml).

Actualización:

Esta semana, entre interrupción e interrupción…. he podido tener un ratito para programar algo más. Es algo referente a lo que siempre os cuento de la 'flexibilidad'.

Por un lado está la estructura XML y ficheros de datos .vrpxml para dar soporte al problema CVRP, y por otro, el grafo o red de transporte (o incluso información GIS). La cuestión es ¿cómo asegurarse que ambos conjuntos de datos son coherentes y están bien enlazados?  Pues eso es lo que acabo de resolver. Se trata de una pila de reglas que aseguran que, por ejemplo:

– Existe un nodo en el grafo asociado correctamente a un cliente
– Existe un nodo para el depósito central
– y un largo etc.

A todo este conjunto de reglas hay que añadirle las comprobaciones pertinentes, según el tipo de problema a resolver y sus particularidades (CVRP, VRPTW, VRPB, VRPPD, VRPPDTW, etc.)

Con esto, y el esquema XML se garantiza la flexibilidad de los módulos y funciones programadas, la robustez y la adaptación de la estructura de datos a futuros problemas particulares.

Por ejemplo, un mismo conjunto de datos vrpxml (con datos de una misma flota de vehículos) podría ser 'aplicado' o 'enlazado' con diferentes grafos o redes. O por ejemplo también, un mismo conjunto de clientes, podría estar en diferentes localizaciones dentro de una red.