A* 알고리즘은 그리디 알고리즘의 한 종류로, 시작 노드로부터 목표 노드까지의 최단 경로를 구하는 알고리즘이다.
시작 노드부터 현재 노드까지의 비용을 g(n), 현재 노드에서 목표 노드까지의 예상 비용을 h(n)이라고 하면, 이 두 값을 더한 f(n) = g(n) + h(n)이 가장 최소가 되는 노드를 다음 탐색 노드로 정한다.
이때 h(n)을 휴리스틱 함수라고 하며, 대표적인 예시로 맨해튼 거리 함수와 유클리디안 거리 함수가 있다. 이 휴리스틱 함수를 설계하는 방법에 따라 알고리즘의 성능이 결정된다.
h(n)이 0일 때, A* 알고리즘은 다익스트라 알고리즘과 동일하게 작동한다.
목표 노드까지의 거리에 대해 어떠한 힌트가 있는 경우 유용하다. 게임에서 캐릭터를 이동할 때 사용된다.
휴리스틱 함수에 따라 빠른 최단 경로를 구할 수 있지만, 그 만큼 휴리스틱 함수에 의존도가 강하다.
A* 알고리즘은 그리디 알고리즘의 한 종류로, 가중치 그래프에서 시작 노드로부터 목표 노드까지 최단 경로를 구하기 위한 알고리즘입니다. 시작 노드부터 현재 노드까지의 비용을 나타내는 g(n)과 현재 노드에서 목표 노드까지의 예상 비용을 나타내는 h(n)을 이용하여 최단 경로를 구해나가는데, 이때 h(n)을 휴리스틱 함수라고합니다. 휴리스틱 함수이 성능을 좌우하기 때문에 적절한 휴리스틱 함수를 설정하는 것이 이 알고리즘의 핵심입니다.