hgk0404
hgk0404.tistory
hgk0404

공지사항

전체 방문자
오늘
어제
  • 전체 카테고리 N
    • [컴퓨터비전] N
    • [Computer Science]
      • [컴퓨터네트워크]
      • [알고리즘]
      • [자료구조 in C]
      • [C & C++]
      • [이산수학]
      • [Math]
    • [머신러닝]
      • [Numpy, Pandas]
    • [Cloud]
      • [AWS]
      • [NCP]
      • [Kubernetes]
      • [Terraform]
    • [Dev]
      • [가상환경]
      • [Linux]
      • [Docker]
    • [Python]
    • [Coding Test]
      • [백준]
      • [프로그래머스]
      • [SQL]
    • [WEB]
    • [자격증, 일상]
    • [엑셀]
    • [금융]

인기 글

최근 글

최근 댓글

250x250
hELLO · Designed By 정상우.
hgk0404

hgk0404.tistory

[Algorithm] 플로이드 워셜 알고리즘
[Computer Science]/[알고리즘]

[Algorithm] 플로이드 워셜 알고리즘

2022. 7. 10. 03:30
728x90

플로이드 워셜 알고리즘

 

: 시작 노드에서 도착 노드로 갈때 특정 노드를 거쳐가는것이 더 빠르다면 최소값을 갱신해 주는 알고리즘

 

 

플로이드 워셜 알고리즘에는 다이나믹 프로그래밍이 녹아들어 있습니다. 두 알고리즘 모두 문제를 해결할때 점화식을 사용하기 때문입니다.

 

점화식은 다음과 같습니다.

 

Dab = min(Dab, Dak + Dkb)

a에서 b로 가는 값을 a에서 b로 가는 값과 a에서 k를 거쳐 b로 가는 값중 작은 값으로 갱신하라는 의미입니다.

 

플로이드 워셜 알고리즘은 이미 값을 가지고 있는 노드간의 거리에 특정 노드 k를 거쳐가는 과정을 수행해 줘야 하기에 3중 for을 사용합니다. 

 

그래서 시간 복잡도는 O(N3)이 됩니다.

 

다음은 플로이드 워셜 알고리즘의 최소값 갱신 과정입니다.

 

노드 사이의 관계

 

노드 사이의 거리 표로 구성

 

특정 노드를 1로 했을때의 최소값 갱신

 

특정 노드를 2로 했을때 최소값 갱신

 

특정 노드를 3으로 했을때 최소값 갱신

 

특정 노드를 4로 했을때 최소값 갱신

이렇게 최소값을 갱신해 줄 수 있습니다.

 

유튜버 나동빈님의 유튜브 채널에서 쉽게 설명을 해주셔서 링크를 첨부합니다.

https://www.youtube.com/watch?v=hw-SvAR3Zqg 

 

 

728x90
저작자표시 동일조건

'[Computer Science] > [알고리즘]' 카테고리의 다른 글

[Algorithm] 다이나믹 프로그래밍(DP) - 탑다운, 바텀업  (0) 2022.07.14
[Algorithm] 다익스트라 알고리즘  (0) 2022.07.11
[Algorithm] 0-1 BFS  (0) 2022.07.08
[Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)  (0) 2022.07.05
[Algorithm] 유클리드 호제법(최대공약수, 최소공배수)  (0) 2022.07.04
'[Computer Science]/[알고리즘]' 카테고리의 다른 글
  • [Algorithm] 다이나믹 프로그래밍(DP) - 탑다운, 바텀업
  • [Algorithm] 다익스트라 알고리즘
  • [Algorithm] 0-1 BFS
  • [Algorithm] 에라토스테네스의 체, 소수 판정시 제곱근까지 확인하는 이유(python)
hgk0404
hgk0404
공부기록

티스토리툴바