Constraint Satisfaction Problems

Similar documents
Smart Graphics: Methoden 3 Suche, Constraints

Y. Xiang, Constraint Satisfaction Problems

Satisfiability Checking

Guessing Game: NP-Complete?

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

Optimizing Description Logic Subsumption

Approximation Algorithms

Lecture 7: NP-Complete Problems

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

Problems in Artificial Intelligence

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

APP INVENTOR. Test Review

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

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

Scheduling Shop Scheduling. Tim Nieberg

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Integrating Benders decomposition within Constraint Programming

Load Balancing. Load Balancing 1 / 24

A hybrid approach for solving real-world nurse rostering problems

A Constraint-Based Method for Project Scheduling with Time Windows

Binary Search Trees CMPSC 122

Lecture 1: Course overview, circuits, and formulas

Graph Theory Problems and Solutions

On the Unique Games Conjecture

A Working Knowledge of Computational Complexity for an Optimizer

Binary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child

Sudoku puzzles and how to solve them

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

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

A Review And Evaluations Of Shortest Path Algorithms

npsolver A SAT Based Solver for Optimization Problems

Today s topic: So far, we have talked about. Question. Task models

CS510 Software Engineering

Constraint Optimization for Highly Constrained Logistic Problems

CMPSCI611: Approximating MAX-CUT Lecture 20

Chapter 6: Episode discovery process

A Fast Algorithm For Finding Hamilton Cycles

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

Computational Geometry Lab: FEM BASIS FUNCTIONS FOR A TETRAHEDRON

School Timetabling in Theory and Practice

Search methods motivation 1

Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

SYSM 6304: Risk and Decision Analysis Lecture 5: Methods of Risk Analysis

Genetic Algorithms and Sudoku

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

Mining Social Network Graphs

Lecture 10: Regression Trees

Small Maximal Independent Sets and Faster Exact Graph Coloring

5. Binary objects labeling

Heuristics for Dynamically Adapting Constraint Propagation in Constraint Programming

Disjunction of Non-Binary and Numeric Constraint Satisfaction Problems

Quantum and Non-deterministic computers facing NP-completeness

An Introduction to The A* Algorithm

Integration of ACO in a Constraint Programming Language

Data Mining Practical Machine Learning Tools and Techniques

Distributed Computing over Communication Networks: Maximal Independent Set

Course: Model, Learning, and Inference: Lecture 5

Social Media Mining. Graph Essentials

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

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

CS 2112 Spring Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

5.1 Bipartite Matching

Dynamic programming formulation

Triangulation by Ear Clipping

Arrangements And Duality

A greedy algorithm for the DNA sequencing by hybridization with positive and negative errors and information about repetitions

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

Discuss the size of the instance for the minimum spanning tree problem.

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Introduction to Logic in Computer Science: Autumn 2006

KEYWORD SEARCH OVER PROBABILISTIC RDF GRAPHS

3.1 Solving Systems Using Tables and Graphs

Random Map Generator v1.0 User s Guide

Ant Colony Optimization and Constraint Programming

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

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

Reductions & NP-completeness as part of Foundations of Computer Science undergraduate course

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

Applied Algorithm Design Lecture 5

Project and Production Management Prof. Arun Kanda Department of Mechanical Engineering Indian Institute of Technology, Delhi

Testing LTL Formula Translation into Büchi Automata

Bounded Treewidth in Knowledge Representation and Reasoning 1

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

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

Models for Incorporating Block Scheduling in Blood Drive Staffing Problems

ACO Hypercube Framework for Solving a University Course Timetabling Problem

Decision Making under Uncertainty

The Minimum Consistent Subset Cover Problem and its Applications in Data Mining

Equilibrium computation: Part 1

Backdoors to Combinatorial Optimization: Feasibility and Optimality

Measuring the Performance of an Agent

Investment Analysis using the Portfolio Analysis Machine (PALMA 1 ) Tool by Richard A. Moynihan 21 July 2005

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

LABEL PROPAGATION ON GRAPHS. SEMI-SUPERVISED LEARNING. ----Changsheng Liu

Data Structures and Algorithms Written Examination

