Ticket #150 (closed task: fixed)

Opened 5 years ago

Last modified 3 years ago

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

Monte_Carlo_board_code.c Download (11.4 KB) - added by gunnar 5 years ago.
First attempt on Monte Carlo specific board code.
MonteGNU.diff Download (50.6 KB) - added by gunnar 5 years ago.
Updated Monte Carlo board code and UCT implementation.
gunnar_7_12.3.diff Download (56.4 KB) - added by gunnar 4 years ago.
Monte Carlo patch ready for merge.
gunnar_7_12.14.diff Download (81.4 KB) - added by gunnar 4 years ago.
Tunable local patterns for random playouts.

Regression Results

Attachment Rev. PASS FAIL Nodes Status
MonteGNU.diff Download 2381 build error details
gunnar_7_12.14.diff Download never tested
gunnar_7_12.3.diff Download never tested

Change History

Changed 5 years ago by gunnar

First attempt on Monte Carlo specific board code.

Changed 5 years ago by gunnar

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

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

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.

Note: See TracTickets for help on using tickets.