점과 박스를 재생하는 프로그램을 작성 중이며 반복 심화 체계에서 휴리스틱 값을 기반으로 알파 베타에서 고려한 동작을 정렬하여 시간 효율성을 높이고 싶습니다. 본질적으로, 나는 검색 트리에 들어가서 각 반복마다 깊이를 증가시키고 alphaBeta로 각 노드를 평가하려고합니다. 각각의 연속 반복에서 노드를 고려하는 순서는 이전 반복의 노드의 경험적 값에 의해 결정됩니다. 그러나 이것이 어떻게 구현 될지 이해하는 데 어려움을 겪고 있습니다. 다른 사람이 표준 알파 베타 프로그램이 반복 심화를 사용하여 검색하는 방식에 의사 코드를 제공 할 수 있습니까? 고맙습니다!알파 베타 프 루닝으로 반복 심화를 구현하는 방법
1
A
답변
1
음, Iterative Deepening은 구현하기가 어렵지 않습니다. 중요한 것은
for(int distance = 1; distance < MAX_DISTANCE && !outOfTime(); distance++) {
bestmove = alphaBetaAtRoot(position, distance);
}
play(bestmove);
는하지만,이다 : 당신은 이미 검색을 수행하는 함수가있는 경우의, 당신은 단지 거리를 1로 시작, 반복 호출 고정 된 거리로 검색을 수행 alphaBetaAtRoot
를 호출하자 Transposition Table을 구현해야합니다. 그렇지 않으면 각 검색이 지식이 전혀없는 상태에서 시작하기 때문에 더 나은 이동 순서를 사용하면 도움이되지 않습니다.
0
다음 링크를 발견했습니다. https://github.com/nealyoung/CS171/blob/master/AI.java 나는 당신을 돕기를 바랍니다.
+0
안녕하세요. 링크 전용 답변은이 사이트의 표준을 충족시키지 않습니다. http://stackoverflow.com/help/how-to-answer –
+0
와우! 정말 고맙습니다! –
감사합니다. 나는 전이 표의 필요성을 깨닫지 못했습니다. 나는 더 많은 독서를했고 이것은 많은 도움이되었다. –