Preface
PART I
ARTIFICIAL INTELLIGENCE: ITS ROOTS
AND SCOPE 1
1 Al: HISTORY AND APPLICATIONS 3
1.1 From Eden to ENIAC: Attitudes toward Intelligence, Knowledge, and
Human Artifice 3
1.2 Overview of AI Application Areas 17
1.3 Artificial Intelligence--A Summary 28
1.4 Epilogue and References 29
1.5 Exercises 31
PART II
ARTIFICIAL INTELLIGENCE AS
REPRESENTATION AND SEARCH 33
2 THE PREDICATE CALCULUS 47
2.0 Introduction 47
2.1 The Propositional Calculus 47
2.2 The Predicate Calculus 52
2.3 Using Inference Rules to Produce Predicate Calculus Expressions 64
2.4 Application: A Logic-Based Financial Advisor 75
2.5 Epilogue and References 79
2.6 Exercises 79
PART II (continued)
3 STRUCTURES AND STRATEGIES FOR STATE SPACE SEARCH
3.0 Introduction 81
3.1 Graph Theory 84
3.2 Strategies for State Space Search 93
3.3 Using the State Space to Represent Reasoning with the Predicate Calculus
3.4 Epilogue and References 121
3.5 Exercises 121
4 HEURISTIC SEARCH 123
4.0 Introduction 123
4.1 An Algorithm for Heuristic Search 127
4.2 Admissibility, Monotonicity, and Informedness 139
4.3 Using Heuristics in Games 144
4.4 Complexity Issues 152
4.5 Epilogue and References 156
4.6 Exercises 156
5 CONTROL AND IMPLEMENTATION OF STATE SPACE SEARCH
5.0 Introduction 159
5.1 Recursion-Based Search 160
5.2 Pattern-Directed Search 164
5.3 Production Systems 171
5.4 The Blackboard Architecture for Problem Solving 187
5.5 Epilogue and References 189
5.6 Exercises 190
PART III
REPRESENTATION AND INTELLIGENCE:
THE Al CHALLENGE 193
6 KNOWLEDGE REPRESENTATION 197
6.0 Issues in Knowledge Representation 197
6.1 A Brief History of AI Representational Systems 198
6.2 Conceptual Graphs: A Network Language 218
6.3 Alternatives to Explicit Representation 228
6.4 Agent Based and Distributed Problem Solving 235
6.5 Epilogue and References 240
6.6 Exercises 243
PART III (continued)
7 STRONG METHOD PROBLEM SOLVING 247
7.0 Introduction 247
7.1 Overview of Expert System Technology 249
7.2 Rule-Based Expert Systems 256
7.3 Model-Based, Case Based, and Hybrid Systems 268
7.4 Planning 284
7.5 Epilogue and References 299
7.6 Exercises 301
8 REASONING IN UNCERTAIN SITUATIONS 303
8.0 Introduction 303
8.1 Logic-Based Abductive Inference 305
8.2 Abduction: Alternatives to Logic 320
8.3 The Stochastic Approach to Uncertainty 333
8.4 Epilogue and References 344
8.5 Exercises 346
PART IV
MACHINE LEARNING 349
9 MACHINE LEARNING: SYMBOL-BASED 351
9.0 Introduction 603
9.1 A Framework for Symbol-based Learning 354
9.2 Version Space Search 360
9.3 The ID3 Decision Tree Induction Algorithm 372
9.4 Inductive Bias and Learnability 381
9.5 Knowledge and Learning 386
9.6 Unsupervised Learning 397
9.7 Reinforcement Learning 406
9.8 Epilogue and References 413
9.9 Exercises 414
10 MACHINE LEARNING: CONNECTIONIST 417
10.0 Introduction 417
10.1 Foundations for Connectionist Networks 419
10.2 Perceptron Learning 422
10.3 Backpropagation Learning 431
10.4 Competitive Learning 438
10.5 Hebbian Coincidence Learning 446
10.6 Attractor Networks or "Memories" 457
10.7 Epilogue and References 467
10.8 Exercises 468
PART IV (continued)
11 MACHINE LEARNING: SOCIAL AND EMERGENT 469
11.0 Social and Emergent Models of Learning 469
11.1 The Genetic Algorithm 471
11.2 Classifier Systems and Genetic Programming 481
11.3 Artificial Life and Society-Based Learning 492
11.4 Epilogue and References 503
11.5 Exercises 504
PARTV
ADVANCED TOPICS FOR Al PROBLEM SOLVING 507
12 AUTOMATED REASONING 509
12.0 Introduction to Weak Methods in Theorem Proving 509
12.1 The General Problem Solver and Difference Tables 510
12.2 ResohtionTheorem Proving 516
12.3 PROLOG and Automated Reasoning 537
12.4 Further Issues in Automated Reasoning 543
12.5 Epilogue and References 550
12.6 Exercises 551
13 UNDERSTANDING NATURAL LANGUAGE 553
13.0 Role of Knowledge in Language Understanding 553
13.1 Deconstructing Language: A Symbolic Analysis 556
13.2 Syntax 559
13.3 Syntax and Knowledge with ATN Parsers 568
13.4 Stochastic Tools for Language Analysis 578
13.5 Natural Language Applications 585
13.6 Epilogue and References 592
13.7 Exercises 557
PART VI
LANGUAGES AND PROGRAMMING TECHNIQUES
FOR ARTIFICIAL INTELLIGENCE 597
14 AN INTRODUCTION TO PROLOG 603
14.0 Introduction 603
14.1 Syntax for Predicate Calculus Programming 604
14.2 Abstract Data Types (ADTs) in PROLOG 616
14.3 A Production System Example in PROLOG 620
PART VI: 14 AN INTRODUCTION TO PROLOG (continued)
14.4 Designing Alternative Search Strategies 625
14.5 A PROLOG Planner 630
14.6 PROLOG: Meta-Predicates, Types, and Unification 633
14.7 Meta-Interpreters in PROLOG 641
t4.8 Learning Algorithms in PROLOG 656
14.9 Natural Language Processing in PROLOG 666
14.10 Epilogue and References 673
14.11 Exercises 676
15 AN INTRODUCTION TO LISP 679
15.0 Introduction 679
15.1 LISP: A Brief Overview 680
15.2 Search in LISP: A Functional Approach to the Farmer, Wolf, Goat,
and Cabbage Problem 702
15.3 Higher-Order Functions and Procedural Abstraction 707
15.4 Search Strategies in LISP 711
15.5 Pattern Matching in LISP 715
15.6 A Recursive Unification Function 717
15.7 Interpreters and Embedded Languages 721
15.8 Logic Programming in LISP 723
15.9 Streams and Delayed Evaluation 732
15.15 An Expert System Shell in LISP 736
15.11 Semantic Networks and Inheritance in LISP 743
15.12 Object-Oriented Programming Using CLOS 747
15.13 Learning in LISP: The ID3 Algorithm 759
15.14 Epilogue and References 771
15.15 Exercises 772
PART VII
EPILOGUE 777
16 ARTIFICIAL INTELLIGENCE AS EMPIRICAL ENQUIRY 779
16.0 Introduction 779
16.1 Artificial Intelligence: A Revised Definition 781
16.2 The Science of Intelligent Systems 792
16.3 Al: Current Issues and Future Directions 803
16.4 Epilogue and References 807
Bibliography 809
Author Index 837
Subject Index 843