이 코드는 A* 알고리즘을 사용하여 태즈메이니아 낙타 퍼즐을 푸는 것을 목표로 합니다. 그러나 코드의 병목 현상으로 인해 성능이 저하됩니다.
일련의 스택 추적을 보면 astar 함수의 80번째 라인에서 대부분의 시간이 소요되는 것으로 나타났습니다. :
openlist.put((current.g + heuristicf(neighbor), node(neighbor, current.g + 1, current)))
이 줄에는 여러 작업이 포함됩니다.
이러한 작업을 별도의 작업으로 분리 선은 속도 저하의 원인을 정확히 찾아내는 데 도움이 됩니다. 그러나 인접 배열에 대한 반복적인 휴리스틱 계산은 잠재적인 성능 병목 현상이 될 수 있음이 분명합니다.
코드 성능을 향상하려면 다음 제안을 고려하세요.
이러한 최적화를 구현하면 코드 성능이 크게 향상됩니다. 더 큰 퍼즐 인스턴스를 더 효율적으로 해결할 수 있습니다.
위 내용은 태즈메이니아 낙타 퍼즐을 풀기 위해 A* 알고리즘을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!