인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

k ch님의 프로필 이미지
k ch

작성한 질문수

이득우의 꼭 배워야하는 게임 알고리즘

3강 A* 알고리즘 최적화

우선순위큐로 구현시

작성

·

257

0

최적화전 코드에 openSet에 이미 전에 계산한 중복노드가 있다면 낮은값일때 값을 바꿔주는 부분이 있었는데요.

 

우선순위큐에서 pop을하면 어차피 최소값을 보장하닌까 우선순위큐로 교체해준다면 굳이 바꿔줄 필요가 없겠지요?

 

답변 1

1

이득우님의 프로필 이미지
이득우
지식공유자

네 맞습니다~

k ch님의 프로필 이미지
k ch
질문자

추가 질문이 있습니다.. (해결 됐습니다)

우선순위큐까진 만들었는데 전에 만들어둔 A*코드에 적용하는방법은 안나와서 바꿔보고있습니다

 

수업자료도 코드가 이전꺼내요...

 

(우선 직접 만들어서 강의랑 약간 다릅니다.. 참고 부탁드립니다.)

 

우선순위큐는 항상최소 값을 보장하니

그냥 주변노드를 가져와 계속 넣어줬는데요..

우선순위 큐에 중복된 노드가 계속해서들어가 결과적으로 검색하는데 더 느리게 동작해버리는데..

우선순위큐에 중복된 노드가 있을땐 어떻게 처리해야 할까요?

우선순위큐에 FInd함수를 만들어 찾게 하고 중복된데이터의 값보다 더작으면 gCost를 바꿔줘야 할까요?

 

 


그냥넣지않고 중복값이있을때 비교해 넣도록 했더니 잘되네요...!

image

이득우님의 프로필 이미지
이득우
지식공유자

휴가중이라 답신이 늦었습니다.
A* 알고리즘은 본질적으로 휴리스틱이라, 자신의 게임 상황에 맞게 자유롭게 응용해주시면 됩니다~

k ch님의 프로필 이미지
k ch

작성한 질문수

질문하기