Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan...

13
Heuristic Search Theory and Applications Stefan Edelkamp Stefan Schrodl AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY » TOKYO ELSEVIER Morgan Kaufmann is an imprint of Elsevier

Transcript of Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan...

Page 1: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Heuristic Search

Theory and Applications

Stefan Edelkamp

Stefan Schrodl

AMSTERDAM • BOSTON • HEIDELBERG • LONDON

NEW YORK • OXFORD • PARIS • SAN DIEGO

SAN FRANCISCO • SINGAPORE • SYDNEY » TOKYO

ELSEVIER Morgan Kaufmann is an imprint of Elsevier

Page 2: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Contents

List of AlgorithmsPreface xxul

PART I HEURISTIC SEARCH PRIMER

CHAPTER 1 Introduction 3

1.1 Notational and Mathematical Background 3

1.1.1 Pseudocode 3

1.1.2 Computability Theory 4

1.1.3 Complexity Theory 5

1.1.4 Asymptotic Resource Consumption 7

1.1.5 Symbolic Logic 8

1.2 Search 9

1.3 Success Stories 9

1.4 State Space Problems 12

1.5 Problem Graph Representations 14

1.6 Heuristics 15

1.7 Examples of Search Problems 19

1.7.1 Sliding-Tile Puzzles 19

1.7.2 Rubik's Cube 22

1.7.3 Sokoban 22

1.7.4 Route Planning 24

1.7.5 TSP 25

1.7.6 Multiple Sequence Alignment 26

1.8 General State Space Descriptions 29

1.8.1 Action Planning 29

1.8.2 *Production Systems 32

1.8.3 Markov Decision Processes 35

1.8.4 Generic Search Model 36

1.9 Summary 37

1.10 Exercises 39

1.11 Bibliographic Notes 45

CHAPTER 2 Basic Search Algorithms 47

2.1 Uninformed Graph Search Algorithms 48

2.1.1 Depth-First Search 50

2.1.2 Breadth-First Search 51

2.1.3 Dijkstra's Algorithm 53

V

Page 3: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

vi Contents

2.1.4 Negatively Weighted Graphs 57

2.1.5 Relaxed Node Selection 58

2.1.6 *Algorithm of Bellman-Ford 60

2.1.7 Dynamic Programming 62

2.2 Informed Optimal Search 68

2.2.1 A* 69

2.2.2 On the Optimal Efficiency of A* 74

2.3 *General Weights 75

2.3.1 Cost Algebras 76

2.3.2 Multiobjective Search 79

2.4 Summary 80

2.5 Exercises 82

2.6 Bibliographic Notes 86

CHAPTER 3 *Dictionary Data Structures 89

3.1 Priority Queues 89

3.1.1 Bucket Data Structures 90

3.1.2 Heap Data Structures 97

3.2 Hash Tables 110

3.2.1 Hash Dictionaries Ill

3.2.2 Hash Functions 112

3.2.3 Hashing Algorithms 121

3.2.4 Memory-Saving Dictionaries 130

3.2.5 Approximate Dictionaries 134

3.3 Subset Dictionaries 138

3.3.1 Arrays and Lists 139

3.3.2 Tries 139

3.3.3 Hashing 139

3.3.4 Unlimited Branching Trees 141

3.4 String Dictionaries 142

3.4.1 Suffix Trees 143

3.4.2 Generalized Suffix Trees 146

3.5 Summary 151

3.6 Exercises 154

3.7 Bibliographic Notes 157

CHAPTER 4 Automatically Created Heuristics 161

4.1 Abstraction Transformations 162

4.2 Valtorta's Theorem 164

4.3 hierarchical A* 165

4.4 Pattern Databases 167

Page 4: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

4.4.1 Fifteen-Puzzle 168

4.4.2 Rubik's Cube 169

4.4.3 Directed Search Graphs 170

4.4.4 Korf's Conjecture 170

4.4.5 Multiple Pattern Databases 172

4.4.6 Disjoint Pattern Databases 173

