240 likes | 262 Vues
Integer Programming – based Decomposition Approaches for Solving Machine Scheduling Problems. Ruslan SADYKOV Ecole Polytechnique, Laboratoire d’Informatique Le s é minaire de l’équpe « GraphComb » du LRI, 18 mai 2007. Multi-machine assignment scheduling problem (MMASP).
E N D
Integer Programming – based Decomposition Approaches for Solving Machine Scheduling Problems Ruslan SADYKOV Ecole Polytechnique, Laboratoire d’Informatique Le séminaire de l’équpe « GraphComb » du LRI, 18 mai 2007
An instance of the MMASP 6 7 5 3 4 1 2 r2 d2 p21=p22 1 4 5 M1 3 6 7 M2
Importance of the problem Malgré le fait que c’est un problème théorique, ses variations apparaissent comme les problèmes de planification de production et d’ordonnancement • en fabrication et en services, par exemple (Pinedo & Chao, 1998) • en industrie chimique, par exemple (Maravelias & Grossmann, 2003) • etc.
objective infeasibility cut x1≤6 x1≥7 Branch-and-check solution scheme x2 relaxation x1
Relaxation of the MIP formulation 6 7 5 3 4 1 2 5 10 15 0
Branch-and-check algorithm f*:= «non» We solve the initial formulation by branch-and-bound An integer solution X’ is found at some node of the search tree no more integer solutions end + - X’ is feasible? Add an infeasibility cut which is violated by X’ f* := wX’
Families of infeasibility cuts • Standard and strengthened “no-good” cuts • will be described now • if solution X’ is infeasible there is always a “no-good” inequality violated • separation is NP-hard (but very fast in practice) • “Edge-Finding”-based cuts • use ideas of the “Edge-Finding” technique known in Constraint Programming • an infeasible solution can satisfy all inequalities of this family (cannot be used alone) • separation is polynomial ( O(mn3), in practice – O(mn2) )
Family of “no-good” cuts 6 7 5 3 4 1 2 1 6 2 7 M1 Standard “no-good” cut: Stronger “no-good” cut:
Carlier algorithm (1) This algorithm (Carlier, 1982) is used to generate standard “no-good” cuts by solving the following problem. Given a set J of jobs with parameters {rj,pj,dj}, jJ, is it possible to schedule them non-preemptively on a single machine without violating the release and due dates? OR: whether set J of jobs is feasible?
Carlier algorithm (2) 5 On each node of the search tree, we run the O(nlogn) Schrage algorithm: • schedule jobs one by one; • on the next place in the schedule, we put an available job with the smallest due date; • if there is no available jobs, we put a job with the smallest due date among jobs with the smallest release date. 4 3 2 1 5 10 0
Carlier algorithm (3) … … c a b
Modified Carlier algorithm (1) Used to generate strengthened “no-good” cuts by solving the following problem. A set J of jobs with parameters {rj,pj,dj}, jJ, is given. We check whether J is feasible. If J is infeasible, we try to find an infeasible subset S of jobs (S J ).
Modified Carlier algorithm (2) A leaf node: 1 … … c a b 3 2 A non-leaf node: … … cα b 5 4
Cut generation scheme (X’ is integer) Run the modified Carlier algorithm Run the separation alg. for the “Edge-Finding”– based inequalities An inequality violated by X’ is found? Node limit is reached? + − − + Run the Carlier algorithm Add “Edge-Finding”− based cut Solution X’ is feasible? + − SolutionX’ is feasible? + − Add strengthened “no-good” cut SaveX’ Add standard “no-good” cut SaveX’
Column generation procedure • Select a subset of variables which form a feasible solution • Perform the loop • solve the LP relaxation with the restricted set of variables • check if there are variables with a negative reduced cost(solve the pricing problem using the dual information) • if there are, add such variable(s) to the formulation until there are no variables with a negative reduced cost Column generation procedure combined withbranching results in a branch-and-price algorithm.
Results for the multi-machine variant of the problem • The branch-and-check algorithm is more efficient than the branch-and-price one when solving small-size test instances (up to 7 machines, 30 jobs) • For the larger instances, the branch-and-price one is more efficient (solved all 25 test instances with up to 9 machines and 54 jobs within 1 hour, whereas the branch-and-check one did not solve 7 test instances) • Both our algorithms outperform other algorithms available in the literature (Jain & Grossmann, 2001, Thorsteinsson, 2001, Bockmayr & Pisaruk, 2003 )
Conclusions • Main contributions: • problem’s relaxation, which is used as the initial formulation; • an algorithm for generation of strengthened “no-good” cuts; • a new family of “Edge-Finding”-based cuts, and a separation algorithm for it. • Two algorithms for solving the MMASP is proposed: • branch-and-check algorithm (best choice for instances in which number of jobs is much more than the number of machines, for example when there is only one machine available) • branch-and-price algorithm (best choice for instances in which the ratio (# of jobs)/(# of machines) is not very large ) • A good example of separating the optimality and the feasibility aspects of the problem
Notes The research was conducted in the CORE (Université Catholique de Louvain, Belgium). A part of the results presented is a joint work with Laurence Wolsey. Publications: • R.Sadykov, L.Wolsey. Integer programming and constraint programming in solving a multi-machine assignment scheduling problem with deadlines and release dates. INFORMS Journal on Computing 18(2):209-217, 2006. • R.Sadykov. A branch-and-check algorithm for minimizing the weighted number of late jobs on a single machine with release dates. Accepted for publication in European Journal of Operations Research.