300 likes | 441 Vues
In this lecture, we dive into Constraint Satisfaction Problems (CSP) and how treating states as structured rather than black boxes enhances problem-solving strategies in AI. We discuss variables, constraints, domains, and the differences between complete and consistent states. Key techniques for efficiently solving CSPs, including heuristic methods, backtracking algorithms, and propagation strategies, are covered. Real-world applications such as scheduling and timetabling are provided to illustrate the importance of CSPs in practical AI scenarios.
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.