Math Programming Constraint Programming Outline DMP204 SCHEDULING, TIMETABLING AND ROUTING 1. Math Programming Scheduling Models Lecture 6 Further issues MIP Modelling and 2. Constraint Programming Constraint Programming Introduction Refinements: Modeling Refinements: Search Refinements: Constraints Marco Chiarandini 2 Math Programming Scheduling Models Math Programming Scheduling Models Constraint Programming Further issues Constraint Programming Further issues Outline Position variables Qm | p j = 1 | P h j ( C j ) , h j non decreasing function model as a transportation problem Variables indicate if j is 1. Math Programming scheduled as the k th job Scheduling Models on the machine i . x ijk ≥ 0 ∀ i = 1 , . . . , m, j, k = 1 , . . . , n Further issues No need to declare them binary m n 2. Constraint Programming Every job assigned to X X x ijk = 1 ∀ j = 1 , . . . , n Introduction one only position i =1 k =1 Refinements: Modeling Refinements: Search n At most one job can X Refinements: Constraints x ijk ≤ 1 ∀ i = 1 , . . . , m, k = 1 , . . . , n be processed in time j =1 n m n X X X min c ijk x ijk Objective, c ijk = h j ( C j ) = h j ( k/v i ) j =1 i =1 k =1 3 5
Math Programming Scheduling Models Math Programming Scheduling Models Constraint Programming Further issues Constraint Programming Further issues Time indexed variables Sequencing variables 1 | r j | P w j C j 1 | prec | P w j C j Discretize time in t = 0 , . . . , l , where l is upper bound Variables indicate if j x jk ∈ { 0 , 1 } j, k = 1 , . . . , n Variables indicate if j precedes k x jt ∈ { 0 , 1 } j = 1 , . . . , n ; t = 0 , . . . , l starts at t l x jj = 0 ∀ j = 1 , . . . , n Every job starts at one X x jt = 1 ∀ j = 1 , . . . , n point in time t =1 t − 1 n x kj + x jk = 1 ∀ j, k = 1 , . . . , n, j � = k Precedence constraints At most one job can X X x js ≤ 1 ∀ t = 0 , . . . , l be processed in time j =1 s =max { t − p j , 0 } x kj + x lk + x jl ≥ 1 j, k, l = 1 , . . . , n, j � = k, k � = l, j � = l x jt = 0 ∀ j = 1 , . . . , n, t = 0 , . . . , max { r j − 1 , 0 } Precedence constraints Jobs cannot start be- fore their release dates n n n n l X X X min w j p k x kj + w j p j Objective X X min w j ( t + p j ) x js Objective j =1 j =1 k =1 j =1 t =0 6 7 Math Programming Scheduling Models Math Programming Scheduling Models Real Variables Constraint Programming Further issues Constraint Programming Further issues Linearizations Disjunctive Programming 1 | prec | P w j C j Disjunctive graph model made of conjunctive arcs A and disjunctive arcs I . Select disjunctive arcs such that the graph does not contain a cycle. How to linearize these non linear functions? Variables denote com- x j ∈ R j = 1 , . . . , n pletion of job j Disjunctive constraints precedence constraints x k − x j ≥ p k ∀ j → k ∈ A min | a − b | conjunctive arcs min { max( a, b ) } x j ≥ p j ∀ j = 1 , . . . , n min processing time min max i =1 ,...,m ( c T i x + d i ) piecewise-linear functions x k − x j ≥ p k or x j − x k ≥ p j ∀ ( i, j ) ∈ I disjunctive constraints n X min w j x j Objective j =1 8 10
Introduction Math Programming Scheduling Models Math Programming Refinements: Modeling Constraint Programming Further issues Constraint Programming Refinements: Search Constraint types Outline Refinements: Constraints 1. Math Programming Scheduling Models Further issues 2. Constraint Programming Introduction Refinements: Modeling Refinements: Search Refinements: Constraints x binary, y general integer, z a continuous variable. a and b integer numbers; p, q, r, s real numbers Specific domain propagation, preprocessing and cut generation exist for some of these constraints. [Achterberg, T. Constraint Integer Programming Department of Mathematics, Phd Thesis, Technical University of Berlin, Germany, 2007] 11 12 Introduction Introduction Math Programming Refinements: Modeling Math Programming Refinements: Modeling Constraint Programming Refinements: Search Constraint Programming Refinements: Search Constraint Programming Constraint Satisfaction Problem Refinements: Constraints Refinements: Constraints Input: a set of variables X 1 , X 2 , . . . , X n each variable has a non-empty domain D i of possible values a set of constraints. Each constraint C i involves some subset of the variables and specifies the allowed combination of values for that subset. Constraint Programming is about a formulation of the problem [A constraint C on variables X i and X j , C ( X i , X j ) , defines the as a constraint satisfaction problem and about solving it by subset of the Cartesian product of variable domains D i × D j of the means of general or domain specific methods. consistent assignments of values to variables. A constraint C on variables X i , X j is satisfied by a pair of values v i , v j if ( v i , v j ) ∈ C ( X i , X j ) .] Task: find an assignment of values to all the variables { X i = v i , X j = v j , . . . } such that it is consistent, that is, it does not violate any constraint If assignments are not all equally good, but some are preferable this is reflected in an objective function. 14 15
Introduction Introduction Math Programming Refinements: Modeling Math Programming Refinements: Modeling Constraint Programming Refinements: Search Constraint Programming Refinements: Search Solution Process Types of Variables and Values Refinements: Constraints Refinements: Constraints Standard search problem: initial state: the empty assignment {} in which all variables are Discrete variables with finite domain: unassigned complete enumeration is O ( d n ) successor function: a value can be assigned to any unassigned Discrete variables with infinite domains: variable, provided that it does not conflict with previous assignments Impossible by complete enumeration. goal test: the current assignment is complete Instead a constraint language (constraint logic programming and path cost: a constant cost for every step. constraint reasoning) Eg, project planning. Two fundamental issues: S j + p j ≤ S k exploration of search tree NB: if only linear constraints, then integer linear programming constraint propagation (filtering) Variables with continuous domains at every node of the search tree, remove domain values that do not NB: if only linear constraints or convex functions then mathematical belong to a solution Repeat until nothing can be removed anymore programming � The search may be both complete and incomplete. 16 17 Introduction Introduction Math Programming Refinements: Modeling Math Programming Refinements: Modeling Constraint Programming Refinements: Search Constraint Programming Refinements: Search Constraint Propagation Types of constraints Refinements: Constraints Refinements: Constraints Definition A constraint C on the variables x 1 , . . . , x k is called domain consistent if Unary constraints for each variable x i and each value d i ∈ D ( x i ) ( i = 1 , . . . , k ) , there exist a value d j ∈ D ( x j ) for all j � = i such that ( d 1 , . . . , d k ) ∈ C . Binary constraints (constraint graph) domain consistency = hyper-arc consistency or generalized-arc Higher order (constraint hypergraph) consistency Eg, alldiff() , among() , etc. Every higher order constraint can be reconduced to binary Establishing domain consistency for binary constraints is inexpensive. (you may need auxiliary constraints) For higher arity constraints the naive approach requires time that is Preference constraints exponential in the number of variables. cost on individual variable assignments Exploiting underlying structure of a constraint can sometimes lead to establish domain consistency much more efficiently. 18 20
Recommend
More recommend