C ++(データ構造及びアルゴリズム)76:---貪欲アルゴリズム(貪欲アルゴリズム)

  • また、貪欲アルゴリズム貪欲アルゴリズムとして知られています

まず、最適化問題

  • この記事では、アルゴリズムを説明および実施例は、背後にある「最適化問題」それぞれの最適化問題のセットが含まれ、「制限条件」「最適化機能」ミートと呼ばれる問題解決プログラムの制約「実現可能な解決策」実現可能なソリューションを実現することが可能な最適化機能を最高の価値と呼ばれ、「最適解」

第二に、貪欲アルゴリズムの考え方

  • 貪欲アルゴリズムでは、我々はする必要が徐々に最適なソリューションを構築します各ステップは、我々は、最適な意思決定を行うために、特定の基準です。すべての意思決定のステップではなく、後工程で変更すること。標準的な意思決定が呼び出され基づいて貪欲ガイドライン

第三に、変更を探しているの練習

問題の説明

  • コインの最小数に応じて変化する子供を見つけることを期待してお菓子セールスマンを買うためにドルを使用しているお客様。そこに25セント、10セント、5セント及び1セント硬貨の公称値であり、その数は限定されるものではないと仮定
  • あなたがコイン店員を選択するたびに、変更を探してアップします。選択は貪欲基準に基づいています:コインの合計数を超えないでは、探しているたびに、可能な限り最大の選択のインタビューコインコインの総数は変更を探してequal'reの合計数を補うためになるまで、
  • 問題の説明:顧客は67セントを探していると仮定

ステップを解決するために貪欲アルゴリズム

  • 67セントを探している顧客に仮定します。
    • 最初の2つのステップは、2枚の$ 25コインを選択した(第3工程を超える67セントに、$ 25に別段の合計を選択することができません)
    • ステップ10セント硬貨選択
    • 5セント硬貨を選択する第4のステップ
    • 最後のステップは、2つの1セント硬貨であります
  • 小銭アウトこのこすり、またはコインの最小数に少なくとも近い:貪欲アルゴリズムは、私たちに感じを与えます

第四に、機械スケジューリングの実用化

アプリケーション分析

  • ありnはタスクの数、マシンは、マシン上のタスク処理に限定されるものではありません。各タスクの開始時間は、Si、Fi回線、Siの<Fiのためのタスク完了時間です。【のSi、Fiは】タスクiは処理期間
  • タスクの複製:二つのタスクの重複重複する2つのタスクがiとj、場合にのみ、処理期間。周期例えば期間[1、4] [2,4]オーバーラップ、および[1,4]と時間[4,7]ないオーバーラップ
  • 一つのタスク割当方式が可能である:任意時間処理せいぜい1つのタスクのみで、各マシン、すなわち、同じマシンに割り当てられたタスクを重ねることなく、2つの期間を指し
  • 最適配分:それは、最小限の実行可能なディストリビューションプランにマシンを使用することを指し

問題の実際の記述

  • gまでの番号N = 7つのタスク、以下に示す、そのように処理時間とします。

  • 問題の説明:マシンが限定されるものではなく、それは、機械実行に関するこのタスク7に割り当てられ、必要な機械の総数は、使用(必須ではない時間)最小でなければなりません

ステップを解決するために貪欲アルゴリズム

  • グリードのガイドラインの手順:「古い」マシンは、それに割り当てられたタスク使用可能な場合は、タスクの開始時刻に応じました。それ以外の場合は、タスクは「新しい」マシンに割り当てられています
    • 古いマシン手段:使用されてきました
    • 新しいマシン:再びマシンが使用されていません
  • タスクの開始時刻と終了時刻は、最後の実行結果は、以下に示す工程の全体的な実装におけるタスクの全て、3台のマシンを使用しました。

第五に、最短経路の実用化

問題の説明

  • 以下に示すように、ネットワークに二つの図形番号との間の距離は、ノードを表します
  • さて、このようなAの需要があります:別のポイントへの特定のポイントに到達し始めてから、パス上のすべてのステップが順番に参加します。これは、現在のパスをqをピークに達したが、まだ終わりに達していないと仮定しました。ときにパス選択の要求:最近関連するQを選択して、現在の頂点がパスにありません

ステップを解決するために貪欲アルゴリズム

  • 頂点1から5ピークと仮定すると、貪欲アルゴリズム溶液です。
    • ステップ1. 2の1位> 3パスの長さを選択します
    • ステップ2:3-> 2パスの長さを選択します
    • 第3のステップは、1の4-> 2経路長を選択しています
    • パスのステップ第4の選択> 5 2-、5の長さ
    • 10のこのよう全長
  • 注(キー):問題の説明と貪欲アルゴリズムによると、パスのうち最終的な選択は10ではなく、最短経路(最適ではありません)。、例えば、1-> 4-> 5このパス、6の全長を行ってもよいです。だから、貪欲アルゴリズムは必ずしも最適解ではありません

他の6例

  • 例えば、ハフマンツリーアルゴリズム(https://blog.csdn.net/qq_41453285/article/details/103649092)、二分木の最小外経路長を確立するために、N-1重み付けステップを使用して、各ステップは、2つのバイナリツリーであろう1にまとめ。貪欲アルゴリズムが使用されるアルゴリズムである:最小の利用可能な重量バイナリツリーから2つのツリーのツリー組成物であります
  • 例えば、LPTスケジューリングルール(https://blog.csdn.net/qq_41453285/article/details/103649089も貪欲アルゴリズム)。これは、スケジュールnステップN操作に使用されます。まず、ジョブの長さは時間によってソートされました。次のタスクは、各ステップがあるマシンとして割り当てられています。:貪欲な基準が基づいている現在のスケジュール最短時間。新しいジョブの終了は、最初のマシン(すなわち、第一のアイドルマシン)スケジュール。この問題は、貪欲アルゴリズムが最適解を保証するものではないことに注意してください

7人は、の概念に属し

  • 上記の問題のいくつかを知ることができ、貪欲ルールはありません(上記最短経路問題など)に最適なソリューションを保証するが、それは常に近くに通常の状況下で最適なソリューションにあります。これは経験則です。得られた結果は、このアルゴリズムが呼び出され、近い最適解に通常ある「ヒューリスティック」
  • ヒューリスティックと最高の犯罪の間の限られた関係が存在する場合、私たちは、この発見的方法があり呼び出す「限られた機能を」
  • 定義されたプロパティを定義したヒューリスティックを持つことに言及、「近似アルゴリズム」

八、貪欲アルゴリズムの実用化

リリース1525元の記事 ウォンの賞賛1085 ビュー45万+

おすすめ

転載: blog.csdn.net/qq_41453285/article/details/104439879