×
アルゴリズムとデータ構造
動的計画法には、大きく分けて「トップダウン方式」と「ボトムアップ方式」の2つのアプローチがあります。「トップダウン方式」では、本来求めたい大きな問題からスタートし、再帰関数を用いて小さな問題へと分解していき、一度解いた小さな問題の答えを辞書や配列に記録(メモ化)して再利用します。一方、「ボトムアップ方式」では、最も単純な初期状態(基本ケース)から順番に計算を行い、結果をテーブルに埋めていきながら、最終的に求めたかった大きな問題の解へ到達します(一般的に狭義のDPテーブル構築はこちらを指します)。動的計画法を適用するための条件として、「部分構造最適性」(大きな問題の最適解が、分割された小さな問題の最適解を組み合わせて構成できること)と、「部分問題の重複」(小さな問題が何度も繰り返し現れること)の2点が必要とされます。

試験でのポイント