(57)【要約】【課題】幅優先探索及び深さ優先探索を単一の探索アルゴリズムに一体化する。【解決手段】本発明の一態様のグラフ探索方法は、順序付き決定ツリー構造を生成して、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと、探索前線におけるノードに対応するリーフノードと、を有する探索前線ノードのセットを表すステップと、順序付き決定ツリー構造において深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノードの拡張を順序付けるステップと、現在のノードの中間グラフを改変することによって、選択されたノードの中間グラフを導出するステップと、を包含する。【選択図】図３
2010250823.tif 000002
【特許請求の範囲】
【請求項１】
グラフ探索方法であって、
順序付き決定ツリー構造を生成して、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと、探索前線におけるノードに対応するリーフノードと、を有する探索前線ノードのセットを表すステップと、
前記順序付き決定ツリー構造において深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノードの拡張を順序付けるステップと、
前記現在のノードの中間グラフを改変することによって、選択されたノードの中間グラフを導出するステップと、
を包含する、方法。
【請求項２】
前記順序つき決定ツリー構造の生成及び前記中間グラフの導出は、幅優先アプローチを包含する、請求項１に記載の方法。
【請求項３】
前記順序つき決定ツリー構造の生成及び前記中間グラフの導出は、最良優先アプローチを包含する、請求項１に記載の方法。
【請求項４】
システム内の状態又はイベント又は条件を検出するように動作するセンサと、
前記センサの出力に基づいて、前記システム又は前記システムのプロセスを制御するように動作するコントローラと、
前記システム又は前記システムのプロセスを診断する、前記コントローラ内部の診断モジュールと、
を備えており、
前記診断モジュールは、基本のベイジアン・ネットワークの最小幅に対応する診断状態変数の除去順を生成するように動作するツリー幅ソルバを有し、前記ツリー幅ソルバは、順序付き決定ツリー構造を使用して、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと探索前線におけるノードに対応するリーフノードとを有する探索前線ノードのセットを表し、前記順序付き決定ツリー構造において深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノードの拡張を順序付けし、且つ、前記現在のノードの中間グラフを改変することによって、選択されたノードの中間グラフを導出する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大きな符号化サイズを有するグラフ探索問題への適用において幅優先及び深さ優先探索戦略を組み合わせるシステム及び方法に関する。
【背景技術】
【０００２】
組合せの可能性のグラフの探索は、特に人工知能及びオペレーションズリサーチを含む様々な分野で使用される一般的な最適化技法である。これらのタイプの技法の多くの実用的なアプリケーションがあり、産業界における性能の改善を可能にしている。幅優先探索及び深さ優先探索は、２つの基本的な探索戦略であり、それらに基づいて数多くの探索アルゴリズムが構築されている。
【０００３】
本出願で開示されているここに記述された実施形態は、特定のグラフ探索問題に限定されないが、本開示では、大きな符号化サイズを有する問題の具体的な例としてツリー幅を使用して、これらのここに記述されている実施形態のある実施形態がツリー幅問題をどのようにしてより効率的に解決するために使用されることができるかを示す。説明のために、背景として、ツリー幅（“ｉｎｄｕｃｅｄ  ｔｒｅｅｗｉｄｔｈ（誘導されたツリー幅）”としても知られている）は、グラフが、ツリー幅が１であるツリーにどれだけ類似しているかを表す。ｋ個の頂点を有するグラフは、もしそれが、ツリーがｋ−１である完全に接続されたグラフであれば、ツリーへの類似度は最も低い。しかし、たいていのグラフは、１から頂点数−１の間のいくつかであるツリー幅を有している。グラフのツリー幅を決定するためには、全頂点をグラフから、グラフが空になるまで一つずつ除去しなければならない。一つの頂点が除去されると、隣接していない近傍の点の全ての対にエッジ（辺）が追加され、その頂点に入射する全てのエッジがそれとともに除去される。除去順（ｅｌｉｍｉｎａｔｉｏｎ  ｏｒｄｅｒ）のそれぞれに対して、それがグラフから除去されるときの任意の頂点の最大度合い（すなわち近傍の点の数）は、除去順の幅として定義される。グラフのツリー幅は、可能性のある全ての除去順の中の最小幅として定義され、最適な除去順は、その幅がツリー幅と同じであるいずれかの順である。
【０００４】
グラフのツリー幅は、グラフィカルモデルに基づく多くのアルゴリズムの複雑さを決定する際に、中心的な役割を果たす。例えば、バケット除去（Ｂｕｃｋｅｔ  Ｅｌｉｍｉｎａｔｉｏｎ）、ジョイン・ツリー（ＪｏｉｎＴｒｅｅ）、及び再帰性条件付け（リカーシブ・コンディショニング；Ｒｅｃｕｒｓｉｖｅ  Ｃｏｎｄｉｔｉｏｎｉｎｇ）のようなベイジアン（Ｂａｙｅｓｉａｎ）ネットワークの複雑さは、ネットワークによって誘導される台グラフのツリー幅において、全て指数関数的である。これより、たとえ少量であってもツリー幅を低減することは、ベイジアン・ネットワークに対する様々な蓋然的推論に対して、大きな計算上の節約をもたらす結果となる。
【０００５】
これまでのいくつかの研究では、幅優先探索を使用して全ての可能性のある頂点除去順の空間を探索することによって、最適なツリー幅を見出した。深さ優先探索は、優れたメモリ参照の局在性、ならびにこれより実行速度の増加という利点を提供する。一方で、深さ優先探索は、ツリー構造を有する問題に対しては最も有効であるが、残念ながら、ツリー幅問題ならびに多くの他の重要な組合せ問題は、探索空間のノードの間に多くの代替的な経路を有するグラフ構造を有している。理論的には、探索グラフを探索ツリーに「展開（アンロール；ｕｎｒｏｌｌ）する」ことは常に可能であるが、そのようにすることはしばしば、探索空間のサイズの指数関数的な増加をもたらし、実際上は、深さ優先探索はしばしば、取り扱わなければならない二重の探索ノードの異常なまでの数のために、広い範囲のグラフ探索問題では許容できないほど遅いことが見いだされる。
【０００６】
最近、非特許文献１により、幅優先及び最良優先探索が、二重探索ノードの反復的な生成を避けることによって、深さ優先探索を劇的に凌駕できることが明らかになった。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ピー．アレックス・ダウ（P. Alex Dow）及びリッチ・コルフ（Rich Korf），「ツリー幅の最良優先探索（Best-first Search for Treewidth）」，第２２回人工知能に関する全国会議予稿集（Proceedings of the 22nd National Conference on Artificial Intelligence），２００７年，ｐ．１１４６−１１７１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、幅／最良優先探索の困難な点はメモリの要件であり、これは、グラフのサイズと共に指数関数的に増加する傾向にある。ツリー幅を計算するために、探索空間における各ノードは、オリジナルのグラフから頂点のサブセットを除去することで得られる中間グラフ（ｉｎｔｅｒｍｉｄｉａｔｅ  ｇｒａｐｈ）を表す。中間グラフのサイズは、数キロバイトから数メガバイトまでの幅を有し得るので、各ノードで中間グラフ全体を記憶することは、最小の問題を除いては実用的ではない。メモリ効率を改善するために、非特許文献１では、各ノードで、（中間グラフではなく）それまでに除去されてきた頂点のセットのみを記憶することを提案している。ノードが拡張されるたびに、その対応する中間グラフは、ノードと共に記憶された頂点をオリジナルのグラフから除去することによって、再構成される。オリジナルのグラフは、グローバルに一度だけ記憶されればよいことに留意されたい。空間面では効率的である一方で、このアプローチは、ノードが拡張されるたびに、中間グラフの再構築というオーバーヘッドをもたらす。大きなグラフに対しては、そのようなオーバーヘッドは、非常に顕著になることがある。これは、幅優先探索によって与えられる利点を損なう。
【課題を解決するための手段】
【０００９】
ここに記述されている実施形態の一つの態様によれば、グラフ探索方法は、順序付き決定ツリー構造を生成して、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと探索前線におけるノードに対応するリーフ（葉）ノードとを有する探索前線ノードのセットを表すステップと、前記順序付き決定ツリー構造において深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノードの拡張を順序付けるステップと、前記現在のノードの中間グラフを改変することによって、選択されたノードの中間グラフを導出するステップと、を包含する。
【００１０】
ここに記述されている実施形態の他の態様によれば、前記順序付き決定ツリー構造の生成及び前記中間グラフの導出は、幅優先アプローチを包含する。
【００１１】
ここに記述されている実施形態の他の態様によれば、前記順序付き決定ツリー構造の生成及び前記中間グラフの導出は、最良優先アプローチを包含する。
【００１２】
ここに記述されている実施形態の他の態様によれば、システムは、前記システム内の状態又はイベント又は条件を検出するように動作するセンサと、前記センサの出力に基づいて前記システム又は前記システムのプロセスを制御するように動作するコントローラと、前記システム又は前記システムのプロセスを診断する前記コントローラ内部の診断モジュールと、を備えており、前記診断モジュールは、基本のベイジアン・ネットワークの最小幅に対応する診断変数の除去順を生成するように動作するツリー幅ソルバを有しており、前記ツリー幅ソルバは、順序付き決定ツリー構造を使用して、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと探索前線におけるノードに対応するリーフノードとを有する探索前線ノードのセットを表し、前記順序付き決定ツリー構造において深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノードの拡張を順序付けし、且つ、前記現在のノードの中間グラフを改変することによって、選択されたノードの中間グラフを導出する。
【図面の簡単な説明】
【００１３】
【図１】探索グラフの図である。
【図２ａ】ここに記述されている実施形態による記号的ツリー構造の図である。
【図２ｂ】ここに記述されている実施形態による記号的ツリー構造の図である。
【図３】図２ａ又は図２ｂの記号的ツリー構造の一部を示す図である。
【図４】完全な及び部分的な前線決定ツリーの比較を示す表である。
【図５】中間グラフを生成するための異なるアプローチの比較を示す表である。
【図６】ベンチマークグラフに対する幅優先の発見的探索の性能を示す表である。
【図７】ここに記述されている実施形態を組み込んでいるシステムの図である。
【図８】ここに記述されている実施形態を組み込んでいる例示的なシステムの図である。
【図９】ここに記述されている実施形態を組み込んでいる例示的な方法の図である。
【図１０】ここに記述されている実施形態にしたがったシステムの構成要素の一例のブロック図である。
【発明を実施するための形態】
【００１４】
上述のように、幅優先探索及び深さ優先探索は２つの基本的な探索戦略であり、それらに基づいて数多くの探索アルゴリズムが構築されている。これらの技法は、ノード拡張の順序付けにおいて基本的な相違を有している。それにもかかわらず、ここで開示されている実施形態によれば、２つの戦略を単一の探索アルゴリズムに一体化することから恩恵をえることができる多くのアプリケーションがある。例えば、ここに記述されている実施形態にしたがった技法は、製造システム、あるいは、さらなる例として、画像レンダリング（例えば印刷及び／又はコピー）システムにおける診断問題の解決のために、ベイジアン・ネットワークにて使用されることができる。
【００１５】
ここで記述されている実施形態は、幅優先及び深さ優先戦略を、両方の戦略の相補的な強さを組み合わせる単一の探索技法又はルーチンに一体化して、いずれかの戦略が単独で使用されるときよりも顕著に改善された速さを得る新しい方法を記述する。
【００１６】
ここで図１を参照すると、４つの頂点を有するグラフに対する最適なツリー幅の探索空間１００が示されている。各楕円は探索ノードを表しており、各探索ノードは、そのノードに対してそれまでに除去された頂点のセットによって識別される。開始ノードは、除去された頂点のセットが空であるオリジナルのグラフに対応し、ゴールノードは、全ての頂点が除去されたものである。
【００１７】
オリジナルのグラフから（非特許文献１の最良優先又は幅優先探索技法におけるように）処理を進めて中間グラフを導出する代わりに、ここで記述された実施形態は、対象のノードの最近傍のノードであって、オリジナルのグラフに多くの類似点を有する（しかし、オーバーヘッドは少ない）最近傍のノードから中間グラフを導出する。ノードの最近傍を見出す最も単純な方法は、そのノードからその近傍のノードの全てまでの最短の経路を計算し、最小距離を有するものを拾い上げることであるが、これは、その状態空間が、同じ深さにおけるノードの任意の対の間の距離が常に無限であるような部分的に順序付けられたグラフであるツリー幅問題には、常に適用可能であるわけではない。例えば、２つのノードが存在し、これらが、オリジナルのグラフからそれぞれ頂点｛１，２，３｝及び｛１，２，４｝を除去した結果として得られる中間グラフに対応しているとする。図１から、これら２つのノードの間には、ルールにしたがった経路が存在しないことが分かる。なぜなら、ひとたび頂点が除去されると、それは「復帰する（ｕｎｅｌｉｍｉｎａｔｅｄ）」ことができないからである。
【００１８】
ここに記述されている実施形態に従ったアプローチは、ノード対の間の距離を、オリジナルの探索空間の代わりにメタ探索空間にて測定することである。メタ探索空間は、オリジナルの探索空間における状態セットと正確に同じ状態セットを有するが、オリジナルの探索空間では許容されない方法で一つのノードを他のものに変換することができるメタアクションのセットで増強される。例えば、ツリー幅問題に対するメタアクションは、頂点が除去されたときにグラフになされた変化を反転することによって、頂点を「復帰する」アクションである。「復帰する」というメタアクションで増強されたツリー幅問題に対しては、その探索グラフは、図１に示されたグラフの無向バージョンである。メタ探索グラフと呼ばれるこの新しいグラフでは、アクション（すなわちエッジ）は、ノード対の間で前後に進むことができ、あるノードの中間的なグラフを同じ深さにおける他のノードから生成することが可能となる。これは、非特許文献１、ならびにＲ．ジュー及びＥ．ハンセン（R.Zhou and E.Hansen）の「幅優先の発見的探索（Breadth-first heuristic search）」、人工知能（Artificial Intelligence）、170(4-5):385-408(2006)（以下ではZhou & Hansen [AIJ-06]と称する）のような多くの他のもののような、この問題に対する最もメモリ効率的なグラフ探索アルゴリズムである幅優先の発見的探索には、非常に有用である。
【００１９】
ノードは、除去された頂点のセットによって特定的に識別されるので、同じ小文字（例えば、ｎ，ｕ，及びｖ）は、ここでは「ノード」及び「除去された頂点のセット」の両方を指す。「復帰する」メタアクションを実現するために、メタ探索グラフの各エッジは、タプル（ｔｕｐｌｅ）＜ｕ，ｖ，ΔＥ＋，ΔＥ−＞によってラベル付けされる。ここで、ｕ（ｖ）は、そのエッジの出発（目的）ノードにおいてそれまでに除去された頂点のセットであり、ΔＥ＋（ΔＥ−）は、ばらばらの頂点セットｘ＝ｖ＼ｕが除去されるときにグラフに追加された（グラフから除去された）エッジのセットである。Ｇｎ＝＜Ｖｎ，Ｅｎ＞を、ノードｎに関連付けられた中間グラフとする。以前に除去された頂点をグラフに戻すタスクは、正式には以下のように表現されることができる。すなわち、「Ｇｖ＝＜Ｖｖ，Ｅｖ＞及びｅ＝＜ｕ，ｖ，ΔＥ＋，ΔＥ−＞が与えられたら、Ｇｕ＝＜Ｖｕ，Ｅｕ＞はどのように計算されるのか？」。全ての変化がエッジに記録されるので、Ｇｕを＜Ｖｕ＝Ｖｖ∪ｖ＼ｕ，Ｅｕ＝Ｅｖ∪ΔＥ−＼ΔＥ＋＞と再構築することができる。すなわち、以前に消去された（追加された）エッジをグラフに追加する（グラフから消去する）ことによって、「復帰する」メタアクションは、オリジナルの探索空間における除去アクションの効果を元に戻すことができる。
【００２０】
一般に、メタアクションを追加することは、オリジナルの探索空間における任意のアクションの効果を「元に戻す」ことができるように、有向グラフを無向グラフに変えることができる。このことは、世界の現在の状態（例えば中間グラフ）に行われた任意の変化が常に可逆であり、以下の興味をそそる性質、つまり「開始状態から到達可能な任意の２つの状態に対して、それらを接続する経路がグラフに常に存在する」性質を有するグラフを生成することを保証する。アクションが決定論的な効果を有していれば、そのときには、状態ｘは、ｙとｘとの間に経路が存在する（これは無向グラフに対しては常に真である）とすれば、他の状態ｙとｙからｘへの経路とによって、特定的に識別される。ツリー幅問題に対して、これは、ノードの中間グラフが、開始ノードのようなノードの直接の先祖ノードのみから生成される代わりに、任意のノードから生成されることが可能であることを意味する。したがって、単一の中間グラフを維持することのみを必要とし、この中間グラフは、探索空間における任意のノードに対する中間グラフになるように改変されることができる。最悪の場合には、これによりオリジナルのグラフからの除去よりも多くの仕事をすることになる可能性もあるが、そのような異常な場合はめったに起こらないので、全体の実行時間には顕著には寄与しない。これはまた、実験によっても確認される。興味ある質問は、一つのノードの中間グラフから他のノードの中間グラフを生成するオーバーヘッドをどのようにして最小化するかである。その答えは、探索戦略に依存する。なぜなら、最終的な目標は、単一のノードではなくノードのセットを拡張するオーバーヘッドを最小化することだからである。
【００２１】
ここで図２ａを参照すると、ツリー幅に対する探索ノードをリーフとして有する例示的な二分決定ツリー２００が示されている。ここで提案される解決策は、順序付けられた決定ツリーを使用して、前線ノードのセットを幅優先探索の現在の深さにおいて決定ツリーのリーフとして記憶する。系統立った状態探索方法とは異なり、このアプローチは、ノードのセットの間の類似性が保持されて探索アルゴリズムによって活用される記号探索の変形とみなされることができる。決定ツリーはルート付きツリーとして規定され、そこでは、全ての非リーフノードが変数にテストを実行する決定ノードであり、そのテストの後、そのテストの値が使用されて、リーフノードに到達するまで、次の決定ノードを再帰的に決定する。決定ツリーは、変数セットに対する離散関数を表すために普通は使用される。ツリー幅問題に対しては、変数のセットはブール変数であり、各頂点に一つずつある。ブール変数に対する真値（ｔｒｕｅ）の割り当ては、対応する頂点が除去されていることを示す。これより、たとえ多値決定ツリーが一般的な場合に必要とされても、我々は、ここでは二分決定ツリーのみにフォーカスすればよい。決定ツリーに対する処理をより効率的にするために、順序付けの制約が通常は課せられて、そこでは、変数がテストされる順序が、ルートからリーフノードまでの任意の経路で同じであることを必要とする。
【００２２】
結果として得られるデータ構造は、順序付けされた二分決定ツリーと呼ばれ、その例は図２ａに示されている。この例では、変数は、頂点ｉｄ１、２、３、及び４の昇順でテストされる。実線（破線）のエッジは、エッジの出発ノードでテストされている変数への真値（偽値（ｆａｌｓｅ））の割り当てを表す。リーフノードは、全ての変数に対する完全な割り当てに対応しており、図２ａに示されているリーフノードのセットから図１に示されている探索ノードのセットへの１対１のマッピングが存在する。
【００２３】
ここで図２ｂを参照すると、部分二分ツリー構造２５０が示されている。この部分二分ツリー構造では、現時点で拡張しているノードは完全な深さのリーフとして記憶され、拡張していないリーフは浅い深さのリーフとして記憶される。そのようなツリー構造に対する利点は、空間オーバーヘッドの低減である。このアイデアは、リーフノードが拡張されるときに、進行中にツリーの決定ノードを生成することである。よって、拡張のために選択された前線ノードのサブセットのみが、決定ツリー形式で表されることを必要とする。
【００２４】
この部分決定ツリー構造２５０では、２つのタイプのリーフが使用される。第１のタイプは完全な深さのリーフであり、これは、その長さがオリジナルのグラフにおける頂点の数に等しい完全な経路によって固有に識別される。第２のタイプのリーフは浅い深さのリーフであり、これは不完全な経路によって識別される。図示されるように、現時点で拡張しているリーフのみが、ツリー構造２５０で完全な深さのリーフとして表される。また、不完全な経路は浅い深さのリーフのセットに導くことができるので、１ビットのベクトルが各前線ノードに記憶されて、その「残りの」経路を特定する。
【００２５】
探索戦略が部分決定ツリー構造に従うべきであることに留意されたい。一つの形態では、構造化二重検出（ｓｔｒｕｃｔｕｒｅｄ  ｄｕｐｌｉｃａｔｅ  ｄｅｔｅｃｔｉｏｎ，ＳＤＤ）と呼ばれる技法、Ｒ．ジュー及びＥ．ハンセン（R.Zhou and E.Hansen）の「外部メモリグラフ探索における構造化二重検出（Structured duplicate detection in external memory graph search）」、第１９回人工知能に関する全国会議予稿集（Proceedings of the 19th National Conference on Artificial Intelligence (AAAI-04)）、第683〜688頁（2004）が、有益に使用される。このＳＤＤ技法を使用すると、ノードはバケットに区画化され、その各々に対して、抽象的な状態が状態・空間投影関数によって定義される。局在性を活用するために、ＳＤＤはノードを同じバケット内に連続的に拡張する。部分決定ツリーの場合には、ＳＤＤは、まず完全な深さのリーフを拡張する。拡張のための新しいバケットを選択する際に、ＳＤＤは全ての浅い深さのリーフを、それらの拡張の前に完全な深さのリーフに変換する。そのため、この探索技法は、ツリー構造全体に作用しているような幻想を有する。
【００２６】
前線ノードのセットを記憶するために図２ａ及び図２ｂに描かれている決定ツリー構造のような順序付き二分決定ツリーを使用する目的は、２つある。第１に、それにより、これらの前線ノードの間の類似性が明らかにされる。なぜなら、（テスト順にしたがって）同じ先行記号を有するノードは、決定ツリーにおいて同じ先祖ノードを共有しているからである。例えば、ノード｛１，２，３｝及び｛１，２，３，４｝は同じ先行記号｛１，２，３｝を共有しているので、それらは、決定ツリーにおいて同じ親ノードを有している。一方、ノード｛φ｝及び｛１，２，３，４｝は何も共通のものは無いので、それらの共通の先祖はルートノードのみである。第２に、ツリーのトポロジーは、ルートからリーフノードまでの固有の経路があることを保証する。これは、前線ノードが拡張される順序を決定するために、決定ツリーにおける深さ優先探索のようなツリー探索アルゴリズムの使用を容易にする。深さ優先探索は、その優れたメモリ参照の局在化のために良く知られており、これは決定ツリーに特に適している。なぜなら、決定ツリーの深さ優先探索は常に、異なる先行記号を有するノードを訪ねる前に同じ先行記号を有するノードを訪ね、２つのノードで共有されている先行記号が長いほど、それらは深さ優先探索でより接近して訪問されるからである。ツリー幅問題に対して、これは、２つのノードが同様の中間グラフを有していれば、それらはお互いに接近して拡張され、それらの中間グラフが類似しているほど、それらはより接近して拡張されることを意味する。深さ優先走査は決定ツリーの全てのリーフノードを探るので、探索グラフにおける前線ノードのセット全体に対する中間グラフ生成のオーバーヘッドを最小化する傾向もある。したがって、ここで記述されている実施形態は、幅優先探索の現在の深さに対するノード拡張の順序を決定するために、（メタ）探索グラフの記号的（例えば決定ツリー）表現における深さ優先走査を使用するハイブリッド探索戦略を採用する。深さ優先探索の局面は、本質的に幅優先探索におけるタイブレーク戦略として機能して、そのメモリ参照の局在化を改善し、ツリー幅計算の場合には、中間グラフの生成のオーバーヘッドも低減する。
【００２７】
図３は、二分決定ツリーにおける深さ優先探索が、どのように幅優先のツリー幅の計算におけるノード拡張の順序付けのために使われることができるかを示している。それは、深さ優先探索が、ツリー幅に対する幅優先探索における中間グラフ生成のオーバーヘッドをいかに低減することができるかの一例を示している。図３に示されている３つのリーフが幅優先の発見的探索の前線ノードであり、中間グラフが既にノード｛１，３，４｝に対して生成されているとする。深さ優先探索は、次にノード｛１，２，４｝、それからノード｛１，２，３｝を訪ねる。濃い（実線及び破線）矢印のシーケンスは、ノード｛１，３，４｝からノード｛１，２，４｝まで、ならびにそれからノード｛１，２，３｝までの中間グラフに移るためにアクションが取られる順序を表す。リーフ（ルート）に向かって動く実線の濃い矢印は、頂点を除去（復帰）するアクションを表す。破線の矢印は、その内容を変えることなく、決定ツリーで中間グラフを単純に動き回る無動作アクションを表す。図３に示されるアクションのシーケンスは、Ｇ｛１，３｝を生成するために、中間グラフＧ｛１，３，４｝から頂点４を「復帰する」メタアクション（ノード｛１，３，４｝からの濃い上向きの矢印で示される）で始まる。それから、頂点３が「復帰」されて、Ｇ｛１｝を生成する。次に、頂点２が中間グラフから除去されて、Ｇ｛１，２｝を生成し、それから頂点４が除去されてＧ｛１，２，４｝に到達する。ノード｛１，２，４｝からノード｛１，２，３｝まで移るために、頂点４は「復帰」され、それから頂点３が除去されて中間グラフＧ｛１，２，３｝を生成する。「復帰する」メタアクションは、頂点の近傍の全ての可能な対の間の接続可能性をチェックする必要は無いので、それは普通、頂点を除去するよりもはるかに安価である。これより、我々は、除去アクションがオーバーヘッドとして実行された回数をカウントするのみである。
【００２８】
この例では、３つの除去アクションのみがある。比較として、ルートノードからノード｛１，２，３｝及びノード｛１，２，４｝に対する中間グラフの生成は６つの除去アクションを必要とし（ノード｛１，２，３｝に対して３つ、及びノード｛１，２，４｝に対して３つ）、これは（ほとんど）２倍高価である。ここで記述されている実施形態のアプローチの利点は、前線ノードがルートから遠くに離れるにつれて増すことに留意されたい。例えば、図３の３つのリーフノードがルートノードから１００個の除去ステップ分だけ離れていれば、そのときには、中間グラフを再生成するために約２００個の除去アクションが要る。それにもかかわらず、ここで記述されている実施形態の場合には、ノートがどれだけ深くても、同じ数（３）の除去アクションが要る。除去アクションが顕著に異なるオーバーヘッドを有することができて、それが中間グラフのサイズ及びトポロジーに依存することに留意されたい。中間グラフは、より深い探索深さでは、より少ない頂点を有するので、除去アクションは、探索ノードがルートから遠くに動くにつれて、より安価になる傾向にある。言い換えれば、現アプローチで必要とされる３つのアクションのオーバーヘッドは、除去アクションにおけるオーバーヘッドの相違を考慮に入れれば、ルートから中間グラフを生成することによってもたらされるオーバーヘッドの恐らく１．５％（すなわち３／２００）よりも安価になる。
【００２９】
決定ツリーが探索前線ノードを記憶するための基本となるデータ構造として使用されるので、メモリの要件は、いくつの前線ノードが記憶されるかだけではなく、非リーフ決定ノードの数にも依存する。メモリ効率を改善するために、一つの形態では、決定ノードは、いずれかの前線ノードに導かなければ除去される。そうするために、リーフノードカウンタがツリーの各決定ノードに記憶される。リーフノードが消去されるたびに、その先祖の決定ノードの全ては、リーフノードカウンタを１だけ減少し、決定ノードは、そのリーフノードカウンタが零に到達するとすぐに消去される。この剪定ルールを用いれば、決定ツリーの空間の複雑さはＯ（|Ｖ||Ｎ|）である。ここで、|Ｖ|はオリジナルのグラフにおける頂点の数であり、|Ｎ|は記憶されている前線ノードの数である。（記号的の逆で）明示的な状態表現の空間の複雑さもまたＯ（|Ｖ||Ｎ|）であるとすると、我々の決定ツリーアプローチは、共通の先行記号のような付加的な情報をツリーに記憶するが、探索アルゴリズムは空間の複雑さを増さない。
【００３０】
メモリ効率を改善する他の方法は、変数の良好な順序を見出すことであり、これはまた、前線ノードのセットを表すために必要とされる決定ノードの数にも影響を与える。最適な順序を見出すことは、それ自身が困難な組合せ最適化問題であるが、良好なものがしばしば、単純な発見性（ｈｅｕｒｉｓｔｉｃｓ）を使用して迅速に見出されることができる。３つの変数順序付け発見性が実行されてテストされる。ランダム順序付け発見性は、変数をランダムに順序付けする。最小度合い頂点優先の発見性は、変数をその対応する頂点の度合いが増加するように順序付けし、最大度合い頂点優先の発見性はその逆を行う。実験によれば、ランダム順序付け及び最小度合い頂点優先の発見性は、ランダムに生成されたツリー幅の例を解決する際に、最大度合い頂点優先の発見性よりも、それぞれ平均で４０％及び１３５％多くの決定ノードを記憶する。したがって、後者が、次に報告される実験的な結果の全てを作り出すために使用された。
【００３１】
次に、我々は、前線決定ツリーのエッジにおいて、「アンドゥ（ｕｎｄｏ，元に戻す）」情報をキャッシュするための２つの異なる戦略を導入する。除去までキャッシュする戦略は、エッジがいくつかの決定ノードの剪定のために除去されるまで、アンドゥ情報を決定ツリーの各エッジに対して記憶する。引き返すまでキャッシュする戦略は、決定ツリーの深さ優先走査がエッジからそのエッジの出発決定ノードまで戻るまで、アンドゥ情報を記憶する。言い換えると、それは、深さ優先走査の現在の「コールスタック」に沿ってアンドゥ情報を記憶するのみである。したがって、アンドゥ情報が記憶されるエッジの最大数は、オリジナルのグラフにおける頂点の数によって限られる決定ツリーの深さを超えることは無い。メモリ要件は、ΔＥ＋及びΔＥ−のサイズに関して測定されたアンドゥ情報の複雑さに依存するので、この実装は、全てのそのようなΔＥのセットに含まれるエッジの最大数をたどり、これは、決定ツリー全体に亘ってアンドゥ情報を記憶するために使用されるメモリの全量を正確に反映する。除去するまでキャッシュする戦略は、キャッシュされたΔＥエッジの平均ピーク数は７，２５３，５２０エッジである。この数は、引き返すまでキャッシュする戦略が使用されたときには約４０５エッジまで減り、ΔＥエッジの数を約１７９００分の１に減らしている。驚くべきことに、これは、アルゴリズムの平均実行時間にはほとんど影響を及ぼさない。引き返すまでキャッシュする戦略の使用は、平均実行時間を１．７％未満しか増加させず、これはほとんど気付かれない。次に提示される結果は、引き返すまでキャッシュする戦略のみを使用することによって得られたものである。
【００３２】
これに関して、図４の表は、完全な及び部分前線決定ノードの比較を示す。列は、ツリー幅（Ｔｗ）、記憶されている決定ノードの１０００単位でのピーク数（Ｄｎｏｄｅ）、拡張されたノードの１０００単位での数（Ｅｘｐ）、及びＣＰＵ秒における実行時間（Ｓｅｃ）を示す。水平な線は、１００個のランダムなグラフのセットの中から、５つの最も簡単なものを５つの最も困難なグラフから区別している。図示されているように、完全ツリーに対して、部分ツリーに記憶されている決定ノードのピーク数は減少している。１００個のグラフのセットは、Ｖ＝３５及びＥ＝１４０を使用して生成された。問題の困難さが増すと、決定ノードのピーク数はもっと減少する。より細かい状態空間投影関数が使用されて探索前線ノードをより小さなバケットに区画するために使用されると、ＳＤＤの適用と共に、さらに低減される。
【００３３】
図５は、表５００において（例えばＶ＝４０及びＥ＝１２０を有する）中間グラフを生成するための２つの異なるアプローチの比較を示しており、一方は、オリジナルのグラフから頂点を除去することにより、他方は隣接するノードの中間グラフを改変することによる。表５００において、「開始ノード」とラベルされた列は、オリジナルのグラフから頂点を除去することによって中間グラフを生成するアプローチに対応する。「近傍」とラベルされた列は、近傍のノードの中間グラフを改変するアプローチに対応する。両アプローチは、基本の探索アルゴリズムとしてＢＦＨＳを使用する。第２のアプローチが第１のアプローチに対して改善する割合が、その場合の困難さと共に増加する様子を見ることは興味深い。例えば、５つの最も容易な場合（水平な線の上方に示されている）に対する平均スピードアップ率は１．３であり、これは、５つの最も困難な場合（水平な線の下方に示されている）に対しては３．１に増加する。困難な場合において、本実施形態のアプローチがますます良好に動作する理由は、ノードが拡張されるほど、その中間グラフが次に生成されるものに密接に類似している近傍を見出すことが、より容易になるからである。
【００３４】
ここで図６を参照すると、表６００が示されている。この表は、ベンチマークグラフ（ＤＩＭＡＣＳグラフ着色の場合）に対する幅優先の発見的探索の性能を示している。示されている列は、分割統治法によって見出された上限境界（Ｕｂ）、開始ノードに対する発見性の値（Ｌｂ）、ツリー幅（Ｔｗ）、記憶されている前線ノードのピーク数（Ｓｔｏｒｅｄ）、ノード拡張数（Ｅｘｐ）、及びＣＰＵ秒における実行時間（Ｓｅｃ）を示す。この結果は、最新技術に対する改善を示す。
【００３５】
計画及びスケジューリングの少なくとも一つのタイプでは、最大の性能上のボトルネックの一つは、ノードが生成されるたびに生じるＳＴＮ（Ｓｉｍｐｌｅ  Ｔｅｍｐｏｒａｌ  Ｎｅｔｗｏｒｋｓ，単純な一時的ネットワーク）のコピーである。しかし、ここで記述された技法の使用は、探索エピソードの間にＳＴＮのコピーは必要ない。なぜなら、異なる探索ノードに対するＳＴＮはグローバルに記憶されたＳＴＮの改変から生成されることができて、異なる部分のみを、現在の探索経路に沿ったノードに記憶すればよいからである。これは深さ優先探索に対して容易に実行されることができるが、シートプランナーによって現時点で使用された探索アルゴリズムである最良優先Ａ＊探索に対してそうすることは、最良優先に深さ優先探索を組み合わせる困難さを考慮すると、明白ではない。しかし、ここで記述されている実施形態によれば、これはもはや技術的な障壁ではない。例えばパッケージマシンドメインのようなタイトなリアルタイム要件があるドメインに対しては、ＳＴＮに対する高速処理を有することは、価値が高いものであり得る。
【００３６】
ここで提供された技術的な内容の多くはツリー幅問題に対するものであるが、ここで記述されている実施形態が、計算上の例として使用されたツリー幅問題に限定されないことは明らかである。ここで記述されている実施形態は幅優先探索及び深さ優先探索の組み合わせを使用し、両者の補完的な強みを所有する単一の探索アルゴリズムを可能にする。異なる探索ノードの間の類似性が、深さ優先探索が状態表現の局在性を活用することを許容する形態で獲得されることができる限りは、ここで記述された技法は、大きな符号化サイズを有するグラフ探索問題に対して、特に効果的である。
【００３７】
ここに記述されている実施形態の数多くの変形が存在する。例えば、二分決定ツリーを使う代わりに、２つより多くの値を取ることができる変数に対するｎアレイの決定ツリーを使うことができる。上述の実施形態で記述された３つの順序付け発見性とは異なるように変数を順序付けすることもできる。さらに、ノードのセットの間の類似性を表すために、決定ツリー以外のデータ構造を使うことができる。一つの可能性は、決定ツリーよりも簡潔な二値又は代数的決定ダイアグラムを使用することである。
【００３８】
ここに記述されている実施形態は、それによって実現される改善された探索技法を利用する多くの実用的なアプリケーションを有する。例えば、改善されたツリー幅ソルバを使用して最適の又は最適に近いツリー幅（現実施形態のビーム探索変形を使用して）及びその対応する頂点除去順を見つけ出すことができ、これは、ツリー幅においては指数関数的である計算上の複雑さを低減するために、バケット除去のようなベイジアン・ネットワーク推論アルゴリズムにおいて使用されることができる。ベイジアン・ネットワークの用途は、他の発見的推論フレームワークの中でも、診断、予知、及びシステム健全性管理を含む。ツリー幅はまた、制約満足問題において重要な役割を果たす。例えば、グラフ着色問題は、ツリー幅が決定されると、容易に解決されることができる。
【００３９】
ここで記述されている実施形態のアプリケーション及び／又は環境の単なる例として、図７が参照される。示されているように、（製造又は処理システムのような）システム７００は製造又は処理ユニット７０２を含み、これはその中に（参照の容易さのために示されていない他の構成要素の中で）一連のセンサ７０４及び製造モジュール７０６を有する。センサ７０４及び製造モジュール７０６は、ここに記述されている実施形態が適用される実際の製造プロセスの関数として変化することを理解されたい。しかし、一般にセンサ７０４は、製造モジュール７０６の内部のイベント又は状態を検出し、あるいは、システムの診断目的では出力７２０を検出する。さらに示されているのは入力７１０及び出力７２０である。もちろん、入力及び出力は、アプリケーションによって変わる。ある場合には、入力は、原材料又は構成要素又は情報であり、出力は、最終製品、あるいは引き続くプロセスで適用されるべき構成要素又は更なる情報であることができる。
【００４０】
顕著なことに、システム７００は、診断ユニット７４０を含む制御ユニット７３０を有する。少なくとも一つの形態では、ここで記述されている実施形態が、そのアプリケーションに適した様々なソフトウエア技法及び／又はハードウエア構成のいずれかによって、診断ユニット又はモジュール７４０にて実装される。例えば、この実装は、マイクロプロセッサ、埋め込みプロセッサ、又は適切なメモリ能力及び処理速度を有する他の処理装置を含み得る。これに関して、要件は、最適のツリー幅又は最適に近いツリー幅が特定のアプリケーションに対して望まれるかどうかの関数として、変わり得る。動作において、センサ７０４は、製造モジュール７０６の内部のイベント又は状態、あるいは出力７２０を検出し、診断モジュール７４０にそのような情報を供給する。診断モジュール７４０は、アプリケーションによって規定されるように、マシンの観察された症状に対する最も可能性のある説明を与える。制御ユニット７３０はそれから診断を使用して、プロセスの変更などを含む他の機能を実行することができる。
【００４１】
一つの形態では、図１０を参照すると、ここで記述されている実施形態のツリー幅ソルバ１００６は、例えば製造モジュールの基本のモデルとしてベイジアン・ネットワークを使用する診断エンジン（診断ユニット又はモジュール７４０、あるいは後述の診断モジュール８３４のような診断エンジン）において、（ベイズ推論モジュール１００４の）ベイズ推論を改善するために使用され得る。ソルバは、任意の他の最適なツリー幅ソルバよりも最適なツリー幅をよく見つけることができるので、複雑さがツリー幅において指数関数的である任意のベイズ推論モジュール１００４が、できるだけ効率的に動作することを可能にする。これに関して、少なくとも一つの形態では、ツリー幅ソルバ１００６の役割は、（最適なツリー幅を見つけ出す副産物として）最適な頂点除去順の形態でベイズ推論モジュール１００４へ「アドバイス」又は入力を提供することである。ある形態では、診断データベース１００２がまた、製造又はプロセスのベイジアンモデル、ならびに過去の観察が与えられると、最尤診断のような情報を記憶するために使用されて、システム又はプロセス又はマシンの健全性の状態、スケジュール予防的メンテナンスを追跡し、診断プローブ及びコスト的に有効な状態を推奨するために使用されることができる。
【００４２】
そのような機能性を達成するために、少なくとも一つの形態では、例えば図１〜図３に関係して説明したような、ここで記述された実施形態と並んで、診断エンジンのツリー幅ソルバは、基本のベイジアン・ネットワークの最小幅に対応する診断変数の除去順を生成するように動作する。この目的を達成するために、ツリー幅ソルバは、診断状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと、探索前線におけるノードに対応するリーフノードと、を有する探索前線ノードのセットを表す順序付き決定ツリー構造を生成し、順序付き決定ツリー構造で深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍であるようにノード拡張を順序付けて、現在のノードの中間グラフを改良することによって選択されたノードの中間グラフを導出するように動作する。上述の他の機能もまた、診断エンジンのツリー幅ソルバによって実行される。
【００４３】
ここで記述されている環境に対して適した環境の他の例が、図８に示されている。図示されるように、（プリンタ、コピー機などのような）画像レンダリングシステム８００は、（参照の容易さのために特に示されていない他の構成要素の中で）レンダリングユニット８１０を含む。ユニット８１０は、印刷エンジン８２０（電子写真印刷エンジン又はその他の適切な印刷エンジンであってよい）、制御モジュール又は印刷コントローラ８３０、及びセンサ８４０を有する。制御モジュール８３０は、一つの形態では、画像プロセッサ８３２（様々な適切な形態を取ることができる）、及び診断モジュール８３４を含む。顕著なことに、診断モジュールは、図１０に関連して示されている形態のような少なくとも一つの形態では、企図されたレンダリング環境に適した様々なソフトウエア技法及び／又はハードウエア構成のいずれかによる、ここに記述された実施形態の実装である。例えば、上述のように、この実装は、マイクロプロセッサ、埋め込みプロセッサ、又は適切なメモリ能力及び処理速度を有するその他の処理装置の使用を含み得る。これに関して、要件は、最適の又は最適に近いツリー幅が特定のアプリケーションに対して望まれるかどうかの関数として、変化し得る。
【００４４】
さらに示されているのは、出力８５０（１枚の紙を含む様々な形態を取り得る）、画像入力モジュール８６０（紙のためのシートフィーダ、又はデジタル画像をレンダリングユニット８１０に運ぶモジュールを含む様々な形態を取り得る）、及びインターフェース８７０（レンダリングユニット８１０上にあるインターフェース、又は、例えばユーザの端末上で動作するリモートインターフェースを含む様々な形態を取り得る）である。
【００４５】
上記と同様に、動作において、センサ８４０は、印刷エンジン８２０の内部のイベント又は状態又は条件（例えば症状）、あるいは出力８５０を検出し、診断モジュール８３４にそのような情報を供給する。診断モジュール８３４は、アプリケーションによって規定されるように、マシンの観察された症状に対する最も可能性のある説明を与える。この環境では、観察された症状は、トナーレベル、色の変動、色の一様性、位置合わせ、見当合わせ、解像度、エッジ検出などを含む様々な形態を取ることができるが、これらに限られるわけではない。制御ユニット８３０はそれから、診断を使用して印刷プロセスの改変などを含むその他の機能を実行することができる。
【００４６】
図７及び図８の例示的なアプリケーションの記述から明らかなように、ここで記述された実施形態は、様々な実装を有する全体診断（又はその他のタイプの）方法を達成するように実装されることができる。図９に示されているように、そのような全体診断方法の例９００が描かれている。これに関して、システム又はプロセスは典型的に、（センサデータのような）データの獲得を許容する（ステップ９０２）。次に、任意の問題が、得られたデータに基づいて、ここで記述された実施形態によって診断される（ステップ９０４）。そのような診断のためのプロセスは、図１〜図８及び図１０に関連して上記で詳細に記述される。これに関して、少なくとも一つの形態では、ツリー幅ソルバは、ベイジアン・ネットワーク分析の改善された利用を提供するように実装される。少なくとも一つの形態では、診断エンジンのツリー幅ソルバは、状態変数に対するテストを実行するように動作する決定ノードに対応する決定ツリーの内部ノードと、探索前線におけるノードに対応するリーフノードと、を有する探索前線ノードのセットを表す順序付き決定ツリー構造を生成し、順序付き決定ツリー構造で深さ優先走査を実行して、次に拡張されるべきノードが現在のノードの近傍になるようにノード拡張を順序付けて、現在のノードの中間グラフを改善することによって、選択されたノードの中間グラフを導出するように動作する。最後に、任意の検出された問題に対する解決策が、システムによって出力される（ステップ９０６）。診断出力は、ツリー幅ソルバによって計算されるように、ベイジアン・ネットワークの最適なツリー幅に対応する除去順を使用する蓋然性推論に基づいている。
【図１】
2010250823.tif 000003
【図２ａ】
2010250823.tif 000004
【図２ｂ】
2010250823.tif 000005
【図３】
2010250823.tif 000006
【図４】
2010250823.tif 000007
【図５】
2010250823.tif 000008
【図６】
2010250823.tif 000009
【図７】
2010250823.tif 000010
【図８】
2010250823.tif 000011
【図９】
2010250823.tif 000012
【図１０】
2010250823.tif 000013