최단경로
-
[최단경로] 플로이드-워셜(Floyd-Warshall) 알고리즘Problem-Solving/Algorithm 2022. 5. 11. 15:18
🍀 목차 플로이드-워셜 알고리즘 같은 목적을 가진 알고리즘 기본 이해 구현(JavaScript) 그냥 다익스트라를 정점만큼 돌리면 안 되나요? 시간 복잡도 플로이드-워셜 알고리즘 가중 그래프에서 간선 가중치의 합이 최소가 되는 경로를 찾는 최단 경로를 찾기 위한 알고리즘 중 하나. 한 번 실행하여 모든 정점 - 모든 정점 간의 최단 경로를 구할 수 있는 알고리즘. 다이나믹 프로그래밍(DP)을 바탕으로 하고 있다. 음의 사이클이 없는 그래프라면 음의 가중치를 가졌을 때도 사용 가능. (음의 사이클의 존재를 판단할 수 있음.) 같은 목적을 가진 알고리즘 다익스트라 알고리즘 게시글에 정리해놓았다. 기본 이해 모든 정점과 모든 정점 간의 최단 거리를 구해야 하므로 2차원 배열을 생성, 갱신해 나간다. 단계별로 ..
-
[최단경로] 다익스트라(Dijkstra) 알고리즘Problem-Solving/Algorithm 2022. 5. 4. 15:21
🍀 목차 다익스트라 알고리즘 같은 목적을 가진 알고리즘 최단경로 알고리즘과 MST와의 차이점은 뭐지? 기본 이해 구현(JavaScript) 왜 음수 가중치에서는 사용이 불가능한 것일까? 시간 복잡도 따라서... 다익스트라 알고리즘 가중 그래프에서 간선 가중치의 합이 최소가 되는 경로를 찾는 최단 경로를 찾기 위한 알고리즘 중 하나. 기본적으로 그리디 알고리즘을 바탕으로 하고 있다. 거리를 기록하며 이미 최단 경로를 구한 곳은 다시 구할 필요가 없기 때문에 다이나믹 프로그래밍으로 보기도 한다. 항상 최단 경로를 찾고 탐욕적으로 선택한다. - 그리디 이미 계산된 경로를 저장후, 그를 활용해 중복된 하위 문제를 푼다. - DP 다익스트라 알고리즘은 음수 가중치가 포함된 그래프에서는 사용할 수 없다. 이유 알아..