다익스트라 알고리즘
다익스트라 알고리즘은 음이 아닌 가중치를 가진 그래프에서 출발점부터 모든 정점까지 최단 거리를 구한다 그래프 알고리즘의 단일 시작점 최단 경로 분야에 속한다. 그래프의 정점·간선에 대한 관계를 계산하며, 간선의 방향·가중치와 허용하는 입력 구조에 따라 결과의 의미가 달라진다. 이 알고리...
| 분류 | 알고리즘 · 그래프 알고리즘 · 단일 시작점 최단 경로 |
|---|---|
| 문제 | 음이 아닌 가중치를 가진 그래프에서 출발점부터 모든 정점까지 최단 거리를 구한다 |
| 입력 | 모든 간선 가중치는 0 이상이어야 한다 |
| 핵심 단계 | 최소 거리 후보를 우선순위 큐에서 꺼내 확정하고 인접 간선을 완화(relax)한다 |
| 시간 복잡도 | O((V+E) log V) |
| 공간·구현 | 이진 힙+인접 리스트 O((V+E) log V), 배열 구현 O(V²) |
| 관련 분야 | 그래프, 자료구조 |
| 참고 문헌 | MIT Algorithms |
다익스트라 알고리즘은 음이 아닌 가중치를 가진 그래프에서 출발점부터 모든 정점까지 최단 거리를 구한다 그래프 알고리즘의 단일 시작점 최단 경로 분야에 속한다. 그래프의 정점·간선에 대한 관계를 계산하며, 간선의 방향·가중치와 허용하는 입력 구조에 따라 결과의 의미가 달라진다. 이 알고리즘의 전제는 모든 간선 가중치는 0 이상이어야 한다.[1]
핵심 절차는 최소 거리 후보를 우선순위 큐에서 꺼내 확정하고 인접 간선을 완화(relax)한다. 음수 간선이 없을 때 확정한 최단 거리가 더 짧아지지 않는다는 성질이 핵심이다. 구현에서는 각 정점 또는 간선에 기록된 상태가 어떤 의미를 갖는지 불변식을 정의하고, 탐색·갱신 과정에서 해당 상태를 일관되게 유지해야 한다.
계산 비용은 이진 힙+인접 리스트 O((V+E) log V), 배열 구현 O(V²) 정점 수를 V, 간선 수를 E라고 나타낼 때 O((V+E) log V)의 시간 특성을 가진다. 저장 공간은 그래프의 표현 방식, 큐·스택·우선순위 큐 및 결과 배열의 선택에 영향을 받으므로 실제 적용 시 구현 구조를 함께 분석한다.
도로 탐색·라우팅·가중 그래프 분석에 사용한다. 음수 간선은 벨만-포드 알고리즘 같은 다른 알고리즘이 필요하다. 대표적인 변형 알고리즘 및 자료구조의 선택은 결과의 최적성, 음수 가중치나 사이클의 허용 여부, 희소·밀집 그래프 여부에 따라 달라진다. 동점 처리와 비연결 그래프 등의 경계 사례까지 정의해야 구현 결과가 명확해진다.[2]