This Saturday, October 4th, at 4 pm, the first game of the codecentric go challenge 2014 will be started. We will document the finished game – which will be played on the KGS Go Server – at http://go.codecentric.de.
Before the start of the first game both participants have agreed to an interview. Thanks a lot to both of them!
Franz-Josef Dickhut (FJD), 6 Dan (translation from German by Georg Snatzke):
1. Since many years you are playing go on the highest level. How did you follow the development of computer go in all these years?
FJD: Originally not very much, until maybe two or three years ago, as go programs were simply too weak to have anything interesting for me to offer. At most one could marvel at an engine that was quite good in solving local live & death problems or on the 9×9 board [note by the author: the regular go board is size 19×19]. In the meantime, this has changed fundamentally as with the Monte Carlo approach the strength of the programs has made a leap. So for example it is now fun to play against some of the programs on the KGS go server, although most still need a handicap.
I think that the strongest programs are still weaker than me, at least their versions of 2013. But as they generate their moves so fundamentally different than me or other human opponents, you get a lot of new suggestions and partly a new perspective on your own game. That makes the “boxes” interesting for me, too. At the same time, it is not so relevant if they are a little weaker or maybe even a bit stronger than me.
FJD: Programming myself – no, as I am virtually clueless about programming except of what I learned in school thirty years ago. But I could imagine to participate as a tester, consultant or in a similar role on the go part of the project. For sure I would need a better understanding how the programs work. But this I can imagine to be so interesting that it might be worthwhile to read more about it.
FJD: I have no specific plan for the match – what openings to play or some special joseki [note by the author: patterns of play in the corner of the board] – at least not yet. I know the prevalent suggestions for playing against Monte Carlo bots and their weaknesses, preferably a semeai with ko and nakade [note of the author: a complex and difficult life and death situation on the board]. But I don’t intend to steer it that way on purpose. However, these “stylistic devices” appear in many of my games anyway.
So I would say I will try to play good go. I hope that the expected crazy fights occur because Crazy Stone does make a few mistakes and not because I have to aim at them in order to still have a chance…
FJD: I hope and believe that I am still the favorite. But Ingo Althöfer, who proposed this match, was able to inject some doubts into me with a few clever remarks. Naturally I have no idea about the improvements of the newest Crazy Stone version and how strongly this affects its playing strength. Also as a layman I cannot judge how a better hardware and therefore a higher number of simulations work on the playing strength. But as I know the fluctuations in my playing strength, I would not bet on a 3-0.
Rémi Coulom (RC), Entwickler von Crazy Stone:
1. When did you start developing a computer go program? And more important: Why?
RC: I started in 2005. First, I worked with Bruno Bouzy to supervise a student, Guillaume Chaslot. The topic of his research was Monte Carlo methods in Go. Then Guillaume left Lille to start a PhD thesis in Maastricht, but I wanted to continue working on Go. So I started Crazy Stone in the summer of 2005.
2. Did you develop Crazy Stone completely alone or did you have partners?
RC: I am the only programmer of Crazy Stone, but I received support from Unbalance (the publisher of Crazy Stone) and my university that gave me a lot of free time and access to large computing power (https://www.grid5000.fr/).
3. What programming languages, technological frameworks and tools did you use in the development of Crazy Stone? What were your reasons for choosing them?
RC: I program in C++ with vim. These are the tools I know well.
4. Besides go you have developed programs for quite a few other games. From your point of view, what are the main differences in programming go compared to chess or Othello?
RC: The main difference is that artificial intelligence in chess and Othello is based on the traditional min-max search approach, whereas Crazy Stone uses Monte Carlo tree search.
5. Can you explain the basic principle how you combine Monte Carlo methods with traditional tree search in go? Am I correct to assume that in a given position you start with tree search and use Monte Carlo methods to evaluate the position at the leaves of the tree? Or is this view too simplistic?
RC: Some early Monte Carlo programs used that approach. They used a traditional min-max tree search with Monte Carlo evaluation at the leaves. But it was very inefficient. The current strong Monte Carlo programs use Monte Carlo evaluation inside the tree too. Because the best move is searched more than the others, the Monte Carlo tree slowly approaches a min-max tree in the limit of an infinite number of playouts. But it is never quite min-max.
6. Will you use the regular commercial version of Crazy Stone for the match against Franz-Josef Dickhut or do you have a special match version?
RC: I will use the current experimental version of Crazy Stone. It is a bit stronger than the commercial version.
7. Do you plan to adjust your program between the games, i.e. react to events in the match?
RC: Not really. I am constantly working to improve Crazy Stone, so maybe I will use a different version in every game if I find an improvement during the week. But I don’t expect that I will find an improvement based on what happened in the match. Crazy Stone has already played plenty of games against strong humans on KGS, and I have already well identified its weaknesses there.
8. I know from personal experience with the Android version of Crazy Stone that computing power is quite important for the playing strength of Crazy Stone. What hardware will you use for the match?
RC: I will probably use one 20-core node of grid’5000 (Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz).
9. Can you estimate how much stronger Crazy Stone might be on that hardware compared to a modern smartphone?
RC: On that machine, Crazy Stone will run about 40,000 playouts per second. On my Nexus 5 it runs 1,700 playouts per second. I don’t know extactly how much this is in terms of rank, but it makes a very big strength difference.
10. One final question: How do you judge your chances in the match?
RC: I expect Crazy Stone will lose all 3 games. It is clearly weaker in my opinion. But the difference is not huge, so it may win a game if it is lucky. I hope to enjoy watching exciting games.