記事のディレクトリ
このチュートリアルでは、欲張りアルゴリズムとは何かを学びます。さらに、欲張りアルゴリズムの例があります。
欲張りアルゴリズムは、将来もたらされる結果を考慮することなく、現在利用可能な最良のオプションを選択することによって問題を解決する方法です。言い換えれば、ローカルの最良の選択を通じて、目標はグローバルな最良の選択を達成することです。
このアルゴリズムは、すべての問題に最適な選択ではない場合があります。場合によっては、間違った結果が生成されることがあります。
アルゴリズムはトップダウンアプローチを使用します。
このアルゴリズムの主な利点は次のとおりです。
- アルゴリズムの説明は簡単です。
- このアルゴリズムのパフォーマンスは、他のアルゴリズムよりも優れている場合があります(すべての場合ではありません)。
実行可能解
実行可能解は、問題を解決するための最適解を提供します。
お元気ですか
- まず、答えを含む解集合は空です。
- 各ステップで、アイテムがソリューションセットに追加されます。
- ソリューションセットが実行可能である場合は、現在のアイテムを保持します。
- それ以外の場合、アイテムは拒否され、考慮されなくなります。
例
问题:您必须使用最少数量的硬币进行零钱找零。
金额:28美元
可用硬币:
5美元硬币
2美元硬币
1美元硬币
解決:
- 空のソリューションセットsolution-set = {}を作成します。
- コイン= {5、2、1}
- 合計= 0
- 合計≠28の場合、以下の操作を行ってください。
- 合計+ C <28となるコインからコインCを選択します。
- C +合計> 28の場合、解を返しません。
- それ以外の場合、sum = sum + C。
- 解集合にCを追加します。
5回の反復の後、ソリューションセットには5 5USDのコインが含まれます。次に2ドル硬貨を取得し、最後に1ドル硬貨を取得します。
欲張りアルゴリズムの適用
- ソートを選択
- ナップサック問題
- 最小全域木
- 単一ソースの最短経路問題
- ジョブスケジューリング問題
- プリムの最小スパニングツリーアルゴリズム
- クラスカルの最小全域木アルゴリズム
- ダイクストラの最小全域木アルゴリズム
- ハフマン符号化
- フォード-フルクソンアルゴリズム
参考文献
[1] ParewaLabsPvt。Ltd.GreedyAlgorithm[EB / OL] .https://www.programiz.com/dsa/greedy-algorithm,2020-01-01。
[2] Baidu。GreedyAlgorithm[EB / OL] ] .https://baike.baidu.com/item/greedyアルゴリズム/5411800,2021-02-22。[3
]ビッグケーキ。古典的なアルゴリズムのアイデア5-欲張りアルゴリズム[EB / OL] .https:// zhuanlan。 zhihu.com/p/72734416、2020-11-05。