Solving Constraint Programs using Backtrack Search and Forward Checking

Similar documents
Smart Graphics: Methoden 3 Suche, Constraints

Y. Xiang, Constraint Satisfaction Problems

Integrating Benders decomposition within Constraint Programming

Satisfiability Checking

Constraint Optimization for Highly Constrained Logistic Problems

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Binary Encodings of Non-binary Constraint Satisfaction Problems: Algorithms and Experimental Results

A search based Sudoku solver

University of Potsdam Faculty of Computer Science. Clause Learning in SAT Seminar Automatic Problem Solving WS 2005/06

Sudoku puzzles and how to solve them

Partial Constraint Satisfaction of Disjunctive Temporal Problems

Integration of ACO in a Constraint Programming Language

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

AI: A Modern Approach, Chpts. 3-4 Russell and Norvig

A hybrid approach for solving real-world nurse rostering problems

Load Balancing. Load Balancing 1 / 24

A Constraint-Based Method for Project Scheduling with Time Windows

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

Guessing Game: NP-Complete?

Approximation Algorithms

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

An Improved Algorithm for Maintaining Arc Consistency in Dynamic Constraint Satisfaction Problems

Sudoku Puzzles Generating: from Easy to Evil

A Review And Evaluations Of Shortest Path Algorithms

Scheduling Shop Scheduling. Tim Nieberg

APP INVENTOR. Test Review

Sudoku as a SAT Problem

Ant Colony Optimization and Constraint Programming

Heuristics for Dynamically Adapting Constraint Propagation in Constraint Programming

Fast Generation of Optimal Music Playlists using Local Search

MAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push)

DESIGN AND DEVELOPMENT OF CSP TECHNIQUES FOR FINDING ROBUST SOLUTIONS IN JOB-SHOP SCHEDULING PROBLEMS WITH OPERATORS

Analysis of Micromouse Maze Solving Algorithms

International Journal of Advanced Research in Computer Science and Software Engineering

Optimizing Description Logic Subsumption

Linear Programming. March 14, 2014

Kenken For Teachers. Tom Davis June 27, Abstract

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

Genetic Algorithms and Sudoku

CS473 - Algorithms I

INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

Clock Arithmetic and Modular Systems Clock Arithmetic The introduction to Chapter 4 described a mathematical system

Data Mining Practical Machine Learning Tools and Techniques

Arithmetic Coding: Introduction

Dynamic programming formulation

From Last Time: Remove (Delete) Operation

ECON 459 Game Theory. Lecture Notes Auctions. Luca Anderlini Spring 2015

6.231 Dynamic Programming and Stochastic Control Fall 2008

A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called heap-order property

Interactive Timetabling

Lecture 4 Online and streaming algorithms for clustering

Fundamentals of Probability

Search methods motivation 1

Design a Line Maze Solving Robot

Dependability Driven Integration of Mixed Criticality SW Components

Near Optimal Solutions

Introduction. The Quine-McCluskey Method Handout 5 January 21, CSEE E6861y Prof. Steven Nowick

Sudoku Madness. Team 3: Matt Crain, John Cheng, and Rabih Sallman

Standard for Software Component Testing

ACO Hypercube Framework for Solving a University Course Timetabling Problem

Why? A central concept in Computer Science. Algorithms are ubiquitous.

USING BACKTRACKING TO SOLVE THE SCRAMBLE SQUARES PUZZLE

Dynamic Programming. Lecture Overview Introduction

Example Problems. Channel Routing. Lots of Chip Real-estate. Same connectivity, much less space. Slide 1. Slide 2

Lecture 17 : Equivalence and Order Relations DRAFT

Stepwise Regression. Chapter 311. Introduction. Variable Selection Procedures. Forward (Step-Up) Selection

Tutorial Customer Lifetime Value

Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

The Relational Data Model and Relational Database Constraints

Global Multiprocessor Real-Time Scheduling as a Constraint Satisfaction Problem

Lecture 6 Online and streaming algorithms for clustering

Introduction To Genetic Algorithms

Chapter 13: Query Processing. Basic Steps in Query Processing

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS

ASSIGNMENT 4 PREDICTIVE MODELING AND GAINS CHARTS

