Gyom

PageType: HomePage    

http://guillaume.salagnac.free.fr/images/gyom-ski.jpg

Plop

I'm a 25 years old french go player (born 1982). I started to play go a few years ago (around 2002), and I still consider myself as a beginner, despite the Dragon thinks I'm around 20k. In real life, I'm a computer science PhD student, in Grenoble, France.


Links

Fun

Bah, *I* have the Hand of God. I can beat any 9p giving *him* 360 stones! (from IFoundTheHandOfGod)

In the land of the blind, the one eyed man is king. Elsewhere, the best he can do is seki. (from HumourAlmostProverbs)

All your stones are belong to me! (from GoCatchPhrases)

Misc

About computer go

About me

Random thoughts

On the difficulty of problems (April 07)

To improve my play, I recently started practicing go problems. After several tries on SL, I gave up because it was too frustrating: I don't know how to choose the right problems, and I find them either too easy or too hard. A couple of days ago, a friend of mine showed me [ext] GoProblems.com, a website dedicated to this practice. They offer a (not so) nice Java applet to solve interactively random problems from their huge database. This is just great.

Still I am wondering how the difficulty of their problems is evaluated. The [ext] info page says :

goproblems.com measures two types of difficulty. Since it's hard for people to objectively measure the difficulty of a problem, goproblems.com measures two statistics that independently or in small numbers mean little, but over time and in context should provide a means to measure the difficulty of a problem.

When you're playing with a problem, you'll see the difficulty expressed as: x/y. x is the percentage of people who've gotten this problem wrong. y is the average number of seconds it took people to solve the problem correctly.

For instance, when practising a [ext] problem, the difficulty is presented like this :

Difficulty: (81) 1 kyu / 57 secs

This seems to mean that 81% of people are wrong at first try on this problem, and that people eventually solve it in about one minute. But where does the "1 kyu" indication come from ? Does this mean that this problem is intended for 1k players ? But who decides of this level ?

More generally, I am wondering about how to evaluate automatically the difficulty of go problems, with in mind the objective to present "fair difficulty" problems to the user in order to help him improve.

For instance, I tried yesterday the [ext] 20 kyu series which I found very easy, while I am pretty sure that my actual level is not higher than 20k...

Any reactions ?

(Gyom, 2007-04-12)

Steve Hi Gyom. I'm not sure about this, but I suspect from what I've seen before that certain percentages are associated with certain ranks. How the association is made, I don't know, though - it may be based on the claimed ranks of the people who are registered on Goproblems.com? Also note that people are often better or worse at problems than their rank would indicate. People who study more life and death than strategy, for example, tend to excel at problems beyond their rank, while lazy people (like me) tend to lag behind their rank with the level of problems they can comfortably handle.

Gyom Hi Steve, and thanks for your feedback. I do agree with you about the drift between someone's "rank" and her "strength to solve problems", as these are two very different matters. To the same [ext] question asked directly on GoProblems?.com, someone answered that the "kyu" estimation is merely function of the percentage:

30k is plevel=0 (0%) 25k is plevel=0.2 (20%) and so on...

IMHO, this is deeply wrong, because these statistics are biased when people make several attempts for the same problem. Both the percentage and the time should be evaluated only on the first try.

Moreover, I as a ~20k, will try mostly ~20k problems, so I won't participate in evaluating the difficulty of ~30k problems, nor ~5k problems.

This issue seems to be problematic for everyone anyways: ProblemRating, SGFWishlist#toc6, PageDifficultyDiscussion...

RBerenguel: I think that these percentages are calculated once, the same as the player rating, that is only afected by the first try, not second or third ones. I am 6k (KGS) and have done from 15k to 5k, it's important to do the review part.

A pattern-matching-only go program ? (January 07)

As you might notice, I'm quite interrested in computer go. I am still far from beating GnuGo, so I don't pretend to have a miracle answer to computer go, but I wonder if some ideas have been tried before (feel free to add comments if you have some!) :

What I would like to see is a go program that would rely only on a big (pro) games database, and that would not have too much "intelligence" as itself. By matching the current position (à la Kombilo) against a big database, would it be possible to find a good next move ? The idea is somewhat to generalize joseki dictionnaries : some situations are very frequent, very well-studied, and we do have answers for them. Why not try to follow well-established knowledge, and not re-invent the wheel (I mean: in-depth searching, life and death analysis, etc).

The main difficulty is to find a satisfying pattern matching algorithm. For the first few moves, it would be very easy: game openings are an extensively studied subject, so plenty of games do have similar openings, and we could just match the whole board (modulo mirroring and rotating, of course). But the question arises when it comes to middle-game moves: what kind of "pattern" do we want to look for ? Obviously, searching for the board "as is" will not yield any results, so there is no hope to find a next move there, so we must search for more "generic" patterns.

One idea could be to first search the wole board, and if not found (or maybe if not enough matches found), then search for a narrower pattern, closer to the last stone, and so on ? obviously, this approach would always yield a "next move", but I'm very curious about how well it would play.

Does anyone have some knowledge about a similar try ?

(Gyom, 2007-01-11)


Blip left some comments on my blog about this subject: [ext] http://guillaume.salagnac.free.fr/blog/?2007/01/11/51-pattern-matching-computer-go#co :

Yep, I've heard of things like that in the machine learning community, I'll try to get you some references as soon as I have some time...

I also remember that one idea involved finding the exact best solution on really small boards, and generalizing to normal sizes.

[ext] http://books.nips.cc/papers/files/nips19/NIPS2006_0223.pdf

(Gyom, 2007-01-15)


The "narrowing" part of the job could maybe made easier with some knowledge similar to what is said in PointPopularityByMoveNumber

(Gyom, 2007-01-17)


After a little bit more thinking about this subject, I now doubt a lot about the feasability of this approach. It could be great for opening moves, acting like an "opening library"-driven computer player, but for the middle-game and end-game situations, I think there is very little hope to find useful advice in a game database. Games are so different from one to another, that there is almost no chance to find the same situation.

The only solution would be to have a very very clever narrowing heuristic, but this means putting back some intelligence into the program... (Gyom, 2007-01-18)


Are there more chances to find something better if only considering 9x9 games ? (Gyom, 2007-01-22)


Well. I now think that there is very little chance to find any useful advice in a database when considering middle-game and end-game moves. So the best we can do is maybe to switch to another engine when database searches give up, and that is exactly what others have already done: GoFigure is an example of such an idea.

Well. That's life... (Gyom, 2007-02-07)


This is a copy of the living page "Gyom" at Sensei's Library.
(OC) 2007 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About