Computer Othello programs search for any possible legal moves using a
game tree. In theory, they examine all positions / nodes, where each move by one player is called a
"ply". This search continues until a certain maximum search depth or the program determines that a final "leaf" position has been reached. A naive implementation of this approach, known as
Minimax or
Negamax, can only search to a small depth in a practical amount of time, so various methods have been devised to greatly increase the speed of the search for good moves. These are based on
Alpha-beta pruning,
Negascout,
MTD(f), and NegaC*. The alphabeta algorithm is a method for speeding up the Minimax searching routine by pruning off cases that will not be used anyway. This method takes advantage of the fact that every other level in the tree will maximize and every other level will minimize. Several heuristics are also used to reduce the size of the searched tree: good move ordering,
transposition table and selective Search. To speed up the search on machines with multiple processors or cores, a
"parallel search" may be implemented. Several experiments have been made with the game Othello, like ABDADA or APHID On
recent programs, the YBWC seems the preferred approach.
Multi-Prob cut Multi-ProbCut is a heuristic used in
alpha–beta pruning of the search tree. The ProbCut heuristic estimates evaluation scores at deeper levels of the search tree using a
linear regression between deeper and shallower scores. Multi-ProbCut extends this approach to multiple levels of the search tree. The linear regression itself is learned through previous tree searches, making the heuristic a kind of dynamic search control. It is particularly useful in games such as
Othello where there is a strong correlation between evaluations scores at deeper and shallower levels. == Evaluation techniques ==