Phoenix

Home * Engines * Phoenix



Phoenix, (Sun Phoenix) a chess program by Jonathan Schaeffer, which in 1982 rose from the ashes of Prodigy. In the later 80s Marius Olafsson helped with the implementation of a parallel search. Phoenix and Sun Phoenix participated at four World Computer Chess Championships, the WCCC 1983, WCCC 1986, WCCC 1989, and WCCC 1995. It tied for first place in the 1986 World Championships. Phoenix further played seven consecutive ACM North American Computer Chess Championships, beside the mentioned WCCC 1983 simultaneously the ACM 1983, the ACM 1984, ACM 1985, ACM 1986, ACM 1987, ACM 1988, and ACM 1989.

In his 1987 ICCA Journal paper Speculative Computing, Schaeffer mentions The Null-Move Algorithm or Don Beal's null-move, and used it none recursively up to once per search path in his tactical scout solver Minix (Mini-Phoenix), which up and then gave the parallel running Phoenix, which was a less deep searcher than Minix, some tactical hints.

=Authors=
 * Jonathan Schaeffer
 * Marius Olafsson

=Namesake=
 * Phoenix (Rahul)

=See also=
 * Planner
 * Prodigy

=Quotes=

Waterloo
Jonathan Schaeffer in One Jump Ahead, pp. 8 : My Ph.D. was not going well, so in the summer of 1982 I started looking for a distraction. Yes, I started writing yet another chess program, this one called Phoenix (it rose from the ashes of Prodigy). The Planner and Prodigy experiences were invaluable, as they convinced me that contrary to all my expectations, lots of chess knowledge didn't work. Which programs were winning the tournaments? The ones with little knowledge, but with the ability to consider an enormous number of chess positions. With a twinge to regret, I wrote Phoenix to mimic these "dumb" programs. The results were immediate. Phoenix didn't know nearly as much about chess as Prodigy did, but it would continually beat it game after game. Obviously, my old approach, imparting human knowledge to an inanimate machine, wasn't the best way to train a computer to play strong chess.

Zobrist Hashing
Jonathan Schaeffer on Zobrist Hashing : ... I can speak from experience here. In the early versions of my chess program Phoenix, I generated my Zobrist hash numbers using my student id number as a seed, naively thinking the random numbers generated by this seed would be good enough. A few years later I put code in to detect when my 32-bit hash key matched the wrong position. To my surprise, there were lots of errors. I changed my seed to another number and the error rate dropped dramatically. With this better seed, it became very, very rare to see a hash error. All randomly generated numbers are not the same!

WCCC 1986
Jonathan Schaeffer in One Jump Ahead, pp. 9 : I worked hard on Phoenix in preparation of the triennial World Computer Chess Championship in 1986. To improve the program's performance it was modified to run in parallel, using up to thirty computers. They would divide up the work, and each computer would solve part of the problem. In effect, the program was like a small business organization, with a manager to allocate work and employees to do the assigned tasks. The hard work payed off, Phoenix tied for first place in the world championship. I partied late into the night after the final game, intoxicated with success and Coca-Cola. It took a long time for me to come down from my high.

=Descriptions=

1989
given in the WCCC 1989 booklet : Phoenix uses state-of-the-art search techniques including singular extensions, minimal window searching, transposition tables, and the history heuristic. The program has lots of chess knowledge, including an extensive long range planner.

Phoenix is capable of running in parallel on a network of machines. In tournament mode, Phoenix is actually two programs: ParaPhoenix and ParaMinix. ParaPhoenix uses 10 Sun-4s to build trees looking for the best positional move. ParaMinix uses 10 Sun 4s to build trees looking for the best tactical moves. Because of its specialized task, ParaMinix is capable of searching 1-2 ply deeper than ParaPhoenix. ParaMinix has the ability to veto ParaPhoenix's move choice, if a tactically superior move of found. The parallelism is archived using the Dynamic Principal Variation Splitting Algorithm.

1995
given in 1995 from the ICGA site : The Phoenix program was an active participant in the 1980's computer chess tournaments and tied for first place in the 1986 World Championships. The program competing this year is essentially the same as that which competed in the 1989 World Computer Chess Championships. Phoenix's participation in the 1995 championships will serve as a benchmark for measuring improvements in the field. Phoenix will be running on an HP 9000/720 with 64MB RAM, which will be comparable to that used by most participants, and therefore the primary difference will be in the software. Expectations are that the software advances in the last 6 years will allow the other programs to move past Phoenix '89 in the final standings. Perhaps the best possible outcome would have Phoenix finishing in last place, providing some experimental evidence of the progress in the field!

=Selected Games=