Linear Programming. March 14, 2014

Transcription:

Constraint Satisfaction Problems eneral class of Problems: Unary constraint arc. Binary CSP Variable V i with values in domain D i Binary constraint arc Unary constraints just cut down domains This diagram is called a constraint graph tlp Sept 00 1

Constraint Satisfaction Problems eneral class of Problems: Unary constraint arc. Binary CSP Variable V i with values in domain D i Binary constraint arc Unary constraints just cut down domains This diagram is called a constraint graph Basic problem: Find a d j D i for each V i s.t. all constraints satisfied (finding consistent labeling for variables) tlp Sept 00 2

N-Queens as CSP Classic benchmark problem Place N queens on an NxN chessboard so that none can attack the other. 1 2 3 4 Q Q Q Q 1 2 3 4 Variables are board positions in NxN chessboard Domains Queen or blank Constraints Two positions on a line (vertical, horizontal, diagonal) cannot both be Q tlp Sept 00 3

Label lines in drawing as convex (+), concave (-), or boundary (>). Line labelings as CSP + + + junctions Variables are line junctions All legal junction labels for four junction types Domains Constraints are set of legal labels for that junction type shared lines between adjacent junctions must have same label. tlp Sept 00 4

Scheduling as CSP Choose time for activities e.g. observations on Hubble telescope, or terms to take required classes. Variables are activities activity 5 4 3 2 1 time Domains sets of start times (or chunks of time) Constraints 1. Activities that use same resource cannot overlap in time 2. Preconditions satisfied tlp Sept 00 5

raph Coloring as CSP Pick colors for map regions, avoiding coloring adjacent regions with the same color Variables Domains Constraints regions colors allowed adjacent regions must have different colors tlp Sept 00 6

3-SAT as CSP The original NP-complete problem Find values for boolean variables A,B,C, that satisfy the formula. (A or B or!c) and (!A or C or B) Variables clauses Domains boolean variable assignments that make clause true Constraints clauses with shared boolean variables must agree on value of variable tlp Sept 00 7

Model-based recognition as CSP Find given model in edge image, with rotation and translation allowed. MODEL IMAE Variables Domains Constraints edges in model set of edges in image angle between model & image edges must match tlp Sept 00 8

ood News / Bad News ood News - very general & interesting class problems Bad News - includes NP-Hard (intractable) problems So, good behavior is a function of domain not the formulation as CSP. tlp Sept 00 9

CSP Example iven 40 courses (8.01, 8.02,.... 6.840) & 10 terms (Fall 1, Spring 1,...., Spring 5). Find a legal schedule. tlp Sept 00 10

CSP Example iven 40 courses (8.01, 8.02,.... 6.840) & 10 terms (Fall 1, Spring 1,...., Spring 5). Find a legal schedule. Constraints Pre-requisites Courses offered on limited terms Limited number of courses per term Avoid time conflicts tlp Sept 00 11

CSP Example iven 40 courses (8.01, 8.02,.... 6.840) & 10 terms (Fall 1, Spring 1,...., Spring 5). Find a legal schedule. Constraints Pre-requisites Courses offered on limited terms Limited number of courses per term Avoid time conflicts Note, CSPs are not for expressing (soft) preferences e.g., minimize difficulty, balance subject areas, etc. tlp Sept 00 12

Choice of variables & values VARIABLES DOMAINS A. Terms? Legal combinations of for example 4 courses (but this is huge set of values). tlp Sept 00 13

Choice of variables & values VARIABLES DOMAINS A. Terms? Legal combinations of for example 4 courses (but this is huge set of values). B. Term Slots? subdivide terms into slots e.g. 4 of them (Fall 1,1) (Fall 1,2) (Fall1,3) (Fall 1,4) Courses offered during that term tlp Sept 00 14

Choice of variables & values VARIABLES A. Terms? B. Term Slots? subdivide terms into slots e.g. 4 of them (Fall 1,1) (Fall 1,2) (Fall1,3) (Fall 1,4) DOMAINS Legal combinations of for example 4 courses (but this is huge set of values). Courses offered during that term C. Courses? Terms or term slots (Term slots allow expressing constraint on limited number of of courses / term.) tlp Sept 00 15

