We use cookies to enhance your experience on our website. By continuing to use our website, you are agreeing to our use of cookies. You can change your cookie settings at any time. Find out more

Computational Intelligence

A Logical Approach

David Poole, Alan Mackworth, and Randy Goebel

Publication Date - 08 January 1998

ISBN: 9780195102703

576 pages
7-1/2 x 9-1/4 inches


Computational Intelligence: A Logical Approach provides a unique and integrated introduction to artificial intelligence. It weaves a unifying theme--an intelligent agent acting in its environment-- through the core issues of AI, placing them into a coherent framework. Rather than giving a surface treatment of an overwhelming number of topics, it covers fundamental concepts in depth, providing a foundation on which students can build an understanding of modern AI. This logical approach clarifies and integrates representation and reasoning fundamentals, leading students from simple to complex ideas with clear motivation. The authors develop AI representation schemes and describe their uses for diverse applications, from autonomous robots to diagnostic assistants to infobots that find information in rich information sources. The authors' website (http://www.cs.ubc.ca/spider/poole/ci.html) offers extensive support for the text, including source code, interactive Java scripts, various pedagogical aids, and an interactive environment for developing and debugging knowledge bases.
Ideal for upper-level undergraduate and introductory graduate courses in artificial intelligence, Computational Intelligence encourages students to explore, implement, and experiment with a series of progressively richer representations that capture the essential features of more and more demanding tasks and environments.

Table of Contents

    1. Computational Intelligence and Knowledge
    1.1. What is Computational Intelligence?
    1.2. Agents in the World
    1.3. Representation and Reasoning
    1.4. Applications
    1.5. Overview
    1.6. References and Further Reading
    1.7. Exercises
    2. A Representation and Reasoning System
    2.1. Introduction
    2.2. Representation and Reasoning Systems
    2.3. Simplifying Assumptions of the Initial RRS
    2.4. Datalog
    2.5. Semantics
    2.6. Questions and Answers
    2.7. Proofs
    2.8. Extending the Language with Function Symbols
    2.9. References and Further Reading
    2.10. Exercises
    3. Using Definite Knowledge
    3.1. Introduction
    3.2. Case Study: House Wiring
    3.3. Databases and Recursion
    3.4. Verification and Limitations
    3.5. Case Study: Representing Abstract Concepts
    3.6. Case Study: Representing Regulatory Knowledge
    3.7. Applications in Natural Language Processing
    3.8. References and Further Reading
    3.9. Exercises
    4. Searching
    4.1. Why Search?
    4.2. Graph Searching
    4.3. A Generic Searching Algorithm
    4.4. Blind Search Strategies
    4.5. Heuristic Search
    4.6. Refinements to Search Strategies
    4.7. Constraint Satisfaction Problems
    4.8. References and Further Reading
    4.9. Exercises
    5. Representing Knowledge
    5.1. Introduction
    5.2. Defining a solution
    5.3. Choosing a Representation Language
    5.4. Mapping from Problem to Representation
    5.5. Choosing an Inference Procedure
    5.6. References and Further Reading
    5.7. Exercises
    6. Knowledge Engineering
    6.1. Introduction
    6.2. Knowledge-Based System Architecture
    6.3. Meta-interpreters
    6.4. Querying the User
    6.5. Explanation
    6.6. Debugging Knowledge Bases
    6.7. A Meta-interpreter with Search
    6.8. Unification
    6.9. References and Further Reading
    6.10. Exercises
    7. Beyond Definite Knowledge
    7.1. Introduction
    7.2. Equality
    7.3. Integrity Constraints
    7.4. Complete Knowledge Assumption
    7.5. Disjunctive Knowledge
    7.6. Explicit Quantification
    7.7. First-Order Predicate Calculus
    7.8. Modal Logic
    7.9. References and Further Reading
    7.10. Exercises
    8. Actions and Planning
    8.1. Introduction
    8.2. Representations of Actions and Change
    8.3. Reasoning with World Representations
    8.4. References and Further Reading
    8.5. Exercises
    9. Assumption-Based Reasoning
    9.1. Introduction
    9.2. An Assumption-Based Reasoning Framework
    9.3. Default Reasoning
    9.4. Abduction
    9.5. Evidential and Causal Reasoning
    9.6. Algorithms for Assumption-Based Reasoning
    9.7. References and Further Reading
    9.8. Exercises
    10. Using Uncertain Knowledge
    10.1. Introduction
    10.2. Probability
    10.3. Independence Assumptions
    10.4. Making Decisions Under Uncertainty
    10.5. References and Further Reading
    10.6. Exercises
    11. Learning
    11.1. Introduction
    11.2. Learning as Choosing the Best Representation
    11.3. Case-Based Reasoning
    11.4. Learning as Refining the Hypothesis State
    11.5. Learning Under Uncertainty
    11.6. Explanation-Based Learning
    11.7. References and Further Learning
    11.8. Exercises
    12. Building Situated Robots
    12.1. Introduction
    12.2. Robotic Systems
    12.3. The Agent Function
    12.4. Designing Robots
    12.5. Uses of Agent Models
    12.6. Robot Architectures
    12.7. Implementing a Controller
    12.8. Robots Modeling the World
    12.9. Reasoning in Situated Robots
    12.10. References and Further Reading
    12.11. Exercises
    A. Glossary
    B. The Prolog Programming Language
    B.1. Introduction
    B.2. Interacting with Prolog
    B.3. Syntax
    B.4. Arithmetic
    B.5. Database Relations
    B.6. Returning All Answers
    B.7. Input and Output
    B.8. Controlling Search
    C. Some More Implemented Systems
    C.1. Bottom-up Interpreters
    C.2. Top-down Interpreters
    C.3. A Constraint Satisfaction Problem Solver
    C.4. Neural Network Learner
    C.5. Partial-Order Planner
    C.6. Implementing Belief Networks
    C.7. Robot Controller