この記事はWeChatの公開アカウント「JS Daily Question」から転載したもので、著者はHuihuiです。この記事の転載についてはJS Daily Question公式アカウントまでご連絡ください。 1. 貪欲アルゴリズム貪欲アルゴリズムは、貪欲アルゴリズムとも呼ばれ、アルゴリズム設計における考え方の一種です。 各段階は局所的な最適選択であり、全体最適を達成することを期待しているが、結果は必ずしも最適ではない。 コイン交換の例を見てみましょう。1元、2元、5元のコインを複数持っていて、それを一定の金額に交換したいのですが、必要なコインの最小数は 今 11 元を両替したい場合、貪欲アルゴリズムの考え方に従って、まず最も額面が大きい 5 元硬貨を選択して両替します。すると、11 = 5 + 5 + 1 となり、これが最適な選択肢となります。 しかし、持っている硬貨の額面が 1、3、または 4 で、それを 6 元に交換したい場合、貪欲アルゴリズムによれば、6 = 4 + 1 + 1 が選択されますが、これは最良の選択ではありません。 上記の例から、貪欲アルゴリズムにはいくつかの欠点があることがわかります。貪欲アルゴリズムが使用されるシナリオには、次のような特徴があります。 貪欲法によって問題を解決できる場合、貪欲法が一般的にその問題を解決する最善の方法となります。 貪欲アルゴリズムを選択するかどうかは、主に次の 2 つの特性があるかどうかによって決まります。
2. バックトラッキングアルゴリズムバックトラッキング アルゴリズムもアルゴリズム設計におけるアイデアです。問題の解決策を徐々に見つけて構築する戦略です。 バックトラッキング アルゴリズムは、問題に対する可能な解決策から始まります。それが機能しない場合は、問題が解決されるまでバックトラックして別のアクションを選択します。 バックトラッキング アルゴリズムを使用する問題には、次の特性があります。
一般的な疑似コードは次のとおりです。
次の 3 つの問題の解決に重点を置きます。
たとえば、古典的なバックトラッキング アルゴリズムは、次のように完全な順列問題を解決するために使用されます。 重複する数字のない配列 nums の場合、すべての可能な順列を返したいとします。この問題を解決するアイデアは次のとおりです。
コードは次のとおりです。
結論分割統治法と動的プログラミングについても学習しました。次は貪欲アルゴリズムとバックトラッキング アルゴリズムについて学習します。 分割統治法、動的計画法、貪欲戦略のソリューションは次のとおりです。 これら 3 つに対応する典型的な問題は次のとおりです。 参考文献 https://zh.wikipedia.org/wiki/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95 https://leetcode-cn.com/problems/permutations/solution/dai-ma-sui-xiang-lu-dai-ni-xue-tou-hui-s-mfrp/ https://cloud.tencent.com/developer/article/1767046 |
<<: 人間の農業の将来は主にロボットに依存することになるのでしょうか?基本的に人間の介入は必要ありません
Google からもう 1 人の中核社員が退職することが明らかになりました。今回逃亡したのは、Dee...
ロボットが人間のように行動するためには、人間を理解する必要があります。多くの場合、それは妥協しなけれ...
[51CTO.comからのオリジナル記事]最近、UiPathとSF Supply Chainは共同オ...
年末が近づくにつれ、多くの研究機関が2020年のトレンド予測を発表しています。これらの予測の多くは、...
最近、GPT-4 と Copilot を研究に積極的に使用している数学の専門家 Terence Ta...
最近、Stability AIの創設者兼CEOであるEmad Mostaque氏が再び衝撃的な発言を...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
1. AIフレームワークの重要性AIフレームワークは、人工知能のオペレーティングシステムであり、基本...
[51CTO.com クイック翻訳]経済社会の発展に伴い、テクノロジーはますます複雑になっています...