프로그래밍[Univ]/알고리즘

[알고리즘] 탐욕적 알고리즘 Part 3 - 단일 출발점 최단 경로 문제(Single Source shortest Path Problem)

Cloud Travel 2011. 12. 13. 10:20
* 단일 출발점 최단 경로 문제
 - 가중치가 있는 방향성 그래프에서 한 특정 정점에서 다른 모든 정점으로 가는 최단 경로를 구하는 것.

* 단일 출발점 최단 경로 문제 알고리즘
 - 특정 정점에서 모든 정점들로 가는 최단 경로를 찾는다.
 - 아이디어 : 트리를 만들어서 사용한다.

* 슈도코드
V = 모든 노드의 집합
Y = {v1};// 시작하는 노드
F = null; // 트리내의 화살표들의 집합 
while(최종해답을 얻을 때까지)
 - "V-Y"에 속한 정점들중에서 V에서 Y에 속한 정점들만을 거쳐서 최단경로가 되는 정점을 선택한다. 
 - 그 정점을 Y에 추가한다.
 - V에서 F로 이어지는 최단 경로상의 연결선을 F에 추가한다.
 - Y = V이면 T=(V,F)가 최단 경로를 나타내는 트리이다.

>> 소스코드는 이전에 공개했으므로 더 이상 설명은 하지 않는다.