Hi!
Just reading this point:
djhbrown wrote:
Swim and alfie0 have one thing in common: neither is based upon human preconceptions or prejudices; Swim's perceptions, goals and methods are (intendedly) objective axioms of Go structure (independent of their author's subjectivity), in the same way that the Laws of Physics are (intendedly) objective models of the dynamics of nature, regardless of who came up with them.
Now, let me cherry pick a "few" quotes and pseudo codes from
your paper on Common Sens Go that describe how SWIM is supposed to function.
Are you sure none of them are "based upon human preconceptions or prejudices"? Are those merely "axioms"? I am pretty sure AlphaGo Zero did not need any of those to be pre included into its code...
djhbrown wrote:
How far should one slide? Not too near, and not too far. Two proverbs and one observation pertain:
- stay away from thickness.
- on the 3 rd line, jump 3 spaces from a 2-stone wall.
- a monkey jump along the edge is connected.
Taken together with the colour and shadow maps, these yield a general method:
Code:
to slide (object into area)
do if slide line < 4
then jump (boundary (object) + 2)
else jump (boundary (object)+1)
djhbrown wrote:
A group with two eyes, or a single eye large enough to be able to form two eyes, is alive.
djhbrown wrote:
A group whose combined colour map and shadow map embraces two eyespaces, or a single eyespace large enough to be able to
form two eyes, is strong. [...]
A group that is neither alive nor strong is weak. [...]
djhbrown wrote:
An overall honte strategy is:
When in doubt, play safe. Attack is the best means of defence, but a desperate attack is a high-risk strategy which should only be attempted when well behind.
djhbrown wrote:
On average, in an even game, it is reasonable to expect that the neutral space will turn into equal amounts of stones and territory, with each side expected to get half of it.
djhbrown wrote:
The attach and shoulder methods specify that the move should be made from the region side of the stone, expecting the opponent to reply from the other side.
djhbrown wrote:
The counter-goal to surround is save, rather than merely escape, because running with a weak group is generally disadvantageous.
djhbrown wrote:
how wide does a space have to be to qualify as wide open? one clue comes from the size of the smallest group that can live in the centre, which, taking into account the fact that every other move is played by the opponent, is at least 7 by 5. if the cluster trying to escape already has one eye, this reduces to about 4 by 5. If the space includes the edge of the board, the numbers reduce to 7 by 3 and 4 by 3
djhbrown wrote:
Killing a group is a 3-step process:
Code:
to kill (x)
do surround (x);
reduce (eyespace (x));
steal eyes (x)
Code:
to playsafe
do foreach mygroup
if mygroup is weak and mygroup is important
then save (mygroup))
or foreach yourgroup
if weak (yourgroup)
then attack (yourgroup)
or foreach mymoyo
expand (mymoyo)
or foreach yourmoyo
if wideopen (yourmoyo)
then invade (yourmoyo)
else limit (yourmoyo)
or foreach myerritory
increase (myterritory)
or foreach yourterritory
reduce (yourterritory)
to attack (you)
do if (surrounded (you) and adjacent (you, me) and liberties (me) ≥ liberties (you))
then semeai (me, you)
or for friend (you)
separate (you, friend)
or blockescape (you)
or reduce eyespace (you)
to separate (you, friend)
let p = path (you, friend)
do if (cuttingstones in p)
(save (cuttingstones))
or if border (friend, p) has gap
leaningattack (friend from p)
to leaningattack (you from region)
do for block in you
where
(adjacent (block, border (region)) and size (block = 1))
(attach (region, block) or shoulderhit (region, block))
_________________
I am the author of
GoReviewPartner, a small software aimed at assisting reviewing a game of Go. Give it a try!