Constraints Use courses as variables and term slots as values. term before Prerequisite 6.01 6.034 term after For pairs of courses that must be ordered. tlp Sept 00 16

Constraints Use courses as variables and term slots as values. term before Prerequisite 6.01 6.034 term after For pairs of courses that must be ordered. Courses offered only in some terms Filter domain tlp Sept 00 17

Constraints Use courses as variables and term slots as values. term before Prerequisite 6.01 6.034 term after For pairs of courses that must be ordered. Courses offered only in some terms Filter domain Limit # courses slot not equal for all pairs of vars. Use term-slots only once tlp Sept 00 18

Constraints Use courses as variables and term slots as values. term before Prerequisite 6.01 6.034 term after For pairs of courses that must be ordered. Courses offered only in some terms Filter domain Limit # courses slot not equal for all pairs of vars. Use term-slots only once Avoid time conflicts term not equal For pairs offered at same or overlapping times tlp Sept 00 19

Solving CSPs Solving CSPs involves some combination of: 1. Constraint propagation, to eliminate values that could not be part of any solution 2. Search, to explore valid assignments tlp Sept 00 1

Constraint Propagation (aka Arc Consistency) Arc consistency eliminates values from domain of variable that can never be part of a consistent solution. V i V j Directed arc (V i, V j ) is arc consistent if x D i y D j such that (x,y) is allowed by the constraint on the arc tlp Sept 00 2

Constraint Propagation (aka Arc Consistency) Arc consistency eliminates values from domain of variable that can never be part of a consistent solution. V i V j Directed arc (V i, V j ) is arc consistent if x D i y D j such that (x,y) is allowed by the constraint on the arc We can achieve consistency on arc by deleting values form D i (domain of variable at tail of constraint arc) that fail this condition. tlp Sept 00 3

Constraint Propagation (aka Arc Consistency) Arc consistency eliminates values from domain of variable that can never be part of a consistent solution. V i V j Directed arc (V i, V j ) is arc consistent if x D i y D j such that (x,y) is allowed by the constraint on the arc We can achieve consistency on arc by deleting values form D i (domain of variable at tail of constraint arc) that fail this condition. Assume domains are size at most d and there are e binary constraints. A simple algorithm for arc consistency is O(ed 3 ) note that just verifying arc consistency takes O(d 2 ) for each arc. tlp Sept 00 4

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 tlp Sept 00 5

Constraint Propagation Example raph Coloring Initial Domains are indicated V 2 V 1 R, R,,B V 3 Different-color constraint Arc examined Value deleted V 1 R,,B V 2 R, V 3 Each undirected constraint arc is really two directed constraint arcs, the effects shown above are from examining BOTH arcs. tlp Sept 00 6

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined V 1 V 2 Value deleted none V 1 R,,B V 2 R, V 3 tlp Sept 00 7

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined V 1 V 2 Value deleted none V 1 R, B V 1 V 3 V 1 () V 2 R, V 3 tlp Sept 00 8

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined V 1 V 2 Value deleted none V 1 R, B V 1 V 3 V 1 () V 2 R V 3 V 2 V 3 V 2 () tlp Sept 00 9

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined Value deleted V 1 V 1 V 2 none B V 1 V 3 V 1 () V 2 R V 3 V 2 V 3 V 2 () V 1 V 2 V 1 (R) tlp Sept 00 10

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined Value deleted V 1 V 1 V 2 none B V 1 V 3 V 1 () V 2 R V 3 V 2 V 3 V 2 () V 1 V 2 V 1 (R) V 1 V 3 none tlp Sept 00 11

Constraint Propagation Example V 1 raph Coloring R,,B Different-color constraint Initial Domains are indicated V 2 R, V 3 Arc examined Value deleted V 1 V 1 V 2 none B V 1 V 3 V 1 () V 2 R V 3 V 2 V 3 V 2 () V 1 V 2 V 1 (R) V 1 V 3 none V 2 V 3 none tlp Sept 00 12

But, arc consistency is not enough in general raph Coloring R, R, R, arc consistent but no solutions tlp Sept 00 13

