[5月25日号••アルゴリズムその他]ユニバーサルアルゴリズム(A):検索+?

はじめに▎

  このタイトルを参照してください、あなたは困惑を感じていない、なぜ小扁は間違っていないだろう、検索+ではなく、検索で、実際には、このブログでは、ゲームのすべての種類は、検索を果たしている見てみましょうされます。

▎事前スキル

「基本」

  検索:DFSとBFS(ここで始める素早く突きます)

「DFSとBFSの類似点と相違点。」

  同じポイント:DFSとBFSを探しているポイントを見つけることです。

  異なる点は:DFS深さ優先、バックに見えないレンガの壁をヒットしない、bangが、それは、よりトリッキーで、道路を探索しますが、コード少なく、書き込みを破って、ほとんどの人が使用するようにしたいです。BFSは、優先順位として幅広い層に基づいて横断することにより層、より合理的なそれDFS比較が、ストレージの悪い状態では、あなただけのDFSを使用することができたときにされています。

▎dfs+ BFS:伝説のBDFS

「反復深化検索。」

  実際には、何のBDFS、人々の本当の名前は、反復深化の検索ではありません。

  あなたはBaiduの検索を見れば、その後、あなたのお母さんの程度はあなたを教えてくれます:コンピュータサイエンスでは、反復深化検索(反復深化検索)または、むしろ反復深化深さ優先探索(反復深化深さ優先探索( IDSやIDDFSを)) であります状態空間(状態図)検索戦略。この検索戦略の深さ優先探索アルゴリズム、あなたがターゲット状態を見つけるまでの深さの制限が繰り返し実行され、同時に検索の深さの制限を緩和していきますがあります。IDDFSと幅優先アルゴリズムと等価であるが、はるかに少ないメモリを使用し、各反復では、探索木のノードを横切る、深さ優先アルゴリズムを注文しますが、最初の時間の累積アクセス・ノードこれは、実際に幅優先順です。(Baiduのからのコピー)

  彼はその後、取る外観は、それの例を引用し、長い時間のために何も知らないと言いました。

『引例』

例 - エジプト得点

  明らかに良い店ではない状態を保存する方法を、BFSを考えることは最初この質問。

  DFSはそれを使うのか?しかし、彼は、彼らはいくつかの作曲スコアを知らないので、それぞれの分母上限はDFSがそれを発見したかもしれないどのくらいですかわからない、道路が黒く、彼は無力だったと述べました。

  どのようにそれを行うには?どちらの検索は、ボトルネックが発生し、その後、我々は組み合わせた2つの検索モードに見えるかもしれません。

「コアアルゴリズム」

  私たちは、本体とDFSが、欠点は、DFSは遠くと遠く、我々はの注入特性BFSことができるということです。ドリルダウンし、我々は井戸層の数を格納する変数を設定する可能性がある、良いDFSは、このレベルに到達するために制限することはできません。検索を続けます。

  これはシンプルなアイデア、また、それが検索の二つの方法を組み合わせただけではありません。

「アルゴリズムテンプレート」

  

  (PPTのcdcqからのコピー)

▎検索+剪定

  転送順序に基づいて、接続されたエッジのためのインター状態を検索した場合、それは無駄な分岐効率を高めるために切断されている探索木と枝刈りを形成します。

  剪定の最適化(スタンプ、ここですぐに実行されています)

▎検索+圧縮された状態

「ステータス圧縮」

  データがあまりにも大規模であるため、時にはあなたは、2次元配列でマップを保存することができない場合があります。

  最適化アルゴリズムの複雑さについて考える時間がかかるかもしれません。

  我々は、圧縮された状態を使用することができ、チャートがバイナリに変換され、一次元アレイは、マップ全体を保存するか、またはさらに良い方法のアルゴリズムをlowbit使用できるようにすることができます。

『引例』

  またはNクイーン問題のタイトルと溶液(ここで突く学ぶこと)

「ステータス圧縮アプリケーション。」

  簡潔状態圧縮最適化、動的プログラミング例(学ぶためにここに突きます)

▎検索+

  はい、これは双方向の検索です。

   双方向BFSは、チームの中へ、または2が最初の最適解として出会った2つのチームが、共同BFS、に同時にスタートとフィニッシュの状況をよく知っているの開始と終了です。

  目的は、あまりにも多くの検索アクセス状態の問題、一方向の検索率の多くを最適化する時の複雑さを解決することです。

おすすめ

転載: www.cnblogs.com/TFLS-gzr/p/11248509.html