Shortest-Path  Algorithm

 

이산수학 : Richard Johnsonbaugh 저서, 강홍식.김정인.이도훈.이명재 번역, 교보문고, 1999 (원서 : Discrete Mathematics 6th ed, Prentice-Hall, 1997), Page 402~409

 

가중치 그래프가 간선에 값을 부여한 그래프이고, 가중치 그래프 내의 경로의 길이는 경로 안의 간선의 가중치의 합이라는 것을 상기하자 (서론 참조). 간선 의 가중치를 로 표기한다. 가중치 그래프에서, 두개의 주어진 정점 간의 최단 경로 (shortest path) (즉, 경로가 최소 길이를 갖는다) 를 찾기를 종종 원할 때가 있다. 다익스트라 (E.W. Dijstra) 에 의한 Algorithms 6.4.1 이, 문제를 효율적으로 해결하는데, 이 절에서 다룰 과제이다.

다익스트라 (Edsger W. Dijkstra : 1930-) 는 네덜란드에서 태어났다. 그는 일찍이 과학으로서 프로그래밍을 창시한 사람이였다. 프로그래밍에 매우 열성이었던 그는 1957년 결혼을 했을 때, 프로그래머로서의 명성이나 있었다. 하지만 독일 당국은 그 같은 전문성을 인정하지 않았기 때문에 단지 "이론 물리학자" 라고 바꾸어 기입해야 했다. 그러나 1972년에 ACM 으로부터 그 유명한 튜링상을 수상했다. 그는 또한 1984년에 오스틴에 있는 텍사스 대학에 전산학과에 Schlumberger Centennial Chair 에 임명되었다. 이 절을 통하여, G 는 연결되고 가중치 그래프를 나타낸다. 가중치는 양수이고 어떤 정점 a 에서 정점 z 로의 가장 짧은 경로를 찾고자 한다. G 가 연결되었다는 가정은 생략될 수도 있다 (연습 문제 9를 보라).

다익스트라의 알고리즘은 정점에 표시하는 문제까지 포함된다. 정점의 표시라고 하자. 어떤 점에서, 어떤 정점들은 임시적인 표시를 하고 또 어떤 것들은 확정적인 표시를 한다. T 를 임시적인 표시를 가지는 정점들의 집합이라고 하자. 알고리즘을 설명함에 있어, 확정적인 값을 가지는 정점들은 동그라미를 할 것이다. 가 정점 v 의 확정적인 값이라면, 는 a 에서 v 로 가는 최단 경로 길이다. 최초에 모든 정점들은 임시 값을 가질 것이다. 알고리즘이 반복될 때마다, 그 값들이 임시적인 것에서 확정적인 것으로 바뀔 것이다 ; 따라서 이 알고리즘은 z 가 확정적인 값이 되었을 때 종료하게 된다. 이때, 는 a 에서 z 로의 최단 경로의 길이가 된다.

 (알고리즘 4.1)   다익스트라의 최단 경로 알고리즘

(예제 4.2)  

그림 1  예제 4.2 를 위한 그래프

 

그림 2  다익스트라 최단 경로 알고리즘에서 초기화

그림 3  다익스트라의 최단 경로 알고리즘의 첫 번째 반복

그림 4  다익스트라의 최단 경로 알고리즘의 두 번째 반복

그림 5  다익스트라의 최단 경로 알고리즘의 세 번째 반복

다음은 알고리즘 4.1 이 참임을 보인다. 증명은 다익스트라의 알고리즘은 a 로부터 오름차순으로 최단 경로의 길이를 찾는다는 사실에 근간을 두고 있다.

 (정리 4.3)  

 

그림 6  정리 4.3 의 증명. P 는 a 에서 w 까지의 최단 경로이고, x 는 T 에 있는 P 상의 a 에 가장 근접한 정점이다. 그리고 u 는 P 에서 x 의 선행자이다.

알고리즘 4.1 은 a 에서 z 로의 최단 경로 길이를 구한다. 대부분의 응요에서, 최단 경로를 확인하고 싶어한다. 알고리즘 4.1 을 약간 수정하면 최단 경로를 구하는 문제를 거의 해결할 수 있다.

 (예제 4.4)  

그림 7  다익스트라의 최단 경로 알고리즘의 초기화

 

그림 8  다익스트라의 최단 경로 알고리즘의 첫 번째 반복

(a, d, e, z)

그림 9  다익스트라의 최단 경로 알고리즘의 두 번째 반복

그림 10  다익스트라의 최단 경로 알고리즘의 세 번째 반복

다음 정리는 다익스트라 알고리즘이 최악의 경우 임을 보여 준다.

그림 11  다익스트라의 최단 경로 알고리즘의 결론

 (정리 4.5)