What is Linear Programming?

Graph Theory Problems and Solutions

Lecture 10 Scheduling 1

COMPUTER SCIENCE TRIPOS

These axioms must hold for all vectors ū, v, and w in V and all scalars c and d.

Database Constraints and Design

PARALLELIZED SUDOKU SOLVING ALGORITHM USING OpenMP

Applied Algorithm Design Lecture 5

npsolver A SAT Based Solver for Optimization Problems

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Binary Heaps. CSE 373 Data Structures

2.3 Convex Constrained Optimization Problems

Linear Programming: Chapter 11 Game Theory

An optimisation framework for determination of capacity in railway networks

Constraint Propagation and Value Acquisition: why we should do it Interactively

Minesweeper as a Constraint Satisfaction Problem

Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

Sources: On the Web: Slides will be available on:

each college c i C has a capacity q i - the maximum number of students it will admit

Lecture 3: Finding integer solutions to systems of linear equations

Classification/Decision Trees (II)

PowerScheduler Load Process User Guide. PowerSchool Student Information System

Binary Coded Web Access Pattern Tree in Education Domain

cs171 HW 1 - Solutions

Practical Guide to the Simplex Method of Linear Programming

Transcription:

Solving Constraint Programs using Backtrack Search and Forward Checking Slides draw upon material from: 6.034 notes, by Tomas Lozano Perez AIMA, by Stuart ussell & Peter Norvig Brian C. Williams 16.410-13 Constraint Processing, by ina Dechter September 27 th, 2010 9/29/10 1 Assignments emember: Problem Set #3: Analysis and Constraint Programming, due this Wed., Sept. 29 th, 2010. eading: Today: [AIMA] Ch. 6.2-5; Constraint Satisfaction. Wednesday: Operator-based Planning [AIMA] Ch. 10 raph Plan, by Blum & Furst, posted on Stellar. To Learn More: Constraint Processing, by ina Dechter Ch. 5: eneral Search Strategies: Look-Ahead Ch. 6: eneral Search Strategies: Look-Back Ch. 7: Stochastic reedy Local Search 2 Brian Williams, Fall 10 1

Constraint Problems are Everywhere Source unknown. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/fairuse. 3 Constraint Satisfaction Problems (CSP) Input: A Constraint Satisfaction Problem is a triple <V,D,C>, where: V is a set of variables V i D is a set of variable domains, The domain of variable V i is denoted D i C = is a set of constraints on assignments to V Each constraint C i = <S i, i > specifies allowed variable assignments. S i the constraint s scope, is a subset of variables V. i the constraint s relation, is a set of assignments to S i. Output: A full assignment to V, from elements of V s domain, such that all constraints in C are satisfied. Brian Williams, Fall 10 4 2

