Full paper
Full paper

The Marriage of Dynamic Programming and Integer Programming

John F. Raffensperger


Dynamic programming (DP) has long been used to solve optimisation problems. Though sometimes suffering from the curse of dimensionality, DP has a dowry of integrality. Integer programming (IP) often suffers interminable branch and bound, but brings the gift of flexibility. DP tends to be hard to program, but IP allows us to easily write models that are hard to solve. Until recently, DP and IP have only courted in specialised algorithms, usually column generation, where the IP (or a linear program) was a master and the DP was a subproblem.

Recently, R. Kipp Martin showed how DP and IP can be married, using his technique of variable redefinition. A dynamic program can often be written as a network linear program (LP). When viewed this way, we can use the underlying DP network structure to reformulate difficult IPs into new models that have better bounds and solve more quickly. The marriage of DP and IP allows the strengths of both types of algorithms to be combined. There are applications wherever DPs are used, allowing the DP modeler to solve more interesting problems than with DP alone. Though I'll leave out many technical details, this paper is a practical tutorial in Martin's variable redefinition. I'll discuss lot sizing, cutting stock, scheduling, and vehicle routing.