web-dev-qa-db-ja.com

「バックトラッキング」と「ブランチアンドバウンド」の違い

バックトラックでは、bfsとdfsの両方を使用します。ブランチとバウンドでも、最小コストの検索に加えてbfsとdfsの両方を使用します。

いつバックトラックを使用するか、いつブランチアンドバウンドを使用するか

ブランチアンドバウンドを使用すると、時間の複雑さが減少しますか?

Branch and Boundの最小コスト検索とは何ですか?

13
Varun Teja

バックトラッキング

  1. 問題に対して利用可能なすべての解決策を見つけるために使用されます。
  2. [〜#〜] dfs [〜#〜](深さ優先検索)の方法で状態空間ツリーを走査します。
  3. それは悪い選択をしたことを理解し、バックアップすることによって最後の選択を取り消します。
  4. ソリューションが見つかるまで、状態空間ツリーを検索します。
  5. 実現可能性関数が含まれます。

ブランチアンドバウンド

  1. 最適化問題の解決に使用されます。
  2. DFSまたはBFSのように、ツリーをトラバースできます。
  3. それは、前の解決策がもたらすより良い最適な解決策をすでに持っていることを認識して、その前の解決策を放棄します。
  4. 状態空間ツリーを完全に検索して、最適な解を得ます。
  5. 境界関数が含まれます。
3
Abhishek Dey

バックトラック

  • Backtrackingは、いくつかの計算問題、特に制約充足問題のすべて(またはいくつか)の解を見つけるための一般的なアルゴリズムであり、解の候補を段階的に構築し、各部分候補c(「バックトラック」)を次のように破棄します。 cが有効な解にcompletedできない可能性があると判断するとすぐに。
  • これは、原則として、与えられた問題に対するすべての可能な解決策を提供するためにさまざまな方法で完了することができる部分的な候補のセットを列挙します。 候補の拡張ステップのシーケンスによって、完了は段階的に行われます。
  • 概念的には、部分候補はツリー構造の潜在的な検索ツリーのノードとして表されます。各部分候補は、単一の拡張ステップによってそれとは異なる候補の親です。ツリーの葉は、これ以上拡張できない部分候補です。
  • この検索ツリーをルートから深さ優先順(DFS)で再帰的に横断します。それは悪い選択をしたことを理解し、バックアップすることによって最後の選択を取り消します。
  • 詳細: MSLのバックトラッキングに関するSanjiv Bhatiaのプレゼンテーション

ブランチアンドバウンド

  • branch-and-bound algorithmは、state space searchによる候補解の体系的な列挙で構成されます。候補解のセットは、ルートのフルセット。
  • アルゴリズムは、ソリューションセットのサブセットを表すこのツリーのブランチを探索します。ブランチの候補ソリューションを列挙する前に、ブランチは最適ソリューションのの上限と下限に対してチェックされ、最適なソリューションよりも優れたソリューションを生成できない場合は破棄されますこれまでのところ、アルゴリズムによって見つかりました。
  • 次の方法でツリーをトラバースする可能性があります。
    1. [〜#〜] bfs [〜#〜](Breath First Search)または(FIFO)Branch and Bound
    2. D-Searchまたは(LIFO)Branch and Bound
    3. 最小数検索または(LC)分岐および限定
  • 詳細: MSLのバックトラックに関するSanjiv Bhatiaのプレゼンテーション
1

バックトラック

バックトラッキングは、離散制約充足問題(CSP)を解決するための一般的な概念です。 DFSを使用しています。ソリューションを構築できないことが明確になった時点で、選択肢があった最後のポイントに戻ります。このようにして、すべての潜在的なソリューションが反復され、おそらく少し前に中止される可能性があります。

分岐結合

分岐結合(B&B)は、離散制約付き最適化問題(COP)を解決するための概念です。これらはCSPに似ていますが、制約があるほか、最適化基準があります。バックトラッキングとは対照的に、B&Bは幅優先検索を使用します。

名前の一部であるboundは、B&Bが可能なソリューションのスペースを整理する方法を指します。上限を取得するヒューリスティックを取得します。これを改善できない場合は、サプリツリーを破棄できます。

それ以外に、バックトラックとの違いは見当たりません。

その他の情報源

非常に異なる発言をする他の回答がウェブ上にあります:

  • Branch-and-Boundはプルーニングでバックトラックしています( source
0
Martin Thoma

バックトラッキング:-最適解は、解空間から選択されます。 -DFSを通過。ブランチとバウンド:-BFSトラバーサル。 -ここでは、可能なすべてのソリューションを生成するのではなく、実りあるソリューションのみを生成します。

0
user117172