Overview

This crate provides an implementation of Monte Carlo tree search. It uses a directed acylic graph (DAG) to represent the game tree. As a result, it may provide a more compact representation than traditional Monte Carlo tree search, which may duplicate game states and dilute statistics if the same game state can be reached by two different routes of play.

To use this crate:

  • Implement the Game trait for a game of your choice.
  • Initialize search with RolloutPhase::initialize.
  • Execute search steps through the crate API.

This code is still provisional and needs substantial testing and shaking-down.

Copyright

Copyright 2015-2025, Donald S. Black.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Description
Monte Carlo tree search on directed acylic graph representations of the game tree
Readme 162 KiB
Languages
Rust 100%