만약 서울에서 부산까지 최단 거리를 구하고 싶다면 어떻게 구할 수 있을까? 물론 도로를 생각하지 않으면 모든 벽을 뚫고 지나가는 Euclidean Distance가 가장 가깝겠지만…
Shortest Path Algorithm에는 대표적으로 Dijkstra’s Algorithm, Bellman-Fold Algorithm이 있다.
Shortest Path(최단 경로)는 Weighted Directed Graph 위에 있는 source(출발점) $s$에서 destination(도착점) $t$까지의 최단 경로를 구하는 문제이다.
만약 가중치가 음수라면, cycle에 갇히게 될 수 있으며 전체 길이가 줄어들 수 있다. 그렇게 된다면 shortest path를 구할 수 없을 것이다.

Relaxation은 $v$에 대한 최단 거리 $d[v]$를 업데이트하는 과정이다. 이를 통해 발견된 최단 거리를 유지할 수 있다.
Dijkstra’s Algorithm(다익스트라 알고리즘)은 모든 가중치가 양수일 때 사용할 수 있으며, $s$와 다른 모든 vertex 간 shortest path를 제공한다.