×
データ構造とアルゴリズム

動的計画法の解説(基本情報技術者シラバス用語)

動的計画法とは

動的計画法(どうてきけいかくほう)とは、複雑な問題を解くためのアルゴリズム設計手法の一つです。英語では「Dynamic Programming(DP)」と呼ばれます。この手法では、大きな問題をいくつかの小さな問題に分割し、それぞれの小さな問題の答えを一度だけ計算して、その結果をメモリなどに記録しておきます。そして、より大きな問題を解く際に、すでに記録してある計算結果を再利用することで、無駄な重複計算をなくし、処理効率を劇的に高めることができます。同じ計算を何度も繰り返してしまうような問題に対して、非常に強力な解決策となります。

具体例

フィボナッチ数列(前の2つの数字を足していく数列:1, 1, 2, 3, 5, 8...)の計算が有名です。単純にプログラムを作ると同じ項の計算を何度も繰り返してしまい処理が遅くなりますが、動的計画法では過去の計算結果を配列に保存(メモ化)して再利用します。