(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
パターンデータベース(Culberson.J及びSchaeffer、JによるPattern databases、Computational Intelligence 14(3):318〜334ページ(1998年))、や結合及び収縮抽象化(Drager.K、Finkbeiner.B及びPodelski.AによるDirected model checking with distance−preserving abstractions、Model checking software:第13回国際SPINワークショップ、オーストリア、ウィーン、2006年3月30日〜4月1日の会議記録19、Springer−Verlag New York Inc.(2006年)、Helmert.M、 Haslum.P、及びHoffmann.JによるFlexible abstraction heuristics for optimal sequential planning、Proc.ICAPS、volume2007、176〜183ページ(2007年))等のメモリベースの発見的探索法をドメイン独立型プランニングに適用する際、簡潔な表現が重要課題である。これらの発見法の性能は通常、その基礎データのサイズ、及びその発見法にアクセス可能な効率性により向上するが、それによりその後、発見法が必要なメモリ容量に影響する。これらのアルゴリズムは、通常メモリの空き容量、問題解決に関する決定要因により制限されるため、A
*等の重複検出を行う最良優先探索アルゴリズムを使用するとき、この問題は深刻になる。
【0003】
IDA
*(Korf.Rによる、Depth−first iterative−deepening:An optimal admissible tree search、Artificial intelligence(1985年))等の線形空間アルゴリズムは、A
*よりもかなり少ないメモリを使用するが、上記の重複検出により、余分なノード拡張するという犠牲を払って最適な解決法を見つけている。スライドタイルパズル等の重複がほとんど行われないドメインでは、IDA
*は、A
*よりも非常に優れており、この時空間の変換が効果的であるが、多くのドメイン(例えば、マルチ配列アライメント)では、このアプローチは効果的ではない。したがって、Fast Downward(Helmert.Mによる、The fast downward planning system, Journal of Artificial Intelligence Research 26(2006):191〜246ページ(2006年))、HSP_F及びGamer等の現在最先端の発見的探索プランナーでは重複検出が行われている。
【0004】
完全ハッシングが、事前に計算済みの解決法に下位問題を関連付けるために使用される一般的な技術である。但し、(単射)列挙関数では、ランダムアクセス構造内で記録をアドレス指定するために通常用いられる一意のIDを、それぞれの下部問題に割り当てる。しかし、ドメイン独立型プランニングでは、特に複雑な下位問題を処理するとき、ほぼ全射的でもある関数を見つけることは大抵の場合不可能である。これにより、データアレイ内が、すぐに未使用のスロットで一杯となり、簡単な下位問題に対する対処が後回しになる。
【0005】
パターンデータベースを表現する別のアプローチでは、BDD(Edelkamp.Sによる、Symbolic pattern databases in heuristic search planning、6th International Conference on AI Planning and Scheduling(AIPS−02)の会議記録、274〜283ページ(2002年))を使用する。(順序付及び縮小)BDDは、標準的なグラフベースの二値関数の表現であり、同類のサブグラフを結合させために、空間効率が非常に良い。状態設定を直接、二値関数にマッピングすることができ、このBDDはプランニング及びモデル検査でうまく使用されてきた(Jensen.R、Bryant.R、及びVeloso.Mによる、SetA
*: An efficient bdd−based heuristic search algorithm、SetA
*: An efficient bdd−based heuristic search algorithm、(AAAI−02)の会議記録、668673ページ(2002年))。ドメイン独立型プランニングに関する問題の1つは、これらのアプローチの空間効率が、下層のドメインの構造に非常に幅広く依存することである。別の問題は、空間効率の良い方法で、データを個々の状態に関連付けるためには、BDDがよく適しているとは言えないことである。このことは、膨大な数のパターンを同じ値に関連付けることがよくあるために、パターンデータベースではそれほど問題ではない。それでもなお、これにより、より一般的なコンテックのメモ化に用いる際、BDDは課題が残る。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の記述された実施形態の一態様では、方法は、電子コンピュータ装置により、状態設定のプレフィックスツリーの表現を水平順序付けエッジシーケンス(LOES)として符号化するステップであって、この水平順序付けエッジシーケンスが、各内ツリーノードを、ビットの組合せとして、左から右、上から下の順番で符号化するステップと、電子コンピュータ装置により、プレフィックスツリー内に完全なサブツリーの存在を特定するステップと、電子コンピュータ装置により、符号化における符号点を用いて、サブツリーを示すステップと、を含む。
【0007】
本発明の記述された実施形態の別の態様では、この符号点は「00」である。
【0008】
本発明の記述された実施形態の別の態様では、この方法は、完全なサブツリーを、そのルートノードを除いて、プレフィックスツリーから刈り取るステップをさらに含む。
【0009】
本発明の記述された実施形態の別の態様では、このプレフィックスツリーはパターンデータベースに基づく。
【0010】
本発明の記述された実施形態の別の態様では、システムは、記憶装置及び電子プロセッサを有する電子コンピュータ装置を含み、この電子プロセッサは、状態設定のプレフィックスツリーの表現を、水平順序付けエッジシーケンス(LOES)として符号化し、この水平順序付けエッジシーケンスが、内ツリーを、ビットの組合せとして、ノード左から右へ、且つ上から下の順番で符号化し、プレフィックスツリー内の完全なサブツリーの存在を特定し、そのサブツリーを、符号化における符号点を用いて表示する設定される。
【0011】
本発明の記述された実施形態の別の態様では、この符号点は「00」である。
【0012】
本発明の記述された実施形態の別の態様では、完全なサブツリーを、電子コンピュータ装置は、そのルートノードを除いて、プレフィックスツリーから刈り取るよう動作する。
【0013】
本発明の記述された実施形態の別の態様では、プレフィックスツリーはパターンデータベースに基づく。
【0014】
本発明の記述された実施形態の別の態様では、方法は、電子コンピュータ装置により、状態設定の二値のプレフィックスツリーに関する水平順序付けエッジシーケンス(LOES)の符号を復号するステップと、電子コンピュータ装置により、プレフィックスツリー内の完全なサブツリーを示す符号点の存在を特定するステップと、電子コンピュータ装置により、プレフィックスツリーのサブツリーの存在を示す特定成功の結果を戻すステップと、を含む。
【0015】
本発明の記述された実施形態の別の態様では、この符号点は「00」である。
【0016】
本発明の記述された実施形態の別の態様では、プレフィックスツリーはパターンデータベースに基づく。
【0017】
本発明の記述された実施形態の別の態様では、この方法は、電子コンピュータ装置により、プレフィックスツリーのサブツリーを構築するステップをさらに含む。
【0018】
本発明の記述された実施形態の別の態様では、前記構築するステップは、暗黙の又は明確のうちの1方で行われる。
【0019】
本発明の記述された実施形態の別の態様では、状態設定を復号するよう設定されたシステムは、記憶装置及び電子プロセッサを有する電子コンピュータ装置を含み、この電子プロセッサは、状態設定を示すプレフィックスツリーに関する水平順序付けエッジシーケンス(LOES)の符号を復号し、プレフィックスツリー内の完全なサブツリーを示す符号点の存在をと特定し、プレフィックスツリーのサブツリーの存在を示す特定成功の結果を戻すよう設定される。
【0020】
本発明の記述された実施形態の別の態様では、この符号点は「00」である。
【0021】
本発明の記述された実施形態の別の態様では、プレフィックスツリーはパターンデータベースに基づく。
【0022】
本発明の記述された実施形態の別の態様では、この電子コンピュータ装置はサブツリーを構築するよう動作する。
【0023】
本発明の記述された実施形態の別の態様では、前記構築するステップは、暗黙の又は明確のうちの1方で行われる。
【発明を実施するための形態】
【0025】
簡潔で明瞭にするために、パターンデータベースと関連して本発明の記述された実施形態を説明するが、本明細書で示される発想は、むしろその他のメモ化技術に直接転移される。パターンデータベースの発見法の裏にある発想は、最初に(比較的)解決が簡単なオリジナル問題の抽象化を作成することである。好適な抽象化は、オリジナル問題の構成を、抽象化する相手にマッピングする関数として解釈可能(通常は、可逆的でない)でなければならない。抽象化の問題の構成はパターンと呼ぶ。全てのパターンに対する抽象化問題を解決し、最適な解決に関連したコストと共にそれらをデータベース内に格納する。
図1には、問題の構成10例が示される。非公式に、タイル4以外の全ての単位元を捨象して、抽象化12を生成する。8パズルの各構成を、タイル4の位置が一致するパターンに関連付けることにより、これが多対1のマッピング関数として解釈され得る。
図1の右に示されているのが、生成されたパターンデータベース14である。
【0026】
本発明の記述された実施形態により、水平順序付けエッジシーケンス(LOES)の表現は、パターンデータベースに適用可能である。とはいえ、上記のパターンデータベース14等のデータベース内の全てのパターン(即ち、抽象化状態)を、所与の発見法に関してmビットで符号化することができると仮定する。ルートからリーフへの経路に各パターンをマッピングすることにより、このようなパターンの設定を、偽と真のラベルを有するエッジでラベル表示された深さmの二値のツリーに、全単射的にマッピングすることができる。このルートからリーフへの経路には、パターンのビット文字列内のオフセットdでのビット値と対応する、ツリーの深さdでのエッジが含まれる。このように、全ての一意のパターンを、一意の経路に変換し、その後、ルートからリーフまでのエッジラベルのシーケンスに再構築することができる。以後本明細書では、これらのツリーを、二値プレフィックスツリー等のプレフィックスツリーと呼ぶ。
図2には、3ビットシーケンス(s0、s1、s2)に基づく、プレフィックスツリー20の一例が示される。
【0027】
パターンを符号化した後に並び替えを判定することが、重要な前処理ステップであり、これにより、このプレフィックスツリー20を最小化して、ツリー22に並び替える(
図3を参照)。ビットの再順序付けを実現して、共通プレフィックス「0」を生成し、線24、線26、線28で示す通り、より小さいプレフィックスツリーを作成する。念入りに(抽象化の)状態−空間をサンプリングし、これらのサンプル基づいて並び替え空間を通して欲張りエントロピー探索を行うことで通常は、ほとんど計算することなしに良好な結果を取得する。
【0028】
LOESの符号化
LOESにより、(正確には)エッジにつき2ビットより小さくプレフィックスツリーを表現することができる。これをツリーの内ノードごとの、2ビットのエッジの組による記録の水平順序の連鎖と定義する(これらのビットは、そのノードでの偽エッジと真エッジの存在に対応する)。
図4には、(
図2及び
図3の)例示の設定に対する水平順序付けエッジシーケンス(LOES)が示され、この水平順序付けエッジシーケンスにより、例示の設定を、単一のバイト30に符号化することができる。この符号化により、mビットで表現されたn個の状態設定に対して、2nビットから≒2nmビットの間のビット文字列が生成され、通常平均的なケースではこの下限に近い。少なくとも1つの形態において、LOESの符号化技術では、各内ツリーノードを、ビットの組合せとして、左から右、上から下に符号化することを理解されたい。
【0029】
LOESの検索
LOES符号では、オフセットoポイントでのノードの任意エッジの偽エッジ及び真エッジに関するビットの存在を、オフセット2rank(o)及びオフセット2rank(o)+1で見出すことができる。但し、rank(i)とは、オフセットiまでの(及び含む)シーケンス内の設定ビット数を算出する関数である。これが(リーフレベルを除く)水平順序付け符号の各先行エッジから続き、そのエッジの各目標ノードに関する先行エッジの組の記録となる。したがって、オフセットoでの任意エッジに関する子供の記録は、そのシーケンス内のrank(o)+1番目の記録となる(したがって、ルートノードには入ってくるエッジがない)。この特性により、符号化された構造上での効率的な検索が可能となる。
【0030】
Rank
LOESを論理的に2
16ビットのブロックと、512ビットのサブブロックとに分ける2レベルの指数を用いることにより、rankを一定時間内で計算することができる。各ブロックに関して、この指数は8バイトの符号なし整数を保持し、そのシーケンスの始めからそのブロックの始めまでの設定ビット数を表示する。サブブロックレベル上では、2バイトの符号なし値には、対応ブロックの始めからサブブロックの始めまでの設定ビット数が格納される。全指数サイズはLOES符号のサイズの約3.3%である(式1を参照)。簡単なアドレス変換を用いて、512ビットの各サブブロック内での2つの表索引、及び母集団の直接カウントの合計に対する計算を少なくする。
【数1】
【数2】
【0031】
メンバーテスト
ある状態のラベル−シーケンスの解釈により、経路オフセット関数(上記のアルゴリズム1等)は、そのルートからLOES内を検索する。ツリーのルートから任意のリーフまでの有効な経路がその状態により示された場合、この関数はその経路の最後のエッジに対応するビットのオフセットを戻す。さもなければ、関数は⊥と評価する。
図5に一例を示す。この例では、状態40(s=001)がシーケンスの設定に含まれるかどうかの判定が行われる。各レベル42、44、46での001に関する経路オフセット計算により、対応エッジの存在するオフセットのビット数を算出し、不合格の結果が出るまでビット数をテストする。不合格の結果が出ず「合格」の結果が出るとテストは続行される。もし経路解釈がプレフィックスツリー内を通る有効な経路に対応し、経路−オフセットが≠⊥を戻す場合のみ、設定は状態を含む。
【数3】
【0032】
メンバー指数
メンバー設定テストを効率的に計算する以外に、この符号化では、設定内の状態ごとに連続ID
【数4】
を関連付けることができる。この発想は、状態の経路オフセットのrankを算出し、最後から層+1の前の層の最後のオフセットのrankを減算することにより、これを[0,n]の間隔に正規化することである。アルゴリズム2では、擬似的な符号が与えられる。
図6では、これを例示の設定に対して示す。
図6には、例示の設定50内のツリー22の全ての状態に対する数マッピングが示される。要素の経路オフセットのrankから、最後のから2番目のレベル内の最後のエッジの(オフセットの)rank+1を減算して、その指数を算出する。
【0033】
LOESの構築
次に
図7を参照して、辞書式に順序付けされた状態s0、s1、s2のシーケンスからLOES符号55を構築する方法説明する。ツリーの層ごとの空白のビットシーケンスから説明する。アルゴリズム3、及び
図7には、新しい状態が加えられたときに、これらのシーケンスがどのように操作されるかが示される。最初の挿入では、全てのレベル上の対応する記録を単に付け加える。次の挿入では、挿入される状態s’及び最初の異なるビットのオフセットに対する符号sと、設定d内の最後の状態との間の共有プレフィックスの長さが算出される。レベルdに関するシーケンスの最後のビットを真と設定し、次いでsによる記録を全ての下位のレベルに付け加える。重複(即ち、s=s’)は、単純に無視する。状態を挿入した後、それらのレベルを昇順に並べてシーケンスの連鎖、即ち符号55を形成することにより、LOES符号を構築する。
【数5】
【0034】
PDB表現
LOESの基礎を説明してきたが、次にパターンデータベースの表現に注目する。説明を簡潔にするため、パターンの選択、ドメインの抽象化、及び回帰探査の詳細には触れないが、パターンデータベースは既に計算され、いくつかのパターン値の組の集合として存在すると仮定する。これらの技術は、当業者には明らかである。例示したこれらの種類の説明は、Haslum.PらによるDomain−independent construction of pattern database heuristics for cost−optimal planning、the National Conference on Artificial Intelligenceの会議記録1007〜1012ページ(2007年)、及びHelmert,M、Haslum,P、及びHoffmann,JによるFlexible abstraction heuristics for optimal sequential planning、ICAPS 2007の会議記録176〜183ページ(2007年)に含まれる。
【0035】
層の設定の組合せ
本発明の記述された実施形態による基本的表現は、全てのパターンをLOES符号に変換したものである。LOESでは、一意のIDを、範囲
【数6】
内の全ての一意のパターンに関連付け、これをオフセットとして用いて、詰め込まれたビットの文字列に、関連する値を格納し、各記録は(PDB内で)発生する値どうしを識別するために必要な最小量のビットから成る。次いで、発見法の計算では、アルゴリズム2を用いてパターンのIDを判定し、詰め込まれたビット文字列内でオフセットとして解釈することにより値を算出する。
【0036】
逆関係
特に、単価の探索では、PDB内のパターンの数は通常、個別の値の数よりはるかに多い。発見法の逆関数を格納することにより、この反復的なデータを個々のパターンに関連付けることを避けることができる。一般に、発見法は単射関数ではない、したがって、明確に定義される逆関数は存在しない。その代わり、逆関係(左全域的な関係、全ての入力値が複数の出力値に関連付けられる)を格納する(パターンデータベース14の逆関係60の例に関して、
図8を参照)。次いで、この発見法の関数を連続するパターンのテストを通して、各パターン設定に対して計算し、ヒットすると、その設定に関連する値を戻す。但し、発見法の関数特性により、これらの設定は一対の選言肢である。さらに、発見法が全域関数(即ち、全てのパターン設定に対する結合が、全抽象化パターン空間を含む)の場合、最も大きい設定を取り除き、それに関連した値をデフォルトとして示し、残りの全ての設定に対するテストが不合格の場合このデフォルトを戻す。この発想は、各設定をLOES符号として示すことである。さらなる最適化は、メンバーテストの成功の見込み継時的に追跡し続け、これらの見込みを昇順に設定にクエリ処理することである。
【数7】
【0037】
圧縮LOES
逆関の表現に関して、全ての情報を個々の状態に関連付ける必要はなく、親子関係を算出するだけでよい。プレフィックスツリー内を降りる間に完全なサブツリーのルートに出くわした場合、問題の要素が存在することが既に分かっている。これを利用するために、圧縮水平順序付けエッジシーケンス(cLOES)と呼ばれるLOESの変形型を開発し、これにより、例えば、符号、又は符号点用いることにより、その構造から完全なサブツリーを取り除くことができる。この発想は簡単にすることであり、種々の符号又は符号点を、少なくとも1つの形態で使用することができるが、本発明の記述された実施形態では、残る符号点、つまり00(即ち、このノードでは別のエッジは存在しない)を用いて完全なサブツリーのルートを示す。但し、これにより、LOESのエッジ指数と子供の記録位置の不変関係は侵害されない。アルゴリズム5には、メンバーテストが最小となるような変更が示され、新しい記録に達するときはいつも、最初に完全なサブツリーを示すかどうかをテストし(即ち00と同等)、示す場合、現在のオフセットを戻す。示さない場合は、そのアルゴリズムは、上記の示すLOESと類似の動作を行う。
【数8】
【0038】
次に、
図9を参照して、本発明の記述された実施形態の用途を説明する。これに関して、シーケンス102の設定の二値プレフィックスツリーの表現100を、LOES符号104及び圧縮LOES符号106と共に示す。特に、この実施形態では、プレフィックスツリー100内で完全なサブツリー108を特定するため、そのサブツリー108に関する符号化内のルートノードは、例えば、110で示す通り「00」等の特別な符号点、又は特定する符号点、或いは符号を用いて表示される。特別な符号点、又は特定する符号点、或いは符号は様々な形態をとることができ、いくつかの形態は、用途及び状況に応じて、特定可能な形態、所定の形態、検知可能な形態、一意の形態、及び/又は任意の形態よいことを理解されたい。このように、符号を削減する。例えば、LOES符号は14ビットを含むが、圧縮LOES符号は10ビットしか含まない。これにより、(特に、規模が大きい場合)必要メモリ量を抑え、符号化した結果の処理効率が向上する。この符号化した結果は、特定な用途の要求に応じて、例えば、格納され、処理され、又は通信される。
【0039】
本明細書に記載する構想は、符号化及び復号化を含む様々な関数を実行することができる、種々のコンピュータシステム上で実行可能であることを理解されたい。そのようなコンピュータシステム(又は電子コンピュータ装置)800の一例を
図10Aに示す。このコンピュータシステムは、モニタ802、キーボード804、コンピュータ部806、及びディスク808等の外部メモリを、その他の構成部品と共に含む。コンピュータ部806は、電子プロセッサ、グラフィック処理ユニット(GPU)、又はその他のコンピュータコンポーネント810と、RAM等の内部メモリ812とを含む。コンピュータ部806は、その他の構成部品を含むことができ、本明細書で示す以外の構成で設計され得ることを理解されたい。もちろん、これらの様々な実装形態には、多様で異なるハードウェア構成、及び/又はソフトウェアアプリケーション、及び技術が含まれ得ることを理解されたい。ソフトウェアのルーチン又は実行コード又は命令を実行して、本明細書で意図した方法を実現するよう意図してハードウェアを、いくつかの形態で、設定可能なことを理解されたい。シングルコアプロセッサ、又はマルチコアプロセッサを用いることができ、これらのプロセッサをネットワーク構成の中で分散させることができる。外部メモリ808は、コンピュータ部806の外側のため、外付けと見なし、内部記憶装置812と比較して、入力/出力動作がかなり遅くなる。また、ディスク808は、物理的にコンピュータ部806内に含まれてもよく、又は随意的なディスク814で示す通り、コンピュータ部806内に含まれなくてもよい。例えば、随意的なディスク814は、ネットワークドライブでよい。本明細書に記載の(又はその他の)これらの記憶装置は、コンピュータ部806、及びコンピュータコンポーネント810(例えば、マルチコアプロセッサ、又はマルチプロセッサの構成を含む)等のプロセッシングコンポーネント、及び/又はコンピュータコンポーネントと情報をやり取りして、本明細書に記載のコンピュータにより実行する方法を実行することができるよう設定される、又は動作するということを理解されたい。これに関して、メモリ又は記憶装置は、入力/出力の効率性を向上するよう設定することができ、及び/又は(捕捉用の外付け記憶RAM装置等)と互いに補い合って、例えば、拡張性を向上させ、その他の長所を実現することができる。これに関して、これらの記憶装置は、一形態では、実行用マシン可読データ、及び/又はマシン可読命令を格納するための持続性コンピュータ可読媒体として機能する。また、メモリ又は記憶装置は、個体形態又は磁気ディスクの構成を含む様々な物理的形態とることが可能である。
【0040】
次に、
図10B及び
図10Cを参照すると、上記に記載のシステム800を含む種々のシステム上で本発明の記述された実施形態による方法を実行することができる。このような実装形態では、コンピュータ部806、CPU、又はプロセッサ810等のプロセッサ又はコンピュータコンポーネントを含む、適切なハードウェアシステム上で好適なルーチンを実行することで、この方法を、一形態で、実行可能であることを理解されたい。
図10Bには、本発明の記述された実施形態による、符号化の方法の一例のフローチャートが示される。図示する通り、本明細書に記載する水平順序付けエッジシーケンス(LOES)のルーチンを用いて、状態設定を表現するプレフィックスツリーを符号化する(ステップ1052)。符号化している間、プレフィックスツリー内の完全なサブツリーが特定する、又は検知する(ステップ1054)。次いで、これらのサブツリーを、作成される符号内で特別な符号点により表示する(「00」等)。つまり、「−00−」を符号内に挿入して、プレフィックスツリー内に完全なサブツリーが存在していることを示す。次いで、このサブツリーを符号から刈り取る(ステップ1058)。これにより、圧縮符号を作成することができる。少なくとも一形態では、この刈り取りのステップでは、完全なサブツリーを、そのルートノードを除いて、プレフィックスツリーから刈り取ることが含まれる。
図10Cには、本発明の記述された実施形態による、復号化の方法1070の一例を示すフローチャートが示される。図示する通り、LOES符号を復号する(ステップ1072)。上記に示す特別な符号(例えば、「00」)を特定する、又は検知する(ステップ1074)。その結果、そのサブツリーのルートからスタートする可能な全ての経路は、オリジナルの非圧縮のプレフィックスツリー(ステップ1076)内に存在するため、特別な符号により符号化されたサブツリーに達したプレフィックスツリー内の全ての親子関係のクエリは、すぐに成功として戻される(即ち、問題のパターンは、その設定のメンバーである)。
【0041】
符号化及び復号化の方法又は処理は、増分処理、及び/又は連続処理であることは、もちろん、言うまでもない。したがって、例えば、特別な符号「00」の検知により、全ての復号化処理が必ずしも終了しない。この確認及び検知は、全ての復号化処理の一部として行われる。
【0042】
また、特別な符号を検知後の復号化の間、暗黙のうちに、又は明確にサブツリーを生成、又は構築することができることを理解されたい。つまり、一形態では、暗黙のうちにサブツリーが構築され、これにより、特別な符号(例えば、00)を検知することで得られた成功の結果により、符号内にサブツリーが存在するが(及び、処理中にサブツリーの各部分も存在する、又は「ヒット」される見なすべきである)、実際にはサブツリーは構築されていないことをシステムに通知される。別の形態では、サブツリーがノードごとに、各リーフノードに続く実際の経路と共に、明確に再構築される、又は生成される。
【0043】
実験評価
図10Aのシステムの例に関連して述べた通り、様々な構成を実装可能であるが、PDDL入力ファイルを多値問題の記述に変換するプリプロセッサから成る、本発明の記述された実施形態の評価セットアップは、Fast Downwardのプリプロセッサと類似している。その違いは、このプリプロセッサが、問題の変数を変換する、多くても1つの追加の制約条件を出力することである。それらの制約条件は、変数割り当てタプルのリストの形態でもたらされ、全ての有効な状態に対して、全てのリスト内の多くても1つのタプルが、真を保持するよう解釈される。オリジナル問題に関して、これらの制約条件は多値記述で符号化されるものに対して、なんの追加情報も加えない、つまり、演算子の設定を通して生成された初期状態の後続状態により、これらの制約条件は破られない。問題は、変数の部分集合に投影することによる抽象化により、これらの暗黙の制約条件が失われることである。
【0044】
Nパズルに関するFast Downwardの(及びこの)プリプロセッサにより生成される多値符号を考察する。この多値符号は、その位置を表示するタイルごとに1つの変数を含む。空白のタイルと隣接する非空白との全ての実行可能な組合せに対して演算子が存在する。そのような演算子はそれぞれ、結果として切り替えられる位置を有する前提条件として、空白とタイルの特定な位置を有する。タイルは、初期状態で別々の位置からスタートするため、2つのタイルが同じ位置に入ることはできないという制約条件が、演算子の設定を通して暗黙のうちに維持される。単一の変数が投げ出されたとしても(これにより、全ての演算子の前提条件及び結果からその基準が取り除かれ)その制約条件は破られ、非全射抽象化が作成される(即ち、オリジナル問題にその相手方が存在しない実行可能なパターンが抽象化内に存在する)。
【0045】
これにより2つの問題が発生する。そのうちの重要でない方は、パターンデータベースのサイズが急激に増加することである。深刻な方は、性能の著しく低下した発見法が作成されることである。例えば、15パズルから7つの変数が投げ出された場合、作成されるデータベースは、2億7千万のパターンを含むが、タイルは互いに「通過」して移動することができるため、これら7つのタイルのマンハッタン距離以上の情報をデータベースは含まない。但し、このことは発見法の許容性に影響を及ぼさない。これらの抽象化空間内の「冗長な」制約条件を評価することで、追加の制約条件を維持することにより、この問題を緩和することができる。
【0046】
変換処理は、1つ以上のPDBに関する変数を選択する規則ベースのシステムにより続けられる。この時点では、これらの構成要素は両方とも実験的であり、これにより評価の範囲はいくぶん制限される。次いで、回帰探査を通してPDBが構築され、次の5つの表現形態のうちの1つにより符号化される。
【0047】
完全ハッシング(PH)
完全ハッシュ関数により、(抽象化問題の)可能性のある割り当てベクトルがそれぞれ、その辞書式のrankにより与えられた一意のIDにマッピングされる。関連する値を保持する、詰め込まれた記録をアドレス指定するためにIDを用いる。
【0048】
二分決定図(BDD)
上記の通り、BDDとして表現された各設定の逆関係としてPDBを格納する。共通の部分グラフを設定間で共有する。この評価に関するモデル検査グループからの高性能の実装形態であるバディパッケージを使用した。
【0049】
LOES
PHと類似する。完全ハッシュ関数は全ての発生パターンのLOES設定、及びそのメンバー指数関数を通して実行される。逆関係のLOES(IR LOES)は、BDDと類似する。
【0050】
各設定はLOESとして表現される。全ての設定は同じ符号化の並び替えを用いる。
【0051】
逆関係の圧縮LOES(IR cLOES)。
【0052】
BDDと類似する。各設定は特定な符号化の並び替えを用いたcLOESとして表現される。
【0053】
次いで、PDBをA
*探索で使用した。「Pipesworld Tankage」、「Driverlog」及び「Gripper」のインスタンスは、8GBのメモリでMac OS10.6.7を実行する2.2GHzのIntel Coreプロセッサ上で動作させた。15パズルのSTRIPS(Stanford Research Institute Problem Solver)のインスタンスに関しては、4GBのメモリで3.3GHzのXeonプロセッサ上で動作させた。
【0054】
Pipesworld Tankage
IPC4の「Pipesworld Tankage」のドメインは、製品ごとのタンク容量の制約により貯蔵容量が制限された、地域間を結ぶパイプラインの線を通して石油を輸送する問題をモデル化する。プリプロセッサの状態により、全てのパイプに関して、供給源の地域に最も近い1つのバッチ、及び目的地の地域に最も近い1つのバッチだけが存在し得るという追加の制約条件が明確になった。分析要素により全てのインスタンスに関して単一のPDBが生成された。PDBは比較的小さく、相当量のオリジナル問題の制約条件を保持する。これのより異なる表現(
図11を参照)に関するサイズが示され、BDDがPHより1桁から2桁の大きさ分優れており、LOESバージョンがこれよりもう1桁の大きさ分優れている。
【表1】
【0055】
時間次元上では(
図12を参照)、LOESだけがPHより僅かに劣って動作し、IRの変形型は約2倍の長さをとる。BDDの性能は大幅に変動し、そうとうな桁の大きさ分PH及びLOES符号化より劣る。
【0056】
Driverlog
「Driverlog」は、多値変数で符号化されたものに対する全ての明確な制約条件が前処理により取り除かれなかった例である。これにより、全ての可能性のある抽象化パターンを含む、非常に低い品質のPDBが作成される。BDD表現に非常に修正可能なドメインでもある。これにより、BDDの大きさが輝く空間比較(
図13を参照)内で(IR表現により細かく分けられることはほとんどない)数百万のパターンのインスタンスが示されるが、実際にはこれらのインスタンスは、より小さなインスタンス上よりも1桁少ない空間を使っている。注目すべきは、IR LOESの変形型は、まだ2から3つの要因によりPHより何とか優れている。その詰め込まれた容量がPHとほぼ同じサイズのとき、LOESの性能は予想通り劣る(この違いは、PHが、PBD内のパターンの最大の同値の部分集合の格納を省き、そのデフォルトとして対応する値を表示することができるという事実に起因する)。表現の検索コストが「Pipesworld Tankage」インスタンスと同様のとき、実行時間の比較(
図14を参照)も同様の結果を示す。
【0057】
Gripper
「Gripper」のドメインは、ある部屋から別の部屋にボールを運ぶためにボールを拾ったり置いたりするための2つのグリッパーを使うことができる移動ロボットをモデル化する。このドメインでは、同時に両方のグリッパーで物体を掴まないという暗黙の制約条件がプリプロセッサにより拾われる。変数選択論理回路がグリッパーの状態、ロボットの位置、及び目標条件付きのボールに関する変数からなるPDBを構築した。抽象化状態の空間が大きくなり過ぎたとき、PDBを分割する規則を設定した。作成された複数のPDBは追加型でないため、それらの発見法の値の最大値をとることによりPDBを組み合わせた。これをインスタンス6から始め、PDBの成長を緩和した(
図15を参照)。
【0058】
「Gripper」は、BDDが非常にうまく動作するドメインのうちの1つである。PDBが約100万パターン、及び260万パターンのサイズのとき、BDDは、インスタンス5及びインスタンス8で、格納の効率性においてIR cLOESより依然として優れている。PHは、より大きなインスタンス上で約2桁大きい記憶容量を一環として必要とする。ルーチンの比較では(
図16を参照)面白い結果が示される。より小さなPDBに関して、PHはLOESの各バージョンより約1.3倍(LOES)から5倍(IR cLOES)速い。パターンのデータベースが成長すると、おそらくキャッシュミス(cache misses)が増加するため、速いアドレス指定というメリットが大幅に収縮する。再度強調するが、BDD内のより複雑な照合により、処理速度が数桁遅くなる。
【0059】
15パズル
15パズルは古典的な組合せ探索ベンチマークである。PDBの発見法に関するトークン問題でもある。ここで、プリプロセッサが2枚のタイルが同じ位置に入ることはできないことを確保する制約条件を何とか抽出する。分析要素も空白及び選択タイルパターン空間サイズの限度まで取り除くことにより、複数の追加型PDBを何とか抽出する(このドメインでは6つ変数、したがって追加型の6−6−3PDBである)。但し、これらのPDBは、一般にドメイン専用スライドタイルパズル解法で用いられる手作り、及び空白圧縮式追加型PDBよりも著しく弱い。この実験では、Korfの100個のランダムなインスタンス(Korf,R、Depth−first Iterative−Deepening:An Optional Admissible Search Tree,Artificial Intelligence (1985年))上でプランナーを動作させたが、これはドメイン独立型プランナーにとっては困難なことである(例えば、10Kのノードの抽象化サイズを有するM&S発見法を用いた最先端のFast Downwardプランナーは、最も簡単な96GBのRAM内のインスタンスを解決することができない)。LOES及びBDDにより用いられる種類の冗長性削除技術では、解決が難しいとして知られる並び替えの問題もある。ハードな30分のカットオフタイマーを用いて、全てのインスタンスを実行した。その結果を表2に示す。ここでは、PHその非常に速いPDB検索のおかげで最もよく動作した。LOESの変形型がPDBのサイズの相対的な減少を著しく示すが、絶対差は比較的小さい。分析要素がより大きなPDBを可能とした場合(BDDベースの表現を損傷させた場合)、この結果は、おそらく変わるであろう。
【表2】