Computer Chess Club Archives


Search

Terms

Messages

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

Author: Jonas Cohonas

Date: 01:30:28 04/16/01


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




This page took 0.01 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.