A computationally efficient FPTAS for convex stochastic dynamic programs

Nir Halman, Giacomo Nannicini, James Orlin

Research output: Contribution to journalArticlepeer-review

10 Scopus citations

Abstract

We propose a computationally efficient fully polynomial-time approximation scheme (FPTAS) to compute an approximation with arbitrary precision of the value function of convex stochastic dynamic programs, using the technique of K-approximation sets and functions introduced by Halman et al. [Math. Oper. Res., 34, (2009), pp. 674-685]. This paper deals with the convex case only, and it has the following contributions. First, we improve on the worst-case running time given by Halman et al. Second, we design and implement an FPTAS with excellent computational performance and show that it is faster than an exact algorithm even for small problem instances and small approximation factors, becoming orders of magnitude faster as the problem size increases. Third, we show that with careful algorithm design, the errors introduced by floating point computations can be bounded, so that we can provide a guarantee on the approximation factor over an exact infinite-precision solution. We provide an extensive computational evaluation based on randomly generated problem instances coming from applications in supply chain management and finance. The running time of the FPTAS is both theoretically and experimentally linear in the size of the uncertainty set.

Original languageEnglish
Pages (from-to)317-350
Number of pages34
JournalSIAM Journal on Optimization
Volume25
Issue number1
DOIs
StatePublished - 2015
Externally publishedYes

Bibliographical note

Publisher Copyright:
© 2015 Society for Industrial and Applied Mathematics.

Keywords

  • Approximation algorithms
  • Discrete convexity
  • Dynamic programming
  • Fully polynomial-time approximation scheme
  • Inventory control

Fingerprint

Dive into the research topics of 'A computationally efficient FPTAS for convex stochastic dynamic programs'. Together they form a unique fingerprint.

Cite this