Table of Contents
Acknowledgments ix
1 Artificial Intelligence (AI) 1-12
1.1 Computerized Reasoning 1
1.2 Turing Test 2
1.3 What is Intelligence? 3
1.4 Artificial Intelligence 4
1.5 Goals of Artificial Intelligence 4
1.6 History of Artificial Intelligence 5
1.7 Advantages of Artificial Intelligence 7
1.8 Application Areas of Artificial Intelligence 7
1.9 Components of Artificial Intelligence 10
2 Problem Representation 13-24
2.1 Introduction 13
2.2 Problem Characteristics 13
2.3 Problem Representation in AI 14
2.4 Production System 18
2.5 Conflict Resolution 22
3 The Search Process 25-42
3.1 Search Process 25
3.2 Strategies for Search 26
3.3 Search Techniques 26
4 Game Playing 43-52
4.1 Game Playing 43
4.2 Game Tree 44
4.3 Components of a Game Playing Program 44
4.4 Game Playing Strategies 45
4.5 Problems in Computer Game Playing Programs 50
5 Knowledge Representation 53-70
5.1 Introduction 53
5.2 Definition of Knowledge 53
5.3 Importance of Knowledge 56
5.4 Knowledge-based Systems 56
5.5 Differences between Knowledge-based Systems and Database Systems 56
5.6 Knowledge Representation Scheme 57
6 Expert Systems 71-94
6.1 Introduction 71
6.2 Definition of an Expert System 71
6.3 Characteristics of an Expert System 72
6.4 Architectures of Expert Systems 72
6.5 Expert System Life Cycle 84
6.6 Knowledge Engineering Process 86
6.7 Knowledge Acquisition 87
6.8 Difficulties in Knowledge Acquisition 87
6.9 Knowledge Acquisition Strategies 88
6.10 Advantages of Expert Systems 89
6.11 Limitations of Expert Systems 90
6.12 Examples of Expert Systems 91
7 Learning 95-104
7.1 Learning 95
7.2 General Model for Machine Learning Systems 95
7.3 Characteristics of Machine Learning 97
7.4 Types of Learning 97
7.5 Advantages of Machine Learning 103
7.6 Disadvantages of Machine Learning 103
8 Prolog 105-120
8.1 Preliminaries of Prolog 105
8.2 Milestones in Prolog Language Development 106
8.3 What is a Horn Clause? 106
8.4 Robinson's Resolution Rule 107
8.5 Parts of a Prolog Program 107
8.6 Queries to a Database 108
8.7 How does Prolog Solve a Query? 109
8.8 Compound Queries 109
8.9 The _ Variable 109
8.10 Recursion in Prolog 110
8.11 Data Structures in Prolog 111
8.12 Head and Tail of a List 111
8.13 Print all the Members of the list 112
8.14 Print the List in Reverse Order 112
8.15 Appending a List 113
8.16 Find Whether the Given Item is a Member of the List 113
8.17 Finding the Length of the List 113
8.18 Controlling Execution in Prolog 113
8.19 About Turbo Prolog 117
9 Python 121-138
9.1 Languages Used for Building AI 121
9.2 Why Do People Choose Python? 121
9.3 Build AI Using Python 122
9.4 Running Python 124
9.5 Pitfalls 125
9.6 Features of Python 125
9.7 Useful Libraries 132
9.8 Utilities 134
9.9 Testing Code 137
10 Artificial Intelligence Machines and Robotics 139-186
10.0 Introduction 139
10.1 History: Serving, Emulating, Enhancing, and Replacing Man 143
10.2 Technical Issues 160
10.3 Applications: Robotics in the Twenty-First Century 170
10.4 Summary 182
Review Questions 187-192
Index 193