Table of Contents
Preface xiii
Chapter 1 Introduction to Artificial Intelligence 1
1.1 The Turing Test 2
1.2 Intelligent Agents 5
1.2.1 Software Agents 5
1.2.2 Physical Agents 5
1.3 Approaches in Artificial Intelligence 7
1.3.1 Acting Humanly: The Turing Test Approach 7
1.3.2 Thinking Humanly: The Cognitive Modelling Approach 8
1.3.3 Thinking Rationally: The Laws of Thought Approach 8
1.3.4 Acting Rationally: The Rational Agent Approach 9
1.4 Definitions of Artificial Intelligence 10
1.4.1 Intelligent Behavior 12
1.4.2 Interpretations of Artificial Intelligence 12
1.5 AI Problems 13
1.5.1 Tasks Under Artificial Intelligence 14
1.5.2 Tasks Domains of Artificial Intelligence 14
1.6 Features of AI Programs 16
1.7 Importance of AI 17
1.8 What Can Artificial Intelligence Systems Do? 17
1.9 What Can Artificial Intelligence Systems Not Do Yet? 18
1.10 Advantages of AI 18
1.11 Disadvantages of Artificial Intelligence 19
Exercises 21
Chapter 2 Applications of Artificial Intelligence 23
2.1 Finance 23
2.2 Hospitals and Medicine 23
2.3 Robotics 24
2.4 Expert Systems 24
2.5 Diagnosis 25
2.6 Pattern Recognition 25
2.7 Natural Language Processing 26
2.8 Game Playing 28
2.9 Image Processing 28
2.10 Data Mining 30
2.11 Big Data Mining 30
Exercises 31
Chapter 3 Introduction to the State Space Search 33
3.1 State Space Search 34
3.1.1 The Search Problem 35
3.2 Search Techniques 38
3.2.1 Basic Search Algorithm 38
3.3 Types of Searching Techniques 39
3.3.1 Uninformed Search (Blind Search) 39
3.3.2 Avoiding Repeated States 50
Exercises 52
Chapter 4 Heuristic Search Strategies 53
4.1 Types of Heuristic Search Techniques 54
4.1.1 Generate and Test 55
4.1.2 Best First Search 55
4.1.3 Hill Climbing Search 58
4.1.4 Simulated Annealing Search 61
4.1.5 A* Algorithm 62
4.1.6 AND-OR Graphs 64
4.2 Properties of the Heuristic Search Algorithm 65
4.3 Adversary Search 66
4.3.1 The MINIMAX Algorithm 67
Exercises 69
Chapter 5 Expert Systems 71
5.1 Definitions of Expert Systems 71
5.2 Features of Good Expert Systems 72
5.3 Architecture and Components of Expert Systems 73
5.3.1 User Interface 74
5.3.2 Knowledge Base 75
5.3.3 Working Storage (Database) 79
5.3.4 Inference Engine 79
5.3.5 Explanation Facility 86
5.3.6 Knowledge Acquisition Facility 86
5.3.7 External Interface 86
5.4 Roles of the Individuals Who Interact with the System 86
5.4.1 Domain Expert 86
5.4.2 Knowledge Engineer 87
5.4.3 Programmer 87
5.4.4 Project Manager 88
5.4.5 User 88
5.5 Advantages of Expert Systems 89
5.6 Disadvantages of Expert Systems 90
Exercises 93
Chapter 6 The Expert System Development Life Cycle 95
6.1 Stages in the Expert System Development Life Cycle 96
6.1.1 Problem Selection 97
6.1.2 Conceptuahzation 98
6.1.3 Formalization 100
6.1.4 Prototype Construction 101
6.1.5 Implementation 106
6.1.6 Evaluation 107
6.2 Sources of Error in Expert System Development 109
6.2.1 Knowledge Errors 110
6.2.2 Syntax Errors 110
6.2.3 Semantic Errors 110
6.2.4 Inference Engine Errors 110
6.2.5 Inference Chain Errors 110
Exercises 110
Chapter 7 Knowledge Acquisition 113
7.1 Knowledge Basics 113
7.2 Knowledge Engineering 115
7.2.1 Knowledge Acquisition 116
7.2.2 Knowledge Engineer 117
7.2.3 Difficulties in Knowledge Acquisition 118
7.3 Knowledge Acquisition Techniques 120
7.3.1 Natural Techniques 121
7.3.2 Contrived Techniques 122
7.3.3 Modelling Techniques 126
Exercises 128
Chapter 8 Knowledge Representation 129
8.1 Definitions of Knowledge Representation 129
8.2 Characteristics of Good Knowledge Representation 130
8.3 Basics of Knowledge Representation 131
8.4 Properties of the Symbolic Representation of Knowledge 132
8.5 Properties for the Good Knowledge Representation Systems 133
8.6 Categories of Knowledge Representation Schemes 134
8.7 Types of Knowledge Representational Schemes 135
8.7.1 Formal Logic 135
8.7.2 Semantic Net 172
8.7.3 Frames 194
8.7.4 Scripts 213
8.7.5 Conceptual Dependency (CD) 225
Exercises 242
Chapter 9 Neural Networks 243
9.1 Neural Networks vs. Conventional Computers 244
9.2 Neural Networks 244
9.2.1 Neurons 245
9.2.2 Types of Neural Networks 245
9.2.3 Historical Background 246
9.3 Biological Neural Networks 247
9.3.1 Biological Neurons 249
9.4 Artificial Neural Networks 249
9.5 Differences Between Biological and Artificial Neural Networks 253
9.6 Architecture of a Neural Network 253
9.6.1 Single Layer Feed-Forward Networks 254
9.6.2 Multilayer Feed-Forward Network 255
9.6.3 Recurrent Networks 256
9.6.4 Feedback Networks 256
9.6.5 Network Layers 257
Exercises 258
Chapter 10 The Learning Process 259
10.1 Types of Learning in a Neural Network 259
10.1.1 Supervised Learning 259
10.1.2 Unsupervised Learning 261
10.1.3 Reinforcement Learning 262
10.2 Perceptron 262
10.2.1 The Representational Power of a Perceptron 263
10.3 Backpropagation Networks 264
10.4 Advantages of Neural Networks 264
10.5 Limitations of Neural Networks 265
10.6 Applications of Neural Networks 266
Exercises 269
Chapter 11 Fuzzy Logic 271
11.1 Introduction to Fuzzy Logic 271
11.1.1 Definition of Fuzzy Logic 273
11.1.2 Features of Fuzzy Logic 274
11.1.3 Advantages of Fuzzy Logic 275
11.1.4 Disadvantages of Fuzzy Logic 275
11.2 Crisp Set (Classical set) 276
11.3 Fuzzy Set 277
11.3.1 Linguistic Variables in a Fuzzy Set 281
11.4 Membership Function of Crisp Logic 287
11.5 Membership Function of the Fuzzy Set 287
11.6 Fuzzy Set Operations 291
11.6.1 Union 291
11.6.2 Intersection 291
11.6.3 Complement 292
11.6.4 Equality of Two Fuzzy Sets 293
11.6.5 Containment 293
11.6.6 Normal Fuzzy Set 294
11.6.7 Support of a Fuzzy Set 294
11.6.8 α-Cut or α-Level Set 294
11.6.9 Disjunctive Sum (Exclusive OR) 294
11.6.10 Disjoint Sum 296
11.6.11 Difference 296
11.6.12 The Bounded Difference 297
11.7 Properties of A Fuzzy Set 297
11.8 Differences Between a Fuzzy Set and A Crisp Set 298
11.9 Differences Between Boolean Logic and Fuzzy Logic 302
Exercises 305
Chapter 12 Fuzzy Systems 307
12.1 Fuzzy Rule 307
12.1.1 Fuzzy Rules as Relations 311
12.1.2 Interpretation of Fuzzy Rules 315
12.2 Fuzzy Reasoning 316
Exercises 320
Chapter 13 Fuzzy Expert Systems 321
13.1 The Need for Fuzzy Expert Systems 321
13.2 Operations on a Fuzzy Expert System 324
13.2.1 Fuzzification (Fuzzy Input) 326
13.2.2 Fuzzy Operator 327
13.2.3 Fuzzy Inferencing (Implication) 327
13.2.4 Aggregate All Output 329
13.2.5 Defuzzification 330
13.3 Fuzzy Inference Systems 332
13.3.1 Mamdani Fuzzy Inference Method 332
13.3.2 Sugeno Inference Method (TSK Fuzzy Model of Takagi, Sugeno, and Kang) 337
13.3.3 Choosing the Inference Method 339
13.4 The Fuzzy Inference Process in a Fuzzy Expert System 340
13.4.1 Monotonic Inference 340
13.4.2 Non-Monotonic Inference 341
13.4.3 Downward Monotonic Inference 341
13.5 Types of Fuzzy Expert Systems 341
13.5.1 Fuzzy Control 341
13.5.2 Fuzzy Reasoning 342
13.6 Fuzzy Controller 342
13.6.1 Components of a Fuzzy Controller 344
13.6.2 Application Areas of Fuzzy Controller 356
Exercises 357
Chapter 14 Logic Programming 359
14.1 Introduction 359
14.2 Difference Between C/C++ and Prolog 360
14.3 How Does Prolog Work? 361
14.4 A Little History 362
14.5 Converting English to Prolog 363
14.6 Goals 363
14.6.1 How Prolog Satisfies Goals 364
14.7 Queries 365
14.5 Clauses 367
14.8.1 Facts 367
14.8.2 Rules 368
14.9 Notation in Prolog for Building Blocks 371
14.9.1 Atoms 371
14.9.2 Variables 371
14.9.3 Data Types and Structures 372
14.10 Arithmetic Operations 379
14.11 Strings 381
Exercises 382
Chapter 15 Advanced Prolog 383
15.1 Input and Output Predicates 383
15.1.1 Terms and Character I/O 384
15.1.2 File I/O 385
15.2 Backtracking 386
15.2.1 Problems with Backtracking 389
15.3 Cut 390
15.4 Fail 393
15.4.1 Cut and Fail Combination 394
15.5 Recursion 394
15.6 Prolog Data Structure 397
15.6.1 Terms 397
15.6.2 Unification 398
15.7 Dynamic Database 401
15.8 Programs in Prolog 402
15.9 Problems with Prolog 404
Exercises 405
Index 407