🤖 AI Summary
Monte Carlo Tree Search (MCTS) suffers from poor scalability on modern CPUs due to branch misprediction overhead and irregular memory access patterns induced by its pointer-based tree structure, limiting simulation throughput. To address this, we propose a compact array-based MCTS implementation that replaces the explicit pointer tree with an implicit array representation—preserving the UCT algorithm’s logic while eliminating indirect memory accesses and conditional branches. This design improves cache locality and instruction-level parallelism by enabling contiguous memory layouts and predictable control flow. Experimental evaluation demonstrates a substantial increase in simulations per unit time under identical clock cycles; maximum search depth improves by up to 2.8× compared to conventional pointer-based implementations. The approach significantly enhances MCTS scalability and real-time performance in latency-sensitive decision-making tasks, without compromising algorithmic correctness or generality.
📝 Abstract
Monte Carlo Tree Search is a popular method for solving decision making problems. Faster implementations allow for more simulations within the same wall clock time, directly improving search performance. To this end, we present an alternative array-based implementation of the classic Upper Confidence bounds applied to Trees algorithm. Our method preserves the logic of the original algorithm, but eliminates the need for branch prediction, enabling faster performance on pipelined processors, and up to a factor of 2.8 times better scaling with search depth in our numerical simulations.