バックトラッキングアルゴリズム: 組み合わせ問題を解決しましょう!

バックトラッキングアルゴリズム: 組み合わせ問題を解決しましょう!

[[379493]]

バックトラッキングアルゴリズムをほとんど忘れてしまいましたか?組み合わせ問題を解く方法をまだ覚えていますか?ハハハハ

バックトラッキング アルゴリズムは、実際にはブルート フォース検索です。ブルート フォース検索であるなら、なぜバックトラッキングを使用する必要があるのでしょうか。それは、ブルート フォース検索で解決できる問題もあり、これより良い方法がないからです。

2 つの整数 n と k が与えられた場合、1 ... n 内の k 個の数値のすべての可能な組み合わせを返します。

この問題を解決するためにネストされた for ループを使用する場合、n が 100、k が 50 であれば、50 層の for ループが存在することになります。この時点で、単純なブルート フォースは機能しないことがわかります。

ここでバックトラッキング アルゴリズムが登場します。

バックトラックアルゴリズムで再帰を使用して、for ループのカスケードとネストを実行します (k 層の for ループを開くと理解できます)

各再帰で for ループがネストされている場合、再帰によって多層ネストされたループの問題を解決できます。

私の記事「バックトラッキング アルゴリズム: 組み合わせ問題の解決!」でも、バックトラッキング 3 部作について説明しました。この方法によれば、バックトラッキング アルゴリズムは難しくないことがわかります。

問題リンク: https://leetcode-cn.com/problems/combinations/

バックトラッキング アルゴリズムのテンプレートは次のとおりです。

  1. void バックトラッキング(パラメータ) {
  2. if (終了条件) {
  3. 結果を保存します。
  4. 戻る;
  5. }
  6.  
  7. for (select: 現在のレイヤーセット内の要素 (ツリー内のノードの子の数はセットのサイズです)) {
  8. 処理ノード。
  9. backtracking(パス, 選択リスト); // 再帰
  10. バックトラック、処理結果の取り消し
  11. }
  12. }

この記事はWeChatの公開アカウント「Code Thoughts」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、Code Thoughts の公開アカウントにご連絡ください。

<<:  目録:2021年1月の人工知能分野における資金調達活動のリスト

>>:  2021年に最も役立つ顔認識ソフトウェア9選をチェック

ブログ    

推薦する

老黄が勝利! Nvidia H100の注文は24年待ち、マスク氏も黙っていられない

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

MetaがCMUと提携して最も強力な「汎用ロボットエージェント」を開発するのに2年かかりました。

爆発的な人気を博している大規模モデルは、「汎用ロボットエージェント」に関する研究を再構築しています。...

AI テクノロジーはヘルスケアの変革にどのように役立つのでしょうか?

【51CTO.comオリジナル記事】近年、「人工知能」(AI)という言葉が頻繁に登場し、今日ではこ...

...

複数の機械学習モデルインスタンスを素早く比較する

導入機械学習プロジェクトに取り組むとき、すべてのデータ サイエンティストが直面しなければならない質問...

自動運転がまだ人間から解放されていないとき

「不適切なタイミングで車線変更をすることがよくあるのですが、状況を救うためにハンドルを切ろうとすると...

...

...

プログラミング面接で学ぶべきアルゴリズム概念トップ10のまとめ

コーディング面接でよく聞かれるアルゴリズム関連の概念トップ 10 を紹介します。簡単な例を使ってこれ...

乱雑なファイルキャビネットとはお別れしましょう! AI ドキュメント管理システムの 7 つのメリット

[[341868]]従来のファイリングキャビネットは、契約書、ベンダー契約書、入社書類、その他の書類...

AI+ビデオ分析: ユビキタスセキュリティリスクのリアルタイム監視

[[352986]] 2020 年の多くの運用上の課題を踏まえて、公益事業会社は、運用する物理的およ...

...

...