[Computer-go] Number of Go positions computed at last

61 views
Skip to first unread message

John Tromp

unread,
Jan 21, 2016, 11:18:27 PM1/21/16
to computer-go
It's been a long journey, and now it's finally complete!

http://tromp.github.io/go/legal.html

has all the juicy details...

regards,
-John
_______________________________________________
Computer-go mailing list
Compu...@computer-go.org
http://computer-go.org/mailman/listinfo/computer-go

Robert Jasiek

unread,
Jan 22, 2016, 3:34:01 AM1/22/16
to compu...@computer-go.org
On 22.01.2016 05:18, John Tromp wrote:
> It's been a long journey, and now it's finally complete!
>
> http://tromp.github.io/go/legal.html

Congratulations!

You must have needed 15 or 20 years of research to find the result?
Eventually you heavily rely on computational power. How has it been
possible to get hold of the computers and computation time? When
described in informal words, how have you attacked and proceeded with
the theory of the problem? What can other researchers learn from your
experience of how to research well? The number of legal positions itself
seems like a piece of trivia (is it?) but why do you think it is
important to have determined the number, that is, what is the research
benefit? If I may ask, what has been your motivation beyond curiosity?
You mention the calculation to be a server benchmark. Have there been
other equally or more suitable server benchmarks or is this particular
problem ground-breaking as a server benchmark?

What do the solution and its theory tell go players for tactics and
strategy and go programmers for developing better go playing programs?

Does the solution give a useful clue of how difficult it is to solve go
as a game weakly or strongly? That is, how is the number of legal
positions related to the computational complexity in time and space of
solving the 19x19 go game (under a given go ruleset) if viewed as the
specific 19x19 problem and not as the context of the general nxn
problem's class of computational complexity?

--
robert jasiek

Aja Huang

unread,
Jan 22, 2016, 3:45:37 AM1/22/16
to compu...@computer-go.org
Very interesting. Thanks John. :)

Aja

Petr Baudis

unread,
Jan 22, 2016, 4:26:40 AM1/22/16
to compu...@computer-go.org
On Thu, Jan 21, 2016 at 11:18:25PM -0500, John Tromp wrote:
> It's been a long journey, and now it's finally complete!
>
> http://tromp.github.io/go/legal.html
>
> has all the juicy details...

Congratulations!

(Piece of trivia: Michal Koucky who collaborated on this research is
essentially in the same department where I was when I was working on
Pachi, and where most of Pachi tuning and testing happenned, but we
don't really know each other (I was already external when he joined).
And the department head is the 1985 Czech Go champion, though he
doesn't play Go anymore. And none of these facts are causally
connected in any way AFAIK!)

--
Petr Baudis
If you have good ideas, good data and fast computers,
you can do almost anything. -- Geoffrey Hinton

Erik van der Werf

unread,
Jan 22, 2016, 5:48:25 AM1/22/16
to computer-go
Congratulations John!

Does the number include symmetrical positions (rotations / mirroring / color reversal)?

Best,
Erik

"Ingo Althöfer"

unread,
Jan 22, 2016, 8:08:14 AM1/22/16
to compu...@computer-go.org
Congratulations, John!