4.5 *Customized Pattern Databases 177

4.5.1 Pattern Selection 178

4.5.2 Symmetry and Dual Pattern Databases 179

4.5.3 Bounded Pattern Databases 180

4.5.4 On-Demand Pattern Databases 183

4.5.5 Compressed Pattern Databases 183

4.5.6 Compact Pattern Databases 185

4.6 Summary 185

4.7 Exercises 187

4.8 Bibliographic Notes 190

PART II HEURISTIC SEARCH UNDER MEMORY CONSTRAINTS

CHAPTER 5 Linear-Space Search 195

5.1 ^Logarithmic Space Algorithms 195

5.1.1 Divide-and-Conquer BFS 196

5.1.2 Divide-and-Conquer Shortest Paths Search 196

5.2 Exploring the Search Tree 197

5.3 Branch-and-Bound 198

5.4 Iterative-Deepening Search 201

5.5 Iterative-Deepening A* 204

5.6 Prediction of IDA* Search 206

5.6.1 Asymptotic Branching Factors 206

5.6.2 IDA* Search Tree Prediction 212

5.6.3 *Convergence Criteria 217

5.7 * Refined Threshold Determination 218

5.8 *Recursive Best-First Search 219

5.9 Summary 220

5.10 Exercises 222

5.11 Bibliographic Notes 223

CHAPTER 6 Memory-Restricted Search 227

6.1 Linear Variants Using Additional Memory 228

6.1.1 Transposition Tables 228

6.1.2 Fringe Search 231

Page 5: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

viii Contents

6.1.3 iterative Threshold Search 233

6.1.4 MA*, SMA, and SMAG 235

6.2 Nonadmissible Search 240

6.2.1 Enforced Hill-Climbing 240

6.2.2 Weighted A* 243

6.2.3 Overconsistent A* 244

6.2.4 Anytime Repahing A* 246

6.2.5 Jt-Best-First Search 250

6.2.6 Beam Search 251

6.2.7 Partial A* and Partial IDA* 251

6.3 Reduction of the Closed List 254

6.3.1 Dynamic Programming in Implicit Graphs 255

6.3.2 Divide-and-Conquer Solution Reconstruction 255

6.3.3 Frontier Search 257

6.3.4 *Sparse Memory Graph Search 259

6.3.5 Breadth-First Heuristic Search 261

6.3.6 Locality 264

6.4 Reduction of the Open List 266

6.4.1 Beam-Stack Search 266

6.4.2 Partial Expansion A* 270

6.4.3 Two-Bit Breadth-First Search 271

6.5 Summary 273

6.6 Exercises 275

6.7 Bibliographic Notes 279

CHAPTER 7 Symbolic Search 283

7.1 Boolean Encodings for Set of States 284

7.2 Binary Decision Diagrams 286

7.3 Computing the Image for a State Set 290

7.4 Symbolic Blind Search 291

7.4.1 Symbolic Breadth-First Tree Search 291

7.4.2 Symbolic Breadth-First Search 293

7.4.3 Symbolic Pattern Databases 294

7.4.4 Cost-Optimal Symbolic Breadth-First Search 296

7.4.5 Symbolic Shortest Path Search 298

7.5 Limits and Possibilities of BDDs 299

7.5.1 Exponential Lower Bound 299

7.5.2 Polynomial Upper Bound 300

7.6 Symbolic Heuristic Search 302

7.6.1 Symbolic A* 302

7.6.2 Bucket Implementation 305

Page 6: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Contents ix

7.6.3 Symbolic Best-First Search 307

7.6.4 Symbolic Breadth-First Branch-and-Bound 308

7.7 *Refinements 309

7.7.1 Improving the BDD Size 309

7.7.2 Partitioning 310

7.8 Symbolic Algorithms for Explicit Graphs 311

7.9 Summary 311

7.10 Exercises 313

7.11 Bibliographic Notes 317

CHAPTER 8 External Search 319

8.1 Virtual Memory Management 320

8.2 Fault Tolerance 321

