BFSグラフ理論の概要

BFS Key_wordに関しては1:

①hash圧縮状態又は記録状態プルーン状態②BFS逆③④双方向BFS⑤⑥図の特別な初期化VISアレイは動的優先度キュー⑦⑧桁検索Refine_Resultsを検索

ここでは一つ一つを説明しています:

圧縮された状態または記録状態を1.hash:

  あまり状態の境界とも困難は、トピックや状態空間要件の広い配列は、より厳しい格納するとき、状態への圧縮の状態を保存するのに必要な時間やハッシュ状態が一次元の整数に対応方法を使用する必要がありますデータはマップを使用することを検討しますが、対応する時間の複雑さが増大し、私たちは本当に小さい範囲ですべての状態を制限したい場合、あなたは二重のハッシュを使用することができますが、状態の最もあまりにも離散的であるレコードの配列へのアクセスかどうか相対的に言って、あまりにも難しいことではない、と彼は言ったが、関係なく、家庭の、転送、検索DP、DPのようなビットを設計する方法をそれぞれの検索状態の調査のために。

2.ステータス剪定:

  私たちは子供が結果の木、または状態がより多くのを持って見つけることができないことを知ったときに剪定は、見つけるために、層毎の面で私たちのために魂のないところに検索、どんなにDFSまたはBFS、DFSではありません条件は拡大を通じ、もはやアクセス可能ではありませんが、表現していないとき、私は現在の最適解最適解は、私の子供は、このセクションの説明は、⑦参照ツリー内に存在しないことを意味よりも少ないだろう。しかし、厳格な認証プロセスは、状態遷移における特定の設計トピック剪定条件に応じて、ブラインド望ましい剪定、剪定を必要とし、これはBFSにどのようなルールに従うことではない、タイトルにそれぞれの質問には、以下のものが必要例えば、プルーニング黙示条件を掘削:同じ状態に達すると、この時点で同じ後続の転送を持っているが、この時点で最もため、DIS1 <DIS2、あまり目立たないが、後続DIS2を切断します優れた選択肢と、最適な結果の選択は、他のすべてのオプションよりも良くなるので、剪定、それが唯一の明確な類似関係を見つけるだろう、と剪定状態の状態の長所を持っている明確な必要性があるが、タイトルに剪定は、検索を剪定の様々なを通じて、DPを見つける学ぶために、これは学習するときに、控除のさらなる証拠を必要とし、関係を、見つけることは困難DPは、再帰は、アクセスのあらゆる可能な手段を取ることはありません。状態。

3.リバースBFS:

  例えば、Nの個人が迷路であり、迷路のうち、最速の男を見つけますか?そして、比較的少数のステップをN回BFSを要求し、迷路のうち早く、彼らはので、だから我々は、抗その後、Nはスタックを爆破、十分な大きさであるときに、スタックが大きなマップが破裂する必要はありません、N人のための前進問題を検討します検討して、我々は彼が出るだろう、人々の迷路があり、N出口があり、質問の種類を問われる変更最速そこから輸出?、私たちはたくさんのアイデアを考えてますが、タイトルはそう簡単に変換されることはありませんあなたが求める場合には、私たちは、この質問を変換し、N M個々のコンセントがある一つの解決策は、グラフを構築することです、解決する方法を私たちにさらす、フロイドは最短サイズの複雑さを比較することを求めるO((N + M)^ 3 +(Nです+ M)^ 2)、我々は時間の複雑さとして、ここではBFSの道を与えているだけで私たちは、その後、レヴェルを言うが、アイデアは、これは良いアイデアではない、のは、探索開始点として、小さなを通じてNとMの大きさを比較してみましょうことができます何の解決策は、第2の検索DISよりも大きくない場合DISは最適解のための最初の検索を設定し、定期的に更新することにより、最適なソリューションの方法のうち、特定の解決策は、常に検索の複雑さはO(MIN(する必要があります検索しませんN、M)* ANS 分(N、M)、最大時間計算量を乗じ、2 ^(N + M)-O-(MIN(N、M)* DIS最初)の間、次いでグラフトラバーサル上の任意の点での時間であります他の方法は、キューダイクストラを最適化するために使用することができるように、(N + M)^ 2 * MIN(N、M)はO((N + M)*ログ(N、最初よりも一定時間計算のための、あります複雑+ M)*分(N、M))いくつかのケースを扱うことができないので、今、私にはわからないためのより良い方法のために、当然のことながら、私たちの議論の範囲内で最短経路ではなく、その後のアクセス、そのほとんど変化が唯一のBFSを使用することができます。

4.双方向BFS

 

ANSから拡大し始めた、幾何学的な成長傾向は、すべての意図にあり、捜索隊を開始するかどうか、最初からして、スタックを爆発が、ANS間の道路と小さく始め、この方法は、間違いなく、より迅速になり、双方向の検索によって中間点を見つけるだろうチャートは非常に醜いではありませんが、一般的な考え方が明らかにされた画像を比較します。あまりにも多くの州は、転送方向が、状況のより短い距離に適用されます。

専門的なVISの配列

アクセスへの私たちのVIS = 1のマップについては、VIS = 0アクセスしていないとき、あなたはmemsetのを使用する必要があるが、時間が長すぎる二回目は、私たちは、VIS = nは、訪問されたときのために、それを別の考えを置きます、VIS!= 1がアクセスされていないので、VISはNでない場合、それは、VIS配列後の最初のパスの後に1又は0のため、次に、初期化されていない、我々は、N作る= 2、あなたは、第三の時間を初期化することができません3に等しい、というように。

図6.動的検索

図事情はあなたが状態の次元に時間ディメンションを追加する必要があり、タイムラインに変更されますが、異なる時間と異なる時間に異なる状態は、別の状態への状態を理解するために、動的フィギュアの検索ではなく、単にVIS配列、しかし、オーバーレイタイムラインの状態を記録します。

7.プライオリティキュー検索

プライオリティキュー最適化された検索のために、現在の比率は必ずしも最適解の最適な拡大のための最適なソリューションではありません拡張証明しなければならない、それは現在、将来的には最高ではないことは、必ずしも最善ではありません。それ以外の場合は、最適化された検索は、フォルトが発生しますプライオリティキューを使用します。

8.デジタル検索

この検索は、非常に基本的なデジタル検索は注意が必要ですが、何、これを書きませんが、それは考えにくいが、一部はやります。K進のより、どのような私は部門で見つけます。例えば、500番号、どのように剰余?

小学校分割アルゴリズムは、どのように書くことと思いますか?それは少しではなかった場合を除き?どのように多くを行うことができます。

おすすめ

転載: www.cnblogs.com/lunatic-talent/p/11415792.html