게임 프로그래밍(학습 내용 정리)/자료구조와 알고리즘
경로 탐색 알고리즘 - 다익스트라 (Dijkstra)
WinCNT_SSS
2022. 1. 18. 14:45
참고 사이트
https://yabmoons.tistory.com/364
[ 다익스트라 알고리즘 ] 개념과 구현방법 (C++)
그래프 알고리즘에서 '최소 비용'을 구해야 하는 경우 사용할 수 있는 대표적인 알고리즘으로는 '다익스트라 알고리즘' , '벨만-포드 알고리즘' , ' 플로이드 워샬 알고리즘' 이 있다. 이번 글에서
yabmoons.tistory.com
다익스트라 (Dijkstra) 알고리즘
출발 정점부터 각 정점까지의 거리(비용)을 계산한 테이블이 필요하다
초기값은 무한대(...)나 음수를 두면 된다
방문하는 순서는 BFS와 같다
하지만 다익스트라는 큐가 아니라 우선순위 큐를 사용한다
(비용이 적은 노드를 먼저 뽑을 수 있게)
또한 방문한 노드나 그리드의 경로의 최소 비용을 알고 있는 테이블 등도 필요하다
(경로의 최소 비용당 갱신함)
내비게이션 시스템, NavMesh 등에 자주 사용된다
SSS