WCCC 1986
WCCC 1986, round 3, BCP vs. Sun Phoenix [Event "WCCC 1986"] [Site "Cologne, Germany"] [Date "1986.06.13"] [Round "3"] [White "BCP"] [Black "Sun Phoenix"] [Result "0-1"]

1.e4 e6 2.d4 d5 3.e5 c5 4.c3 Qb6 5.Nf3 Bd7 6.Bd3 cxd4 7.Nxd4 Nc6 8.Nxc6 Bxc6 9.O-O O-O-O 10.Nd2 f6 11.Qg4 Re8 12.Re1 Nh6 13.Qh3 Bc5 14.Qg3 Ng4 15.Qxg4 Bxf2+ 16.Kf1 Bxe1 17.Kxe1 fxe5 18.Qxg7 Qe3+ 19.Be2 Rhg8 20.Qf7 Bb5 21.Qf2 Qxe2+ 22.Qxe2 Bxe2 23.Kxe2 Rxg2+ 24.Ke3 Rxh2 25.a4 Rf8 26.a5 h5 27.Ra4 Rh1 28.Ra1 h4 29.Rb1 Re1+ 30.Kd3 h3 31.Nf1 Rfxf1 0-1

ACM 1988
ACM 1988, round 2, Sun Phoenix vs. Deep Thought, Jonathan Schaeffer counts his pieces, one by one [Event "ACM 1988"] [Site "Orlando USA"] [Date "1988.11.13"] [Round "2"] [White "Sun Phoenix"] [Black "Deep Thought 0.02"] [Result "0-1"]

1.c4 e5 2.Nc3 Bb4 3.Nd5 Ba5 4.b4 c6 5.bxa5 cxd5 6.cxd5 Nf6 7.Qa4 Nxd5 8.Qe4 Nc7 9.Qxe5+ Ne6 10.Bb2 Nc6 11.Qd5 Nxa5 12.e4 Nc6 13.Qd6 Qb6 14.Rb1 Nc5 15.Bc4 f6 16.f3 Qb4 17.Qd5 Ne5 18.Bf1 d6 19.a3 Qb6 20.a4 Be6 21.Bb5+ Ke7 22.Qd4 Bb3 23.Ra1 Bxa4 24.Bxa4 Ned3+ 25.Kf1 Qxb2 26.Qxb2 Nxb2 27.Bc2 Nc4 28.Ke2 Ne6 29.Kd1 b5 30.Ne2 Rhc8 31.e5 Nxe5 32.Nc3 Nd4 33.Bxh7 f5 34.Ne2 Nxe2 35.Kxe2 Kf6 36.f4 Nc4 37.g4 fxg4 38.Be4 Re8 39.Kd3 d5 40.Ra6+ Re6 41.Bxd5 Rxa6 42.Bxa8 Ra2 43.Bc6 a6 44.Rg1 Rxd2+ 45.Kc3 Rxh2 46.Bd5 Ne3 0-1

=Publications=
 * Tim Breitkreutz, Jonathan Schaeffer (1984). Computer vs Computer via Computer. ICCA Journal, Vol. 7, No. 4, reprinted in Computer Chess Reports 1985, Vol. 3, No. 2 » Phoenix, Super Constellation, Testing
 * Jonathan Schaeffer, Tony Marsland (1985). The Utility of Expert Knowledge. Proceedings IJCAI 85, pp. 585-587. Los Angeles. pdf
 * Jonathan Schaeffer (1986). Improved Parallel Alpha-Beta Searching. Proceedings ACM/IEEE Fall Joint Computer Conference, pp. 519-527.
 * Jonathan Schaeffer (1987). Speculative Computing. ICCA Journal, Vol. 10, No. 3
 * Jonathan Schaeffer (1989). Distributed Game-Tree Searching. Journal of Parallel and Distributed Computing, Vol. 6, No. 2, pp. 90-114. ISSN 0743-7315.

=Forum Posts=
 * QMW computer chess by Don Beal, rec.games.chess, August 19, 1993 » UPCCC 1993

=External Links=

Chess Program

 * Phoenix' ICGA Tournaments
 * Computer Chess and Canada by David Cohen, 2005

Phoenix Chess Systems

 * Phoenix Chess Systems from schach-computer.info
 * Welcome to Phoenix Chess Systems by Ruud Martin

Phoenix elsewhere

 * Phoenix (mythology) from Wikipedia
 * Phoenix (demonology) from Wikipedia
 * phoenix: a world of chess, Zurich Chess Club (German)
 * Phoenix (band) from Wikipedia
 * Hans Koller Free Sound - Nicolas 1-2, Phoenix, 1973, YouTube Video
 * line-up: Adelhard Roidinger, Albert Mair, Alex Bally, Hans Koller, Jürgen Wuchner

=References=

Up one level