Для заданного графа G = (V, E) и весовой функции w: E -> R + (только положительные веса для ребер в графе), мне нужно найти все кратчайшие пути от каждой вершины v в V до заданной вершины k.Все кратчайшие пути к заданной вершине
Я подумал о том, чтобы реверсировать ребра в графе, а затем запустить Dijkstra's algorithm из вершины k. Интересно, является ли кратчайший путь p от k до v1 на самом деле кратчайшим путем от v1 до k в исходном графе (перед реверсированием ребер).
Буду благодарен, если кто-нибудь сможет объяснить, если и почему это происходит/не происходит.
Заранее спасибо.
В настоящий момент у меня нет ничего формального, но да, ваша идея должна быть хорошей. Подумайте, что произойдет, если граф будет неориентирован: два пути, очевидно, будут одинаковыми. То, что вы предлагаете, в основном приводит к неориентированному графику, поэтому оба они одинаковы. – IVlad
Это то, о чем я думал, но я задаюсь вопросом, существует ли определенная ситуация, когда этого не произойдет. –
Справедливость этого непосредственно вытекает из симметрии, которую вы производите путем реверсирования ребер. Ты в порядке. –