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.