Jonathan Schaeffer belonged during the 80s to the elite of the computer chess world. His program Phoenix tied for first in the 1986 World Computer Chess Championships. Furthermore, he published a number of articles with important new ideas. On the side [in a colloquial tone, like you would say, " on the side he was also the Pres of the US"] he was also the treasurer of the ICCA and organizer of the 1989 World computer Chess Championship in Edmonton/Canada. "Ein Hansdampf in allen Computerschach-Gassen" [This is an adaptation of a German proverb that means somebody hyper-active, part of everything in town that is important or exciting. You should understand that as a compliment.]
Chinook started out innocently. Two colleges asked Jonathan what had happened to Arthur Samuel's checkers program.
This innocent question was hitting fertile soil. Computer chess was not resulting in sleepless nights anymore for Schaeffer, his inner motivation [fire] had died after 10 years intense work. Furthermore, back then the Deep Thought/Deep Blue was hired by IBM. It was clear to him that as a lonely university assistant professor he could not compete with this kind of resources.
Steph still did not leave him, on the contrary, they married. (Games-) programming is surely a serious addiction. A fit title for OJA could also have been: "Confession of a Computer-Junky". The endless work at a terminal is surely not healthy, but compared to alcohol or heroin it is destroying the body and mind of the addict relatively little. Why would someone marry somebody that heavily addicted? In my opinion, this addiction is does not just carry negative results. The knowledge about ones own addiction and the resulting feeling of guild gives the spouse a certain position of power. During the dry phases we [YES, "WE"!!!] are very caring husbands. On the trip, however, we are empty bodies and rather ugly to live with.
For example in a late phase of the project, Schaeffer was computing a 8-piece endgame database. This database was created during several months during the night hours on all available computers (up to 140) at the University Edmonton [!!]. During this period Schaeffer woke up at about 2am, logged into University from home to check if problems with one of the computers had happened. If everything was in order he could go to bed at 2:30am (where he could only remain till 6am), if not, he would drive to the university to solve the problem. After finishing the computation it took him a while to cancel the inner alarm clock for 2am. I know wives that would in similar situations get a separate bedroom. However, the addiction-literature knows the term of a co-addict. Simply put, these wives are addicted to live with an addict.
Things I don't know about can't worry me [(in-)famous German proverb] When Schaeffer gave birth to his monster, he had no idea about checkers, except the rules of the game. He played it the last time as a small boy. In chess he achieved master class strength as a junior. 10 years of computer chess had taught him: Too much and too complex knowledge is rather bad than useful for the playing strength of a program. The best methods are those that use no chess knowledge at all. For instance, the efficiency of a program depends very much from the probability if the best move is searched first in the search tree. Traditionally, the programmer tries to use domain-dependent knowledge to tackle that problem. Schaeffer's invention, the history heuristic is a primitive and at the same time much more effective than chess based methods. The program memories in a table for each possible move how often it was best. The search then orders all moves according to their history. The move that was best most often is searched first.
This and other techniques can immediately be put in any other game program. The evaluation function and the opening book will need a minimum of domain dependent knowledge. Schaeffer succeeded, after a few problems, to win the good checkers player Norman Treloar for the project. Norman cleaned in a first step the evaluation function of chessish things (e.g. center control is not very productive in checkers).
After only two months of development time participated Chinook in fall of 89 in the Computer Olympiad in London and won the checkers competition hands down. Even though other programs probably had more checker specific knowledge, they got tactically beaten by the methods developed for computer chess. As expected by Schaeffer, Chinook was now the strongest checkers program.
Within these 40 years, Tinsley retired several times from the tournament play. Mathematics and the bible were equally important to him. He also suffered from his opponent's fear to loose and which made them play for a draw only. When Chinook appeared on the checkers scene, he reacted rather positive. Finally "somebody" who was playing fresh and without fear. At the beginning, Chinook had only a small opening book. The program was therefore quickly out of the known "worn paths". Even though Chinook was two levels weaker than him at the beginning, he knew that he had found a serious opponent after decades of absolute dominance. At the same time, he was still sure he could even beat that opponent.
The only realistic solution to the problem was an endgame database. In such a database, all possible positions for a certain piece constellation [yea, the German is really ugly here and doesn't do a good job explaining it!] are calculated using retrograde analysis. The program then accesses this database during the game. A checker can be on any of 32 squares. The size of the DB grows with the number of pieces to the power 32. The first realized DB was a 4 piece DB. 4 to the power of 32 is about 1 Million, one for modern computers modest number. In 1995, at the final phase of the project, the 8 piece DB was, under the before mentioned conditions, completed. One Tera (one thousand billion). The biggest data graveyard I know.
In this part of the game the knowledge of Chinook is perfect. The program regularly searches from the opening positions into this DB. In those games it is basically never playing a move it calculates itself.
The perfect Chinook eases through similar play its non-perfect opponents systematically the survival. Schaeffer tried several tricks to solve this fundamental problem. However, he could not find a real remedy.
Two threads can be found throughout the Schaeffer's book. The guilt towards his wife Steph and his constant struggle with bugs.
Chess player argue that programs are dumb and fantasy-less [-laking], but mechanically perfect monsters. Schaeffer is debunking this myth completely. Programs are complex structures build by humans and therefore every thing else but perfect. Each chess and checkers program contains certainly a few dozen major and a few hundred minor bugs. Even in more important programs, such as controls for thermo-nuclear power plants, it is no different. These bugs are often hidden for years and wait usually for an important moment to appear. Schaeffer used the time control of Phoenix for Chinook. This part of the program was working for almost 10 years for hundreds of games without problems. In a qualification match for the Tinsley challenge, Chinook lost an important game by forfeit on time because of a bug in this part of the program.
This species of phantom bugs is especially nasty and feared. The program is behaving obviously buggy. At home one tries to recreate the problem. The program works just fine. A bug that is not appearing can practically not be found and fixed. Usually, this bug is then reappearing later and is then again irreproducible. Often, the reason for the bug is a combination of many circumstances, e.g. the response time of the opponent that cannot be reproduced exactly.
Schaeffer hunted for over a year one such dangerous phantom bug. The existence of a phantom bug can drive a games programmer shortly before an important tournament close to insanity. During the development of Nimzo 3 an apparent phantom bug was visible. The program was winning a queen in a pawn endgame and lost it shortly afterwards for no apparent reason.
This bug was haunting me for months and was also during the Aegon tournament 96 still not fixed. In the sixth round, the strong GM Yona Kosashvili blew the pawn endgame. Nimzo promoted a queen and Yona did not resign. The first victory against a GM in sight I am sitting on the back of my chair and am asking the "queen-return" bug not to strike. This time fate has mercy. Kosashvili resigned soon thereafter and the bug remains invisible. A few spectators are wondering how one can be so nervous in such a won position. After this nightmare, I hunted the bug for weeks and fixed it.
A truly nasty species of bug is the "Don't-get-upset" bug [This is a famous German past time for kids, a brainless board game that consists of rolling the dies and kicking somebody else's pieces off the board - I was never a fan of it - because I always got upset! :)]. This species of bug stroke in the Chinook project during the calculation of the 8 piece DB. After months of calculation and many sleepless nights, an error was detected in one part of the seven piece DB. A few thousand of some billion positions were wrong. At a piece exchange, the already calculated smaller DBs are used. The error propagated to the 8 piece DB. In such a situation the only thing to do is: back to the start. Jonathan marked in his log [probably meaning your programmer's log]: 11 steps forward, 10 back.
With this, the apatite of the now to half a dozen members grown Chinook team wasn't satisfied. With the help of even bigger DBs, better search, more checker knowledge and not at last with fixing of a few more bugs, Mt. Tinsley was still to be wrestled down.
They agreed to rematch in fall 1994. The venue of the match was the famous computer museum in Boston.
One should not tell the end of a thriller. Lets just say, the story ends like Winnetou 3 [If I remember correctly, Winnetou dies a heroic death and all the gold goes down the drain :)]. At that part of the book, my wife asked me, why am I not laughing anymore.
University of Alberta