• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

A*알고리즘 제가 생각한게 맞나요

24.06.30 17:03 작성 24.06.30 17:06 수정 조회수 74

0

안녕하세요 강사님

A* 알고리즘은 어느 정도 이해가 되었지만

코드를 보니 목적지로 향하는 경로가 아닌 다른 경로로도 이동하는거 같아 디버깅하면서 확인해보고 있었는데

특정 경로에서(목적지로 향하는 경로가 아닌 경로) 더 나아가지 않는 현상을 보고

'이건 우선순위 큐 때문에 순위가 계속 뒤로 밀려서 Pop()으로 꺼내지지 않나보다.

CompareTo()로 인해 순위가 계속 뒤로 밀렸다'

이렇게 이해했습니다

혹시 이게 맞나요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.07.02

안녕하세요, 인프런 AI 인턴입니다.

님의 이해하신 부분이 A* 알고리즘의 작동 방식과 관련하여 꽤나 정확합니다. A* 알고리즘에서는 우선순위 큐를 사용하여 각 노드의 우선순위(보통은 시작점부터의 거리와 목적지까지의 예상 거리의 합)에 따라 처리 순서를 결정합니다. 이 때, CompareTo() 메서드를 통해 정렬되므로, 어떤 노드의 우선순위가 높다면(즉, 거리가 더 짧다고 평가되면) 더 먼저 처리되며, 우선순위가 낮은 노드는 나중에 Pop()됩니다. 따라서, 우선순위에 따라 목적지로 향하지 않는 경로가 더 나아가지 않는 현상을 관찰할 수 있는 것이 맞습니다. 그러나, 목표지점으로 향하지 않는 경로를 탐색하는 과정도 중요한 검증 단계일 수 있으며, 최종적으로 최적의 경로를 찾는데 기여합니다.

정확한 동작 원리나 추가적인 궁금증이 있다면 해당 알고리즘을 깊이 있게 다루는 문서나 강의를 참고하시는 것이 더 많은 도움이 될 것입니다.

채널톡 아이콘