Debug.Log(Klistas);

1. A* 알고리즘 개요

적용 예:


2. 목표


3. 내용

1. A* vs Dijkstra 알고리즘

다익스트라 알고리즘이란?

그래프에서 하나의 시작 정점으로부터 모든 정점까지의 최단 경로를 구하는 알고리즘이다.
모든 간선의 가중치가 **0 이상(음수 없음)**일 때만 올바르게 작동한다.


핵심 개념


작동 원리 (단계별)

  1. 시작 노드의 거리를 0으로 설정, 나머지는 모두 무한대(∞)로 초기화
  2. 아직 방문하지 않은 노드 중에서 최단 거리 노드를 선택
  3. 해당 노드의 이웃 노드들에 대해,
    • 현재 거리 + 간선 가중치 < 기존 거리이면 갱신
  4. 모든 노드를 방문할 때까지 반복

특징

항목설명
목적시작점에서 모든 노드까지의 최단 거리
간선 가중치0 이상만 가능 (음수 불가)
탐색 방향전체 노드
휴리스틱 사용❌ 없음 (전부 실제 거리만 계산)
경로 재구성가능 (이전 노드 저장 시)

A* 알고리즘과의 비교

항목다익스트라A*
목적모든 경로의 최단 거리특정 목적지까지 최단 거리
휴리스틱 사용❌ 없음✅ 있음
탐색 범위더 넓음 (모든 방향)더 좁음 (목표 쪽으로 집중)
효율성느릴 수 있음빠를 수 있음 (휴리스틱이 정확하면)
최적성항상 최적휴리스틱이 admissible하면 최적

실생활 비유

다익스트라는 모든 길을 돌아보면서 어디가 제일 빠른지를 찾는 방식,
A*는 대충 방향을 잡고 빠르게 최적인 길을 찾는 방식.


2. A* 알고리즘 핵심 요소

F: 예상 최종거리

G: 지금까지 걸린 거리

H: 남은것으로 예상되는 거리(휴리스틱)

F(x) - 예상 최종거리 = G(x) - 지금까지 걸린 거리 + H(x) - 남은것으로 예상되는 거리(휴리스틱)

주의: H 값에 따라 성능이 크게 달라진다. → H는 “맨해튼 거리 = 격자의 가로나 세로만 연산” 또는 “유클리드 거리 = 직선거리"로 계산 가능.


A* 알고리즘 동작 방식

이동 방향거리 값
상/하/좌/우10
대각선14 (√2 ≈ 1.41을 정수로 근사)

계산법


3. 휴리스틱 (Heuristic)

휴리스틱이란, 문제 해결 또는 의사결정 과정에서 정확한 해답을 구하는 대신, 빠르고 근사적인 해결책을 찾기 위해 사용하는 추정 기법 또는 경험 기반의 간단한 판단 기준이다.

컴퓨터 과학에서는 특히 탐색 알고리즘에서,

목적지까지의 “추정 비용” 또는 “거리"를 계산하는 데 사용되는 함수 또는 값

길 찾기에서의 휴리스틱

“이 길이 제일 가까울 것 같다"는 직관적인 추정값이 바로 휴리스틱.


휴리스틱의 역할


3. 추가 사항

#Algorithm #PathFinding