Given n jobs with processing times p₁,...,p_n ∈ ℕ and m ≤ n machines with speeds s₁,...,s_m ∈ ℕ our goal is to allocate the jobs to machines minimizing the makespan. We present an algorithm that solves the problem in time p_{max}^{O(d)} ⋅ n, where p_{max} is the maximum processing time and d ≤ p_{max} is the number of distinct processing times. This is essentially the best possible due to a lower bound based on the exponential time hypothesis (ETH). Our result improves over prior works that had a quadratic term in d in the exponent and answers an open question by Koutecký and Zink. The algorithm is based on integer programming techniques combined with novel ideas from modular arithmetic. It can also be implemented efficiently for the more compact high-multiplicity instance encoding.
Christos KoulamasGeorge J. Kyparisis
Edvin ÅbladAnn‐Brith StrömbergDomenico Spensieri