290 likes | 478 Views
Constraint Programming. Peter van Beek University of Waterloo. Applications. Reasoning tasks: abductive, diagnostic, temporal, spatial Cognitive tasks: machine vision, natural language processing Combinatorial tasks: scheduling, sequencing, planning. Constraint Programming.
E N D
Constraint Programming Peter van Beek University of Waterloo
Applications • Reasoning tasks: • abductive, diagnostic, temporal, spatial • Cognitive tasks: • machine vision, natural language processing • Combinatorial tasks: • scheduling, sequencing, planning
Constraint Programming • CP = solve problems by specifying constraints on acceptable solutions • Why CP? • constraints often a natural part of problems • once problem is modeled using constraints, wide selection of solution techniques available
Constraint-based problem solving • Model problem • specify in terms of constraints on acceptable solutions • define variables (denotations) and domains • define constraints in some language • Solve model • define search space / choose algorithm • incremental assignment / backtracking search • complete assignments / stochastic search • design/choose heuristics • Verify and analyze solution
Constraint-based problem solving • Model problem • specify in terms of constraints on acceptable solutions • define variables (denotations) and domains • define constraints in some language • Solve model • define search space / choose algorithm • incremental assignment / backtracking search • complete assignments / stochastic search • design/choose heuristics • Verify and analyze solution Constraint Satisfaction Problem
Constraint satisfaction problem • A CSP is defined by • a set of variables • a domain of values for each variable • a set of constraints between variables • A solution is • an assignment of a value to each variable that satisfies the constraints
Constraint-based problem solving • Model problem • specify in terms of constraints on acceptable solutions • define variables (denotations) and domains • define constraints in some language • Solve model • define search space / choose algorithm • incremental assignment / backtracking search • complete assignments / stochastic search • design/choose heuristics • Verify and analyze solution
Example: Assembly line sequencing • What order should the cars be manufactured? • Constraints: • even distributions • changes in colors • run length constraints
Example: Scheduling Four students, Algy, Bertie, Charlie, and Digby share a flat. Four newspapers are delivered. Each student reads the newspapers in a particular order and for a specified amount of time. Algy arises at 8:30, Bertie and Charlie at 8:45, Digby at 9:30. What is the earliest that they can all set of for school?
Schedule Sun Express Guardian FT 8 am 9 10 11
Example: Graph coloring Given k colors, does there exist a coloring of the nodes such that adjacent nodes are assigned different colors
Example: 3-coloring Variables: v1, v2 , v3 , v4 , v5 Domains: {1, 2, 3} Constraints: vi vjif vi and vj are adjacent v2 v1 v4 v3 v5
Example: 3-coloring One solution: v1 1 v2 2 v3 2 v4 1 v5 3 v2 v1 v4 v3 v5
Example: Boolean satisfiability Given a Boolean formula, does there exist a satisfying assignment (an assignment of true or false to each variable such that the formula evaluates to true)
Example: 3-SAT Variables: x1, x2 , x3 , x4 , x5 Domains: {True, False} Constraints: (x1 x2 x4), (x2 x4 x5), (x3 x4 x5) (x1 x2 x4) (x2 x4 x5) (x3 x4 x5)
Example: 3-SAT One solution: x1 False x2 False x3 False x4 True x5 False (x1 x2 x4) (x2 x4 x5) (x3 x4 x5)
Example: n-queens Place n-queens on an n n board so that no pair of queens attacks each other
Example: 4-queens Variables: x1, x2 , x3 , x4 Domains: {1, 2, 3, 4} Constraints: xi xjand | xi - xj | | i- j| x1 x2 x3 x4 1 2 3 4
Example: 4-queens x1 x2 x3 x4 One solution: x1 2 x2 4 x3 1 x4 3 1 Q 2 Q 3 Q Q 4
Search tree for 4-queens x1 1 2 3 4 x2 x3 x4 (1,1,1,1) (2,4,1,3) (3,1,4,2) (4,4,4,4)
Specification of forward checking Invariant: 1 i c, cj n, (xj, xi) is arc-consistent x1 xc-1 xc xc+1 xn past current future
Forward checking 1 2 3 4 5 6 x1 {1,4,6} Q x4 x2 1 1 1 Q x3 1 Q 1 2 2 {2} {5} {3} {1,3,4} x4 1 2 3 1 x5 x1 x2 x3 x5 3 1 3 2 1 {3,4,6} x6 2 1 3 2 3 x6
Enforcing arc-consistency < {a, b, c} {a, b, c} xj xi
{a, b, c} {a, b, c} {a, b, c} xk xj xi Enforcing path-consistency < < <
Search graph for 4-queens (1,1,1,2) (1,1,4,2) 4 (1,1,1,1) 1 6 (1,1,1,3) 3 (3,1,4,2) 0 (1,1,1,4) 4 (1,4,1,3) 1 (4,1,4,2) 1 (2,4,1,3) 0
Pick queen in conflict x1 Q x2 2 1 Q 1 x3 Q x4 Q Move to min. conflicts Pick queen in conflict x1 x1 Q Q x2 Q x2 Q x3 Q x3 0 2 2 Q x4 Q x4 Q Stochastic search Initial assignment x1 Q x2 Q x3 Q x4 Q
Tractability NP NP-Complete (SAT, TSP, ILP, CSP, …) P
CSP 3-SAT binary CSP ILP (0,1)-ILP Reducibility NP-Complete
Options CSP, binary CSP, SAT, 3-SAT, ILP, ... • Model and solve in one of these languages • Model in one language, translate into another to solve