8.3 Model of Computation 321

8.4 Basic Primitives 323

8.5 External Explicit Graph Search 324

8.5.1 *External Priority Queues 324

8.5.2 External Explicit Graph Depth-First Search 325

8.5.3 External Explicit Graph Breadth-First Search 326

8.6 External Implicit Graph Search 328

8.6.1 Delayed Duplicate Detection for BFS 328

8.6.2 *External Breadth-First Branch-and-Bound 330

8.6.3 *External Enforced Hill-Climbing 332

8.6.4 External A* 334

8.6.5 *Lower Bound for Delayed Duplicate Detection 340

8.7 *Refinements 342

8.7.1 Hash-Based Duplicate Detection 342

8.7.2 Structured Duplicate Detection 343

8.7.3 Pipelining 344

8.7.4 External Iterative-Deepening A* Search 345

8.7.5 External Explicit-State Pattern Databases 346

8.7.6 External Symbolic Pattern Databases 348

8.7.7 External Relay Search 348

8.8 *External Value Iteration 349

8.8.1 Forward Phase: State Space Generation 349

8.8.2 Backward Phase: Update of Values 349

8.9 *Flash Memory 353

8.9.1 Hashing 354

8.9.2 Mapping 354

8.9.3 Compressing 356

8.9.4 Flushing 358

Page 7: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

x Contents

8.10 Summary 358

8.11 Exercises 361

8.12 Bibliographic Notes 364

PART III HEURISTIC SEARCH UNDER TIME CONSTRAINTS

CHAPTER 9 Distributed Search 369

9.1 Parallel Processing 370

9.1.1 Motivation for Practical Parallel Search 374

9.1.2 Space Partitioning 374

9.1.3 Depth Slicing 375

9.1.4 Lock-Free Hashing 378

9.2 Parallel Depth-First Search 379

9.2.1 *Parallel Branch-and-Bound 379

9.2.2 Stack Splitting 380

9.2.3 Parallel IDA* 382

9.2.4 Asynchronous IDA* 382

9.3 Parallel Best-First Search Algorithms 385

9.3.1 Parallel Global A* 385

9.3.2 Parallel Local A* 387

9.4 Parallel External Search 388

9.4.1 Parallel External Breadth-First Search 388

9.4.2 Parallel Structured Duplicate Detection 391

9.4.3 Parallel External A* 392

9.4.4 Parallel Pattern Database Search 398

9.5 Parallel Search on the GPU 400

9.5.1 GPU Basics 401

9.5.2 GPU-Based Breadth-First Search 401

9.5.3 Bitvector GPU Search 407

9.6 Bidirectional Search 408

9.6.1 Bidirectional Front-to-End Search 409

9.6.2 *Biclirectional Front-to-Front Search 410

9.6.3 Perimeter Search 412

9.6.4 Bidirectional Symbolic Breadth-First Search 416

9.6.5 *Island Search 416

9.6.6 *Multiple-Goal Heuristic Search 418

9.7 Summary 419

9.8 Exercises 422

9.9 Bibliographic Notes 425

Page 8: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Contents xi

CHAPTER 10 State Space Pruning 429

10.1 Admissible State Space Pruning 430

10.1.1 Substring Pruning 430

10.1.2 Pruning Dead-Ends 440

10.1.3 Penalty Tables 445

10.1.4 Symmetry Reduction 447

10.2 Nonadmissible State Space Pruning 449

10.2.1 Macro Problem Solving 449

10.2.2 Relevance Cuts 452

10.2.3 Partial Order Reduction 453

10.3 Summary 458

10.4 Exercises 460

10.5 Bibliographic Notes 463

CHAPTER 11 Real-Time Search 465

11.1 LRTA* 466

11.2 LRTA* with Lookahead One 473

11.3 Analysis of the Execution Cost of LRTA* 474

11.3.1 Upper Bound on the Execution Cost of LRTA* 476

11.3.2 Lower Bound on the Execution Cost of LRTA* 477

