An $O(n\log n)$ Algorithm for Single-Item Capacitated Lot Sizing with a One-Breakpoint All-Units Discount and Non-Increasing Prices
Kleitos Papadopoulos
TL;DR
The paper tackles the single-item capacitated lot sizing problem with a 1-breakpoint all-units quantity discount under non-increasing prices, introducing a hybrid dynamic programming approach that yields an $O(n\log n)$ algorithm. The key idea is a compact, segment-based representation of DP states, augmented with MV thresholds that enable efficient dominance checks and state pruning. The authors prove structural lemmas—terminus dominance, contiguity, and same-slope dominance—that justify compressing solution sets into segments and performing bulk updates, line-merges, and lazy holding-cost shifts. An augmented BST stores these segments, supporting $O(\log n)$ updates and queries, which together yield the claimed time bound and enable practical extensions, including handling linear holding costs and $B(i)>2Q$ scenarios. The result improves over the previous $O(n^2)$ baseline and offers a general dynamic-programming technique that could extend to related lot-sizing problems.
Abstract
This paper addresses the single-item capacitated lot sizing problem with a 1-breakpoint all-units quantity discount in a monotonic setting where the purchase prices are non-increasing over the planning horizon. For this case, we establish several novel properties of the optimal solution and develop a hybrid dynamic programming approach that maintains a compact representation of the solution space by storing only essential information about the states and using linear equations for intermediate values. Our algorithm runs in \(O(n\log n)\) time, where \(n\) denotes the number of periods. Our result is an improvement over the previous state-of-the-art algorithm, which has an \(O(n^2)\) time complexity.
