Knowledge in Action

Logical Foundations for Specifying and Implementing Dynamical Systems

Modeling and implementing dynamical systems is a central problem in artificial intelligence, robotics, software agents, simulation, decision and control theory, and many other disciplines. In recent years, a new approach to representing such systems, grounded in mathematical logic, has been developed within the AI knowledge-representation community.

This book presents a comprehensive treatment of these ideas, basing its theoretical and implementation foundations on the situation calculus, a dialect of first-order logic. Within this framework, it develops many features of dynamical systems modeling, including time, processes, concurrency, exogenous events, reactivity, sensing and knowledge, probabilistic uncertainty, and decision theory. It also describes and implements a new family of high-level programming languages suitable for writing control programs for dynamical systems. Finally, it includes situation calculus specifications for a wide range of examples drawn from cognitive robotics, planning, simulation, databases, and decision theory, together with all the implementation code for these examples. This code is available on the book’s Web site.

Table of Contents

  1. Preface
  2. Acknowledgments
  3. 1. Introduction
  4. 2. Logical Preliminaries
  5. 3. Introduction to the Situation Calculus
  6. 4. Foundations of the Situation Calculus
  7. 5. Implementing Basic Action Theories
  8. 6. Complex Actions, Procedures, and Golog
  9. 7. Time, Concurrency, and Processes
  10. 8. Exogenous Actions, Interrupts, and Reactive Golog
  11. 9. Progression
  12. 10. Planning
  13. 11. Sensing and Knowledge
  14. 12. Probability and Decision Theory
  15. 13. Concluding Remarks
  16. Appendix A: Some Useful First-Order Inference Rules
  17. Appendix B: The Qualification and Ramification Problems
  18. Appendix C: Resources
  19. References
  20. Index