알고리즘
Bellman-Ford Algorithm벨만-포드
벨만-포드(Bellman-Ford) 알고리즘은 음수 가중치를 포함한 그래프에서 단일 출발점 최단 경로를 구하는 알고리즘이다. 음수 사이클도 탐지할 수 있다. 다익스트라보다 느리지만 음수 가중치를 처리할 수 있다.
핵심 원리
V-1번 모든 간선에 대해 완화(Relaxation)를 반복한다.
완화: if dist[u] + w(u,v) < dist[v]: dist[v] = dist[u] + w(u,v)
V번째 반복에서도 거리가 줄어들면 음수 사이클 존재.
구현
다익스트라 vs 벨만-포드
| 항목 | 다익스트라 | 벨만-포드 |
|---|---|---|
| 음수 가중치 | 불가 | 가능 |
| 음수 사이클 탐지 | 불가 | 가능 |
| 시간 복잡도 | O((V+E)logV) | O(VE) |
관련 개념
- •그래프 — 알고리즘 적용 자료구조
- •다익스트라 — 양수 가중치 최단 경로
- •플로이드-워셜 — 전체 쌍 최단 경로
참고문헌
- •Bellman, R. (1958). On a routing problem
- •Cormen et al. Introduction to Algorithms — Chapter 24