Ticket #215 (new enhancement)

Opened 6 months ago

Static safety

Reported by: gunnar Owned by: gnugo
Priority: normal Milestone: 3.9.x
Component: source Version:
Severity: normal Keywords:
Cc: patch: yes

Description

In the testcase endgame:1010,











white fails to make the correct move because the upper white dragon is considered somewhat unsafe. That's of course nonsense but it's quite difficult to get safety estimates which are only based on eyespace statistics to be robust.

This ticket aims to create a new reading paradigm which should be able to determine safety with high confidence (but not unsafety). I.e. if it says that a dragon is safe it really is safe, but if it says unsafe it may or may not be in any actual danger.

The way to do this is to perform search which decides whether the opponent can stop the dragon from becoming unconditionally alive (see unconditional.c). The difference to tactical reading is that it terminates with either capture or unconditional life, in contrast to either capture or 5 liberties (fewer deep in the tree). The difference to owl reading is that it does not rely on eyespace calculations (sometimes incorrect). In contrast to both tactical reading and owl reading it shouldn't be selective at all but actually try all local moves.

The attached patch gunnar_9_1.6 adds a first crude implementation of this kind of reading. It's only available through the new GTP command static_safety. Try e.g. static_safety E2 in the position above. In this state it's not yet efficient enough to correctly find that B8 is safe, however, but that shouldn't be too hard to fix with an improved search.

Attachments

gunnar_9_1.6.diff Download (10.1 KB) - added by gunnar 6 months ago.
First implementation of unconditional safety search

Regression Results

Attachment Rev. PASS FAIL Nodes Status
gunnar_9_1.6.diff Download never tested

Change History

Changed 6 months ago by gunnar

First implementation of unconditional safety search

Note: See TracTickets for help on using tickets.