$ ^ * $よりもIDA $ ^ * $が速いのはなぜですか?IDA $ ^ * $はなぜ$ ^ * $よりも多くのノードを訪問しますか?

cs.stackexchange https://cs.stackexchange.com/questions/118121

質問

IDA $ ^ * $ を最適に解決するための $ ^ * $を使用しましたも(同じマンハッタン距離ヒューリスティックな)。

私は20の例と私の友人のアルゴリズムのための私のアルゴリズムの平均運転時間とノード数を計算しました。私のアルゴリズムの時間平均は私の友人のアルゴリズムよりもはるかに速かったが、私の平均訪問されたノードの数は私の友人よりもはるかに多くあります。

私はIDAを知っています $ ^ * $ を複数回訪問しますが、より速いのですが$ ^ * $

役に立ちましたか?

解決

既にIDA $ ^ * $ を実装していますので、 $ ^ * $よりも多くのノードを拡張する理由を理解します。 、すなわち、それぞれの反復において新しい深さ - 最初のトラバースで開始状態から始まります。まず、IDA $ ^ * $ によって訪問されたノードの全体数は、必ず $ ^ * $より大きくなります。 はそれほど大きくはありません。その理由は、各深度のノード数が因子 $ b $ 、分岐係数を持つ幾何学系列に従って進行するからです。その結果、深さ $ D $ $ b ^ d $ の数の数前の反復で拡張されたすべてのノードの合計よりも大きい、つまり $ b ^ d> \ sum_ {i= 0} ^ {d-1} b ^ i $ 。この違いから、IDA $ ^ * $ $ \ frac {b} {b-1} $が必要です。 大規模 $ b $ の制限として漸近的に最適な追加の拡張は1です。深度 $ d $ は、前の深さですべてのノードを訪問するよりはるかに難しいです。

この問題をさらに掘りたい場合は、オリジナルの紙を読むことを強くお勧めします.Korf、Richard E. Depth-First-First-First-First-First-Search:最適認識ツリー検索。特定の定理4.2を参照してください。

深さ初の反復深さが漸近的に最適化されている ブルートフォースツリーは時間、スペース、および長さの観点から検索 溶液

もちろん、それが許容されるように最適な解決策を提供し、したがって漸近的に最適です。それは深さの最初のトラベルを練習するだけであり、したがって、スペースに関して漸近的に最適である( $ O(d)$ x のみ)。

時間はすでに主な理論的な理由を概説しましたが、実際にそれほど速い3つの主な理由をハイライトしてみましょう:

  1. まず、ほとんどすべての目的のために、任意のアルゴリズムの全体的な走行時間は、ノードの拡大にかかる時間によって支配されます(他の操作はかなり単純で原子的です)。 IDA $ ^ * $ が非常に高速になることができるノードを拡張するときは、

    1.1。 IDA $ ^ * $ は、必要なのは引数として与えられた状態を取得し、一度に子供を生成することだけであるように再帰的に実装されます(あなたの特定のケースのために)。単に空白を隣接するタイルで交換することは、それだけのステートメントです。)。ただし、 $ ^ * $ の場合、拡張操作には:最初にキューから状態をポップし、その後すべての子を生成し、すべての子を生成します。可能な方向性向)

    1.2。上記の操作は何らかの違いをもたらしますが、本当に重要なものは、 $ ^ * $ でオープンでノードをソートする必要があることです。たとえあなたが1バケツを使ってこれを行っても、 $ o(1)$ )では、ida $ ^ * $ は、 $ ^ * $ が展開されたノード数で線形の時間がかかるように、すべてのノードをソートする必要はありません。 IDA $ ^ * $ はまったくない。

  2. 3番目に、最良の最初の検索アルゴリズムの貢献の1つ( $ ^ * $ など)は、ノードの再展開を回避しないことです。閉じたリストを使用する(その名前にもかかわらず、通常はセットとして実装されています)。 IDA $ ^ * $ には、重複検出メカニズム、したがって、 $がありません。 ^ * $ は、IDA $ ^ * $ によって、すべてが実行されない追加の操作を実行します。 IDA $ ^ * $ duplicate-dexation についてもっと知りたい場合は、Reinefeld、A。 Marsland、T.繰り返し深め検索を強化しました。パターン分析と機械知能(16)7,701-710,1994のIEEE取引。

  3. 最後の点は本当に関連性があります。スライディングタイルパズルの場合には、実際にはたくさんの転位がないため、最短サイクルは12の移動からなるため、再展開数はそれほど大きくはありません。これらすべてをまとめると、ida $ ^ * $ は、スライドタイルパズルのすべてのサイズのためのキラーマシンです。

    しかしながら、そのすべての利点にもかかわらず、それらの用途には実用的ではないかもしれない。この困難を克服するための様々な試みがありました

限られた成功を備えた、例えば:

ダウ、P.アレックス。KORF、Richard E. Depts-First-First Searchの削除を木幅へのアプリケーションで重複しています。人工知能に関する国際共同会議、2009年480-485,2009。

これが助けになることを願っています、

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top