Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site alberta.UUCP Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!alberta!jonathan From: jonathan@alberta.UUCP (Jonathan Schaeffer) Newsgroups: net.chess Subject: Re: What makes a strong computer chess program? Message-ID: <322@alberta.UUCP> Date: Wed, 4-Jul-84 17:10:48 EDT Article-I.D.: alberta.322 Posted: Wed Jul 4 17:10:48 1984 Date-Received: Thu, 5-Jul-84 00:38:10 EDT References: <988@eosp1.UUCP> Organization: U. of Alberta, Edmonton, AB Lines: 57 Here are a few comments on Tobias Robison's remarks on what it takes to have a really good chess program with emphasis on how it applies to my program, Phoenix: 1) Opening book. Agreed. One cannot ignore a century of extensive analysis of the openings. But from the programing point of view, opening analysis is purely mechanical - I get a friend to type in the latest analysis from the latest chess journals. Phoenix does not have an extensive opening book (a shortage of friends who have the patience to type all that junk in). On the other hand, Ken Thompson typed in approximately 350,000 moves from ECO for his chess machine Belle. One can envision in the near future chess opening book databases in which ALL the latest theory will be available in machine readable form. 2) Determinism. Chess programs should not be deterministic, but regrettably, most are. In most programs (including Phoenix), non- determinism comes from two sources. First, we can randomly select our opening line. This offers some variety, but there is still the danger of repeating a game. Second is the clock. In tournament play, even if two games follow the exact same move sequence, the times on the clock will never be identical. Differing times may mean the program will search more/less and possible result in a different move. There is actually a third form of non-determinism. Rarely does a tour- nament game go by when I do not detect an inaccuracy in Phoenix and fix it before the next round. In that case, the next opponent is playing a slightly different program which will possibly make different moves. 3) Regarding open positions. It is true that most programs play open positions well. Blocked positions require more chess skill to play correctly. However, with enough chess knowledge, there is no reason why programs cannot play such positions well. Phoenix runs on a VAX and therefor has considerable difficulty being competitive with a Belle or Cray-Blitz, both of which run on much faster hardware. Phoenix uses knowledge to compensate for depth. In fact, Phoenix avoids open games and prefers closed ones, contrary to most chess programs. I noticed Robison criticized Phoenix for playing a French defence, but the fact is that Phoenix has never lost the black side of a French in tournament play. 4) Variable depth. Almost all brute-force chess programs I know search to variable depths. For example, most programs extend the search tree an extra ply for every check encountered along a line of analysis. It is true that the program is still brute-force and not selective (such as the chess program Awit). Given that you want to search 5 ply, Phoenix will search a line for a minimum of 4 and a maximum of 8 ply (plus extensions for capture sequences) depending on what "features" of the position it sees during its analysis. Phoenix does have the advantage of variable depth and the advantages of brute-force search- ing (along with some of the disadvantages too I'm afraid). In summary, I think your points are too general. I can argue that all the deficiencies you see in computer chess programs today do not really exist for many programs. As to what it will take to have a really strong program, well thats another article...