実際に使われているOPEN/CLOSEリストの実装とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 実際に使われているOPEN/CLOSEリストの実装の意味・解説 

実際に使われているOPEN/CLOSEリストの実装

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/01 02:02 UTC 版)

A*」の記事における「実際に使われているOPEN/CLOSEリストの実装」の解説

OPEN/CLOSEリスト登録されているノード数が多い場合ノードの展開ごとに子ノードmをOPENからCLOSE移動(あるいは逆)するのは非常に高価な操作である。たとえば、OPEN/CLOSEリスト2分探索木(赤黒木など)で実装されている場合、まずノード探すのに O ( l o g N ) {\displaystyle O(logN)} かかり(ノードIDで検索)、また削除にも O ( l o g N ) {\displaystyle O(logN)} かかる。配列場合には削除により大きなコストがかかる。 しかし、データ構造工夫することで、より効率よい実装を行うことが出来る。ノードをOPEN/CLOSEリスト間で行ったり来たりさせる代わりに、以下のように実装する: それぞれのノードに、ノードの状態として OPEN, CLOSE2種類タグもたせる全てのノード始めOPENである。 ノード一意整数IDもたせるまた、IDからノードを O ( 1 ) {\displaystyle O(1)} で参照できるハッシュテーブル用意するOPENノード追加する際には、m が Openリスト含まれているかは検証せず、重複許して追加する。かつ、このときノードではなくIDのみを追加するID整数1つ分なので、重複オーバーヘッド最小化出来る。 OPENからノードpopする際、popしたノードの状態がOPENであれば展開を行うが、CLOSEであれば単にスキップする。このことにより、重複があっても同じノード無駄に展開しないようにできる。 このことにより、OPENリストは、f値による優先度付きキューの下に先入れ先出し/先入後出しキュー用意することで実装できる。 ノード検索おこなわれず、かつ削除先頭あるいは末尾にしかおこらないので、効率的な実装が可能である。 CLOSEリスト使用しないf値による優先度付きキューは、辺のコスト1である場合には単にf値ごとの可変配列にしたほうが高速操作が可能である。辺のコスト大幅なばらつきがある場合には、ヒープとして実装したほうがよい。

※この「実際に使われているOPEN/CLOSEリストの実装」の解説は、「A*」の解説の一部です。
「実際に使われているOPEN/CLOSEリストの実装」を含む「A*」の記事については、「A*」の概要を参照ください。

ウィキペディア小見出し辞書の「実際に使われているOPEN/CLOSEリストの実装」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「実際に使われているOPEN/CLOSEリストの実装」の関連用語

1
14% |||||

実際に使われているOPEN/CLOSEリストの実装のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



実際に使われているOPEN/CLOSEリストの実装のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのA* (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS