알고리즘 기초 - 최단 경로(플로이드-워셜, 벨만-포드)
·
My Study/Algorithm
이번 포스팅에서는 플로이드-워셜, 벨만-포드 알고리즘에 대해 설명하겠습니다. - 플로이드 워셜 알고리즘(Floyd-Warshall) 모든 노드에서 다른 모든 노드까지의 최단 경로를 모두 구하고 싶을 떄 사용하는 알고리즘입니다. 각 단계마다 해당 노드를 거쳐가는 경우를 고려해야 합니다. 예를 들어, 1번 노드에 있을때는 1번 노드를 거쳐가는 모든 경우를 고려하면 됩니다. A->1->B인 경우의 비용을 확인 후 최단 거리를 갱신해주어야 합니다. 이를 점화식으로 나타내면, 아래와 같습니다! min 함수를 사용해 바로 이동하는 거리와 특정한 노드를 거쳐서 이동하는 거리를 이용해 짧은 것으로 갱신될 수 있도록 해줍니다. 다익스트라 알고리즘은 매번 최단 거리를 검색하지만 이 알고리즘은 그럴 필요가 없다는 점이 장점..