2011-02-11 9 views
4

ウィキペディアのDepth-Limited-Searchのアルゴリズムを理解しようとしています。ノードを拡張することが何を意味するのか正確に把握しようとしています。私は答えを検索しようとしましたが、私が得たのは、ノードを拡張する必要があると述べるアルゴリズムが増えただけです。ノードを拡張することは何を意味しますか?

具体的には、機能全体についてはstack := expand (node)とは何ですか?

DLS(node, goal, depth) 
    { 
     if (node == goal) 
     return node; 
     push_stack(node); 
     while (stack is not empty) 
     { 
     if (depth > 0) 
     { 
      stack := expand (node) 
      node = stack.pop(); 
      DLS(node, goal, depth-1); 
     } 
      else 
      // no operation 

     } 
    } 

答えて

3

このコンテキストでは、ノードのすべての子を新しいスタックとして返します。これはサンプルコードの非常によく書かれていないビットです。

+0

が表示されます。よりよい例の方向に私を向けることができると思いますか?私はWikipediaの外で深度限定検索についてはあまり見つからないようです。 – Rowhawn

+0

深度を追跡し、一定の制限に達すると再帰を停止する単純な深さ優先検索のようです。同じ方法で動作するように、既存の再帰ベースの深さ優先検索を変更することはかなり簡単です。 –

0

「ノードを展開する」とは、ノードchildrenを発見することを意味します。

関連する問題