Jonathan Schaeffer

From Chessprogramming wiki
Jump to: navigation, search

Home * People * Jonathan Schaeffer

Jonathan Schaeffer [1]

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

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 [4]. Schaeffer further works on poker-playing programs, the Texas hold 'em program Polaris and the commercial Poker Academy [5]. In August 2019, Jonathan Schaeffer superseded David Levy as president of the ICGA [6].


by Jonathan Schaeffer


One Jump Ahead, pp. 7 [7]:

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. [8] 


One Jump Ahead, pp. 8 [9]:

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 [10]:

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 [11]:

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 [12], 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 [13] :

... 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 [14]:

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 [15]:

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. 

See also

Selected Publications

[16] [17] [18] [19]

1980 ...


1985 ...





1990 ...

Jonathan Schaeffer (1990). 1989 World Computer Chess Championship. Computers, Chess, and Cognition
Mikhail Donskoy, Jonathan Schaeffer (1990). Perspectives on Falling from Grace. Computers, Chess, and Cognition




Jonathan Schaeffer, Norman Treloar, Paul Lu, Rob Lake (1993). Man Versus Machine for the World Checkers Championship. ICCA Journal, Vol. 16, No. 2


1995 ...





2000 ...





2005 ...





2010 ...




2015 ...

Forum Posts

External Links


The Worst (Research) Day of My Life, August 27, 2012




  1. Jonathan Schaeffer, Dean of Science, University of Alberta, announce funding for ultra HR scanning tunnelling microscope, by Scott Mair, June 20, 2014, Jonathan Schaeffer from Wikipedia
  2. Jonathan Schaeffer (1986). Experiments in Search and Knowledge. Ph.D. Thesis, University of Waterloo. Reprinted as TR 86-12, University of Alberta
  3. Jonathan Schaeffer (1983). The History Heuristic. ICCA Journal, Vol. 6, No. 3
  4. Solving Checkers
  5. Poker Academy Pro – The Ultimate Poker Software
  6. A NEW PRESIDENT - Announcement by David Levy by Mark Lefler, December 11, 2018
  7. Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 7
  8. Jonathan Schaeffer (1980). Long-Range Planning in Computer Chess. Master's thesis, Department of Computer Science, University of Waterloo
  9. Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 8
  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. 9
  12. Jonathan Schaeffer (1986). Experiments in Search and Knowledge. Ph.D. Thesis, University of Waterloo. Reprinted as TR 86-12, University of Alberta
  13. Hash tables - Clash!!! What happens next? by Valavan Manohararajah,, post 6 by Jonathan Schaeffer, March 17, 1994
  14. Jonathan Schaeffer (1997, 2009). One Jump Ahead. 1. This Was Going to Be Easy, pp. 9
  15. 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
  16. dblp: Jonathan Schaeffer
  17. Jonathan Schaeffer: Publications
  18. ICGA Reference Database
  19. Some Schaeffer papers by BB+, OpenChess Programming and Technical Discussions, July 08, 2010
  20. 1983 | Waking up to change in Chris Redmond and Simon the Troll (1998). Water Under the Bridge. University of Waterloo » VLSI Move Generation
  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
  30. Franklin's lost expedition from Wikipedia

Up one level