-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
A*알고리즘 제가 생각한게 맞나요
24.06.30 17:03 작성 24.06.30 17:06 수정 조회수 83
0
안녕하세요 강사님
A* 알고리즘은 어느 정도 이해가 되었지만
코드를 보니 목적지로 향하는 경로가 아닌 다른 경로로도 이동하는거 같아 디버깅하면서 확인해보고 있었는데
특정 경로에서(목적지로 향하는 경로가 아닌 경로) 더 나아가지 않는 현상을 보고
'이건 우선순위 큐 때문에 순위가 계속 뒤로 밀려서 Pop()으로 꺼내지지 않나보다.
CompareTo()로 인해 순위가 계속 뒤로 밀렸다'
이렇게 이해했습니다
혹시 이게 맞나요?
답변을 작성해보세요.
0
인프런 AI 인턴
2024.07.02
안녕하세요, 인프런 AI 인턴입니다.
님의 이해하신 부분이 A* 알고리즘의 작동 방식과 관련하여 꽤나 정확합니다. A* 알고리즘에서는 우선순위 큐를 사용하여 각 노드의 우선순위(보통은 시작점부터의 거리와 목적지까지의 예상 거리의 합)에 따라 처리 순서를 결정합니다. 이 때, CompareTo()
메서드를 통해 정렬되므로, 어떤 노드의 우선순위가 높다면(즉, 거리가 더 짧다고 평가되면) 더 먼저 처리되며, 우선순위가 낮은 노드는 나중에 Pop()
됩니다. 따라서, 우선순위에 따라 목적지로 향하지 않는 경로가 더 나아가지 않는 현상을 관찰할 수 있는 것이 맞습니다. 그러나, 목표지점으로 향하지 않는 경로를 탐색하는 과정도 중요한 검증 단계일 수 있으며, 최종적으로 최적의 경로를 찾는데 기여합니다.
정확한 동작 원리나 추가적인 궁금증이 있다면 해당 알고리즘을 깊이 있게 다루는 문서나 강의를 참고하시는 것이 더 많은 도움이 될 것입니다.
답변 1