On photo: Frank Karger, one of the creators of the MyGoFriend Go playing software

Frank Karger

Questions: Alexandr Dinerchtein and GoSensations.com readers

July, 2011

I heard that MyGoFriend won the 1st place on Computer Olympiad-2010.
Was it a surprising result for you or not?

It was both. There is always an emotional and an objective part.
From an objective point of view I knew that we were well prepared.
That means all parts of the go software were intensively tested and
decently optimized. We also had good results on the CGOS Server
just before the tournament.
There were still some unclear points at that time because some
important improvements were done shortly before the Olympiad.
But the main problem I saw technically was the hardware.
Our hardware was not bad from the viewpoint of a normal user
(we used two strong notebooks) but we expected some teams to
come up with supercomputers for millions of dollars…
From an emotional point of view there was first hope and then
humility. It is important not to hope too much because a failure
could be too painful.
When the tournament came closer we cautiously thought “ok, 5th place
would be fine for the first time”.
It was interesting to arrive in Kanazawa then and to see the high
expectations of other teams towards us because they knew our server
results. There were two days of competition in Kanazawa for 9×9.
After the first day it was pretty clear that MyGoFriend could win
because we already had strong results against the best teams.
The second day proceeded as expected and at the end we were very happy :)

Do you plan to make 19×19 Go playing program? If it’s already
prepared, what do you think about it’s level and chances to beat other programs like Mogo or Crazy Stone?

Yes, we are working on a 19×19 version of MyGoFriend.
The truth is: you only know it when it is done. But we have some reasons
to be confident. The 9×9 engine is a good basis and first tests for
19×19 confirm this. But the most important point is: dont start if you
think you cannot do it! It is very important to believe in oneself.
I can not tell anything precise about its level now because too much
is changing at the moment but I am sure that we will attack the top
programs soon.
Details will be announced on http://www.mygofriend.com/ .

Do you have own chess program, or experience of creating something
related to board games?

Yes, before programming Go I tried a lot of other games like connect 4,
connect 5, backgammon, chess, sokoban…
I think that was very important because each game gives you something
different and the programmer can grow in this way.
For example connect 4 is very nice to start with due to its simplicity.
One would soon have success and can easily try ideas.
After testing some classical algorithms I wrote a brute force program
for connect 4 during the 90s. Five days later it said “white wins in 41
moves”. That was an absolutely fascinating moment…
Writing a chess program is much more complicated and e.g. you can really
test your imagination to find a good technical representation for the
chess board.
Programming backgammon means that you have to deal with randomness.
So each game can give you a lesson.
Generally I like board games very much. Go is an especially nice one
because of its simplicity of rules and its depth making it a splendid
combination.

What do you think about the correct komi for 9 by 9 boards? I heard
lot of versions from 5 to 8 points

I think 7 is ok. If I give 7.5 to MyGoFriend against strong opponents
then white seems to have some advantage. Giving 6.5 black seems to have
the edge. Of course this is by no means a scientific statement.
A nice way to solve this problem could be the following:
One player suggests the komi. The other one chooses the colour after
that. Then the first player will probably try to choose a fair komi.

How do you think, when will the computer program beat the top pro in even game on 19 by 19 board?

Difficult question. I bet in less than 10 years but I would not be
surprised if developers need 30 years. The progress can be very volatile…
A strength of Go is the well-thought-out handicap system.
I once heard pros think they can take 3 or 4 stones from god for
a fair game. It will be a very interesting question for the (far)
future if a machine can reach such a divine level :)

Is your program Monte-Carlo, knowledge based, or it uses some hybrid approach?

I think all top programs use a hybrid approach and so does MyGoFriend.
It is a myth to believe that playing some random moves can be enough.
Monte-Carlo is just a surprisingly strong tool for Go but you have
to feed your machine with a lot of knowledge as well…

Do you plan to release a free version or open source version?

Yes, we are pondering about a (limited) free version to give customers
a better first impression about our software.

Do you plan to port it to some mobile platform – Android, iOS,
WindowsPhone?

Yes, this is one of the main plans after the 19×19 engine.

Which programming language is your program written in?

Mainly C/C++ and only a very few Assembler lines to maintain portability.

How long did it take to write your program?

About 8 years if we dont take into account the long learning time
until the focus was Go.

How do you test it – task suites, massive self-playing, games with other strong computer/human opponents, something else?

Everything you mentioned. The most time consuming part is of course
playing matches with other (computer) opponents.
But meanwhile you have time to observe and to think :)
From time to time I am also testing ideas for the perfect test which
should be fast and precise.
But every “artifical” test is fraught with danger because finally
the engine has to be strong under tournament conditions.

Where do you study programming?

When I was young, I saw a friend of mine programming games and was
immediately intrigued by the freedom and space for creativity he had.
He told me the first steps.
Later I studied Computer Science at the University of Dortmund.
Meanwhile I programmed a lot of games as mentioned and
had some programming jobs beside studying.

Do you play Go well?

No. My level is about 10kyu and probably a little better for the small
board because of watching MyGoFriend.
Fortunately the most internal thinking steps of a Go machine are
always so simple that this level is more than enough :)
Incidentally I am a much better chess player.

Which question would you like to be put to you and what is the answer?

Should all participants of computer go tournaments use the same
hardware?
Yes!
I think the chess guys have the ideal situation here (at the Olympiad):
They play 2 tournaments. The first is freestyle where you can
use whatever hardware you want. The second takes place with fixed hardware
(e.g. everybody may use the same 4-core-machine and no connection
to the internet).
I think this has the advantage to show the programming skills
for special machines (freestyle) but also really allows to
compare the strength of the programs (fixed hardware) which
is interesting for customers of Go software.
Also the computers would be much more typical for end users.

MyGoFriend

PDF24    Send article as PDF