貪欲アルゴリズム
貪欲アルゴリズムは、実際に最適化問題を解決するための一般的なアルゴリズムです。
貪欲アルゴリズム
貪欲アルゴリズムは、問題を解決し、その貪欲な戦略を取得するためのいくつかの戦略を貪欲に選択することによって、問題の初期状態、最適値(または最適な設定)から開始しています。
すべての意思決定、選択はグローバル必ずしも、一定の制約や、よりよい解決策の下で部分的にしか最適解をしたときに、他の言葉では、最適な戦略のための貪欲アルゴリズムは、現在の意味での戦略を採用します最適またはよりよい解決策。しかし、いくつかの問題は、最適なソリューションまたはより良い解を得るために貪欲アルゴリズムすることができます。
第二に、貪欲アルゴリズムの特徴
1.貪欲選択
いわゆる貪欲選択肢が同じルールを適用し、類似したに元の問題が、より小さなサブ問題で、顔の各ステップは、現在、最良の選択と思われるが、この選択はのみに依存して行われています選択はしなかった選択に依存しません
2.最適な下部
アルゴリズムを実行する場合、結果は最適解(すなわち、現在の問題が取得されるたびに局所最適解)が、唯一の局所最適解を含む大域的最適解を満たすためにために、最終的な結果が得られることを保証する場合は、最適な解決策であります
つまり、それは最適なローカルのグローバル最適で起動することができます
第三に、欲のいくつかの簡単な例
1.最適な負荷の問題
nはオブジェクト、i番目のオブジェクトの重みwは、できるだけオブジェクトを選択し、C以下での総重量よう
[思考]コーチング
オブジェクトのみの数を気にするので、それは単に小から大へのすべてのオブジェクトの重量によって、光の重コストのために装備されていない、各オブジェクトが順次嵌合するまで選択されています。
貪欲戦略:最初の最軽量と。
2.部分的なナップザック問題
n個のオブジェクトが場合に合計値ができるだけCの総重量が同じ高超えないように、i番目の物体の重量によって、値、wがあり、そこです。各オブジェクトは、一部のみを除去することができ、重み値は比例計算します
[思考]コーチング
優先順位は、重量になるまで、ちょうどCとして、最大の比の値と重みを選出します
貪欲戦略:最初の費用対効果を選択
3.ボートの問題
N個の個別の、I-Wの個々の重量があり、各容器は、負荷Cであり、それは、必要なローディング容器の実施形態の最小値と、二人にすべてを取ることができます
[思考]コーチング
それ以外の場合は、彼が最も重いと彼の乗っ中から選択することができるはず、彼はそれを取るべきか、誰もがあなたが唯一のボートの人が乗ることができる、彼と一緒に乗ることができない場合は最軽量の人、私を考えてみましょう、と誰人J。ただ、最小限の廃棄物の「前に」、このような選択をします
貪欲戦略:重いと軽い人のペアリング
第四に、古典貪欲アルゴリズムの適用
1.ばらばら間隔の問題を選択
与えられていないN開区間(I 、B I )、複数のセクションを選択しようとすると、そのような二十から二これらの間隔の共通点
[思考]コーチング
まず、小から大に時間の終わりに基づいて、順番にアクティブな紛争や選挙で選択されていますがない場合には、それぞれの活動を検討するために、または選択しません
それは背中にほとんど影響を要します
[実施例] 1422年:[1]例えば、活動スケジュール
、所与のN閉区間、各セクションは、少なくともポイント(異なるセクションを含む点が同じであってもよい)を有しているように、シャフトのできるだけサイト選択の[B]、番号
[アイデア]コーチング
間隔に応じて、第一の 大端位置まで小さいから 。ゾーン1からゾーンnに:現在の間隔、セットの数がそれをカバーできない場合は、端部が追加の数を設定します
貪欲戦略:最後の1を取ります。
3.問題の範囲をカバー
nは[a、b]は、指定されたセグメント区間[S、T]のように少しの範囲をカバーするように選択された間隔閉じ
[思考]コーチング
全間隔小から大へ、左ポイント各インターバルを処理するために、。各選択インターバルカバレッジポイントの最高点は右端の座標と選択された間隔は、これまでTが含まれていまで右エンドポイントは、Sの更新間隔座標
貪欲戦略:■現時点では、Bの満足[I]≤sを見つけるために[i]が最大値に
4.フローショップスケジューリング問題
Nは、ジョブを処理するパイプラインで二つのマシンM1及びM2で構成される完了しました。私は最初のM1に取り組んで時間を費やす必要があります愛各ジョブは、その後、M2上で処理時間BIを取ります
使い切っジョブN M2の最短の機械加工における合計時間に機械M1に処理、ジョブから出発して、n個の動作の処理手順を決定します。
[思考]コーチング
直感的に、最適なスケジュールはできるだけ短いアイドルM1、M2のアイドル時間をさせません。
ジョンソンアルゴリズム。
N1は、<B、ジョブのセットが提供され、N2a≥bジョブが設定され、ジョブがソートN1はN2非増加系列bを、そのジョブN1 N2最適な動作構成におけるジョブに従ってソート非減少順でありますオーダー。
プログラムアルゴリズムは、時間の複雑さはO(nlogn)で、実装が容易です
締め切りや罰則スケジューリング5.単位時間タスク
n個のタスクは各タスクは、iがデッドラインDをタスク時間単位を実行する必要がある(1つの≤D iは ≤n)が要求されたタスクD iは時ことを示している私が 終わりに完了することが、誤ったペナルティは、W iがどうかを示します私は時間dでませタスクI完了の終了前に、ワットにつながる私罰金
すべてのタスクの実行順序決定は、そのような最小ペナルティーその
[コーチング]アイデアは
最低限の罰則を作るためには、明らかに私たちはすべきワットの値を大きくしてタスクを完了しようとしない
、時間我々は良い行の順序に従ってスケジューリングすることができるタスクに続いて、wを降順でタスクを並べ替えることができます。
ルールのアレンジ:私は内の[i]をD、および後方にしようと、両方の時間で処理タスクは、私の時間が満たされた場合には、このタスクハンドルを放棄しました。
[実装]
速い下降微粉の量に応じて①最初の行
②取引各タスクの順序、構成が最新の時間を探している場合、そうでない場合、上の最後の空孔に