Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interview with Christophe theron (from chessbase) about GT2 and CT14

Author: Wayne Lowrance

Date: 07:13:17 04/16/01

Go up one level in this thread


On April 16, 2001 at 04:30:28, Jonas Cohonas wrote:

>An online encounter with Christophe Théron
>Moderator: Welcome Christophe, it is a pleasure to have you here. Brain fully
>booted?
>
>Christophe Théron: Yes, I'm ready. I have a cup full of coffee just in front of
>my keyboard (dangerous position actually), so I think I'm ready.
>
>Question: We don’t know very much about you. Could you give us some information
>about yourself, e.g. when did you start playing chess, how strong are you OTB,
>why did you start programming chess, and what is your ultimate goal with the
>Tiger programms?
>
>CT: I started chess programming in 1979. At that time I was living in Ivory
>Coast (Africa). I was 14. There was a TRS-80 equipped with the Sargon II program
>there, and I was totally fascinated by this stuff. The only “computer” I had was
>a TI-58, and I started to think about ways to write a chess program for it. I
>never actually wrote a chess program for my TI-58, but it was the start of
>everything for Tiger.
>
>Later, in 1981 and 1982, back to France, I bought a TRS-80 (this computer was
>hot at that time) and actually wrote my first chess program in Z80 assembly. I
>stopped in 1983. Later, with a PC, I started again in C language. I wrote a
>chess program in C in one weekend in 1987. I worked on it for one month and gave
>up again (too many other things to do).
>
>I started again in 1992, just one week after meeting a delicious girl (these
>kind of things really give you energy :). I have never stopped since. I moved to
>Guadeloupe in the end of 1994. This was a very important step for Tiger because
>now I work at home, so I was able to spend more time on my chess program.
>
>I'm a rather weak chess player. My elo must be between 1700 and 1800, and I very
>seldomly play. I am very weak tactically, and much better positionally, because
>the time spent on building my evaluation function has also given me some
>strategical insights.
>
>My ultimate goal with Tiger? I want it to be the strongest chess program in the
>world, period!
>
>
>
>Question: Ivory Coast, Guadeloupe... Can you explain?
>
>CT: My parents went to Ivory Coast whe I was 14. My father was working to build
>one of the biggest universities of Africa (in Yamossoukro, Ivory Coast). My
>mother was working at the french ambassy at the same time. We were living in
>Abidjan. I had never left France before. Suddenly I was diving in a totally
>different culture with totally different people, a totally different climate,
>and so on...
>
>It was a mixture of high luxury for french people, and a quite normal (but poor)
>life for normal african people. With the amount of money needed to buy a glass
>of Coke at “Hotel Ivoire” you could buy a meal for a whole family on the other
>side of the street. My parents decided that I would not go to a special school
>for french pupils. I went to the normal public school in Cocody, Abidjan. We
>were only two french boys in my classroom, the rest was african pupils.
>
>I have wonderful memories of that time. It was at the same time difficult
>because I had to adapt to a different culture, but interesting because it has
>simply opened my mind. One very good memory: at the beginning of the school
>year, the other french guy and myself began to play chess. I had a small
>magnetic chess board, and we were taking every opportunity to play. Little by
>little, several african guys started to be interested by the game. We taught the
>game to several of them. Guess what? At the end of the year, ALL the classroom
>(45 pupils) were ALL playing chess. Everybody, boys and girls. Some of them were
>learning very fast and were able to beat me already!
>
>After leaving Ivory Coast in 1980, I thought I would come back later. Actually I
>did, but I did not stay. Instead I have discovered that some french overseas
>departements had the same climate, so I have settled in Guadeloupe (not for the
>climate only, but hey, that's a private story :).
>
>Question: What is new about the playing style of Gambit Tiger 2.0, and in what
>way is it different to the regular Chess Tiger?
>
>CT: Gambit Tiger 2.0 has more knowledge about attacks, and so is now able to
>avoid the most suicidal ones, while keeping its very interesting playing style.
>It is still very difficult to say which program is better. Of course I prefer
>the Gambit style, but until this style becomes clearly superior to the regular
>Chess Tiger, we will provide the two engines. What we have noticed with Gambit
>Tiger 2.0 is that some opponents who were able to defeat Gambit Tiger 1.0 very
>badly could not do the same anymore with Gambit Tiger 2.0. It is the case with
>Junior 6 for example.
>
>Question: Is there a special reason why Tiger often prefers active moves?
>
>CT: Yes, it is because the mobility factor is important for Tiger. A few years
>ago, Tiger did not have this mobility term in its evaluation, and I remember
>that because of this it lost very badly to Stobbor in the 1997 WMCCC in Paris.
>This game shocked me. After that I worked hard on mobility, and now Tiger always
>try to maximize its mobility (when it is not at the expense of creating a
>positional weakness).
>
>Question: Do you make your openings book yourself? Or do you have an openings
>book author like Sandro Necchi, who works for Shredder, or Alexander Kure for
>Fritz?
>
>CT: I have stopped making opening books myself a long time ago. The current
>opening books for the Rebel-Tiger product are written by Jeroen Noomen, who is
>widely recognized as one of the best opening book author.
>
>Question: Does the ChessBase version of Tiger have the same openings book as the
>Rebel version?
>
>CT: No, the ChessBase Tiger product is going to be provided with a high quality
>book made from high level human games.
>
>Question: In the Cadaques tournament I saw a lot of exciting games of
>Gambit-Tiger against other programs. But how good is Tiger against humans? Did
>you ever play a strong grandmaster? Did you incorporate anything against anti
>computer strategies (i.e. stonewall)?
>
>CT: Each time Tiger has faced a strong human player, the result was rather good
>for Tiger. Last game I remember is a victory against Joel Lautier. Tiger has a
>special “antihuman” mode which takes into account several anticomputer
>strategies, and tries to counter them. This mode is quite successful on the
>chess servers.
>
>Question: Tiger now knows now how to mate with Knight+Bishop (without
>tablebases). Was that a hard task to teach this to the program?
>
>CT: It is not difficult actually. Here is the trick for the amateur programmers
>out there: Just teach the program that the closer the king gets to a corner of
>the same color as your bishop, the closer it is from being mated. That's all!
>Then, the search does the rest. At a ply depth of 7, the search depth is enough
>to play the endgame almost perfectly, and with just the evaluation term I have
>given above! Note that this rule is known of human chess players since
>centuries!
>
>Question: The Tiger engines sometimes have problems with zugzwang. Do you have
>already a solution you can pull out of your hat?
>
>CT: There are solutions for these problems but most of them would decrease the
>overall playing strength of the program. Most of the positions where zugzwang is
>a problem are studies. Most of them are very unrealistic positions with lots of
>pieces blocking each other. Of course I would prefer that my program could solve
>these studies, but my priority is that Tiger must be as strong as possible in
>real games. So if I find a solution to preserve the playing strength and have
>Tiger solving these problems, I will do it. But I will not sacrifice a drop of
>playing strength for solving these studies.
>
>Question: Does Tiger use the null move search algorithm?
>
>CT: Null move is not the major selective search algorithm of Tiger. There are
>several selective algorithm working together. Think of them as “filters”. Each
>is able to filter (prune away) some moves, and putting a filter after a filter
>after a filter... gives in the end a very selective filter.
>
>Question: What is your playing strength? Do you play regularly in a club? Can
>you defeat your own program?
>
>CT: I must be between 1700 and 1800 Llo. I have never played regularly in a
>club. I'm totally unable to defeat my own program, even if I run it on a slow
>386, since several years!
>
>Question: Must a chess programmer also be a good chess player in order to write
>a top program? How important is chess knowledge?
>
>CT: I believe that being a strong chess player is a serious handicap if you want
>to write a strong chess program. If you have too much prejudices about chess,
>then you are not really in the right state of mind. To write a strong chess
>program you must have a very open mind and be prepared to react in a flexible
>way. You must be prepared to try as many ideas as possible. You will find that
>most ideas that sound obvious for a human chess player do not work. You must be
>ready to give them up and to think differently. As time goes by, you develop a
>different understanding of the basic nature of chess.
>
>Of course, chess knowledge is valuable, but the problem is that a computer
>program does not need the same knowledge than a human player. You need to filter
>what chess knowledge is going to be useful, and what knowledge cannot be used
>(yet). As a programmer, after looking at many games played by my program, I have
>been able to develop some sort of strategic sense of the game. It is nowhere
>near what a GM can do, but this knowledge, implemented in my program and
>enhanced by the speed of a computer, gives the strength of the Tiger engines.
>
>There are a number of concepts that human players use that I have found to be
>useless for my chess program. The most interesting one is the concept of tempo.
>It is a key concept in human chess, but it appears nowhere in the source code of
>Chess Tiger. I guess that the program is able to synthesize this concept from
>the other concepts it knows, which is a very fascinating thought.
>
>Question: When you say the concept of tempo doesn't appear in Tiger's code,
>can't this lead to trouble if Tiger is out of book early in the opening?
>
>CT: That's the point. Tiger does not have this concept programmed in its code,
>but is able to play moves exactly as if it knew about it.
>
>Question: Do programs become more human when they have more chess knowledge?
>
>CT: Programs become more human when they become stronger. Increasing search
>speed does not lead to less understandable chess style. The speed (or depth) of
>search helps the program to synthesize chess knowledge it does not have
>“built-in”. For example my program knows nothing about the concept of “tempo”.
>But if you look at its games, you will see that sometimes it makes great efforts
>to save a tempo. The knowledge is not there explicitely, but the program plays
>exactly as if it had the knowledge, because existing knowledge and search
>together help the program to synthesize the missing knowledge.
>
>So to answer your question it is possible to make a program more “human” either
>by making it search more efficiently OR by adding more knowledge in the way it
>evaluates positions (or both, of course!).
>
>The bottom line of this is that there is also chess knowledge in search. It is a
>common mistake to believe that chess knowledge is only in the evaluation
>functions, and that search is a mechanical, inhuman part of a chess program.
>
>It is not true. I am using a lot of chess “knowledge” to teach my program how to
>search. This knowledge is not the conventional one that is used by human chess
>players, but it is CHESS knowledge because it could not be applied to other
>games (it is specific to chess). It is knowledge about which variants are worth
>searching, and which ones can be pruned away early.
>
>Actually many human chess players are using the same kind of knowledge, but they
>are doing it unconsciously. It is possible for a human chess player to explain
>why he prefers this position over this one, but it is much more difficult for
>him to explain how he has been able to find a deep variant and why he believes
>it is going to be the normal continuation of the game. Creating better search
>algorithms is also a way to create more human chess programs.
>
>At this time my program must search several millions of positions, when a human
>GM would only search several hundreds of positions to play a move of the same
>quality in a given position. If I can manage to have my program searching less
>positions in order to play at the same strength, then obviously I'm getting
>closer to “humanity”.
>
>Question: The SSDF is now testing Tiger. Do you think the SSDF is able to
>forecast the true relative strength of chess programs by their kind of testing?
>You know that some people don't trust them and criticize their methods of
>testing.
>
>CT: I want this to be very clear: the SSDF is doing a wonderful job. They are
>the best source of information about playing strength that we have, and that we
>will ever have I believe. I trust them.  The people who criticize them are not
>even able to achieve 10% of the work they are doing, or have anyway commercial
>reasons to criticize. The method of testing the SSDF is using is fair, and they
>try to do whatever they can to keep it fair. They are not perfect, but I know
>they are doing all they can in order to get accurate ratings, to correct
>mistakes if they do some, and I trust the results they give.
>
>Question: Christophe, do you believe that programs can be tuned so to play best
>on tournament levels. Which means that if they play for example 40 minute games
>they will play worse against an opponent than if they play 120 minutes games?
>
>CT: No I don't think so. If a program does better at game in 120 than at games
>in 40, then in my opinion it is simply poorly designed.
>
>Question: Do you think that some programs need faster hardware, for example they
>will beat program x on 1000 MHz computers but they will lose the same program on
>500 MHz? Is this so for your Tiger programs?
>
>CT: I think that if a program needs faster hardware, then it is poorly designed.
>My deep belief is that it is possible to write a program that will perform
>equally well at any time control on any computer (or almost), and that's what I
>am trying to do with the Tiger engines. I don't see any reason why a program
>could be strong only at very slow time controls or on very fast hardware.
>
>On the other hand I see this excuse very often used for programs that do not
>perform as well as expected: “but you played games in one hours, and this
>program did not perform well because it is clear that it needs 40 moves in 2
>hours time controls to perform at its best”.
>
>Believe me: each time you see something like that, it is a poor excuse. If you
>do the test the guy will come back and say that you needed to play on Athlon
>1.3GHz instead of PIII-700 MHz and so on. I remember that several years ago some
>people were claiming that MChess and CSTal would kill everybody on faster
>hardware. This was of course bullshit and has been proven wrong.
>
>Question: What about five minute games. If I play Tiger against a program x in
>blitz and get a 60% score for Tiger, would you be willing to bet that in
>tournament games there would be approximately the same result?
>
>CT: I think that if Tiger makes 60% against program X in blitz it will make 55%
>(or so) against the same program at tournament time controls. It is not because
>Tiger is weaker at long time controls, it is because strength differences
>decrease with longer time controls. This phenomenon is not a property of Tiger,
>it happens with all top chess engines. Eventually, if you use even longer time
>controls I guess the winning percentage will come closer to 50%, but you will
>never see program X winning.
>
>Question: What features can we expect with the new ChessBase version of Tiger?
>Will it come with the standard Frtiz 6 GUI and Features?
>
>CT: Yes, it will come with the great Fritz GUI and all the features you are used
>to. For example the ChessBase Tiger supports the multivariation mode (amongst
>other things).
>
>Question: What is the standard search speed (kN/s) on an Atlon 1.3 GHz?
>
>CT: I think it should be around 520 kN/s in the middlegame.
>
>Question: Which you think is stronger, Gambit Tiger 2 or Chess Tiger 14?
>
>CT: My favorite is of course Gambit Tiger. I have been looking for such a
>playing style for years. I think that Gambit Tiger 1.0 was slightly weaker than
>Chess Tiger 13.0. A lot of time has been needed to come to this conclusion. With
>the latest engines, it is different. At this time I really cannot say which is
>stronger: Gambit Tiger 2.0 or Chess Tiger 14.0. I really don't know, and I hope
>the SSDF will test both so we will eventually have an answer.
>
>Question: Tell us the secret of your search. There are positions in which Tiger
>goes down a tree of threats and announces mate in 13 or 16 in 00:00:00 seconds.
>Not checking sequences, sometimes lots of quiet moves. It is disconcerting. You
>have obviously done something exceptional.
>
>CT: I think there are other chess programs very gifted for solving problems.
>Mine is far from being the best in this area.
>
>Question: What do you think of the debate brute force vs knowledge. There is a
>lot of ideological tension between the two camps. What do you think?
>
>CT: This debate is over since a long time in my opinion. Brute force is a stupid
>thing to do in chess, and selective, knowledge guided, search has proven to be
>the best approach since Richard Lang has won the 1985 World Championship. We are
>still improving on this, and it is the major source of software improvement in
>computer chess since a long time.
>
>Question: What about your examples, like finding out about tempos only through
>the search? I wish you would explain “knowledge guided”. What kind of knowledge,
>obviously not GM or expert chess knowledge, as you already explained. Technical
>knowledge in the search? Algorithmic tricks?
>
>CT: Chess knowledge! Search extensions are an example. When you see an
>interesting or forced move, then obviously you need to see a little deeper what
>is going to happen. That is why most programs will look a little bit deeper at
>what happens after a check or a forced recapture. That is chess knowledge used
>to guide the search. On the other hand there are moves that are obviously
>stupid, and which obviously do not deserve to be searched any further.
>
>Question: What about search depth. Will in your opinion as an expert (if you
>can't guess who can?) going one ply deeper make less and less difference in the
>future?
>
>CT: Going one ply deeper will make less difference in the future. However it is
>still going to make a hell of difference for the coming ten years (after that,
>we will see).
>
>Question: Christophe Theron, C. Theron, CT, C Tiger, Chess Tiger? How did you
>find a name so close to your own?
>
>CT: I thought it was simpler to have my program having the same initials as me
>in case somebody else had already taken the name “Chess Tiger”. In this case I
>could have kept the CT initials for the program and changed the name with
>another word starting with “T”. That could have been “Chess Terror” for example.
>Fortunately it did not happen! :) Tiger is because I love cats. I don't know
>why, but I understand them, and quite often they understand me. “Chess Cat” was
>not good enough, so I went for “Chess Tiger”. BTW an earlier version of my
>program was named “Tigress”.
>
>Question: What are the main technical differences between Chess Tiger 14.0 and
>Gambit Tiger 2.0? Is only the evaluation function different or also the search
>algorithm? Can you tell us how you made Gambit Tiger so aggressive, or is that a
>trade secret?
>
>CT: In Gambit Tiger, the main difference is the evaluation. It has more
>knowledge about king attacks, and it is obvious when you look at the games. But
>you must understand that Tiger has a knowledge driven search, so a change in the
>chess knowledge of the program also result in a different search “shape”. So
>Chess Tiger and Gambit Tiger do not only have differences in the way they
>evaluate positions, they also search different trees.
>
>Question: In Tiger 13 and Gambit 1.0 they played the endgame identically. Is
>this still the same with 14.0 and 2.0?
>
>CT: Yes. CT14 and GT2 would play the endgame identically.
>
>Question: How do you check the quality of your programs. Do you use test
>positions or do play autoplayer games? On which playing levels do you test your
>programs.
>
>CT: The way I test is what I would call a trade secret. Testing a chess program
>is as important as writing it or adding new knowledge into it. If you buy a
>Tiger product, you might believe that what you get, a 300 KB DLL or executable
>file, is the result of all my work. Actually it is only a small part of my work.
>Chess Tiger is a big project and the engine in itself is only the most visible
>part. You do not see that Chess Tiger is actually a collection of several other
>programs. The whole collection includes programs to test the engines, programs
>to debug the engines and programs to tune the engines. In particular the
>programs that are used to test the engines are very important and took me months
>to develop. These programs are fully automatic and run on several computers in
>my office. The test programs can run hours or even days and eventually produce a
>profile which tells me how good the new engine performs. My decision to keep an
>improvement or discard it is mainly based on the result of these tests.
>
>I think that the testing methodology is what makes the difference today between
>amateur and professional programs, and even between professional programs. It
>took me years to understand that my judgment was not enough and that I needed
>more objective ways of making my decisions. Then it took me years (at least 3)
>to build a good testing methodology. And since I'm not perfect, I question this
>methodology on a regular basis. It has even been the subject of many discussions
>with my partner Ed, who is still not in full agreement with me on this topic.
>
>Question: Is Tiger code getting bigger and bigger as you add more knowledge or
>can you “tune” existing algorithms to include special cases (example: pawn
>structures) most of the time?
>
>CT: I try to add code which is as general as possible, so Chess Tiger includes
>very few special cases. So the code does not have to get bigger and bigger too
>much. However in the endgame this is not possible. The endgame is full of
>special cases, that's a real nightmare to make all these bits of code working
>together.
>
>Question: What is your impression of the cooperation between chess-programmers:
>are most of them willing to help each other, is it a community of colleagues or
>even friends, fighting together for a common goal, exchanging ideas – or is
>there only a competition between them, each one trying to make the best program
>beating all the other programs?
>
>CT: Generally they do not hate each other, but they will not say anything to
>their colleagues. It is too easy in a few word to explain a successful idea, and
>idea you took one full year to find and get to work. And when you are a
>professional programmer, this idea can make all the difference.
>
>However, from what I have seen, these guys are most of the time friends with
>each other. I remember especially the last evening of the WCCC in Paderborn
>1999. At my table there was Ed Schröder, Frans Morsch, Marc-François Baudot,
>Johan de Köning... This evening was well worth traveling from Guadeloupe to
>France, then from France to Holland, then from Holland to Germany!
>
>Question: What is “second order evaluation”? Can you explain how this works in
>Tiger?
>
>CT: The program not only gives a score for every piece depending on the square
>it is on (like “rook on 7th rank is good”, “knight in the center is good”,...),
>which is called “first order”, but it also looks at the dependencies between the
>pieces (“knight on weak square is good”, “knight on weak square supported by own
>pawn is even better”,...). This is called second order. Tiger is not the only
>program doing this of course (most chess knowledge is second order), but it is
>maybe one of the few programs to have rather high weights for the second order
>terms concerning king attacks. As a result, the score is extremely sensitive to
>any activity around the kings. just bringing an additional attacker or defender
>near a king can cause score jumps. So from one ply depth to the next one you can
>see, sometimes, significant score jumps. Because one ply is often all that is
>needed to change the face of a king attack.
>
>Question (from a chess programmer): Last November I started programming a chess
>engine, and I progressed from a 1500 level to 2300 Elo very quickly, just by
>implementing the well known algorithms and working on the evaluation function.
>But now things start to get very, very difficult. Any tips on how to proceed?
>
>CT: I have a very simple advice for you, but it is a valuable one. It took me
>some time to figure it out, so maybe you can save this time.
>
>From now on, your judgment alone is not enough to decide when a change is really
>an improvement. If you rely only on your feelings, you are going to turn in
>circles. You will add something or change something, and you might eventually
>realize that this change has weakened your program. For you the time of the easy
>improvements is gone. Every additional Elo point from now on is going to be hard
>to earn.
>
>What you need now is a serious testing methodology. You need to define an
>accurate way to decide if a change has improved the playing strength of your
>program or not. Playing a few games manually will not do it. You probably need
>to write modules in your program dedicated to testing. For example a module that
>will eat a set of EPD position and try to solve them, and after the engine has
>crunched the positions you need to be able to output some kind of statistics,
>and you must be able to compare the output with the output of your current
>reference version.
>
>Maybe you need to study a little bit of statistics (if you do not have the
>required background already) to understand about things like margin of errors in
>random events. Maybe you need to implement Auto232 in your program, so you can
>get a large number of automatic results. But from now on you will not make any
>significant progress without a serious testing methodology. So I would advice
>you to invest a lot of time in finding and refining yours. A lot of time means
>several days, probably several weeks.
>
>By the way, when I was an amateur chess programmer I would have really liked to
>be able to talk to some well-known programmer. Promise me, when you are at the
>top, spend a little bit of your time everyday speaking to the people who like
>computer chess. I'm sure you will find in it a motivation to keep on working an
>improving your engine because they are going to send you back some good energy.
>
>I can't wait to get my hands on the new tigers :-)
>
>Regards
>Jonas

What a very nice interview and post. I enjoyed it very very much. I always read
every post/thread of several chess authors without fail. Christophe is one, Dr
Bob Hyatt is another and there are others.
This interview provided us a peak inside  of Christophe and his Tigers.
Well done
Wayne



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.