Bien, supongamos que tenemos un grafo no dirigido de tamaño finito con aristas con peso = 1. El grafo es disperso. Desde cualquier nodo, hay un camino a cualquier otro nodo.
Ahora, tenemos dos coches en algún lugar del gráfico que van constantemente de un destino a otro. Recorrer una arista lleva exactamente un segundo. Dada cualquier lista de destinos para ambos coches, queremos encontrar las rutas más rápidas para ambos coches. Los destinos de las listas deben ser visitados en orden por sus respectivos coches.
Se trata de dos problemas que, individualmente, podrían resolverse fácilmente con el algoritmo de Dijkstra. Sin embargo, es posible que los coches no colisionen nunca en los nodos. Pueden estar atravesando la misma arista al mismo tiempo, pero nunca pueden estar en el mismo nodo al mismo tiempo.
Se supone que debo encontrar las mejores rutas posibles para los dos coches que resulten en el menor tiempo total utilizando algoritmos codiciosos. Lo que estoy haciendo es usar el algoritmo de Dijkstra para resolver para los dos coches individualmente y luego resolver las colisiones haciendo esperar al coche con el tiempo de llegada más temprano.
Sin embargo, esta no es la solución más óptima. Me han insinuado que este problema es NP-difícil y tengo que demostrarlo o presentar un algoritmo que dé la solución globalmente óptima.
Pero no estoy seguro de que este problema sea realmente NP-duro y me pierdo por completo cuando intento demostrarlo. Sí, hay que reducir el problema en cuestión a un problema conocido de dificultad NP, ¡pero no sé ni por dónde empezar!
¿Puede alguien ayudarme con esto?