Arc consistency algorithm function AC-3( csp) returns the CSP, possibly with reduced domains inputs: csp, a binary CSP with variables {X 1, X 2,..., X n } local variables: queue, a queue of arcs, initially all the arcs in csp while queue is not empty do (X i, X j ) Remove-First(queue) if Remove-Inconsistent-Values(X i, X j ) then for each X k in Neighbors[X i ] do add (X k, X i ) to queue function Remove-Inconsistent-Values( X i, X j ) returns true iff succeeds removed false for each x in Domain[X i ] do if no value y in Domain[X j ] allows (x,y) to satisfy the constraint X i X j then delete x from Domain[X i ]; removed true return removed O(n 2 d 3 ), can be reduced to O(n 2 d 2 ) (but detecting all is NP-hard) Chapter 5 31

But, arc consistency is not enough in general raph Coloring R, R, R, arc consistent but no solutions B, arc consistent but 2 solutions B,R, ; B,,R. R, R, tlp Sept 00 14

But, arc consistency is not enough in general raph Coloring R, R, R, arc consistent but no solutions B, arc consistent but 2 solutions B,R, ; B,,R. R, R, B, R, R, arc consistent but 1 solution Assume B, R not allowed tlp Sept 00 15

But, arc consistency is not enough in general raph Coloring R, R, R, arc consistent but no solutions B, arc consistent but 2 solutions B,R, ; B,,R. R, R, B, arc consistent but 1 solution B, R not allowed R, R, Need to do search to find solutions (if any) tlp Sept 00 16

Searching for solutions backtracking (BT) When we have too many values in domain (and/or constraints are weak) arc consistency doesn t do much, so we need to search. Simplest approach is pure backtracking (depth-first search). V 1 assignments R B V 2 assignments R R R V R 3 assignments R R R R,, B V 1 V 2 R, R, V 3 tlp Sept 00 17

Searching for solutions backtracking (BT) When we have too many values in domain (and/or constraints are weak) arc consistency doesn t do much, so we need to search. Simplest approach is pure backtracking (depth-first search). V 1 assignments R B V 2 assignments x R R R V R 3 assignments R R R Inconsistent with V 1 = R R,, B V 1 Backup at inconsistent assignment V 2 R, R, V 3 tlp Sept 00 18

Searching for solutions backtracking (BT) When we have too many values in domain (and/or constraints are weak) arc consistency doesn t do much, so we need to search. Simplest approach is pure backtracking (depth-first search). V 1 assignments R B V 2 assignments R R R x x V R 3 assignments R R R Inconsistent with V 1 = R R,, B V 1 Backup at inconsistent assignment V 2 R, R, V 3 tlp Sept 00 19

Searching for solutions backtracking (BT) When we have too many values in domain (and/or constraints are weak) arc consistency doesn t do much, so we need to search. Simplest approach is pure backtracking (depth-first search). V 1 assignments R B V 2 assignments R R R x x x V R 3 assignments R R R Inconsistent with V 1 = R Inconsistent with V 2 = R,, B V 1 Backup at inconsistent assignment V 2 R, R, V 3 tlp Sept 00 20

Searching for solutions backtracking (BT) When we have too many values in domain (and/or constraints are weak) arc consistency doesn t do much, so we need to search. Simplest approach is pure backtracking (depth-first search). V 1 assignments R B V 2 assignments V 3 assignments Inconsistent with V 1 = R R R R xr x x Inconsistent with V 2 = x x R x x R R x Consistent R,, B V 1 Backup at inconsistent assignment V 2 R, R, V 3 tlp Sept 00 21

Combine Backtracking & Constraint Propagation A node in BT tree is partial assignment in which the domain of each variable has been set (tentatively) to singleton set. Use constraint propagation (arc-consistency) to propagate the effect of this tentative assignment, i.e., eliminate values inconsistent with current values. tlp Sept 00 22

Combine Backtracking & Constraint Propagation A node in BT tree is partial assignment in which the domain of each variable has been set (tentatively) to singleton set. Use constraint propagation (arc-consistency) to propagate the effect of this tentative assignment, i.e., eliminate values inconsistent with current values. Question: How much propagation to do? tlp Sept 00 23

