Несколько дней назад кто-то спрашивает меня: "Если у нас есть какие-то агенты в нашей среде, и они хотят перейти из своих источников в свои пункты назначения, как мы можем найти общий кратчайший путь для всех из них, чтобы у них не было конфликты во время их прогулки.
Точка проблемы - это все агенты, которые одновременно ходят в среде (которая может быть смоделирована неориентированным взвешенным графом), и мы не должны столкнуться. Я думал об этом, но я не мог найти оптимальный путь для всех. Но уверен, что для этой проблемы слишком много эвристических идей.
Предположим, что ввод - это граф G (V, E), m агентов, которые находятся в: S 1, S 2,..., S m узлов графика при запуске, и они должны перейти в узлы D 1,... D m в конце. Также может быть конфликт в узлах S i или D i,... но эти конфликты не являются важно, чтобы у них не было конфликтов, когда они находились в своих внутренних узлах своего пути.
Если их путь не должен иметь такой же внутренний node, он будет выглядеть как k-disjoint paths
проблема, которая является NPC, но в этом случае пути могут иметь одинаковые узлы, но агент не должен быть таким же node в одно и то же время. Я не знаю, могу ли я сказать точное утверждение проблемы или нет. Если запутать, скажите мне в комментариях, чтобы отредактировать его.
Существует ли какой-либо оптимальный и быстрый алгоритм (по оптимальному я означает, что сумма длины всех путей максимально мала, а по-быстрому - хороший алгоритм хорошего полиномиального времени).