[논문 리뷰] SSS* = Alpha-Beta + TT
이 논문은 SSS* 알고리즘을 전이표를 갖춘 알파-베타 검색의 연속으로 재구성한 AB-SSS*로 재구성하여, SSS*의 역사적 단점인 복잡성, 메모리 사용량, 느린 속도를 해결한다. 이 방법은 체커, 올리고, 체스에서 알파-베타와 유사한 리프 노드 수를 기록하며, SSS*가 본질적으로 알파-베타의 개선형이지 근본적으로 다른 알고리즘이라는 것을 입증하고, 기존 알파-베타 최적화 기법의 통합을 가능하게 한다.
In 1979 Stockman introduced the SSS* minimax search algorithm that domi- nates Alpha-Beta in the number of leaf nodes expanded. Further investigation of the algorithm showed that it had three serious drawbacks, which prevented its use by practitioners: it is difficult to understand, it has large memory requirements, and it is slow. This paper presents an alternate formulation of SSS*, in which it is implemented as a series of Alpha-Beta calls that use a transposition table (AB- SSS*). The reformulation solves all three perceived drawbacks of SSS*, making it a practical algorithm. Further, because the search is now based on Alpha-Beta, the extensive research on minimax search enhancements can be easily integrated into AB-SSS*. To test AB-SSS* in practise, it has been implemented in three state-of-the- art programs: for checkers, Othello and chess. AB-SSS* is comparable in performance to Alpha-Beta on leaf node count in all three games, making it a viable alternative to Alpha-Beta in practise. Whereas SSS* has usually been regarded as being entirely different from Alpha-Beta, it turns out to be just an Alpha-Beta enhancement, like null-window searching. This runs counter to published simulation results. Our research leads to the surprising result that iterative deepening versions of Alpha-Beta can expand fewer leaf nodes than iterative deepening versions of SSS* due to dynamic move re-ordering.
연구 동기 및 목표
- 높은 메모리 사용량, 복잡성, 느린 성능 등의 장기적인 실용적 한계를 해결하기 위해 SSS*의 문제점을 다루는 것.
- 기존 알파-베타 프레임워크에 전이표 통합을 통해 SSS*를 효율적으로 구현할 수 있음을 입증하는 것.
- AB-SSS*가 실제 게임 프로그램에서 알파-베타와 동일하거나 뛰어난 리프 노드 효율성을 달성할 수 있는지 평가하는 것.
- 이전 시뮬레이션 결과와는 반대로, 반복적 깊이 탐색 버전의 SSS*가 알파-베타를 능가할 수 있는지 조사하는 것.
제안 방법
- 공유된 전이표를 사용하여 각각의 알파-베타 호출을 연속적으로 수행하는 방식으로 SSS*를 재구성한다.
- 전이표를 활용해 중복 계산을 방지하고 검색 효율을 향상시켜, SSS*의 최적 노드 확장을 모방한다.
- 체커, 올리고, 체스의 세 개의 최신 게임 프로그램에 AB-SSS*를 통합한다.
- 동적 수수순 정렬과 반복적 깊이 탐색을 활용하여 성능을 향상시킨다. 이는 표준 알파-베타 최적화 기법이다.
- 세 게임 전반에서 AB-SSS*와 표준 알파-베타 간의 리프 노드 수를 비교한다.
- 전이표를 사용해 경로 간의 경계 정보를 효율적으로 전파한다.
실험 결과
연구 질문
- RQ1전이표를 갖춘 알파-베타 호출의 연속으로 SSS*를 재구성함으로써 실용적인 구현이 가능한가?
- RQ2AB-SSS*는 실제 게임 프로그램에서 알파-베타와 유사한 리프 노드 수를 기록하는가?
- RQ3왜 반복적 깊이 탐색 버전의 알파-베타가 때로는 반복적 깊이 탐색 버전의 SSS*보다 더 적은 리프 노드를 확장하는가?
- RQ4SSS*는 본질적으로 알파-베타와 다를가운데, 아니면 단지 더 강력한 가지치기 기능을 갖춘 알파-베타의 한 형태인가?
- RQ5기존 알파-베타 최적화 기법들이 AB-SSS*에 효과적으로 적용될 수 있는가?
주요 결과
- AB-SSS*는 체커, 올리고, 체스에서 알파-베타와 유사한 리프 노드 수를 기록하여 실용성의 가능성을 입증한다.
- 재구성으로 인해 SSS*의 역사적 단점이 해결되었으며, 이제 이해하기 쉬워지고, 메모리 사용량이 줄어들며, 더 빠르게 작동한다.
- 반복적 깊이 탐색에서 알파-베타가 동적 수수순 재정렬의 효과로 인해 리프 노드 수 측면에서 SSS*를 능가한다.
- SSS*는 본질적으로 알파-베타와 다른 알고리즘이 아니라, 널-윈도우 검색과 유사한 형태의 개선된 알고리즘일 뿐이다.
- 전이표의 통합을 통해 검색 정보의 효율적 재사용이 가능해져 AB-SSS*는 올바르고도 효율적인 알고리즘이 되었다.
- 이전의 시뮬레이션 기반 주장과는 반대로, SSS*가 알파-베타의 리프 노드 효율성에서 우세하다는 주장은 잘못되었으며, 실제로는 좋은 수수순 정렬이 적용된 알파-베타가 더 뛰어난 성능을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.