コンテンツへスキップ
uencoder

Dynamic Programming

動的計画法は問題を重複する部分問題へ分解し、その解を保存して再計算を避ける。ボトムアップまたはトップダウン(メモ化)で解く。

目的

最適部分構造とオーバーラップする部分問題を持つ最適化問題を効率的に解く。

メカニズム

最適部分構造を特定する:最適解は部分問題の最適解を含む。ボトムアップではサイズの昇順に表を埋め、トップダウンではメモ化付き再帰を用いる。古典例:ナップサック、最長共通部分列、編集距離、連鎖行列積。

ユースケース

  • アルゴリズム設計
  • 最適化タスクの解決
  • シーケンス解析

関連用語

References