11.4 Features of LRTA* 479

11.4.1 Heuristic Knowledge 479

11.4.2 Fine-Grained Control 479

11.4.3 Improvement of Execution Cost 480

11.5 Variants of LRTA* 482

11.5.1 Variants with Local Search Spaces of Varying Sizes 482

11.5.2 Variants with Minimal Lookahead 482

11.5.3 Variants with Faster Value Updates 484

11.5.4 Variants That Detect Convergence 488

11.5.5 Variants That Speed Up Convergence 488

11.5.6 Nonconverging Variants 491

11.5.7 Variants for Nondeterministic and Probabilistic State Spaces 494

11.6 How to Use Real-Time Search 496

11.6.1 Case Study. Off line Search 496

11.6.2 Case Study: Goal-Directed Navigation in Unknown Terrain 497

11.6.3 Case Study: Coverage 500

11.6.4 Case Study: Localization 501

11.7 Summary 507

11.8 Exercises 509

11.9 Bibliographic Notes 514

Page 9: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

xii Contents

PART IV HEURISTIC SEARCH VARIANTS

CHAPTER 12 Adversary Search 519

12.1 Two-Player Games 520

12.1.1 Game Tree Search 524

12.1.2 aj3-Pruning 525

12.1.3 Transposition Tables 530

12.1.4 *Searching with Restricted Windows 530

12.1.5 Accumulated Evaluations 534

12.1.6 *Partition Search 535

12.1.7 *Other Improvement Techniques 537

12.1.8 Learning Evaluation Functions 538

12.1.9 Retrograde Analysis 543

12.1.10 *Symbolic Retrograde Analysis 544

12.2 *Multiplayer Games 547

12.3 General Game Playing 550

12.4 AND/OR Graph Search 552

12.4.1 AO* 554

12.4.2 *IDAO* 554

12.4.3 *LAO* 557

12.5 Summary 559

12.6 Exercises 563

12.7 Bibliographic Notes 567

CHAPTER 13 Constraint Search 571

13.1 Constraint Satisfaction 572

13.2 Consistency 575

13.2.1 Arc Consistency 575

13.2.2 Bounds Consistency 577

13.2.3 *Path Consistency 578

13.2.4 Specialized Consistency 579

13.3 Search Strategies 580

13.3.1 Backtracking 581

13.3.2 Backjumping 583

13.3.3 Dynamic Backtracking 584

13.3.4 Backmarking 585

13.3.5 Search Strategies 587

13.4 NP-Hard Problem Solving 591

13.4.1 Boolean Satisfiability 592

13.4.2 Number Partition 596

Page 10: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Contents xiii

13.4.3 *Bin Packing 598

13.4.4 *Rectangle Packing 601

13.4.5 *Vertex Cover, Independent Set, Clique 604

13.4.6 *Graph Partition 606

13.5 Temporal Constraint Networks 609

13.5.1 Simple Temporal Network 609

13.5.2 *PERT Scheduling 611

13.6 *Path Constraints 612

13.6.1 Formula Progression 614

13.6.2 Automata Translation 615

13.7 *Soft and Preference Constraints 617

13.8 Constraint Optimization 618

13.9 Summary 619

13.10 Exercises 623

13.11 Bibliographic Notes 629

CHAPTER 14 Selective Search 633

14.1 From State Space Search to Minimization 634

14.2 Hill-Climbing Search 635

14.3 Simulated Annealing 637

14.4 Tabu Search 638

14.5 Evolutionary Algorithms 639

14.5.1 Randomized Local Search and (1 + 1) EA 639

14.5.2 Simple GA 641

14.5.3 Insights to Genetic Algorithm Search 643

14.6 Approximate Search 645

14.6.1 Approximating TSP 646

14.6.2 Approximating MAX-fc-SAT 646

14.7 Randomized Search 647

14.8 Ant Algorithms 652

14.8.1 Simple Ant System 652

14.8.2 Algorithm Flood 654

14.8.3 Vertex Ant Walk 654

