[자료구조 목차]
1. 다익스트라 알고리즘 개요
1) 다익스트라 알고리즘 정의
- 너비우선탐색(BFS) 기반으로 하나의 시작 정점에서 부터 다른 모든 정점들까지 증가하는 거리의 순으로 최단 경로를 찾는 탐색 알고리즘
- 음의 가중치가 없는 그래프에서 한 노드에서 다른 모든 노드까지의 최단거리를 구하는 알고리즘
2) 다익스트라 알고리즘의 특징
- 방향/무방향그래프 관계없이 사용가능
- 가중치가 음수인 edge 가 존재할 경우 사용이 불가함
3) 다익스트라 알고리즘 활용
- 네비게이션의 도시간 최단 거리 탐색
- 미로탐색 알고리즘
- 리우팅(OSPF) 프로토콜
- 공업입지론에서 최소 운송비 지점 구하기
- 루빅스 규브 해법
- A* 알고리즘 : 다이스트라 알고리즘 확장
2. 다익스트라 알고리즘 절차
1) 그래프 탐색과정
2) 그래프 수행 절차
초기화 : 시작노드를 제외한 모든 노드의 거리정보를 무한대로 설정
시작노드를 기준으로 BFS 탐색으로 이웃 노드의 거리정보를 Update하여 최단거리 노드 탐색 및 방문을 반복적으로 수행
절차 | 기준 노드 | 이웃노드(거리정보) | 거리정보 update(작을 경우) | 탐색(gray) | 방문완료(black) |
a | s | t=∞ y=∞ |
s | ||
b | s | t=∞ y=∞ |
t=10 (update) y=5 (update) |
y | s |
c | y | t=10 x=∞ z=∞ |
t=8 (s-y-t) (update) x=14 (s-y-x) (update) z=7(s-y-z) (update) |
z | y |
d | z | x=14 | x=13 (x-y-z-x) (update) | t | z |
e | t | x=13 | x=9 (s-y-t-x) (update) | x | t |
f | x | x |
3. 계산 복잡성 및 단점
1) 계산 복잡성
- BFS 적용 미방문노트 탐색 O(V), 한노드당 엣지의 기대값 E / V
- 평균 복잡성 O(V2) [ O(V2+E) ]
2) 단점 및 해결방법
- 가중치가 음수인 경우 탐색 불가
- 해결방법 양수화(모든 거리에 |음수거리|+한후 적용이 끝나면 절대값 - )
'메가노트 > 토픽과제(정리)' 카테고리의 다른 글
재귀 알고리즘(문경숙 수석님) (0) | 2022.11.19 |
---|---|
Greedy 알고리즘(황선환 이사님) (0) | 2022.11.19 |
정렬 알고리즘(홍진택 주무관님) (0) | 2022.11.19 |
스토리지 가상화(안혜진 선임님) (0) | 2022.11.12 |
SoC(문경숙 수석님) (0) | 2022.11.12 |