Table of Contents
A* 검색 알고리즘은 로봇, 게임 개발 및 네트워크 라우팅과 같은 다양한 응용 분야에서 사용되는 인기있는 경로 정의 및 그래프 트레이널 기술입니다. 그것은 획일한 검색 및 그리스 최고의 검색 기능을 결합하여 시작 노드에서 목표 노드로 가장 짧은 경로를 효율적으로 찾을 수 있습니다. 이 가이드는 단계별 프로세스를 제공하여 각 단계에 대해 설명하는 예를 들어 계산을 사용하여 A* 알고리즘을 구현합니다.
A* Algorithm에 대한 이해
A* 알고리즘은 비용 함수, f(n) = g(n) + h(n)를 사용합니다.
- g(n): 시작 노드에서 노드 n로 실제 비용.
- h(n): 노드 n에서 목표에 대한 비용의 심각성 추정.
알고리즘은 가장 낮은 f(n) 값으로 노드를 탐색하고, 실제적으로 균형 잡힌 비용으로 최적의 경로를 효율적으로 찾을 수 있습니다.
Step-by-Step 구현
A* 알고리즘을 구현하기 위한 이 단계를 따르십시오:
1. 오픈 및 닫힌 목록 초기화
오픈 목록은 노드가 평가되기 때문에 초기 노드로 시작될 수 있습니다. 닫힌 목록은 노드가 이미 평가된 것을 포함합니다.
2. 가장 낮은 f(n)로 노드를 선택하십시오.
열린 목록에서 이 노드를 제거하고 닫힌 목록에 추가하십시오.
3. 이웃 노드 생성
g(n)과 h(n)을 각 이웃에 계산합니다. 이웃이 열린 리스트에 있지 않거나 낮은 g(n)를 가지고 있고, 그 값을 업데이트하고 현재 노드에 부모를 설정하십시오.
4. 목표 도달까지 반복
목표 노드가 닫히는 리스트에 추가될 때까지 프로세스를 계속 진행하고, 가장 짧은 경로가 발견되었습니다.
예제 계산
start node A 및 목표 노드 G와 간단한 그리드를 고려하십시오. 허리적 h (n)는 직선 거리입니다. 초기 계산은 다음과 같습니다.
노드 A부터 g(A) = 0, h(A) = 4. f(A) = 4. 이웃 노드 B와 C를 평가합니다.
노드 B : g (B) = g (A) + 비용 (A, B) = 0 + 1 = 1, h (B) = 3, f (B) = 4.
노드 C : g(C) = 1, h(C) = 2, f(C) = 3. Node C는 가장 낮은 f(n)를 가지고 있으므로 다음을 선택했습니다.
이 프로세스는 계속, g, h, f 값, 목표 노드 G가 가장 짧은 경로로 도달 할 때까지.