Do you want to publish your result in a paper?
(One leading member in the editorial board of the "International Journal
of Game Theory" is interested in such types of results.

Cheers, Ingo.


> Gesendet: Freitag, 22. Januar 2016 um 05:18 Uhr
> Von: "John Tromp" <john....@gmail.com>
> An: computer-go <compu...@computer-go.org>
> Betreff: [Computer-go] Number of Go positions computed at last

Stefan Kaitschick

unread,
Jan 22, 2016, 10:11:51 AM1/22/16
to compu...@computer-go.org
Good joke to render the solution as a board position.

John Tromp

unread,
Jan 22, 2016, 10:45:32 AM1/22/16
to computer-go
dear Erik,

> Does the number include symmetrical positions (rotations / mirroring / color
> reversal)?

Yes, of course.
This is also apparent from the table at the bottom listing 57 legal
2x2 positions. Figure 4 on page 5 of our paper
http://tromp.github.io/go/gostate.pdf
shows how these 57 positions form 13 equivalence classes with respect
to mirroring/reflection which further reduces to 7 classes when
considering color symmetry as well.

John Tromp

unread,
Jan 22, 2016, 10:49:43 AM1/22/16
to computer-go
> shows how these 57 positions form 13 equivalence classes with respect
> to mirroring/reflection which further reduces to 7 classes when
> considering color symmetry as well.

Correction: that should be 8 (not 7) classes for all symmetries.

Xavier Combelle

unread,
Jan 22, 2016, 10:50:41 AM1/22/16
to compu...@computer-go.org
well done !

Adrian Petrescu

unread,
Jan 22, 2016, 10:57:34 AM1/22/16
to computer-go
Very cool! I find it interesting that the number is only about 1.2% of 3^361 (though I realize 3^361 doesn't take symmetries into account). On the surface it's counterintuitive to me that nearly 99% of random stone configurations are not legal Go positions!

J. van der Steen

unread,
Jan 22, 2016, 11:03:10 AM1/22/16
to compu...@computer-go.org

Hi Adrian,

Take a handful of black and white stones, throw them on a 9x9 board and
check how many times you need to repeat this before you have a legal
position :) Please report your results in case you actually proceed with
this experiment.

best regards,
Jan van der Steen

On 22-01-16 16:57, Adrian Petrescu wrote:
> Very cool! I find it interesting that the number is only about 1.2% of
> 3^361 (though I realize 3^361 doesn't take symmetries into account). On
> the surface it's counterintuitive to me that nearly 99% of random stone
> configurations are not legal Go positions!
>
> On Fri, Jan 22, 2016 at 10:50 AM, Xavier Combelle
> <xavier....@gmail.com <mailto:xavier....@gmail.com>> wrote:
>
> well done !
>
> 2016-01-22 5:18 GMT+01:00 John Tromp <john....@gmail.com

> <mailto:john....@gmail.com>>:


>
> It's been a long journey, and now it's finally complete!
>
> http://tromp.github.io/go/legal.html
>
> has all the juicy details...
>
> regards,
> -John
> _______________________________________________
> Computer-go mailing list

> Compu...@computer-go.org <mailto:Compu...@computer-go.org>


> http://computer-go.org/mailman/listinfo/computer-go
>
>
>
> _______________________________________________
> Computer-go mailing list

> Compu...@computer-go.org <mailto:Compu...@computer-go.org>

Thomas Wolf

unread,
Jan 22, 2016, 11:03:26 AM1/22/16
to computer-go

On Fri, 22 Jan 2016, Adrian Petrescu wrote:

> Very cool! I find it interesting that the number is only about 1.2% of 3^361 (though I realize 3^361 doesn't take symmetries into account).
> On the surface it's counterintuitive to me that nearly 99% of random stone configurations are not legal Go positions!

The chance to violate the rule somewhere goes linearly with the area, so
quadratically with the size of the board.

John Tromp

unread,
Jan 22, 2016, 11:04:09 AM1/22/16
to computer-go
Wow, Robert, so many questions!
Many of which I have no idea how to answer:-(

> You must have needed 15 or 20 years of research to find the result?

Very intermittently though. If it were all continuous, it may be
several months of Go research, several more months of article editing,
and a few years of software development. Also don't forget the
contributions of my collaborators, mainly Gunnar and Michal.

> Eventually you heavily rely on computational power. How has it been possible
> to get hold of the computers and computation time?

Keep spreading the word; and keep begging. Eventually, people with the
resources and an interest in the outcome will come forward. Like Piet
Hutin my case. Publication of the 18x18 result led to more offers.

> When described in
> informal words, how have you attacked and proceeded with the theory of the
> problem? What can other researchers learn from your experience of how to
> research well? The number of legal positions itself seems like a piece of
> trivia (is it?) but why do you think it is important to have determined the
> number, that is, what is the research benefit? If I may ask, what has been
> your motivation beyond curiosity? You mention the calculation to be a server
> benchmark. Have there been other equally or more suitable server benchmarks
> or is this particular problem ground-breaking as a server benchmark?

Oh boy. Let me pass on these for now.

> What do the solution and its theory tell go players for tactics and strategy
> and go programmers for developing better go playing programs?

Zip. Nada. Nilch. :-(

> Does the solution give a useful clue of how difficult it is to solve go as a
> game weakly or strongly?

No clue, literally:-)

> That is, how is the number of legal positions
> related to the computational complexity in time and space of solving the
> 19x19 go game (under a given go ruleset) if viewed as the specific 19x19
> problem and not as the context of the general nxn problem's class of
> computational complexity?

As Douglas Adams would say,
almost, but not quite, entirely unrelated:-)

regards,
-John

Erik van der Werf

unread,
Jan 22, 2016, 11:08:33 AM1/22/16
to computer-go
Thanks, I though so, but I just wanted to make sure. So all numbers in this sequence must be odd because of color symmetry + 1 for the empty board.

I was wondering if there is an efficient way to find the number of unique positions with symmetrical positions excluded.

Erik

John Tromp

unread,
Jan 22, 2016, 11:20:20 AM1/22/16
to computer-go
dear Erik,

> I was wondering if there is an efficient way to find the number of unique
> positions with symmetrical positions excluded.

It's roughly L19/16.
That's slightly short, but will be correct in the first 85 or so digits.

You just need to correct for the positions with rotational and/or
reflective symmetry. Counting those exactly requires a big ugly
modification of my program that will take about the same running time,
but will just be painful
to develop. So I'll pass on that:-)

Xavier Combelle

unread,
Jan 22, 2016, 11:21:46 AM1/22/16
to compu...@computer-go.org
It just happened to me that I now have to study the paper for understanding how you did this miracle (which will be hard due to my poor level in math)

2016-01-22 5:18 GMT+01:00 John Tromp <john....@gmail.com>:

David Ongaro

unread,
Feb 27, 2018, 4:58:34 AM2/27/18
to compu...@computer-go.org
To quote from: http://tromp.github.io/go/legal.html

It should come as no surprise that L19, viewed as a position, is itself illegal.

In this absolute form this statement got disproved in my German Go Forum article at
http://www.dgob.de/yabbse/index.php?topic=5935.msg216064#msg216064

Basically it's using a more natural Hilbert-based curve instead of an arbitrary row-wise mapping which doesn't take the topology of the Go-grid into account. Let me now if you need any of the details in German translated.

David O.


John Tromp

unread,
Feb 27, 2018, 6:46:08 AM2/27/18
to computer-go
dear David,

> To quote from: http://tromp.github.io/go/legal.html
>
> It should come as no surprise that L19, viewed as a position, is itself
> illegal.
>
> In this absolute form this statement got disproved in my German Go Forum
> article at
> http://www.dgob.de/yabbse/index.php?topic=5935.msg216064#msg216064

My form is not as absolute as you make it out to be. The absolute form would be:

It should come as no surprise that L19, mapped to a position by laying
out the 361 consecutive
trits to a path on the 19x19 grid, and choosing which trit represents
empty, is itself illegal.

That would indeed be a ridiculous claim:-)

> Basically it's using a more natural Hilbert-based curve instead of an
> arbitrary row-wise mapping which doesn't take the topology of the Go-grid
> into account. Let me now if you need any of the details in German
> translated.

The fact that you can describe my mapping simply as "row-wise" shows how it
is quite non-arbitrary. Your Hilbert curve on the contrary can hardly
be described
in a much simpler way than in its full explicit form, betraying its
arbitrariness...

Trotzdem, gratuliere zu deinem legale Kurve!

kind regards,

Reply all
Reply to author
Forward
0 new messages