Constraint Modeling (Programming) Languages Features Declarative specification of the problem that separates the formulation and the search strategy. Example: Constraint Model of the Sudoku Puzzle in Number Jack (http://4c110.ucc.ie/numberjack/home) matrix = Matrix(N*N,N*N,1,N*N) sudoku = Model( [AllDiff(row) for row in matrix.row], [AllDiff(col) for col in matrix.col], [AllDiff(matrix[x:x+N, y:y+n].flat) for x in range(0,n*n,n) for y in range(0,n*n,n)] ) 5 Constraint Problems are Everywhere Source unknown. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/fairuse. 6 3

Outline Analysis of constraint propagation Solving CSPs using Search Brian Williams, Fall 10 7 What is the Complexity of AC-1? AC-1(CSP) Input: A network of constraints CSP = <X, D, C>. Output: CSP, the largest arc-consistent subset of CSP. 1. repeat 2. for every c ij C, 3. evise(x i, x j ) 4. evise(x j, x i ) 5. endfor 6. until no domain is changed. Assume: There are n variables. Domains are of size at most k. There are e binary constraints. Brian Williams, Fall 10 8 4

What is the Complexity of AC-1? Assume: There are n variables. Domains are of size at most k. There are e binary constraints. Which is the correct complexity? 1. O(k 2 ) 2. O(enk 2 ) 3. O(enk 3 ) 4. O(nek) Brian Williams, Fall 10 9 evise: A directed arc consistency procedure evise (x i, x j ) Input: Variables x i and x j with domains D i and D j and constraint relation ij. Output: pruned D i, such that x i is directed arc-consistent relative to x j. O(k) 1. for each a i D i 2. if there is no a j D j such that <a i, a j > ij * O(k) 3. then delete a i from D i. 4. endif 5. endfor Complexity of evise? = O(k 2 ) Brian Williams, Fall 10 where k = max D i i 10 5

Brian Williams, Fall 10 n = X, e = C 11 Full Arc-Consistency via AC-1 AC-1(CSP) Input: A network of constraints CSP = <X, D, C>. Output: CSP, the largest arc-consistent subset of CSP. 1. repeat 2. for every c ij C, O(2e*revise) 3. evise(x i, x j ) 4. evise(x j, x i ) 5. endfor 6. until no domain is changed. * O(nk) Complexity of AC-1? = O(nk*e*revise) = O(enk 3 ) where k = max i D i What is the Complexity of Constraint Propagation using AC-3? Assume: There are n variables. Domains are of size at most k. There are e binary constraints. Which is the correct complexity? 1. O(k 2 ) 2. O(ek 2 ) 3. O(ek 3 ) 4. O(ek) Brian Williams, Fall 10 12 6

Full Arc-Consistency via AC-3 AC-3(CSP) Input: A network of constraints CSP = <X, D, C>. Output: CSP, the largest arc-consistent subset of CSP. 1. for every c ij C, 2. queue queue {<x i,x j >, <x i,x j >} O(e) + 3. endfor 4. while queue {} 5. select and delete arc <x i, x j > from queue 6. evise(x i, x j ) O(k 2 ) 7. if evise(x I, x J ) caused a change in D i. * O(ek) 8. then queue queue {<x k,x I > k i, k j} 9. endif 10. endwhile Complexity of AC-3? = O(e+ek*k 2 ) = O(ek 3 ) where k = max D, n = X, e = C i i Brian Williams, Fall 10 13 Is arc consistency sound and complete? An arc consistent solution selects a value for every variable from its arc consistent domain. Soundness: All solutions to the CSP are arc consistent solutions? Yes No Completeness: All arc-consistent solutions are solutions to the CSP? Yes No,,, Brian Williams, Fall 10 14 7

Incomplete: Arc consistency doesn t rule out all infeasible solutions raph Coloring,,, arc consistent, but no solutions. arc consistent, but 2 solutions, not 8. B,,, B,, B,, Brian Williams, Fall 10 15 To Solve CSPs We Combine 1. Arc consistency (via constraint propagation) Eliminates values that are shown locally to not be a part of any solution. 2. Search Explores consequences of committing to particular assignments. Methods That Incorporate Search: Standard Search Back Track Search (BT) BT with Forward Checking (FC) Dynamic Variable Ordering (DV) Iterative epair (I) Conflict-directed Back Jumping (CBJ) 16 8

Solving CSPs using eneric Search State Partial assignment to variables, made thus far. Initial State No assignment. Operator Creates new assignment (X i = v ij ) Select any unassigned variable X i Select any one of its domain values v ij Child extends parent assignments with new. oal Test Branching factor? All variables are assigned. All constraints are satisfied. Sum of domain size of all variables O( v * d ).,, B V 1,, Performance? Exponential in the branching factor O([ v * d ] v 17 ). Search Performance on N ueens 1 2 3 4 Standard Search Backtracking A handful of queens 18 9

Solving CSPs with Standard Search Standard Search: Children select any value for any variable [O( v * d )]. Test complete assignments for consistency against CSP. Observations: 1. The order in which variables are assigned does not change the solution. Many paths denote the same solution, ( v!), expand only one path (i.e., use one variable ordering). 2. We can identify a dead end before we assign all variables. Extensions to inconsistent partial assignments are always inconsistent. Check consistency after each assignment.,, B V 1,, 19 Back Track Search (BT) 1. Expand assignments of one variable at each step. 2. Pursue depth first. 3. Check consistency after each expansion, and backup. B assignments Preselect order of variables to assign Assign designated variable,, B V 1,, 20 10

Back Track Search (BT) 1. Expand assignments of one variable at each step. 2. Pursue depth first. 3. Check consistency after each expansion, and backup. B assignments Preselect order Assign Backup at of variables to designated inconsistent assign variable assignment,, B V 1,, 21 Procedure Backtracking(<X,D,C>) Input: A constraint network = <X, D, C> Output: A solution, or notification that the network is inconsistent. i 1; a i = {} Initialize variable counter, assignments, D i D i ; Copy domain of first variable. while 1 i n instantiate x i Select-Value(); Add to assignments a i. if x i is null No value was returned, i i - 1; then backtrack else i i + 1; else step forward and D i D i ; copy domain of next variable end while if i = 0 return inconsistent else return a i, the instantiated values of {x i,, x n } end procedure 22 11

Procedure Select-Value() Output: A value in D i consistent with a i-1, or null, if none. while D i is not empty select an arbitrary element a D i and remove a from D i ; if consistent(a i-1, x i = a ) return a; end while return null end procedure no consistent value Constraint Processing, by. Dechter pgs 123-127 23 Search Performance on N ueens 1 2 3 4 Standard Search Backtracking BT with Forward Checking A handful of queens About 15 queens 24 12

Combining Backtracking and Limited Constraint Propagation Initially: Prune domains using constraint propagation (optional) Loop: If complete consistent assignment, then return it, Else Choose unassigned variable. Choose assignment from variable s pruned domain. Prune (some) domains using evise (i.e., arc-consistency). If a domain has no remaining elements, then backtrack. uestion: Full propagation is O(ek 3 ), How much propagation should we do? Very little (except for big problems) Forward Checking (FC) Check arc consistency ONLY for arcs that terminate on the new assignment [O(e k) total]. 25 Backtracking with Forward Checking (BT-FC) assignments,, B V 1,, 26 13

Backtracking with Forward Checking (BT-FC) assignments V 1,, 27 Backtracking with Forward Checking (BT-FC) assignments V 1 28 14

Backtracking with Forward Checking (BT-FC) assignments Note: No need to check new assignment against previous assignments V 1 29 Backtracking with Forward Checking (BT-FC) assignments x 3. We have a conflict whenever a domain becomes empty. Backtrack V 1 30 15

Backtracking with Forward Checking (BT-FC) assignments x 3. We have a conflict whenever a domain becomes empty. Backtrack V 1 31 Backtracking with Forward Checking (BT-FC) assignments 3. We have a conflict whenever a domain becomes empty. Backtrack estore domains V, B 1,, 32 16

Backtracking with Forward Checking (BT-FC) assignments 3. We have a conflict whenever a domain becomes empty. Backtrack estore domains V 1,, 33 Backtracking with Forward Checking (BT-FC) assignments 3. We have a conflict whenever a domain becomes empty. Backtrack V 1 estore domains 34 17

Backtracking with Forward Checking (BT-FC) assignments 3. We have a conflict whenever a domain becomes empty. Backtrack V 1 estore domains 35 Backtracking with Forward Checking (BT-FC) assignments x x 3. We have a conflict whenever a domain becomes empty. Backtrack V 1 estore domains 36 18

Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack estore domains V B 1,, 37 Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack estore domains V B 1,, 38 19

Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack B V 1 estore domains, 39 Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack B V 1 estore domains 40 20

Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack B estore domains V3 Solution! V 1 41 Backtracking with Forward Checking (BT-FC) B assignments 3. We have a conflict whenever a domain becomes empty. Backtrack estore domains B V 1 BT-FC is generally faster than pure BT because it avoids rediscovering inconsistencies. 42 21

Procedure Backtrack-Forward-Checking(<x,D,C>) Input: A constraint network = <X, D, C> Output: A solution, or notification the network is inconsistent. Note: Maintains n domain copies D for resetting, one for each search level i. D i D i for 1 i n; (copy all domains) i 1; a i = {} (init variable counter, assignments) while 1 i n instantiate x i Select-Value-FC(); (add to assignments, making a i ) if x i is null (no value was returned) reset each D k for k > i, to its value before x i was last instantiated; i i - 1; (backtrack) else i i + 1; (step forward) end while if i = 0 return inconsistent by. Dechter else pgs 131-4, 141 return a i, the instantiated values of {x i,, x n } 43 end procedure Constraint Processing, Procedure Select-Value-FC() Output: A value in D i consistent with a i-1, or null, if none. O(ek 2 ) while D i is not empty select an arbitrary element a D i and remove a from D i ; for all k, i < k n for all values b in D k if not consistent(a i-1, x i = a, x k = b) remove b from D k ; end for if D k is empty (x i = a leads to a dead-end, don t select a) reset each D k, i < k n to its value before a was selected; else return a; end while return null by. Dechter end procedure pgs 131-4, 141 Constraint Processing, 44 22

Search Performance on N ueens 1 2 3 4 Standard Search Backtracking BT with Forward Checking Dynamic Variable Ordering A handful of queens About 15 queens About 30 queens 45 BT-FC with dynamic ordering Traditional backtracking uses a fixed ordering over variables & values. Typically better to choose ordering dynamically as search proceeds. Most Constrained Variable When doing forward-checking, pick variable with fewest legal values in domain to assign next. minimizes branching factor. Least Constraining Value Choose value that rules out the smallest number of values in variables connected to the chosen variable by constraints. Leaves most options to finding a satisfying assignment. 46 23

Colors:,, B, Y B, Y, B, Y A E D C F, B, Y Which country should we color next? What color should we pick for it? E most-constrained variable (smallest domain). ED least-constraining value (eliminates fewest values from neighboring domains). 47 Procedure Dynamic-Var-Forward-Checking(<x,D,C>) Input: A constraint network = <X, D, C> Output: A solution, or notification the network is inconsistent. D i D i for 1 i n; Copy all domains i 1; a i = {} Init variable counter and assignments s = min i < j n D j Find unassigned variable w smallest domain x i+1 x s earrange variables so that x s follows x i while 1 i n instantiate x i Select-Value-FC(); Select value (dynamic) and add to assignments, a i if x i is null No value to assign was returned. reset each D k for k > i, to its value before x i was last instantiated; i i - 1; Backtrack else if I < n i i + 1; Step forward to x s s = min i < j n D j Find unassignedvariable w smallest domain x i+1 x s earrange variables so that x s follows x i else i i + 1; Step forward to x s end while if i = 0 return inconsistent Constraint Processing, else return a i, the instantiated values of {x i,, x n } by. Dechter end procedure pgs 137-140 48 24

Search Performance on N ueens 1 2 3 4 Standard Search A handful of queens Backtracking About 15 queens BT with Forward Checking About 30 queens Dynamic Variable Ordering About 1,000 queens Iterative epair Conflict-directed Back Jumping 49 Incremental epair (Min-Conflict Heuristic) 1. Initialize a candidate solution using a greedy heuristic. gets the candidate near a solution. 2. Select a variable in a conflict and assign it a value that minimizes the number of conflicts (break ties randomly). The heuristic is used in a local hill-climber (without or with backup). : 3 B,, B V 1,, 50 25

Min-Conflict Heuristic Pure hill climber (w/o backtracking) gets stuck in local minima: Add random moves to attempt to get out of minima. Add weights on violated constraints and increase weight every cycle the constraint remains violated. Sec (Sparc 1) 100 10 1 10-1 Performance on n-queens. (with good initial guesses) 10-2 10 1 10 2 10 3 10 4 10 5 10 6 Size (n) SAT: andomized hill climber used to solve propositional logic SATisfiability problems. 51 To Solve CSP <X,D,C> We Combine: 1. easoning - Arc consistency via constraint propagation 2. Eliminates values that are shown locally to not be a part of any solution. Search Explores consequences of committing to particular assignments. Methods That Incorporate Search: Standard Search Back Track Search (BT) BT with Forward Checking (FC) Dynamic Variable Ordering (DV) Iterative epair (I) Conflict-directed Back Jumping (CBJ) 52 26

Next Lecture: Back Jumping Backtracking At dead end, backup to the most recent variable. Backjumping At dead end, backup to the most recent variable that eliminated some value in the domain of the dead end variable. 53 27

MIT OpenCourseWare http://ocw.mit.edu 16.410 / 16.413 Principles of Autonomy and Decision Making Fall 2010 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.