Home * People * Jonathan Schaeffer

Jonathan Herbert Schaeffer,
a Canadian computer games researcher, professor in computing science at the University of Alberta, Edmonton, Alberta, with a Ph.D. from University of Waterloo in 1986 [1]. He is author of the chess programs Planner, Prodigy and Phoenix. In 1983, Schaeffer proposed the History Heuristic [2].

Beside research on games, search algorithms and parallel search, Jonathan Schaeffer is best known as primary author of the World Man-Machine Checkers Champion Chinook, solving Checkers in 2007 [3]. Schaeffer further works on poker-playing programs, the Texas hold 'em program Polaris and the commercial Poker Academy [4].
Jonathan Schaeffer [5]


Blitz against child prodigy Murugan Tiruchelvam in London 2000 [6]

Chinook team:: Back: Yngvi Björnsson, Neil Burch, Rob Lake, Joe Culberson
Front: Paul Lu, Jonathan Schaeffer, Steve Sutphen [7]

See also


  • Jonathan Schaeffer (1997, 2009). One Jump Ahead Challenging Human Supremacy in Checkers, Springer, ISBN 0-387-94930-5, ISBN 978-0-387-76575-4
    2nd edition 2009


by Jonathan Schaeffer


One Jump Ahead, pp. 7 [8]:
My time at Waterloo greatly benefited from the presence of Ron Hansen. He was author of Ribbit (later called Treefrog), one of the strongest chess programs around. He generously gave me a copy of his program, which I used to learn how to write a chess program... Hansen's program was written in a computer programming language called Fortran. For my master's thesis, I translated it into the Z programming language (similar to the well known C programming language).

Everything I read about chess programs convinced me that they were ignorant; they had little in the way of chess knowledge. Of course, since I knew a lot about chess, it would be a simple matter of translating my expertise into code and voilà, success! I spent a year working on the program, adding as much knowledge as I could to it. The new program, dubbed Planner, failed to live up to my performance expectations. Gradually my enthusiasm began to wave. The chess knowledge that I had added was simple because important concepts seemed hard to program. The machine required a precise specification but my chess knowledge was imprecise. Further, for every piece of knowledge that I added, there always seemed to be an endless stream of exceptions. This was going to be harder than I thought.

I finished my master's thesis, titled Long Range Planning in Computer Chess, and graduated in 1980. [9]


One Jump Ahead, pp. 8 [10]:
If I was going to create a world champion chess program I would need help. I advertised around the Department of Computer Science and was fortunate to find Howard Johnson, a fellow Ph.D. student, who was as enthusiastic about computer chess as I was. The summer of 1981 was spent writing a new program that we called Prodigy. Howard wrote the control part of the program, and I put in the chess knowledge. We entered it at in the 1981 North American Computer Chess Championship. Against the best programs in the world, we fared poorly. The program exhibited moments of brilliance, only to come crashed down in every contest. We lost every game and finished dead last. I was bitterly disappointed. My enthusiasm for computer chess disappeared abruptly on the last day of the tournament, and Prodigy never played again.



One Jump Ahead, pp. 8 [11]:
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.


One Jump Ahead, pp. 9 [12]:
At the invitation of Tony Marsland, one of the major players on the computer chess scene, I moved to the University of Alberta, in Edmonton, to complete my degree. He arranged for me to teach as a lecturer at the university while I worked on my thesis part-time. By mid 1985 the thesis was done, although I didn't graduate until 1986. The thesis, Experiments in Search and Knowledge [13], became an important work in the area, and allowed me to get an assistant professorship at the University of Alberta starting in 1985.

As a professor I was free to research what I wanted, as long as I produced scientific papers. What a deal! I could work full-time on my chess program and get paid to do it. Surely this was the ultimate job.

Zobrist Hashing

Jonathan Schaeffer on Zobrist Hashing [14] :
... 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

One Jump Ahead, pp. 9 [15]:
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.

Chess and AI

Jonathan Schaeffer on The Role of Chess in Artificial Intelligence [16]:
Sadly, most of the work currently being done on computer chess programs is engineering, not science. For example, the engineering of special-purpose VLSI chips to increase the speed of a chess program only underlines the importance chess programmers attach to speed. In my opinion, conventional computer-chess methods will yield little of further interest to the AI community.

Selected Publications

[17] [18] [19] [20]

1980 ...


1985 ...


1990 ...


1995 ...


2000 ...


2005 ...


2010 ...


Forum Posts

External Links





  1. ^ Jonathan Schaeffer (1986). Experiments in Search and Knowledge. Ph.D. Thesis, University of Waterloo. Reprinted as TR 86-12, University of Alberta
  2. ^ Jonathan Schaeffer (1983). The History Heuristic. ICCA Journal, Vol. 6, No. 3
  3. ^ Solving Checkers
  4. ^ Poker Academy Pro – The Ultimate Poker Software
  5. ^ Evolutionary Portrait Art by Günter Bachelier: Jonathan Schaeffer
  6. ^ 500 billion billion moves later, computers solve checkers, ChessBase news, July 19, 2007
  7. ^ Authors - Chinook - World Man-Machine Checkers Champion
  8. ^ Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 7
  9. ^ Jonathan Schaeffer (1980). Long-Range Planning in Computer Chess. Master's thesis, Department of Computer Science, University of Waterloo
  10. ^ Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 8
  11. ^ Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 8
  12. ^ Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 9
  13. ^ Jonathan Schaeffer (1986). Experiments in Search and Knowledge. Ph.D. Thesis, University of Waterloo. Reprinted as TR 86-12, University of Alberta
  14. ^ Hash tables - Clash!!! What happens next? by Valavan Manohararajah, rec.games.chess, post 6 by Jonathan Schaeffer, March 17, 1994
  15. ^ Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 9
  16. ^ Robert Levinson, Feng-hsiung Hsu, Tony Marsland, Jonathan Schaeffer, David Wilkins (1991). The Role of Chess in Artificial Intelligence Research. IJCAI 1991, pdf, also in ICCA Journal, Vol. 14, No. 3, pdf
  17. ^ dblp: Jonathan Schaeffer
  18. ^ Jonathan Schaeffer: Publications
  19. ^ ICGA Reference Database (pdf)
  20. ^ Some Schaeffer papers by BB+, OpenChess Programming and Technical Discussions, July 08, 2010
  21. ^ Lionel Moser (1984). An Experiment in Distributed Game Tree Searching, M.Sc. thesis, University of Waterloo
  22. ^ Rainer Feldmann, Burkhard Monien, Peter Mysliwietz, Oliver Vornberger (1989). Distributed Game-Tree Search. ICCA Journal, Vol. 12, No. 2
  23. ^ Rainer Feldmann, Burkhard Monien, Peter Mysliwietz, Oliver Vornberger (1990). Response to a Comment on 'Distributed Game-Tree Search'. ICCA Journal, Vol. 13, No. 1
  24. ^ Marion Tinsley vs. Chinook - Wikipedia
  25. ^ Re: scorpio can run on 8192 cores by Daniel Shawul, CCC, August 29, 2015
  26. ^ Transposition-driven scheduling - Wikipedia
  27. ^ U of A GAMES Group Home Page
  28. ^ Transposition driven scheduling by Daniel Shawul, CCC, April 04, 2013
  29. ^ A* search algorithm from Wikipedia

What links here?

Up one level