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.