brunch
매거진 Finding

길을 찾는 똑똑한 다익스트라와 A* 알고리즘

by 임표정


‘최단 경로 찾기'
우리가 지도를 보며 길을 찾거나, 로봇이 복잡한 창고 안에서 물건을 나를 때 경로 탐색이 먼저 필요한데, 어디서 어디까지 가장 빠르고 효율적으로 갈 수 있을지 찾는 이런 상황에서 널리 쓰이는 두 가지 인공지능 알고리즘이 바로 다익스트라(Dijkstra) 알고리즘과 A* (에이스타) 알고리즘입니다.

다익스트라 알고리즘 - 정확한 길잡이
다익스트라 알고리즘은 1956년, 네덜란드의 컴퓨터 과학자 에츠허르 다익스트라가 만든 알고리즘입니다. 출발지에서 모든 노드까지의 최단 경로를 하나씩 찾아가며 계산합니다. 이 과정에서 비용(거리나 시간 등)이 가장 적은 노드부터 순차적으로 처리하므로, 어떤 노드든 ‘가장 빠른 길’을 정확하게 찾아냅니다.
하지만 단점도 있습니다. 목적지가 멀리 있든, 가까이 있든 모든 길을 다 살펴보는 방식이기 때문에, 복잡한 지형이나 큰 그래프에서는 시간이 많이 걸립니다.

A* 알고리즘 - 예측으로 더 빠르게
A* 알고리즘은 다익스트라의 성능 문제를 해결하기 위해 등장했습니다. 이 알고리즘은 ‘현재까지의 거리’에 ‘목적지까지의 예상 거리(휴리스틱 함수)’를 더해서 가장 유망한 경로부터 우선 탐색합니다.
예를 들어 로봇이 창고에서 물건을 찾는 상황에서는 단순히 거리만 따지지 않고, ‘이 방향이 목적지에 가까워 보인다’는 감각을 반영합니다. 그래서 복잡한 지도나 장애물이 많은 환경에서도 빠르게 목적지에 도달할 수 있습니다.

하지만 A*도 완벽하지는 않습니다. 예상 거리 계산이 부정확하면 잘못된 길로 돌아갈 수 있고, 정확한 휴리스틱 함수가 필요합니다.


실제로는 어디서 쓰일까?
자율주행차: 차량이 도로 위에서 빠르고 안전한 경로를 찾기 위해 A* 알고리즘을 사용

로봇 물류 시스템: 창고를 돌아다니는 물류 로봇은 A* 또는 다익스트라 알고리즘을 통해 경로를 계산

게임 개발: 캐릭터의 움직임이나 몬스터의 추적 경로에 A* 활용

네비게이션 앱: 지도 서비스에서는 다익스트라를 변형한 알고리즘이 활용되며, 실제 교통 상황을 반영해 휴리스틱을 개선

keyword
매거진의 이전글회전운동과 토크(Torque), 물류 로봇의 원리