CS공부/학점은행_알고리즘

13-1 벨만-포드 알고리즘

inji_ 2023. 9. 13. 21:42

1. 벨만-포드 알고리즘

① 다익스트라, 플로이드 와샬, 벨만 포드 알고리즘

 - 세가지 알고리즘은 모두 최단경로 찾는데 사용되고 유용

 - 주로 많이 사용하는 것은 다익스트라 알고리즘

 

② 벨만-포드 알고리즘

- 가중 유향 그래프에서 최단 경로 문제를 푸는 알고리즘

- 입력 그래프 G=(V,E)에서 간선의 가중치가 음의 값을 허용하는 임의의 실수인 경우 최단 경로 알고리즘

- 다익스트라는 우선 순위 큐를 사용하여 연결된 가장 가까운 정점을 이용하여 정점의 거리를 갱신했다면,

벨만-포드는 모든 간선을 여러 번 확인하여 최단 거리를 갱신한다.

- 벨만 - 포드 알고리즘은 가중치가 음수인 경우도 허용하지만, 음수 가중치가 사이클을 이루고 있는 경우 작동하지 않음.

 

③ 벨만- 포드 알고리즘에 대한 전제조건

- 최단 경로는 사이클을 포함할 수 없기 때문에, 최대 |V|-1개의 간선만 사용 가능

- 최단 거리가 갱신되는 노드가 없어질 때까지 계속해서 반복하여 구해주고, 음의 가중치로 인한 갱신을 무한히 하게 되는 경우 탈출시켜야함(무한히 반복될 때 최단 거리 없다고 함)

 

2. 벨만-포드 알고리즘 적용방법

  동작 원리

 

3. 벨만-포드 알고리즘 적용 예

  예시

'CS공부 > 학점은행_알고리즘' 카테고리의 다른 글

14-1 문자열 매칭  (0) 2023.09.17
13-2 그리디 알고리즘  (0) 2023.09.13
12-2 플로이드 와샬 알고리즘  (0) 2023.09.06
12-1 다익스트라 알고리즘  (1) 2023.09.05
11-2 최단 경로 문제  (0) 2023.08.30