Contents
Go3
implements several variations of simulation-based
Go players.
All choose their best move based on its success in simulations.
Go3
implements two different simulation policies.
Go3
also implements two different move selection algorithms
at the root.
- Download go3.tgz.
This contains directory
go3
.
The codes in this directory
implement the simulation-based Go players
described below.
- Run the default
Go3
program with
python3 Go3.py
in the go3
directory, or attach it to GoGui as a new player.
- Add some of the options below to try different versions of Go3.
- Go3 also implements a fast player,
which chooses among all (filtered) policy moves uniformly at random,
and does not do any simulations. See the
Policy-only Player.
- --help - show help message with options and exit
- --sim - number of simulations per move
- Default 10
- Example: run with 100 simulations/move
-
python3 Go3.py --sim=100
- --moveselect - move selection method
- Two move selection algorithms: simple and UCB
- Default: simple algorithm: For each move, try n simulations starting with this move, where n is set with --sim
- UCB: uses n * number-of-legal-moves simulations in total, like the
default player. However, it uses the UCB algorithm to
allocate more simulations to promising
moves and fewer to low-scoring moves.
- Example: use UCB for move selection
-
python3 Go3.py --moveselect=ucb
- --simrule - Type of simulations
- Two types: almost-random and rule-based
- Default: almost-random
- Example: use rule-based simulations
-
python3 Go3.py --simrule=rulebased
- --movefilter - Move filter.
- By default, only eye-filling moves
are filtered in the simulations.
- This option adds more filtering.
In Go3, this means that selfatari moves are also filtered.
- Combining options
- Example:
python3 Go3.py --simrule=rulebased --movefilter --sim=20
Go3 also implements a second player, the policy-only player.
- It does not do any simulation.
- It randomly chooses among all policy moves.
- You can choose this player by running
Go3/PolicyPlayer.py
instead of Go3/Go3.py
.
- PolicyPlayer supports the same options for --simulations
and --movefilter as Go3.
- It ignores the options --sim and --moveselect. They
do not make sense for this player.
Go3 provides three useful commands that you can use with GoGui.
First, open the Analyze window. Then, choose one of the options:
- Legal Moves for To Play
- Policy Moves
- Random Moves
As a result, the program will mark the moves belonging to the
selected category on the board.
Another useful feature of GoGui is Auto run. If you check this option,
then GoGui will re-send the command every time the board positions changes.
Very handy if you want to see which policy moves are generated as you step through
a game or a set of test cases.
Created: Mar 1, 2018 Last modified: Mar 2, 2019
Martin Müller