Skip to main content
QUICK REVIEW

[論文レビュー] Capacitated Dynamic Programming: Faster Knapsack and Graph Algorithms

Kyriakos Axiotis, Christos Tzamos|arXiv (Cornell University)|Feb 18, 2018
Optimization and Packing Problems参考文献 16被引用数 10
ひとこと要約

本稿では、部分問題における凸性を活用することで、ナップサック問題の実行時間を O(Tn) から O(TD) に削減する、新しい動的計画法を提案する。ここで D は異なる重みの個数である。重みまたは価値が有界である場合、容量 T に依存しない高速なアルゴリズムが得られ、条件付き下界に一致し、k-スパース Δ-分離列に対して線形時間解法が可能になる。

ABSTRACT

One of the most fundamental problems in Computer Science is the Knapsack problem. Given a set of n items with different weights and values, it asks to pick the most valuable subset whose total weight is below a capacity threshold T. Despite its wide applicability in various areas in Computer Science, Operations Research, and Finance, the best known running time for the problem is O(Tn). The main result of our work is an improved algorithm running in time O(TD), where D is the number of distinct weights. Previously, faster runtimes for Knapsack were only possible when both weights and values are bounded by M and V respectively, running in time O(nMV) [Pisinger'99]. In comparison, our algorithm implies a bound of O(nM^2) without any dependence on V, or O(nV^2) without any dependence on M. Additionally, for the unbounded Knapsack problem, we provide an algorithm running in time O(M^2) or O(V^2). Both our algorithms match recent conditional lower bounds shown for the Knapsack problem [Cygan et al'17, Künnemann et al'17]. We also initiate a systematic study of general capacitated dynamic programming, of which Knapsack is a core problem. This problem asks to compute the maximum weight path of length k in an edge- or node-weighted directed acyclic graph. In a graph with m edges, these problems are solvable by dynamic programming in time O(km), and we explore under which conditions the dependence on k can be eliminated. We identify large classes of graphs where this is possible and apply our results to obtain linear time algorithms for the problem of k-sparse Delta-separated sequences. The main technical innovation behind our results is identifying and exploiting concavity that appears in relaxations and subproblems of the tasks we consider.

研究の動機と目的

  • 古典的ナップサック問題における長年の O(Tn) 実行時間ボトル neck を克服すること。
  • ナップサックおよび関連問題の動的計画法において、合計容量 T に依存しないようにすること。
  • 容量制約付き動的計画法における k-依存性を除去できる構造的条件を同定すること。
  • 凸性および構造的性質を用いた、容量制約付き動的計画法問題を解く一般枠組みの構築。
  • 近年のナップサックおよび関連問題における条件付き下界を一致または上回ること。

提案手法

  • 異なる重みでアイテムをグループ化し、各グループを独立に処理する。等しい重みを活用して、各グループで O(T) 時間で処理を実行する。
  • 緩和された部分問題およびナップサック問題の緩和における凸性を活用し、効率的なアルゴリズムを設計する。
  • 問題をMonge重み付きDAGにおける最大報酬経路問題に変換する。
  • Monge性質と分割統治法を用いて、O(m log n log(nM)) 時間で経路を効率的に計算する。
  • 経路構造を保持する O(n) 時間のDAGを構築し、k-スパース Δ-分離列に対して線形時間計算を可能にする。
  • Steinitzの補題を用いて、無制限ナップサック問題において T に依存する対数因子を除去する構造的性質を導出する。

実験結果

リサーチクエスチョン

  • RQ1異なる重みの個数 D が小さい場合、古典的ナップサックアルゴリズムの O(Tn) 実行時間を改善できるか?
  • RQ2重みまたは価値が有界である場合、ナップサック問題において容量 T に依存しないか?
  • RQ3容量制約付き動的計画法における k-依存性を除去できる構造的条件は何か?
  • RQ4(max,+)-畳み込みに基づくナップサック問題の条件付き下界を回避できるか?
  • RQ5どの種のグラフが、k本の辺を持つ最大報酬経路の線形時間計算を可能にするか?

主な発見

  • ナップサック問題は、D が異なる重みの個数であるとして、O(TD) 時間で解ける。D ≪ n の場合、O(Tn) よりも高速になる。
  • 重みが有界な場合、M が最大重みであるとすると、O(nM²) 時間で実行可能。価値が有界な場合、V が最大価値であるとすると、O(nV²) 時間。Pisingerの O(nMV) アルゴリズムより高速。
  • 無制限ナップサック問題は、O(M²) または O(V²) 時間で解け、既知の条件付き下界と一致する。
  • k-スパース Δ-分離列に対して、凸性とDAG構造を活用することで線形時間アルゴリズムが達成可能。
  • Monge重み付きDAGでは、k番目のトロピカル行列累乗の任意の行または列が Õ(m) 時間で計算可能。標準的なDPの O(km) よりも高速。
  • (max,+)-畳み込みの条件付き下界に一致しており、現在の複雑性仮定下でほぼ最適であることを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。