Isaac wrote:zamar wrote:Isaac wrote:
In my opinion the rules of the game of Go are extremely complex, in particular the counting part. There are many rules for counting (Japanese rules, Chinese rules, etc.) and I don't think they are easy at all. Most go programs aren't programmed to count with Japanese rules for instance (or when they do, they have bugs that makes them lose in the end, that happens for Zen for example).
Even pachi doesn't even know what's a seki and it will suicide if you give it a final position where it's in seki.
As of now we don't have a program that tells you who wins with 100% certainty in a final position, unlike chess where the rules are, IMO, much easier to learn and understand.
I'm ranked 4 kyu in KGS (slightly below the average player) and I don't even know how to count in the game of go (I once tried to understand bent 4, super ko and stuff like that that's required for one to say "I know the rules" but I failed).
1) Have you heard of "the logical rules of go"?
-
http://tromp.github.io/go.html
These are extremely close to Chinese rules
2) Superko = Don't repeat the previous position. (Positional superko = Only the position matters. Situational superko = Position + side_to_move matters)
3) I agree that counting for a human during the game is difficult (My kgs top rank is 3 kyu, but nowadays I rarely play at all, so my current rank is around 5-6 kyu), but for a program it's straightforward.
1)No, I haven't. Interesting, I didn't know. Are those rules what programs are usually using?
2)I'm not understanding the difference(s) between a super ko and ko, but I could fix this by searching on the web.
3)I don't know how to count in the game of go at all. If it wasn't for the automatic counting at the end, I would be lost. I basically play with intuition only and I have no idea whatsoever in terms of points how good/bad moves are.
Also I don't know the details of bent 4 (nor what it is) and how Chinese and Japanese rules deal with it. I don't think these concepts are easy to grasp for people new to the game.
Overall my point is that chess rules are simpler to learn and understand than go rules even though they may appear somewhat arbitrary (for instance the en passant rule or the fact that pawns may move 2 squares ahead for their first move).
The rules are very straight-forward. It's the consequences of the rules that are complicated.
The primary complication in counting (which in theory is simple) is essentially just a sequence of Life-Or-Death problems. Once it's established which stones are alive, counting is trivial - remove the dead stones (take as prisoners if japanese), and under chinese scoring you count all alive stones and territory they surround for each side, no prisoner count. Under japanese scoring count only the territory surrounded and add it to the prisoner count.
Bent 4 is a specific eye configuration in the corner of the board that is dead without a ko threat. Under chinese scoring you would simply prove the configuration is dead by making the moves if it were disputed, no need for any special rulings.
In general this is why chinese scoring is simpler, any dispute over the final score can be resolved by playing it out. If you're right, no points are ever lost by playing more stones to prove it.
Under japanese scoring such disputes have to be resolved by taking a snapshot of the end position, playing it out to resolve the life-or-death (i believe with some added restrictions that make cases like bent 4 always dead not dead-if-no-ko-threat), then returning to the original end position and removing the now-declared-dead stones as prisoners. Hence 'bent 4 is dead' is a rule to speed up counting disputes by covering one common configuration.
So to make a go program do final counting accurately the core need is a life-or-death solver.
The chinese version is simply a matter of : if side A wanted to take side B's specific chain is there any sequence of moves that can bring that about. B can pass as needed in said sequence but A must always make a move until it's proven it can take it. If it can't prove it, the chain is alive.
The japanese version would have to observe japanese counting rules for determining final life and death (which i believe essentially boils down to only moves local to the chain by either side - but i'm not sure tbh).