300 likes | 321 Views
An Introduction to Artificial Intelligence. Lecture 5: Constraint Satisfaction Problems Ramin Halavati (halavati@ce.sharif.edu).
E N D
An Introduction to Artificial Intelligence Lecture 5: Constraint Satisfaction Problems Ramin Halavati (halavati@ce.sharif.edu) In which we see how treating states as more than just black boxes leads to the invention of a range of powerful new search methods and a deeper understanding of problem structure and complexity.
Overview • States/Goal(s) • Black Box vs. Structured • General Purpose Heuristics
What is Constraint Satisfaction? • A set of variables: X1,X2,…,Xn. • A set of constraints: C1,C2,…,Cm. • Each variable, a domain: D1,D2,…,Dn. • State: An assignment of values to Xis. • Consistent: Obeying all constraints. • Complete: All variables having values. • Solution: A complete, consistent state. • Objective Function: Extra!
Real World Samples of CSP • Assignment problems • e.g., who teaches what class • Timetabling problems • e.g., which class is offered when and where? • Transportation scheduling • Factory scheduling
CSP, Sample • To assign one of {red, green, blue} to each of 7 variables: WA, BT, SA, Q, NSW, V, T. • Constraints: • WA ≠ NT,WA ≠ SA , NT ≠ Q, SA ≠ Q , … • Solution: • {WA = red , NT = green, Q = red , NSW = green, …
Formulation • Initial State: { } • Successor Function: Value assignment to one variable with no conflict. • Goal Test: Consistent, Complete, assignment. • Path Cost: 1 for each step.
Constraint Types • Constraint Types: • Unary / Binary / More… • Auxiliary Variables • Variables: F T U W, R O X1 X2 X3 • Constraints: All Different (F, T, U, W, R, O) • O + O = R + 10 · X1 • X1 + W + W = U + 10 · X2 • X2 + T + T = O + 10 · X3 • X3 = F, T ≠ 0, F≠ 0 TWO +TWO FOUR
Recursive Back Track Algorithm • Recursive Back Track( assignment , CSP ) If assignment is complete, return assignment. Var Select an unassigned variable. For each Value in Domain (Var), if Consistent( assignment + Var Value ) Then result RBT (assignment + Var Value ) if ( result≠ failure ) return result. Return failure.
Major Questions… • Which variable to assign. • What to assign. • How to prevent further repetitions of a failure.
Minimum Remaining Values (MRV) • To choose one which is most likely to fail • Immediate recognition of failure
Most Constraining Variable (MCS) • To choose one who interferes the others most! • Major reduction in branching factor. 3 3 2 5 3 2 0
Least Constraining Value (LCS) • To choose a value which puts minimum constraint on other variables. • To leave maximum flexibility.
Forward Checking • Keep track of remaining legal values for unassigned variables • Terminate search when any variable has no legal values
Constraint Propagation • How to find fast that implications of one variable on other variables.
Arc Consistency • AB is consistent if for each remaining value in domain of A, there may be a consistent value in domain of B. • Consistent: • SANSW, NSWV,… • Not C.: • NSWSA, NTSA,…
Arc Consistency Checking Algorithm (AC-3!) • AC3( csp ) Fill queue with all available arcs of csp. While queue not empty, (Xi,Xj) RemoveHead( queue ) If RemoveInconsistentValues(Xi,Xj) Then for each Xkin Neighbor (Xi) do Add (Xk,Xi) to queue. • Remove Inconsistent Values (Xi,Xj) removed false. For each x in Domain (Xi) if no allowed value in Domain (Xj) after assignment of x to Xi, delete x from Domain (Xi); removed true. Return removed.
Special Constraints… • All Different • Sort remaining variables based on their number of choices… • Resource Constraints • Checking the sums, … • Flight271 [0,165] , Flight272 [0,385] • Flight271+Flight272 = 420 • Flight271 [35,165] , Flight272 [255,385] • Bounds Propagation
Intelligent Backtracking • Q Red • NSW Green • V Blue • T Red • SA ? • Chronological Backtracking 1 2 ? 3 4
Back Jumping • Q Red • NSW Green • V Blue • T Red • SA ? • Conflict Set: {Q, V, NSW} NOTE: Back Jumping doesn’t help Forward Checking. 1 2 ? 3 4
Local Search for Constraint Satisfaction Problems • Min Conflict Algorithm • Create a random complete state. • For a fixed number of times • If current state is consistent, return. • Choose a random variable v, and change assignment of v to a value that causes minimum conflict. • Scheduling Hubble’s weekly observation: • From 3 weeks to 10 minutes! • Extra advantage: Online Updating
A E B D C F Heuristics based on Structure • Sub Problems • Finding Connected Components • Constraint Trees
A E A B D C F B C D F E Heuristics based on Structure • Constraint Trees: • Order nodes. • From last to first, remove all values from domain of parent which may violate arc-consistency. • From first to last, assign a remaining value. 1 2 3 4 5 6
How to convert Constraint Graph to Constraint Tree • Cut-Set Conditioning • To select a set of nodes that subtracting them results in a tree. • To check the rest for all valid assignments of this set.
How to convert Constraint Graph to Constraint Tree • Tree Decomposition
Tree Decomposition • Include all variables • Each constraint must be in at least one sub problem. • If a variable is in two sub-probs, it must be in all sub-probs along the path.