2012-03-31 6 views
6

私は、検索アルゴリズムを実装する際にいくつかのデータ構造が使用されていることに気付きました。 たとえば、queueを使用してBFSを実装し、スタックをDFSに実装し、min-heapを実装してA *アルゴリズムを実装します。このような場合、検索ツリーを明示的に構築する必要はありません。AO *アルゴリズムの実装方法は?

しかし、AO *アルゴリズムの検索プロセスをシミュレートするための単純なデータ構造は見つかりません。明示的に検索ツリーを構築することがAO *アルゴリズムを実装する唯一の方法であるかどうかを知りたいですか?誰でも私に効率的な実装を提供できますか?私は本当にあなたの助けに感謝します。

+0

質問をhttp://cs.stackexchange.com/に投稿することができます。 –

答えて

1

免責事項:私はAO *を実装していないため、間違っている可能性があります。

AO *の実装はA *と異なるものであってはいけません。ヒープを使用しますが、単一のノードを持つ代わりに、各メンバーはノードのベクトル(1つ以上のノード)でなければなりません。ある程度は、(そして(または))ルールがどのように与えられているかによって異なりますが、ヒープを入れることはとても簡単です。だから最初の質問への答えはいいえ、あなたがA *のためにそうしないという意味で木を明示的に構築する必要はありません。ヒープは実際には探索木の表現であることを覚えておいてください。そうすれば、木をトラバースするときに実際に木を構築していると主張できます。について

誰でも私に効率的な実装を提供できますか?

少なくともいくつかの擬似コードを提供することによって、またはより良いコードを使用して問題をどのように攻撃したかを示すことによって、いくつかの努力を示す必要があります。次に、データ構造を改善して効率を上げる方法を提案します。