Hace algunos días, alguien me preguntó: si tenemos algunos agentes en nuestro entorno, y quieren ir desde sus fuentes a sus destinos, cómo podemos encontrar el camino más corto para todos de tal manera que no deberían tener conflicto durante su caminata.Cómo encontrar el camino más corto en situación dinámica
El punto del problema es que todos los agentes caminan simultáneamente en el entorno (que puede modelarse mediante un gráfico ponderado no dirigido), y no debería haber ninguna colisión. Pensé en esto, pero no pude encontrar la ruta óptima para todos ellos. Pero seguro que hay demasiadas ideas heurísticas para este problema.
Supongamos entrada es un gráfico G (V, E), agentes m que están en: S , S , ..., S m nodos del gráfico de la puesta en marcha y que deben ir a los nodos D , ... D m al final. También puede haber es conflicto en nodos S i o D i, ... pero estos conflictos no son importantes que no deberían haber conflicto cuando están en sus nodos internos de su camino.
Si su ruta no debe tener el mismo nodo interno, será un tipo de problema k-disjoint paths
que es NPC, pero en este caso las rutas pueden tener los mismos nodos, pero el agente no debe estar en el mismo nodo al mismo tiempo. No sé, puedo decir la declaración exacta del problema o no. Si es confuso, dígame en los comentarios para editarlo.
¿Hay algún algoritmo óptimo y rápido (por óptimo quiero decir que la suma de la longitud de todas las rutas sea lo más pequeña posible, y por rápido quiero decir un buen algoritmo de tiempo polinomial).
¿Los agentes pueden permanecer en un nodo determinado? ¿O tienen que caminar en cada iteración? (Podría modelar un costo para quedarse creando una ventaja para el nodo en sí) – Zeta
@Zeta, De hecho, sí, pero no dije esto porque pensé que sería más complicado. Pero si tienes una solución para esto, sería bueno. –
No tengo una solución (aún), lo siento, pero esto cambiará las mejores soluciones posibles: [Ejemplo] (http://i.imgur.com/I6vAP.png). Si no se permite esperar, entonces la suma mínima de todas las longitudes es '100 + 100 + 2 = 202'. Si se permite esperar y cuesta menos de 66 (digamos 40), entonces la suma mínima de todas las longitudes es '40 + 1 + 1 + 40 + 40 + 1 + 1 + 2 = 42 + 82 + 2 = 126'. – Zeta