Industrial Optimization Lessons learned from Optimization in Practice Marco Lübbecke Chair of Operations Research RWTH Aachen University, Germany SICS Stockholm Feb 11, 2013
Discrete Optimization: Some Applications vehicle routing container logistics course timetabling production planning materials stacking patient scheduling
Steel Production
Coil Coating
Coil Coating: Local Cost
Coil Coating: Global Cost
Coil Coating: A Sequencing Problem? A sequencing problem... oven finish coater oven primer coater finish coater chem coater
Coil Coating: A Sequencing Problem? A sequencing problem... oven test runs finish coater temperature di erences oven many more... primer coater finish coater color changes +rollerchanges height/width/... di erences chem coater roller changes width di erence over threshold? +specialcoating with a very complicated cost function.
Shuttle Coaters
Tank Assignment Problem Given a fixed sequence of coils
Tank Assignment Problem Given a fixed sequence of coils Setup work necessary if
Tank Assignment Problem Given a fixed sequence of coils Setup work necessary if I color changes ; cleaning
Tank Assignment Problem Given a fixed sequence of coils cleaning cleaning cleaning cleaning Setup work necessary if I color changes ; cleaning
Tank Assignment Problem Given a fixed sequence of coils cleaning cleaning cleaning cleaning Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils roller change roller change cleaning &roller change cleaning cleaning cleaning Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils roller change roller change cleaning &roller change cleaning cleaning cleaning Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils 1 2 roller change roller change cleaning &roller change cleaning cleaning cleaning Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils 1 roller change roller change cleaning &roller change cleaning cleaning cleaning 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils tank 1 1 tank 2 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time! concurrent setup work on idle tank saves time
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time! concurrent setup work on idle tank saves time
Tank Assignment Problem Given a fixed sequence of coils, use shuttle to minimize idle time ( tank assignment ) tank 1 tank 2 Setup work necessary if I color changes ; cleaning I coil has larger width than predecessor(s) ; roller change! avoiding setup work saves time! concurrent setup work on idle tank saves time
Tank Assignment for Several Coaters I coating line has multiple coaters oven finish coater oven primer coater finish coater chem coater
Tank Assignment for Several Coaters I coating line has multiple coaters tank 1 tank 2 tank 1 tank 2 k shuttle coaters tank 1 tank 2
Tank Assignment for Several Coaters I coating line has multiple coaters tank 1 tank 2 tank 1 tank 2 k shuttle coaters tank 1 tank 2 I limited resources ; no parallel concurrent setup
Tank Assignment for Several Coaters I coating line has multiple coaters tank 1 tank 2 tank 1 tank 2 k shuttle coaters tank 1 tank 2 I limited resources ; no parallel concurrent setup
Tank Assignment for Several Coaters I coating line has multiple coaters tank 1 tank 2 tank 1 tank 2 k shuttle coaters tank 1 tank 2 I limited resources ; no parallel concurrent setup
Tank Assignment for Several Coaters I coating line has multiple coaters tank 1 tank 2 tank 1 tank 2 k shuttle coaters tank 1 tank 2 I limited resources ; no parallel concurrent setup
Tank Assignment: Interval Model I subsequence run on same tank interval of coils tank 1 tank 2
Tank Assignment: Interval Model I subsequence run on same tank interval of coils tank 1 tank 2 I I weight(i) = time saved due to setup work avoided (vs. no shuttle) i.e. setup setup I I
Tank Assignment: Interval Model I subsequence run on same tank interval of coils tank 1 tank 2 I I weight(i) = time saved due to setup work avoided (vs. no shuttle) i.e. setup setup I + saved time from concurrent setup (if possible) I i.e. setup concurrent setup I I
Tank Assignment Optimization Special case: one shuttle coater! select most profitable, non-overlapping intervals! optimum tank assignment max weight independent set in interval graph! can be solved in polynomial time
Tank Assignment Optimization Special case: one shuttle coater! select most profitable, non-overlapping intervals! optimum tank assignment max weight independent set in interval graph! can be solved in polynomial time General case: k shuttle coaters! need generalized intervals due to concurrent setup! special class of 2-union graphs! optimum tank assignment max weight independent set in special 2-union graph! NP-hard! polynomial time dynamic program for fixed k
Tank Assignment Heuristic Practice Tank Assignment Problem with k coaters e new ideas for cient algorithm far too slow, even for small instances Theory Max Weight Indep. Set in special 2-union graphs polynomial-time algorithm for fixed k ; dynamic programming strongly NP-hard
Visualization/Verification of Solutions At a glance: Sequence, tank assignment, and cleaning schedule +adetailedexcelsheet
Quality of Solutions I How good are our heuristic coating plans?
Integer Program: Variables
Integer Program: Variables z s : for each possible subsequence s (global cost) z s
Integer Program: Variables y i, j z s : y i, j : for each possible subsequence s (global cost) between subseq.s (local cost) z s
Integer Program: Variables x p, j y i, j z s : y i, j : x p, j : for each possible subsequence s (global cost) between subseq.s (local cost) decide whether job j is at position p z s
Integer Program: The Master Problem min X s c sz s + X i,j2j c i,jy i,j X x p,j 1 j 2 J p2p X x p,j apple 1 p 2 P j2j X s3j: p(s,j)=p z s = x p,j p 2 P, j 2 J x last(t),i + x first(t+1),j apple 1+y i,j t =1,...,T 1 x p,j 2 {0, 1} p 2 P, j 2 J y i,j 2 {0, 1} i, j 2 J z s 2 {0, 1} s 2 S I solved by branch-and-price
Results
Results I Reduction of idle times by about 30%! solutions verified in practice I Optimization potential for the makespan below 10%! probably less I Our schedules taught practitioners about their machines! OR/maths brings up solutions never thought of before I Went live in 2010! finally, after countless feedback cycles
Letter of Appreciation
Letter of Appreciation
Why (Mathematical) Optimization? I almost every process shows some improvement potential I active decision support in complex situations is rare I need relief from routine tasks, concentrate on essential I need constant/reliable quality over di erent shifts
Two Worlds: Views, Motivations, Interests academia/research I interesting problem! I every " counts I the problem instances may be infeasible I research takes time I clean, well-defined world industry/services I we need a solution! I we do not care about 2% I we need a solution, no matter what! I results due yesterday I nasty constraints
Tailor-made vs. Standard Software academic solution I project-specific support I your problem is our problem I our solution fits your process I optimization algorithms I active planning suggestions I too cheap standard software I long-term support I your problem means cash I your process fits their solution I heuristics at best I passive visualization I too expensive
Complementary Competences I ideal configuration may take three partners I problem owner I software/it provider I academia/research institution
Data
Are you creative? What would you improve? I objectives may be hard to formulate I don t talk to consultants (too much) I talk to mathematicians computer scientists, programmers!
We have many Constraints, or have we? I we have been doing this for 20 years! I distinguish habits from real constraints I mathematical solutions may look di erent from human plans I be open to the unknown
Humans don t know how to optimize! I don t feel bad about it! I optimization is made for computers, not humans!
Acceptance I talk to everybody involved I convince local expert I if possible: demonstrate potential early I convince management I improve in rounds I usually: optimization supports sta, not replaces them I your task is not easy, why should the solution be?
Summary and Conclusion I optimization may bring your business to the next level I academia o ers more and less I be open!