貪欲法とは

どんよくほう

各段階で、その時点で最もよく見える選択を1つ選び、後から見直さずに解を組み立てるアルゴリズムの設計方法。速くて単純だが、最適解が得られるのは、硬貨の組み合わせが日本の硬貨のような場合や、最小全域木のクラスカル法のように、問題が特別な性質を持つときに限られる。

「貪欲法」は、1分野の2問の練習問題に出てきます(データ構造とアルゴリズムなど)。

この用語の分野: データ構造とアルゴリズム

貪欲法の練習問題に挑戦

1円、4円、6円の3種類の硬貨で8円を支払う。大きい硬貨から使えるだけ使う貪欲法で決めたときの枚数と、最少の枚数の関係として正しいものはどれか。

  1. A貪欲法でも最少の2枚になる
  2. B貪欲法では3枚になり、最少の2枚にならない
  3. C貪欲法では3枚になり、これが最少である
答えと解説を見る

正解:B. 貪欲法では3枚になり、最少の2枚にならない

貪欲法では、まず6円を1枚使い、残り2円を1円2枚で払うので3枚です。しかし、4円を2枚使えば2枚で払えます。このように貪欲法は、その時点で最もよい選択を積み重ねるだけなので、硬貨の組み合わせによっては最適になりません。動的計画法で「0円から8円までの各金額を払う最少枚数」を小さい金額から順に表にすれば、必ず最少の枚数が求まります。なお、1、5、10、50、100、500円のような日本の硬貨の組み合わせでは、貪欲法でも常に最少になります。

解説の中の「貪欲法」

「貪欲法」が出てくる問題(2問)

  1. 1円、4円、6円の3種類の硬貨で8円を支払う。大きい硬貨から使えるだけ使う貪欲法で決めたときの枚数と、最少の枚数の関係として正しいものはどれか。
  2. 容量8のナップサックに、(重さ, 価値) が (2, 3)、(3, 4)、(4, 5)、(5, 6) の4つの品物から選んで入れる。各品物は1つずつしかなく、分割できない。重さの合計が8以下で、価値の合計の最大値はいくらか。

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

動的計画法 安定ソート キュー 計算量 再帰 スタック ダイクストラ法 二分探索 二分探索木 二分ヒープ

用語集の一覧へ