Ticket #150 (closed task: fixed)
Integrate Monte Carlo techniques in GNU Go
| Reported by: | gunnar | Owned by: | gnugo |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.7.12 |
| Component: | source | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | patch: | yes |
Description
With the success of Monte Carlo based programs over the last year or so there's little question that this approach is useful. What is less clear is how to use it in GNU Go.
An early attempt can be found in this mailing list thread from April of 2006. It could be interesting to modify this to use UCT search instead.
A possibly more interesting idea is to use Monte Carlo for dragon strength estimation.
A characteristic of Monte Carlo methods is that speed is of utmost importance. On the other hand neither undo, nor many of the complicated board functions in GNU Go are of much use. Therefore a more lightweight board implementation could be faster and easier to adapt for multithreading.
Attachments
Regression Results
| Attachment | Rev. | PASS | FAIL | Nodes | Status | |
| MonteGNU.diff | 2381 | build error | details | |||
| gunnar_7_12.14.diff | never tested | |||||
| gunnar_7_12.3.diff | never tested |
Change History
Changed 5 years ago by gunnar
-
attachment
Monte_Carlo_board_code.c
added
Changed 5 years ago by gunnar
-
attachment
MonteGNU.diff
added
Updated Monte Carlo board code and UCT implementation.
comment:1 Changed 5 years ago by gunnar
Tip of the day: if you're using this code, change the two occurences of board![...] near the end of mc_is_self_atari() to mc->board![...].
Changed 4 years ago by gunnar
-
attachment
gunnar_7_12.3.diff
added
Monte Carlo patch ready for merge.
comment:2 Changed 4 years ago by gunnar
The patch gunnar_7_12.3.diff contains a cleaned up version of the code with command-line options to turn it on. Notice that it's hardcoded to only allow 9x9 (or smaller). The code simply doesn't scale to larger boards so I think it's reasonable to require people wanting to try that to be competent enough to modify the source first.
Changed 4 years ago by gunnar
-
attachment
gunnar_7_12.14.diff
added
Tunable local patterns for random playouts.
comment:3 Changed 3 years ago by gunnar
- Status changed from new to closed
- Resolution set to fixed
- Milestone changed from 3.8 to 3.7.12
These patches are in the engine as of GNU Go 3.7.12 and are a reasonable first implementation of Monte Carlo techniques in GNU Go. There's no point in keeping this ticket open any longer. Further Monte Carlo improvements had better go into tickets of their own.

First attempt on Monte Carlo specific board code.