Integer programming models for mid-term production planning for high-tech low-volume supply chains - de Kruijff, Joost T.; Hurkens, Cor A.J.; de Kok, Ton G. (European journal of operational research, 2018)
•Our model supports different production modes and semi-flexible capacity constraints.•Our first formulation assigns resources explicitly and extends existing literature.•Benders, decomposition results in a second formulation, which assigns resources implicitly.•A maximum flow problem finds feasibility cuts, which are added when needed.•Realistic test cases show that the second formulation solves faster than the first. This paper studies the mid-term production planning of high-tech low-volume industries. Mid-term production planning (6 to 24 months) allocates the capacity of production resources to different products over time and coordinates the associated inventories and material inputs so that known or predicted demand is met in the best possible manner. High-tech low-volume industries can be characterized by the limited production quantities and the complexity of the supply chain. To model this, we introduce a mixed integer linear programming model that can handle general supply chains and production processes that require multiple resources. Furthermore, it supports semi-flexible capacity constraints and multiple production modes. Because of the integer production variables, size of realistic instances and complexity of the model, this model is not easily solved by a commercial solver. Applying Benders’ decomposition results in alternative capacity constraints and a second formulation of the problem. Where the first formulation assigns resources explicitly to release orders, the second formulation assures that the available capacity in any subset of the planning horizon is sufficient. Since the number of alternative capacity constraints is exponential, we first solve the second formulation without capacity constraints. Each time an incumbent is found during the branch and bound process a maximum flow problem is used to find missing constraints. If a missing constraint is found it is added and the branch and bound process is restarted. Results from a realistic test case show that utilizing this algorithm to solve the second formulation is significantly faster than solving the first formulation.