У меня есть начальный ориентированный граф G, из которого я время от времени удаляю ребра (никогда не добавляю новые). Я не удаляю узлы (хотя некоторые из них могут быть отключены). Есть ли способ эффективно пересчитывать кратчайшие пути без запуска Dijkstra с нуля? Начальный узел никогда не изменяется.Инкрементальный алгоритм Дейкстры или кратчайшего пути?
Если нет инкрементной версии алгоритма Дейкстры, какой-то другой алгоритм будет в порядке. Но я не могу использовать A * (я помню, что есть инкрементная версия), потому что у меня нет никакой эвристики, чтобы знать, насколько я далеко от цели.
Спасибо
Я думаю, что знаю, что вы имеете в виду, но что, если я удалю сразу два края (это может произойти)? Это означает, что мне нужно поставить головной узел этих ребер в стек, но в определенном порядке, не так ли? сначала он тот, который находится дальше от источника, затем тот, который ближе? Спасибо – ddeunagomez