14.9 *Lagrange Multipliers 657

14.9.1 Saddle-Point Conditions 658

14.9.2 Partitioned Problems 661

14.10 *No-Free-Lunch 662

14.11 Summary 662

14.12 Exercises 664

14.13 Bibliographic Notes 668

Page 11: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

xiv Contents

PART V HEURISTIC SEARCH APPLICATIONS

CHAPTER 15 Action Planning 673

15.1 Optimal Planning 675

15.1.1 Graphplcm 675

\5A.2 Satplan 677

15.1.3 Dynamic Programming 678

15.1.4 Planning Pattern Databases 680

15.2 Suboptimal Planning 685

15.2.1 Causal Graphs 685

15.2.2 Metric Planning 687

15.2.3 Temporal Planning 691

15.2.4 Derived Predicates 695

15.2.5 Timed Initial Literals 696

15.2.6 State Trajectory Constraints 696

15.2.7 Preference Constraints 697

15.3 Bibliographic Notes 697

CHAPTER 16 Automated System Verification 701

16.1 Model Checking 702

16.1.1 Temporal Logics 702

16.1.2 The Role of Heuristics 703

16.2 Communication Protocols 705

16.2.1 Formula-Based Heuristic 705

16.2.2 Activeness Heuristic 707

16.2.3 Trail-Directed Heuristics 709

16.2.4 Liveness Model Checking 710

16.2.5 Planning Heuristics 710

16.3 Program Model Checking 713

16.4 Analyzing Petri Nets 717

16.5 Exploring Real-Time Systems 721

16.5.1 Timed Automata 721

16.5.2 Linearly Priced Timed Automata 722

16.5.3 Traversal Politics 723

16.6 Analyzing Graph Transition Systems 723

16.7 Anomalies in Knowledge Bases 726

16.8 Diagnosis 727

16.8.1 General Diagnostic Engine 728

16.8.2 Symbolic Propagation 729

Page 12: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

Contents xv

16.9 Automated Theorem Proving 730

16.9.1 Heuristics 732

16.9.2 Functional A* Search 733

16.10 Bibliographic Notes 734

CHAPTER 17 Vehicle Navigation 737

17.1 Components of Route Guidance Systems 737

17.1.1 Generation and Preprocessing of Digital Maps 737

17.1.2 Positioning Systems 739

17.1.3 Map Matching 741

17.1.4 Geocoding and Reverse Geocoding 744

17.1.5 User Interface 744

17.2 Routing Algorithms 744

17.2.1 Heuristics for Route Planning 745

17.2.2 Time-Dependent Routing 746

17.2.3 Stochastic Time-Dependent Routing 747

17.3 Cutting Corners 749

17.3.1 Geometric Container Pruning 749

17.3.2 Localizing A* 752

17.4 Bibliographic Notes 756

CHAPTER 18 Computational Biology 759

18.1 Biological Pathway 759

18.2 Multiple Sequence Alignment 760

18.2.1 Bounds 763

18.2.2 Iterative-Deepening Dynamic Programming 763

18.2.3 Main Loop 764

18.2.4 Sparse Representation of Solution Paths 767

18.2.5 Use of Improved Heuristics 769

18.3 Bibliographic Notes 771

CHAPTER 19 Robotics 773

19.1 Search Spaces 773

19.2 Search under Incomplete Knowledge 777

19.3 Fundamental Robot-Navigation Problems 778

19.4 Search Objective 780

19.5 Search Approaches 781

19.5.1 Optimal Offline Search 782

19.5.2 Greedy On line Search 784

Page 13: Heuristic search : theory and applications · Heuristic Search Theoryand Applications Stefan Edelkamp StefanSchrodl AMSTERDAM•BOSTON • HEIDELBERG •LONDON NEWYORK• OXFORD•

xvi Contents

19.6 Greedy Localization 786

19.7 Greedy Mapping 787

19.8 Search with the Freespace Assumption 789

19.9 Bibliographic Notes 791

Bibliography 793

Index 825