본문 바로가기
코딩 테스트/개념

벨만-포드

by ornni 2024. 7. 27.
728x90
반응형

벨만-포드 bellman-ford-moore

 

그래프에서 최단 거리를 구하는 알고리즘

특정 출발 노드에서 다른 모든 노드까지의 최단 경로 탐색

음수 가중치 에지가 있어도 수행할 수 있음

전체 그래프에서 음수 사이클의 존재 여부를 판단할 수 있음


1. 에지 리스트로 그래프를 구현하고 최단 경로 리스트 초기화하기

출발노드0, 나머지는 무한으로 초기화

2. 모든 에지를 확인해 정답 리스트 업데이트 하기

노드개수 -1 만큼 반복:

    에지 개수 만큼 반복:

        E = (s, e, w)에서 아래 조건을 만족하면 업데이트

        D[s] != 무한, D[e] > D[s] + w 이면, D[e] = D[s] + w

 

3. 음수 사이클 유무 확인하기

모든 에지를 다시 사용하여 업데이트되는 노드가 있는지 확인

(음수 사이클이 발생하는 것임)

에지 개수만큼 반복:

    같은 조건에서 변하는 노드 존재 여부 확인

반응형

'코딩 테스트 > 개념' 카테고리의 다른 글

플로이드-워셜  (0) 2024.08.03
유니온 파인드  (0) 2024.07.28
그래프  (0) 2024.07.21
다익스트라  (0) 2024.07.20
트리  (0) 2024.07.13