Hola martiniano!
Simplificando el problema al máximo, el coste sólo dependería de la carga que lleva el vehículo y la distancia entre las ciudades a visitar. Te cuento lo que yo estoy haciendo ahora mismo:
- Genero un árbol de decisiones "simplificado". Con esto quiero decir que hay nodos del árbol de decisiones que representan la misma situación. Como ejemplo: supón un problema sencillo en el que partimos de una ciudad \( s \), y tenemos que repartir a 4 ciudades diferentes (1, 2, 3 y 4), para volver a la ciudad \( s \). En el árbol de decisiones habrá un nodo que represente haber hecho parte del recorrido de la forma \( s-1-2-3 \), mientras que habrá otro nodo, en distinta rama, que represente el recorrido \( s-2-1-3 \).
- Esos dos nodos que muestro de ejemplo, en realidad representan la misma situación en el árbol, porque el vehículo está ubicado en la ciudad 3, con la misma carga dado que ha descargado en las ciudades 1, 2 y 3 (sólo importa el orden de la última ciudad en la que ha descargado).
- De esta forma simplifico el grafo, que se cierra en un nodo único que representa volver a la ciudad de origen, y lo resuelvo como un problema de camino de coste mínimo mediante el algoritmo de Dijkstra.
La resolución en sí misma no es un problema, porque Dijkstra es muy eficiente, pero planteándolo de esta forma es una locura intentar modificar el problema por ejemplo con ventanas de tiempo o con más de un vehículo, modificaciones que son muy sencillas de introducir en los modelos de programación entera usuales.
Respecto al tamaño que me preguntas: no he sacado una expresión analítica que pueda decirte para este caso concreto del VRP, pero en problemas similares que he estado tratando hablamos de árboles de decisión simplificados del orden de \( 2^m \), siendo \( m \) el número de "elementos" a ordenar (las ciudades a visitar en este ejemplo). De todas formas ya te digo, el grueso del tiempo es debido al cálculo de los costes de los arcos del árbol de decisión, y no a la propia obtención de la solución óptima.
Supongo que tendré que seguir por esta vía, al menos me quedo más tranquilo hasta cierto punto de ver que no se me ha pasado una forma mucho más simple de resolverlo.
Muchas gracias!