Combine Backtracking & Constraint Propagation A node in BT tree is partial assignment in which the domain of each variable has been set (tentatively) to singleton set. Use constraint propagation (arc-consistency) to propagate the effect of this tentative assignment, i.e., eliminate values inconsistent with current values. Question: How much propagation to do? Answer: Not much, just local propagation from domains with unique assignments, which is called forward checking (FC). This conclusion is not necessarily obvious, but it generally holds in practice. tlp Sept 00 24

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments R V 2 assignments V 3 assignments R,, B V 1 V 2 R, R, V 3 tlp Sept 00 25

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments R V 2 assignments V 3 assignments R V 1 V 2 V 3 tlp Sept 00 26

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments R V 2 assignments V 3 assignments x We have a conflict whenever a domain becomes empty. V 2 R V 1 V 3 tlp Sept 00 27

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments V 2 assignments V 3 assignments When backing up, need to restore domain values, since deletions were done to reach consistency with tentative assignments considered during search. V 2 R,, B V 1 R, R, V 3 tlp Sept 00 28

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments V 2 assignments V 3 assignments V 1 V 2 R R V 3 tlp Sept 00 29

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments V 2 assignments R V 3 assignments V 1 V 2 R R V 3 tlp Sept 00 30

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments V 2 assignments V 3 assignments R x V 1 V 2 R V 3 tlp Sept 00 31

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments V 3 assignments R,, B V 1 V 2 R, R, V 3 tlp Sept 00 32

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments R V 3 assignments B V 1 V 2 R, R, V 3 tlp Sept 00 33

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments R V 3 assignments B V 1 V 2 R V 3 tlp Sept 00 34

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments R V 3 assignments B V 1 V 2 R V 3 tlp Sept 00 35

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments V 3 assignments R B V 1 V 2 R V 3 tlp Sept 00 36

Backtracking with Forward Checking (BT-FC) When examining assignment V i =d k, remove any values inconsistent with that assignment from neighboring domains in constraint graph. V 1 assignments B V 2 assignments V 3 assignments R No need to check previous assignments V 2 B V 1 R V 3 enerally preferable to pure BT tlp Sept 00 37

BT-FC with dynamic ordering Traditional backtracking uses fixed ordering of variables & values, e.g random order or place variables with many constraints first. You can usually do better by choosing an order dynamically as the search proceeds. tlp Spring 02 1

BT-FC with dynamic ordering Traditional backtracking uses fixed ordering of variables & values, e.g., random order or place variables with many constraints first. You can usually do better by choosing an order dynamically as the search proceeds. Most constrained variable when doing forward-checking, pick variable with fewest legal values to assign next (minimizes branching factor) tlp Spring 02 2

BT-FC with dynamic ordering Traditional backtracking uses fixed ordering of variables & values, e.g., random order or place variables with many constraints first. You can usually do better by choosing an order dynamically as the search proceeds. Most constrained variable when doing forward-checking, pick variable with fewest legal values to assign next (minimizes branching factor) Least constraining value choose value that rules out the fewest values from neighboring domains tlp Spring 02 3

BT-FC with dynamic ordering Traditional backtracking uses fixed ordering of variables & values, e.g., random order or place variables with many constraints first. You can usually do better by choosing an order dynamically as the search proceeds. Most constrained variable when doing forward-checking, pick variable with fewest legal values to assign next (minimizes branching factor) Least constraining value choose value that rules out the fewest values from neighboring domains E.g. this combination improves feasible n-queens performance from about n = 30 with just FC to about n = 1000 with FC & ordering. tlp Spring 02 4

Colors: R,, B, Y B A=reen B=Blue C=Red A E Red, Yellow reen, Blue, Yellow D C F Red, Blue, Yellow Which country should we color next What color should we pick for it? tlp Spring 02 5

Colors: R,, B, Y B A=reen B=Blue C=Red A E Red, Yellow reen, Blue, Yellow D C F Red, Blue, Yellow Which country should we color next What color should we pick for it? E most-constrained variable (smallest domain) tlp Spring 02 6

