Backend/Algorithm & Data structure
경로 탐색 알고리즘
surge_95
2022. 2. 22. 00:07
너비 우선 탐색(BFS)
그래프를 층별로 탐색한다.
한번 거친 노드 순서를 저장한 후 다시 꺼내는 선입선출 원칙으로 탐색한다.(큐 데이터구조)
깊이우선탐색(DFS)
경로 하나의 모든 층을 탐색한 후 그 다음에 다른 경로의 모든 층을 탐색한다.
재귀호출이나 스택을 사용한다.
다익스트라(Dijkstra) 알고리즘
가중 그래프에서 동작하고 그래프의 시작 노드에서 목표노드까지의 최단 경로(최소 비용)를 찾는다.
그래프의 가중치를 비용이라고 하며, 비용이 음수가 아니어야한다.
무정보탐색으로 많은 시간과 자원을 소비한다는 한계점이있다.
(참고) 벨먼-포드 알고리즘은 가중치가 음수인 그래프에서도 동작한다.
A*알고리즘
휴리스틱 알고리즘(확률론을 토대로 문제의 대략적인 해결책을 제공)의 범주에 속한다.
데이크스트라 알고리즘 + 최선우선탐색(휴리스틱)이 결합하여 전체 순회비용이 가장 낮은 경로를 선택한다.