A* 탐색 (A-Star Search)
f(n) = g(n) + h(n) 이 가장 작은 노드를 우선 확장하는 휴리스틱 기반 최단 경로 알고리즘입니다. 휴리스틱이 admissible 하면 최적 경로를 보장하며, 경로 탐색·게임 AI·로봇 내비게이션의 표준 도구입니다.
01A* 탐색 (A-Star Search)
알고리즘 작동 원리 탐색A* 탐색 시작. f(n)=g(n)+h(n)이 가장 작은 노드부터 확장하며, 휴리스틱이 실제 비용을 넘지 않으면 최적 경로를 보장합니다.
open set에서 f가 가장 작은 A(f=10)를 꺼내 확장합니다. 이웃 B, C의 g·f 값을 계산합니다.
B까지 실제로 든 비용은 1, 남은 거리 어림값은 8 — 합쳐 f=9로 두고 open set에 넣습니다.
C는 실제 비용 3에 어림값 5를 더해 f=8. B의 9보다 작아 먼저 살펴볼 후보가 됩니다.
f가 가장 작은 C(f=8)를 꺼내 확장합니다. B(f=9)보다 먼저 선택되는 것 — 이것이 A*가 Dijkstra보다 빠른 이유입니다.
D는 실제 비용 4에 어림값 3을 더해 f=7. 지금까지 중 가장 유망한 길입니다.
f가 가장 작은 D(f=7)를 꺼내 확장합니다.
G는 실제 비용 5에 어림값 0 — 목표에 닿았으니 f도 5입니다.
G(f=5)를 꺼내 목표와 일치 — 최적 경로 A → C → D → G (비용 5). B는 가지치기되어 확장되지 않습니다.
탐색 완료 · 최적 경로 A → C → D → G (비용 5). 휴리스틱이 탐색 방향을 효과적으로 이끈 결과입니다.
02 쉽게 이해하기
For Everyone지금까지의 비용 g 에 남은 거리의 어림값 h 를 더한 f 가 작은 것부터 봅니다. h 가 실제 비용을 넘지 않으면 최단 경로를 보장합니다.
실제 비용 g와 목적지까지의 추정 h를 더한 f가 작은 노드부터 확장합니다.
좋은 추정이면 다익스트라보다 빨라요.
- –게임 길찾기
- –로봇 내비게이션
- –경로 탐색
03 파이썬 구현 코드
A* 탐색 (A-Star Search)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.
04 자주 묻는 질문
FAQA* 탐색 (A-Star Search)란 무엇인가요?+
f(n) = g(n) + h(n) 이 가장 작은 노드를 우선 확장하는 휴리스틱 기반 최단 경로 알고리즘입니다. 휴리스틱이 admissible 하면 최적 경로를 보장하며, 경로 탐색·게임 AI·로봇 내비게이션의 표준 도구입니다.
A* 탐색 (A-Star Search)의 시간복잡도는 어떻게 되나요?+
A* 탐색 (A-Star Search)의 시간복잡도는 O(E) 입니다. 시각화의 단계별 진행을 따라가며 왜 이런 복잡도가 나오는지 직접 확인할 수 있습니다.
A* 탐색 (A-Star Search)은(는) 어디에 사용하나요?+
게임 길찾기, 로봇 내비게이션, 경로 탐색.
A* 탐색 (A-Star Search)를 쉽게 비유하면?+
지금까지의 비용 g 에 남은 거리의 어림값 h 를 더한 f 가 작은 것부터 봅니다. h 가 실제 비용을 넘지 않으면 최단 경로를 보장합니다.
