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]
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.
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.
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.
... 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!
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.
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.
Jonathan Schaeffer, Paul Lu, Duane Szafron, Rob Lake (1993). A Re-examination of Brute-force Search. Intelligent Games: Planning and Learning. (AAAI 1993 Report FS9302, Proccedings of the AAAI Fall Symposiuem, eds. S. Epstein and R. Levinson), AAAI Press
Akihiro Kishimoto, Jonathan Schaeffer (2002). Transposition Table Driven Work Scheduling in Distributed Game-Tree Search. Fifteenth Canadian Conference on Artificial Intelligence (AI'2002), Vol. 2338 of Lecture Notes in Artificial Intelligence, Springer
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].
Table of Contents
Photos
Front: Paul Lu, Jonathan Schaeffer, Steve Sutphen [7]
See also
Books
Quotes
by Jonathan SchaefferPlanner
One Jump Ahead, pp. 7 [8]:I finished my master's thesis, titled Long Range Planning in Computer Chess, and graduated in 1980. [9]
Prodigy
One Jump Ahead, pp. 8 [10]:Phoenix
Waterloo
One Jump Ahead, pp. 8 [11]:Edmonton
One Jump Ahead, pp. 9 [12]:Zobrist Hashing
Jonathan Schaeffer on Zobrist Hashing [14] :WCCC 1986
One Jump Ahead, pp. 9 [15]:Chess and AI
Jonathan Schaeffer on The Role of Chess in Artificial Intelligence [16]:Selected Publications
[17] [18] [19] [20]1980 ...
- Jonathan Schaeffer (1980). Long-Range Planning in Computer Chess. Master's thesis, Department of Computer Science, University of Waterloo
- Greg Bakker, Jim Jonkman, Jonathan Schaeffer, Tom Schultz (1982). VLSI Implementation of a Chess Legal Move Generator. EE755S-1, University of Waterloo [21]
- Jonathan Schaeffer, Patrick A.D. Powell, Jim Jonkman (1983). A VLSI legal move generator for the game of chess. in Randal Bryant (eds.) Third Caltech Conference on Very Large Scale Integration
- Jonathan Schaeffer (1983). The History Heuristic. ICCA Journal, Vol. 6, No. 3
- Jonathan Schaeffer (1983). Long-Range Planning in Computer Chess. Proceedings of the Annual ACM Conference
19841985 ...
- Jonathan Schaeffer, Tony Marsland (1985). The Utility of Expert Knowledge. IJCAI 1985
- Alexander Reinefeld, Jonathan Schaeffer, Tony Marsland (1985). Information Acquisition in Minimal Window Search. IJCAI 1985
- Jonathan Schaeffer (1985). Lionel Moser: An Experiment in Distributed Game Tree Searching. ICCA Journal, Vol. 8, No. 2, review [22]
- Alexander Reinefeld, Tony Marsland, Jonathan Schaeffer (1985). Is Best First Search Really Best? TR 85-16, University of Alberta.
- William Ward Armstrong, Tony Marsland, Marius Olafsson, Jonathan Schaeffer (1985). Solving Equations of Motion on a Virtual Tree Machine. Second Conference on Parallel Processing for Scientific Computing
1986- Jonathan Schaeffer (1986). Experiments in Search and Knowledge. Ph.D. Thesis, University of Waterloo. Reprinted as TR 86-12, University of Alberta
- Jonathan Schaeffer (1986). Improved Parallel Alpha-Beta Searching. ACM/IEEE Fall Joint Computer Conference
- Tony Marsland, Marius Olafsson, Jonathan Schaeffer (1986). Multiprocessor Tree-Search Experiments. Advances in Computer Chess 4
- William Ward Armstrong, Tony Marsland, Marius Olafsson, Jonathan Schaeffer, Steve Sutphen (1986). Large Grained Parallelism at the University of Alberta. In Large Grained Parallelism Workshop, 1986.
1987- Jonathan Schaeffer (1987). Experiments in Distributed Game-Tree Searching. TR 87-2, University of Alberta.
- Jonathan Schaeffer (1987). Speculative Computing. ICCA Journal, Vol. 10, No. 3
- Tony Marsland, Alexander Reinefeld, Jonathan Schaeffer (1987). Low Overhead Alternatives to SSS*. Artificial Intelligence, Vol. 31, No. 2
1988- Jonathan Schaeffer (1988). Learning from (other's) experience. Proceedings of the AAAI Spring Symposium on Computer Game Playing
- Norbert Klingbeil, Jonathan Schaeffer (1988). Search Strategies for Conspiracy Numbers. Canadian Artificial Intelligence Conference
- Mikhail Donskoy, Jonathan Schaeffer (1988). Report on the 1st Soviet Computer-Chess Championship or re-awakening a sleeping giant. ICCA Journal, Vol. 11, Nos. 2/3 » First Soviet Computer-Chess Championship 1988
19891990 ...
- Jonathan Schaeffer (1990). Conspiracy Numbers. Artificial Intelligence, Vol. 43, No. 1
- Norbert Klingbeil, Jonathan Schaeffer (1990). Empirical Results with Conspiracy Numbers. Computational Intelligence, Vol. 6
- Jonathan Schaeffer (1990). A Rejoinder to a Comment on 'Distributed Game-Tree Search'. ICCA Journal, Vol. 13, No. 1 [24]
- Tony Marsland, Jonathan Schaeffer (eds.) (1990). Computers, Chess, and Cognition
- Peter Jansen, Jonathan Schaeffer (1990). Seconding a Grandmaster. ICCA Journal, Vol 13, No. 1
- Michael George, Jonathan Schaeffer (1990). Chunking for Experience. ICCA Journal, Vol. 13, No. 3
1991Jonathan 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 (1991). Checkers, a Preview of what will Happen in Chess? ICCA Journal, Vol. 14, No. 2
- 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
- Jonathan Schaeffer, Joe Culberson, Norman Treloar, Brent Knight, Paul Lu, Duane Szafron (1991). Checkers Program to Challenge for World Championship. SIGART Bulletin, Vol. 2, No. 2, pp. 3-5.
- Jonathan Schaeffer, Joe Culberson, Norman Treloar, Brent Knight, Paul Lu, Duane Szafron (1991). Reviving the Game of Checkers. Heuristic Programming in AI 2
- Michael George, Jonathan Schaeffer (1991). Chunking for Experience. Advances in Computer Chess 6
1992- Jonathan Schaeffer, Joe Culberson, Norman Treloar, Brent Knight, Paul Lu, Duane Szafron (1992). A World Championship Caliber Checkers Program. Artificial Intelligence, Vol. 53, Nos. 2-3,ps
- Herbert Simon, Jonathan Schaeffer (1992). The Game of Chess. in Handbook of Game Theory with Economic applications, ps
1993- Jonathan Schaeffer, Norman Treloar, Paul Lu, Rob Lake (1993). Man Versus Machine for the World Checkers Championship. AI Magazine, Vol. 14, No. 2 » WCCC 1992 - Workshop [25]
- Jonathan Schaeffer, Paul Lu, Duane Szafron, Rob Lake (1993). A Re-examination of Brute-force Search. Intelligent Games: Planning and Learning. (AAAI 1993 Report FS9302, Proccedings of the AAAI Fall Symposiuem, eds. S. Epstein and R. Levinson), AAAI Press
- Rob Lake, Jonathan Schaeffer, Paul Lu (1993). Solving Large Retrograde Analysis Problems Using a Network of Workstations. TR 93-13, ps
1994Jonathan Schaeffer, Norman Treloar, Paul Lu, Rob Lake (1993). Man Versus Machine for the World Checkers Championship. ICCA Journal, Vol. 16, No. 2
1995 ...
- Ken Thompson, Jonathan Schaeffer (1995). Tributes to Tony Scherzer. ICCA Journal, Vol. 18, No. 1
- Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1995). Best-First Fixed Depth Game Tree Search in Practice. IJCAI 1995, ps
1996- Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1996). Best-First Fixed-Depth Minimax Algorithms. Artificial Intelligence, Vol. 87, Nos. 1-2, pdf
- Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1996). Exploiting Graph Properties of Game Trees. 13th National Conference on Artificial Intelligence (AAAI-96), Vol. 1, ps » ETC
- Jonathan Schaeffer, Aske Plaat (1996). New Advances in Alpha-Beta Searching. ACM 1996 Computer Science Conference
- Aske Plaat, Jonathan Schaeffer, Wim Pijls, Arie de Bruin (1996). An Algorithm Faster than NegaScout and SSS* in Practice.
- Jonathan Schaeffer, Rob Lake (1996). Solving the Game of Checkers. Games of No Chance edited by Richard J. Nowakowski, pdf
- Jonathan Schaeffer, Rob Lake, Paul Lu, Martin Bryant (1996). Chinook: The World Man-Machine Checkers Champion. AI Magazine, Vol. 17, No. 1, pp. 21-29. ISSN 0738-4602.
- Mark Brockington, Jonathan Schaeffer (1996). The APHID Parallel αβ Search Algorithm. TR 96-07, University of Alberta
- Joe Culberson, Jonathan Schaeffer (1996). Searching with Pattern Databases. Canadian Conference on AI 1996, pdf
1997- Yngvi Björnsson, Tony Marsland, Jonathan Schaeffer, Andreas Junghanns (1997). Searching with Uncertainty Cut-offs. ICCA Journal, Vol. 20, No. 1, pdf preprint
- Yngvi Björnsson, Tony Marsland, Jonathan Schaeffer, Andreas Junghanns (1997). Searching with Uncertainty Cut-offs. Advances in Computer Chess 8
- Andreas Junghanns, Jonathan Schaeffer (1997). Search versus knowledge in game-playing programs revisited. IJCAI 1997
- Andreas Junghanns, Jonathan Schaeffer, Mark Brockington, Yngvi Björnsson, Tony Marsland (1997). Diminishing Returns for Additional Search in Chess. Advances in Computer Chess 8, pdf
- Mark Brockington, Jonathan Schaeffer (1997). APHID Game-Tree Search. Advances in Computer Chess 8
- Jonathan Schaeffer (1997). One Jump Ahead: Challenging Human Supremacy in Checkers. Springer
- Jonathan Schaeffer, Aske Plaat (1997). Kasparov versus Deep Blue: The Rematch. ICCA Journal, Vol. 20, No. 2
1998- Jonathan Schaeffer (1998). A Database of Databases, Bewaar Me, Jaap van den Herik (ed.), Drukkerij Van Spijk B.V., The Netherlands, pp. 157-161. A tribute to the late Bob Herschberg, ps
- Andreas Junghanns, Jonathan Schaeffer (1998). Relevance Cuts: Localizing the Search.. CG 1998
- Jonathan Schaeffer (1998). Checkers: A Preview of What Will Happen in Chess? University of Alberta,ps
- Joe Culberson, Jonathan Schaeffer (1998). Pattern databases. Computational Intelligence, Vol. 14, No. 3, pdf
- Darse Billings, Denis Papp, Jonathan Schaeffer, Duane Szafron (1998). Poker as a Testbed for Machine Intelligence Research. Department of Computing Science, University of Alberta
- Darse Billings, Denis Papp, Jonathan Schaeffer, Duane Szafron (1998). Opponent Modeling in Poker. AAAI/IAAI 1998,pdf
19992000 ...
- Jonathan Schaeffer (2000). Search Ideas in Chinook. Games in AI Research, ps
- Andreas Junghanns, Jonathan Schaeffer (2000). Sokoban: A Challenging Single-Agent Search Problem. Games in AI Research
- Jonathan Schaeffer (2000). The GAMES group at the University of Alberta. 5th Computer Olympiad Workshop [28]
- Jonathan Schaeffer (2000). The Games Computers (and People) Play. Advances in Computers 50, Marvin Zelkowitz editor, Academic Press, ps
2001- Jonathan Schaeffer (2001). Technology Transfer from one High-performance Search Engine to Another. ICGA Journal, Vol. 24, No. 3
- Jonathan Schaeffer (2001). A Gamut of Games. AI Magazine, Vol. 22, No. 3, pdf.
- Jonathan Schaeffer, Markian Hlynka, Vili Jussila (2001). Temporal Difference Learning Applied to a High-Performance Game-Playing Program. IJCAI 2001
- Jonathan Schaeffer, Aske Plaat, Andreas Junghanns (2001). Unifying Single-agent and Two-player search. Information Sciences, Vol. 135, ps
- Andreas Junghanns, Jonathan Schaeffer (2001). Sokoban: Improving the Search with Relevance Cuts. Theoretical Computer Science, Vol. 252, No. 1-2,pdf
- Jonathan Schaeffer (2001). Technology Transfer from One High-Performance Search Engine to Another. ICGA Journal, Vol. 24, No. 3 » Checkers
2002- Darse Billings, Aaron Davidson, Jonathan Schaeffer, Duane Szafron (2002). The Challenge of Poker. Artificial Intelligence, Vol. 134, No. 1-2, pdf
- John Romein, Henri Bal, Jonathan Schaeffer, Aske Plaat (2002). A Performance Analysis of Transposition-Table-Driven Scheduling in Distributed Search. IEEE TPDS, Vol. 13, No. 5 pdf [29]
- Akihiro Kishimoto, Jonathan Schaeffer (2002). Distributed Game-Tree Search Using Transposition Table Driven Work Scheduling. 31st International Conference on Parallel Processing (ICPP'02), IEEE Computer Society Press
- Akihiro Kishimoto, Jonathan Schaeffer (2002). Transposition Table Driven Work Scheduling in Distributed Game-Tree Search. Fifteenth Canadian Conference on Artificial Intelligence (AI'2002), Vol. 2338 of Lecture Notes in Artificial Intelligence, Springer
- Jonathan Schaeffer (2002). Solving the Games People Play. Invited Lecture, 7th Computer Olympiad Workshop
- Adi Botea, Martin Müller, Jonathan Schaeffer (2002). Using Abstraction for Planning in Sokoban. CG 2002
- Jonathan Schaeffer, Jaap van den Herik (2002). Games, Computers, and Artificial Intelligence. Artificial Intelligence, Vol. 134, pdf
2003- Jonathan Schaeffer (2003). The First FIDE Man-Machine World Chess Championship. pdf » Kasparov versus Deep Junior 2003
- Jonathan Schaeffer, Yngvi Björnsson, Neil Burch, Rob Lake, Paul Lu, Steve Sutphen (2003). Building the Checkers 10-Piece Endgame Databases. Advances in Computer Games 10. pdf
- Darse Billings, Neil Burch, Aaron Davidson, Robert Holte, Jonathan Schaeffer, Terence Schauenberg, Duane Szafron (2003). Approximating Game-Theoretic Optimal Strategies for Full-scale Poker. IJCAI 2003, pdf
20042005 ...
- Jonathan Schaeffer (2005). Solving Checkers: First Result. ICGA Journal, Vol. 28, No. 1
- Jonathan Schaeffer, Yngvi Björnsson, Neil Burch, Akihiro Kishimoto, Martin Müller, Rob Lake, Paul Lu, Steve Sutphen (2005). Solving Checkers. IJCAI 2005
- Ariel Felner, Uzi Zahavi, Jonathan Schaeffer, Robert Holte (2005). Dual Lookups in Pattern Databases. IJCAI 2005, pdf
- Adi Botea, Markus Enzenberger, Martin Müller, Jonathan Schaeffer (2005). Macro-FF: Improving AI Planning with Automatically Learned Macro-Operators. Journal of Artificial Intelligence Research, Vol. 24, pdf
- Yngvi Björnsson, Markus Enzenberger, Robert Holte, Jonathan Schaeffer (2005). Fringe Search: Beating A* at Pathfinding on Game Maps. IEEE CIG, pdf
- Yngvi Björnsson, Jonathan Schaeffer, Nathan Sturtevant (2005). Partial Information Endgame Databases. Advances in Computer Games 11, pdf, pdf
- Markian Hlynka, Jonathan Schaeffer (2005). Automatic Generation of Search Engines. Advances in Computer Games 11
2006- Graham Kendall, Jonathan Schaeffer (2006). Poker. ICGA Journal, Vol. 29, No. 3
2007- Jonathan Schaeffer, Neil Burch, Yngvi Björnsson, Akihiro Kishimoto, Martin Müller, Rob Lake, Paul Lu, Steve Sutphen (2007). Checkers is Solved. Science, Vol. 317, no. 5844
- Vadim Bulitko, Yngvi Björnsson, Mitja Luvstrek, Jonathan Schaeffer, Sverrir Sigmundarson (2007). Dynamic Control in Path-Planning with Real-Time Heuristic Search. ICAPS'07, pdf
2008- Uzi Zahavi, Ariel Felner, Robert Holte, Jonathan Schaeffer (2008). Duality in permutation state spaces and the dual search algorithm. Artificial Intelligence 172
- Mehdi Samadi, Ariel Felner, Jonathan Schaeffer (2008). Learning from Multiple Heuristics. AAAI 2008
20092010 ...
- Ariel Felner, Carsten Moldenhauer, Nathan Sturtevant, Jonathan Schaeffer (2010). Single-Frontier Bidirectional Search. AAAI 2010, pdf, pdf
- Richard Anthony Valenzano, Nathan Sturtevant, Jonathan Schaeffer, Karen Buro, Akihiro Kishimoto (2010). Simultaneously Searching with Multiple Settings: An Alternative to Parameter Tuning for Suboptimal Single-Agent Search Algorithms. ICAPS 2010, pdf
- Mike Carbonaro, Duane Szafron, Maria Cutumisu, Jonathan Schaeffer (2010). Computer-game construction: A gender-neutral attractor to Computing Science. Computers & Education 55(3), pdf
- Robert Holte, Jonathan Schaeffer, Ariel Felner (2010). Mechanical Generation of Admissible Heuristics. Chapter 3 in Heuristics, Probability, and Causality: A Tribute to Judea Pearl, edited by Rina Dechter, Hector Geffner, and Joseph Y. Halpern, pdf
- Meir Goldenberg, Ariel Felner, Nathan Sturtevant, Jonathan Schaeffer (2010). Portal-Based True-Distance Heuristics for Path Finding. SOCS-10, pdf
2011- Mesut Kirci, Nathan Sturtevant, Jonathan Schaeffer (2011). A GGP Feature Learning Algorithm. KI 25(1), pdf » General Game Playing, Learning
- Ariel Felner, Uzi Zahavi, Robert Holte, Jonathan Schaeffer, Nathan Sturtevant, Zhifu Zhang (2011). Inconsistent Heuristics in Theory and Practice. Artificial Intelligence, pdf
2012- Meir Goldenberg, Ariel Felner, Roni Stern, Guni Sharon, Jonathan Schaeffer (2012). A* Variants for Optimal Multi-Agent Pathfinding. SOCS 2012, pdf [30]
2014Forum Posts
External Links
Musings
Chinook: Twenty Years Later, August 22, 2012
The Worst (Research) Day of My Life, August 27, 2012
Chinook
Misc
References
What links here?
Up one level