아래 그림에 대한 존슨의 알고리즘을 설명 할 수 있습니까? 알고리즘이 어떻게 작동하는지 혼란 스럽습니다. 나는 이것이 Bellman Ford
과 Dijkstra's
의 조합이라는 것을 알고 있습니다.존슨의 알고리즘 그래프 설명
그러나 좋은 그래프 설명을 찾을 수 없으므로 단계별로 솔루션을 설명합니다.
다음은 그래프입니다.
거리에 대한 참고 사항 : f에서 b는 -5 (5가 아님)입니다. g에서 e는 -3 (3이 아님); b부터 d까지는 -5 (5가 아님)
대단히 감사합니다. 먼저 가중치를 변경해야한다는 것을 알고 있지만 가중치를 변경하는 방법은 확실하지 않습니다.
질문 : b에서 c까지 최단 경로를 찾고 싶습니다.
존슨은 다음과 같은 3 단계를 수행합니다. 1) 새 노드를 도입하고 새 노드에서 모든 이전 노드로가는 최단 경로를 계산합니다. 2) 가중치를 변경합니다. 3) b에서 c로 최단 경로를 찾습니다. 2 단계는 문제가있는 것입니까? – Beta
@ 베타 예. 나는 무게를 바꾸는 데 문제가있다. 나는 공식이 w '(u, v) = w (u, v) + h (u) -h (v)라는 것을 알고 있긴하지만 그것을 어떻게 바꾸는 지에 대해 정말로 혼란 스럽다. 그러나 존슨의 알고리즘 예제에 대한 Cormen의 Intro to Algorithm 장을 읽었을 때 실제로 혼자 힘으로 파악할 수 없었습니다. 누군가가 나를 도울 수 있기를 바랍니다. – JavaLeave