本文へ移動

どうてきけいかくほう

動的計画法

複雑な問題を小さな部分問題に分割し、計算結果を記録して再利用することで効率的に解くアルゴリズムです。再帰的な処理で計算の重複を避け、段階的に最適解を導きます。

詳しい説明

動的計画法とは、複雑な問題を、より小さな部分問題に分割し、それぞれの答えを記録しながら効率的に解くアルゴリズム手法です。再帰的に解を求める際に同じ計算を繰り返さないことで、計算量を劇的に減らせます。

部分問題の結果をテーブルなどに保存し、再利用することをメモ化と呼びます。全体の最適解を求める際に、段階的な最適解を積み上げていく考え方であり、最短経路問題やナップサック問題などで活用されます。

貪欲法との違いがポイントです。貪欲法は局所的な最適解を積み重ねますが、動的計画法は全体を考慮して最適解を導きます。試験では計算量の削減効果や、具体例としてどの問題に適しているかが問われます。

試験で問われること

ITパスポート試験

  • 問題解決の手法としての基本的な考え方が問われます。
  • 部分問題に分割して解くメリットが問われます。
  • 貪欲法との違いを理解します。

基本情報技術者試験

  • 計算量を減らすアルゴリズムとしての重要性が問われます。
  • 具体的なアルゴリズム問題で適用の可否が問われます。
  • 再帰処理とメモ化の関連を理解します。