Colors: R,, B, Y B A=reen B=Blue C=Red A E Red, Yellow reen, Blue, Yellow D C F Red, Blue, Yellow Which country should we color next What color should we pick for it? E most-constrained variable (smallest domain) RED least-constraining value (eliminates fewest values from neighboring domains) tlp Spring 02 7

Problem structure WA NT Q SA NSW V Victoria T Tasmania and mainland are independent subproblems Identifiable as connected components of constraint graph Chapter 5 32

Problem structure contd. Suppose each subproblem has c variables out of n total Worst-case solution cost is n/c d c, linear in n E.g., n = 80, d = 2, c = 20 2 80 = 4 billion years at 10 million nodes/sec 4 2 20 = 0.4 seconds at 10 million nodes/sec Chapter 5 33

Tree-structured CSPs A C B D E F Theorem: if the constraint graph has no loops, the CSP can be solved in O(n d 2 ) time Compare to general CSPs, where worst-case time is O(d n ) This property also applies to logical and probabilistic reasoning: an important example of the relation between syntactic restrictions and the complexity of reasoning. Chapter 5 34

Algorithm for tree-structured CSPs 1. Choose a variable as root, order variables from root to leaves such that every node s parent precedes it in the ordering A C B D E F A B C D E F 2. For j from n down to 2, apply RemoveInconsistent(P arent(x j ), X j ) 3. For j from 1 to n, assign X j consistently with P arent(x j ) Chapter 5 35

Nearly tree-structured CSPs Conditioning: instantiate a variable, prune its neighbors domains WA NT Q WA NT Q SA NSW NSW V Victoria V Victoria T T Cutset conditioning: instantiate (in all ways) a set of variables such that the remaining constraint graph is a tree Cutset size c runtime O(d c (n c)d 2 ), very fast for small c Chapter 5 36

Incremental Repair (min-conflict heuristic) 1. Initialize a candidate solution using greedy heuristic get solution near correct one. 2. Select a variable in conflict and assign it a value that minimizes the number of conflicts (beak ties randomly). Can use this heuristic as part of systematic backtracker that uses heuristics to do value ordering or in a local hill-climber (without backup). 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) tlp Spring 02 8

Min-conflict heuristic The pure hill climber (without backtracking) can get stuck in local minima. Can add random moves to attempt getting out of minima generally quite effective. Can also use weights on violated constraints & increase weight every cycle it remains violated. SAT Randomized hill climber used to solve SAT problems. One of the most effective methods ever found for this problem tlp Spring 02 9

SAT as Heuristic Search State space: Space of all full assignments to variables Initial state: A random full assignment oal state: A satisfying assignment Actions: Flip value of one variable in current assignment Heuristic: The number of satisfied clauses (constraints); we want to maximize this. Alternatively, minimize the number of unsatisfied clauses (constraints). tlp Spring 02 10

SAT(F) For i=1 to Maxtries Select a complete random assignment A Score = number of satisfied clauses For j=1 to Maxflips If (A satisfies all clauses in F) return A Else flip a variable that maximizes score Flip a randomly chosen variable if no variable flip increases the score. tlp Spring 02 11

WALKSAT(F) For i=1 to Maxtries Select a complete random assignment A Score = number of satisfied clauses For j=1 to Maxflips If (A satisfies all clauses in F) return A Else With probability p /* SAT */» flip a variable that maximizes score» Flip a randomly chosen variable if no variable flip increases the score. With probability 1-p /* Random Walk */» Pick a random unsatisfied clause C» Flip a randomly chosen variable in C tlp Spring 02 12

Summary CSPs are a special kind of problem: states defined by values of a fixed set of variables goal test defined by constraints on variable values Backtracking = depth-first search with one variable assigned per node Variable ordering and value selection heuristics help significantly Forward checking prevents assignments that guarantee later failure Constraint propagation (e.g., arc consistency) does additional work to constrain values and detect inconsistencies The CSP representation allows analysis of problem structure Tree-structured CSPs can be solved in linear time Iterative min-conflicts is usually effective in practice Chapter 5 40