Jonathan Schaeffer - Profile on Academia.edu (original) (raw)
Papers by Jonathan Schaeffer
Identifying and Validating Irregular Mutual Exclusion Synchronization in Explicitly Parallel Programs
Lecture Notes in Computer Science, 2000
Google, Inc. (search). ...
Searching with pattern databases
Lecture Notes in Computer Science, 1996
... This work originated out of discussions with Alexander Reinefeld. Thanks to Brent Gorda and t... more ... This work originated out of discussions with Alexander Reinefeld. Thanks to Brent Gorda and the MPCI project at Lawrence Livermore Laborato-ries for making machine time available to us. ... Page 15. 416 References 1. J. Culberson and J. Schaeffer. ...
Temporal Difference Learning Applied to a High-Performance Game-Playing Program
International Joint Conference on Artificial Intelligence, 2001
... 3. Jonathan Baxter , Andrew Tridgell , Lex Weaver, KnightCap: A Chess Programm That Learns by... more ... 3. Jonathan Baxter , Andrew Tridgell , Lex Weaver, KnightCap: A Chess Programm That Learns by Combining TD(lambda) with Game-Tree Search, Proceedings of the Fifteenth International Conference on Machine Learning, p.28-36, July 24-27, 1998. ...
National Conference on Artificial Intelligence, 1998
Poker is an interesting test-bed for artificial intelligence research. It is a game of imperfect ... more Poker is an interesting test-bed for artificial intelligence research. It is a game of imperfect knowledge, where multiple competing agents must deal with risk management, agent modeling, unreliable information and deception, much like decision-making applications in the real world. Agent modeling is one of the most difficult problems in decision-making applications and in poker it is essential to achieving high
The CISS1 Experiment: ab initio Study of Chiral Interactions
Representational Difficulties with Classifier Systems
International Conference on Genetic Algorithms, 1989
Classifier systems are currently in vogue as a way of using genetic algorithms to demonstrate mac... more Classifier systems are currently in vogue as a way of using genetic algorithms to demonstrate machine learning. How- ever, there are a number of difficulties with the formalization that can influence how knowledge is represented and the rate at which the system can learn. Some of the problems are inherent in classifier systems, and one must learn to cope with
Computational Intelligence, 1998
The efficiency of A* searching depends on the quality of the lower bound estimates of the solutio... more The efficiency of A* searching depends on the quality of the lower bound estimates of the solution cost. Pattern databases enumerate all possible subgoals required by any solution, subject to constraints on the subgoal size. Each subgoal in the database provides a tight lower bound on the cost of achieving it. For a given state in the search space, all possible subgoals are looked up in the pattern database, with the maximum cost over all lookups being the lower bound. For sliding tile puzzles, the database enumerates all possible patterns containing N tiles and, for each one, contains a lower bound on the distance to correctly move all N tiles into their correct final location. For the 15-Puzzle, iterative-deepening A* with pattern databases (N = 8) reduces the total number of nodes searched on a standard problem set of 100 positions by over 1000-fold.
Lecture Notes in Computer Science, 2000
Object-oriented programming, design patterns, and frameworks are abstraction techniques that have... more Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. The CO¾P¿S parallel programming system provides a layered development process that applies these three techniques to the more difficult domain of parallel programming. The system generates correct frameworks from pattern template specifications at the highest layer and provides performance tuning opportunities at lower layers. Each of these features is a solution to a major problem with current parallel programming systems. This paper describes CO¾P¿S and its highest level of abstraction using an example program to demonstrate the programming model and one of the supported pattern templates. Our results show that a programmer using the system can quickly generate a correct parallel structure. Further, applications built using these structures provide good speedups for a small amount of development effort.
Scriptease: generating scripting code for computer role-playing games
Proceedings. 19th International Conference on Automated Software Engineering, 2004., 2004
The state-of-the-art in game scripting is to manually script individual game objects that interac... more The state-of-the-art in game scripting is to manually script individual game objects that interact in the game. Thousands of non-player characters (NPCs) and props need to be scripted before they play a part in a game adventure. This situation introduces serious concerns about programming effort and reliability. We demonstrate ScriptEase (5), a tool to facilitate the game scripting process. It
Proceedings. 19th International Conference on Automated Software Engineering, 2004., 2004
Recently, some researchers have argued that generative design patterns (GDPs) can leverage the ob... more Recently, some researchers have argued that generative design patterns (GDPs) can leverage the obvious design re-use that characterizes traditional design patterns into code re-use. This paper provides additional evidence that GDPs are both useful and productive. Specifically, the current state-of-the-art in the domain of computer games is to script individual game objects to provide the desired interactions for each game adventure. We use BioWare Corp.'s popular Neverwinter Nights computer role-playing game to show how GDPs can be used to generate game scripts. This is a particularly good domain for GDPs, since game designers often have little or no programming skills. We demonstrate our approach using a new GDP tool called ScriptEase.
IEEE Parallel & Distributed Technology: Systems & Applications, 1993
Enterprise lets developers write sequential code and then graphically express the parallelism in ... more Enterprise lets developers write sequential code and then graphically express the parallelism in their applications using an analogy to a business organization. The system automatically converts the application to run on a network of workstations. Because the (sequential) code that calls the parallel procedures is independent of these procedures, programmers can adapt applications to varying numbers and types of processors without rewriting their code. Enterprise's analogy between program structure and organizational structure eliminates inconsistent terminology (pipelines, masters, slaves, and so on) and introduces a consistent terminology based on assets.
Advances in Parallel Computing, 1995
In many papers describing parallel programming tools, the authors illustrate the strengths of the... more In many papers describing parallel programming tools, the authors illustrate the strengths of their approach by presenting some impressive speedup results. However, is this the only metric by which we should judge the quality of their tool? Many of these tools offer significant software engineering advantages that reduce program development time and increase code reliability. This paper uses the Enterprise programming environment for coarse-grained parallel applications to illustrate the advantages of these tools. For most users, high performance is not an important evaluation criteria; other criteria, such as tool usability and program development savings, are often far more important. * This research has been funded in part by NSERC grants OGP-8173 and OGP-8191, a grant from IBM Canada Limited and the Netherlands Organization for Scientific Research (NWO). † A modified definition from a personal communication with Greg Wilson.
Pattern-based object-oriented parallel programming
Lecture Notes in Computer Science, 1997
this paper, we present an architecture and model for CO 2 P 3 S in which weaddress some of the sh... more this paper, we present an architecture and model for CO 2 P 3 S in which weaddress some of the shortcomings of FrameWorks and Enterprise. Our continuinggoal is to produce usable parallel programming tools. The first shortcomingwe address is the loose relationship between the user's code and the graphicalspecification of the program structure. Enterprise improved on FrameWorksby verifying a correspondence
Using Generative Design Patterns to Develop Network Server Applications
19th IEEE International Parallel and Distributed Processing Symposium, 2005
Design patterns are generic solutions to recurring software design problems. The Correct Object-O... more Design patterns are generic solutions to recurring software design problems. The Correct Object-Oriented Pattern- based Parallel Programming System (CO 2 P 3 S) uses design pattern templates to generate code for design patterns. CO 2 P 3 S has been used to generate small parallel and sequential applications. This research evaluates the utility and performance of CO 2 P 3
Experimentally Assessing the Usability of Parallel Programming Systems
Programming Environments for Massively Parallel Distributed Systems, 1994
ABSTRACT
*-Minimax Performance in Backgammon
Lecture Notes in Computer Science, 2006
This paper presents the rst performance results for Bal- lard's *-Minimax algori... more This paper presents the rst performance results for Bal- lard's *-Minimax algorithms applied to a real{world domain: backgam- mon. It is shown that with eectiv e move ordering and probing the Star2 algorithm considerably outperforms Expectimax. Star2 allows strong backgammon programs to conduct depth 5 full-width searches (up from 3) under tournament conditions on regular hardware without using risky forward pruning techniques. We also present empirical evidence that with today's sophisticated evaluation functions good checker play in backgam- mon does not require deep searches.
Lecture Notes in Computer Science, 2003
Parallel programming environments provide a way for users to reap the benefits of parallelism, wh... more Parallel programming environments provide a way for users to reap the benefits of parallelism, while reducing the effort required to create parallel applications. The CO2P3S parallel programming system is one such tool, using a pattern-based approach to express concurrency. This paper demonstrates that the CO2P3S system contains a rich set of parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. Code metrics and performance results are presented to show the usability of the CO2P3S system and its ability to reduce programming effort, while producing programs with reasonable performance.
Proceedings International Conference on Parallel Processing, 2002
The advantages of pattern-based programming have been well-documented in the sequential literatur... more The advantages of pattern-based programming have been well-documented in the sequential literature. However patterns have yet to make their way into mainstream parallel computing, even though several research tools support them. There are two critical shortcomings of pattern (or template) based systems for parallel programming: lack of extensibility and performance. The patterns supported by a tool are typically limited in number or scope, thereby narrowing the applicability of a given system.
Proceedings 17th IEEE International Conference on Automated Software Engineering,, 2002
Recently, some researchers have argued that generative design patterns (GDPs) can leverage the ob... more Recently, some researchers have argued that generative design patterns (GDPs) can leverage the obvious design re-use that characterizes traditional design patterns into code re-use. This paper provides additional evidence that GDPs are both useful and productive. Specifically, the current state-of-the-art in the domain of computer games is to script individual game objects to provide the desired interactions for each game adventure. We use BioWare Corp.'s popular Neverwinter Nights computer role-playing game to show how GDPs can be used to generate game scripts. This is a particularly good domain for GDPs, since game designers often have little or no programming skills. We demonstrate our approach using a new GDP tool called ScriptEase.
Checkers program to challenge for world championship
ACM SIGART Bulletin, 1991
The checkers program Chinook has won the right to play a 40-game match for the World Checkers Cha... more The checkers program Chinook has won the right to play a 40-game match for the World Checkers Championship against Dr. Marion Tinsley. This was earned by placing second, after Dr. Tinsley, at the US National Open, the biennial event used to de-termine a challenger for ...
Identifying and Validating Irregular Mutual Exclusion Synchronization in Explicitly Parallel Programs
Lecture Notes in Computer Science, 2000
Google, Inc. (search). ...
Searching with pattern databases
Lecture Notes in Computer Science, 1996
... This work originated out of discussions with Alexander Reinefeld. Thanks to Brent Gorda and t... more ... This work originated out of discussions with Alexander Reinefeld. Thanks to Brent Gorda and the MPCI project at Lawrence Livermore Laborato-ries for making machine time available to us. ... Page 15. 416 References 1. J. Culberson and J. Schaeffer. ...
Temporal Difference Learning Applied to a High-Performance Game-Playing Program
International Joint Conference on Artificial Intelligence, 2001
... 3. Jonathan Baxter , Andrew Tridgell , Lex Weaver, KnightCap: A Chess Programm That Learns by... more ... 3. Jonathan Baxter , Andrew Tridgell , Lex Weaver, KnightCap: A Chess Programm That Learns by Combining TD(lambda) with Game-Tree Search, Proceedings of the Fifteenth International Conference on Machine Learning, p.28-36, July 24-27, 1998. ...
National Conference on Artificial Intelligence, 1998
Poker is an interesting test-bed for artificial intelligence research. It is a game of imperfect ... more Poker is an interesting test-bed for artificial intelligence research. It is a game of imperfect knowledge, where multiple competing agents must deal with risk management, agent modeling, unreliable information and deception, much like decision-making applications in the real world. Agent modeling is one of the most difficult problems in decision-making applications and in poker it is essential to achieving high
The CISS1 Experiment: ab initio Study of Chiral Interactions
Representational Difficulties with Classifier Systems
International Conference on Genetic Algorithms, 1989
Classifier systems are currently in vogue as a way of using genetic algorithms to demonstrate mac... more Classifier systems are currently in vogue as a way of using genetic algorithms to demonstrate machine learning. How- ever, there are a number of difficulties with the formalization that can influence how knowledge is represented and the rate at which the system can learn. Some of the problems are inherent in classifier systems, and one must learn to cope with
Computational Intelligence, 1998
The efficiency of A* searching depends on the quality of the lower bound estimates of the solutio... more The efficiency of A* searching depends on the quality of the lower bound estimates of the solution cost. Pattern databases enumerate all possible subgoals required by any solution, subject to constraints on the subgoal size. Each subgoal in the database provides a tight lower bound on the cost of achieving it. For a given state in the search space, all possible subgoals are looked up in the pattern database, with the maximum cost over all lookups being the lower bound. For sliding tile puzzles, the database enumerates all possible patterns containing N tiles and, for each one, contains a lower bound on the distance to correctly move all N tiles into their correct final location. For the 15-Puzzle, iterative-deepening A* with pattern databases (N = 8) reduces the total number of nodes searched on a standard problem set of 100 positions by over 1000-fold.
Lecture Notes in Computer Science, 2000
Object-oriented programming, design patterns, and frameworks are abstraction techniques that have... more Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. The CO¾P¿S parallel programming system provides a layered development process that applies these three techniques to the more difficult domain of parallel programming. The system generates correct frameworks from pattern template specifications at the highest layer and provides performance tuning opportunities at lower layers. Each of these features is a solution to a major problem with current parallel programming systems. This paper describes CO¾P¿S and its highest level of abstraction using an example program to demonstrate the programming model and one of the supported pattern templates. Our results show that a programmer using the system can quickly generate a correct parallel structure. Further, applications built using these structures provide good speedups for a small amount of development effort.
Scriptease: generating scripting code for computer role-playing games
Proceedings. 19th International Conference on Automated Software Engineering, 2004., 2004
The state-of-the-art in game scripting is to manually script individual game objects that interac... more The state-of-the-art in game scripting is to manually script individual game objects that interact in the game. Thousands of non-player characters (NPCs) and props need to be scripted before they play a part in a game adventure. This situation introduces serious concerns about programming effort and reliability. We demonstrate ScriptEase (5), a tool to facilitate the game scripting process. It
Proceedings. 19th International Conference on Automated Software Engineering, 2004., 2004
Recently, some researchers have argued that generative design patterns (GDPs) can leverage the ob... more Recently, some researchers have argued that generative design patterns (GDPs) can leverage the obvious design re-use that characterizes traditional design patterns into code re-use. This paper provides additional evidence that GDPs are both useful and productive. Specifically, the current state-of-the-art in the domain of computer games is to script individual game objects to provide the desired interactions for each game adventure. We use BioWare Corp.'s popular Neverwinter Nights computer role-playing game to show how GDPs can be used to generate game scripts. This is a particularly good domain for GDPs, since game designers often have little or no programming skills. We demonstrate our approach using a new GDP tool called ScriptEase.
IEEE Parallel & Distributed Technology: Systems & Applications, 1993
Enterprise lets developers write sequential code and then graphically express the parallelism in ... more Enterprise lets developers write sequential code and then graphically express the parallelism in their applications using an analogy to a business organization. The system automatically converts the application to run on a network of workstations. Because the (sequential) code that calls the parallel procedures is independent of these procedures, programmers can adapt applications to varying numbers and types of processors without rewriting their code. Enterprise's analogy between program structure and organizational structure eliminates inconsistent terminology (pipelines, masters, slaves, and so on) and introduces a consistent terminology based on assets.
Advances in Parallel Computing, 1995
In many papers describing parallel programming tools, the authors illustrate the strengths of the... more In many papers describing parallel programming tools, the authors illustrate the strengths of their approach by presenting some impressive speedup results. However, is this the only metric by which we should judge the quality of their tool? Many of these tools offer significant software engineering advantages that reduce program development time and increase code reliability. This paper uses the Enterprise programming environment for coarse-grained parallel applications to illustrate the advantages of these tools. For most users, high performance is not an important evaluation criteria; other criteria, such as tool usability and program development savings, are often far more important. * This research has been funded in part by NSERC grants OGP-8173 and OGP-8191, a grant from IBM Canada Limited and the Netherlands Organization for Scientific Research (NWO). † A modified definition from a personal communication with Greg Wilson.
Pattern-based object-oriented parallel programming
Lecture Notes in Computer Science, 1997
this paper, we present an architecture and model for CO 2 P 3 S in which weaddress some of the sh... more this paper, we present an architecture and model for CO 2 P 3 S in which weaddress some of the shortcomings of FrameWorks and Enterprise. Our continuinggoal is to produce usable parallel programming tools. The first shortcomingwe address is the loose relationship between the user's code and the graphicalspecification of the program structure. Enterprise improved on FrameWorksby verifying a correspondence
Using Generative Design Patterns to Develop Network Server Applications
19th IEEE International Parallel and Distributed Processing Symposium, 2005
Design patterns are generic solutions to recurring software design problems. The Correct Object-O... more Design patterns are generic solutions to recurring software design problems. The Correct Object-Oriented Pattern- based Parallel Programming System (CO 2 P 3 S) uses design pattern templates to generate code for design patterns. CO 2 P 3 S has been used to generate small parallel and sequential applications. This research evaluates the utility and performance of CO 2 P 3
Experimentally Assessing the Usability of Parallel Programming Systems
Programming Environments for Massively Parallel Distributed Systems, 1994
ABSTRACT
*-Minimax Performance in Backgammon
Lecture Notes in Computer Science, 2006
This paper presents the rst performance results for Bal- lard's *-Minimax algori... more This paper presents the rst performance results for Bal- lard's *-Minimax algorithms applied to a real{world domain: backgam- mon. It is shown that with eectiv e move ordering and probing the Star2 algorithm considerably outperforms Expectimax. Star2 allows strong backgammon programs to conduct depth 5 full-width searches (up from 3) under tournament conditions on regular hardware without using risky forward pruning techniques. We also present empirical evidence that with today's sophisticated evaluation functions good checker play in backgam- mon does not require deep searches.
Lecture Notes in Computer Science, 2003
Parallel programming environments provide a way for users to reap the benefits of parallelism, wh... more Parallel programming environments provide a way for users to reap the benefits of parallelism, while reducing the effort required to create parallel applications. The CO2P3S parallel programming system is one such tool, using a pattern-based approach to express concurrency. This paper demonstrates that the CO2P3S system contains a rich set of parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. Code metrics and performance results are presented to show the usability of the CO2P3S system and its ability to reduce programming effort, while producing programs with reasonable performance.
Proceedings International Conference on Parallel Processing, 2002
The advantages of pattern-based programming have been well-documented in the sequential literatur... more The advantages of pattern-based programming have been well-documented in the sequential literature. However patterns have yet to make their way into mainstream parallel computing, even though several research tools support them. There are two critical shortcomings of pattern (or template) based systems for parallel programming: lack of extensibility and performance. The patterns supported by a tool are typically limited in number or scope, thereby narrowing the applicability of a given system.
Proceedings 17th IEEE International Conference on Automated Software Engineering,, 2002
Recently, some researchers have argued that generative design patterns (GDPs) can leverage the ob... more Recently, some researchers have argued that generative design patterns (GDPs) can leverage the obvious design re-use that characterizes traditional design patterns into code re-use. This paper provides additional evidence that GDPs are both useful and productive. Specifically, the current state-of-the-art in the domain of computer games is to script individual game objects to provide the desired interactions for each game adventure. We use BioWare Corp.'s popular Neverwinter Nights computer role-playing game to show how GDPs can be used to generate game scripts. This is a particularly good domain for GDPs, since game designers often have little or no programming skills. We demonstrate our approach using a new GDP tool called ScriptEase.
Checkers program to challenge for world championship
ACM SIGART Bulletin, 1991
The checkers program Chinook has won the right to play a 40-game match for the World Checkers Cha... more The checkers program Chinook has won the right to play a 40-game match for the World Checkers Championship against Dr. Marion Tinsley. This was earned by placing second, after Dr. Tinsley, at the US National Open, the biennial event used to de-termine a challenger for ...