No edit summary |
No edit summary |
||
| Line 39: | Line 39: | ||
MCTS tree can be visualised graphically. | MCTS tree can be visualised graphically. | ||
MCTS commands are available by right-clicking in Tk operations view. | |||
MCTS_AUTO_PLAY and RANDOM_ANIMATE are available as special event names for VisB. | |||
As of January 2024 ProB has a built-in algorithm for Monte Carlo Tree Search (MCTS). This can for example be used to perform game playing.
In order to make use of MCTS one needs to provide information about the game state of a model by providing DEFINITIONS for:
The following definitions are optional and influence the MCTS algorithm:
A simple example is the Nim game of sticks:
MACHINE Nim_MCTS
CONSTANTS Players, other
PROPERTIES
Players = {"min","max"} &
other = {"min"|->"max", "max"|->"min"}
DEFINITIONS
GAME_OVER == bool(sticks < 1);
GAME_VALUE == {"max"|->1, "min"|->-1}(player);
GAME_PLAYER == player;
GAME_MCTS_RUNS == 100
VARIABLES sticks, player
INVARIANT
sticks:NATURAL &
player:Players
INITIALISATION sticks := 5 || player := "max"
OPERATIONS
Take1 = SELECT sticks>=1 THEN sticks := sticks-1 || player := other(player) END;
Take2 = SELECT sticks>=2 THEN sticks := sticks-2 || player := other(player) END
END
MCTS tree can be visualised graphically.
MCTS commands are available by right-clicking in Tk operations view. MCTS_AUTO_PLAY and RANDOM_ANIMATE are available as special event names for VisB.