(57)【特許請求の範囲】
【請求項１】
座標データ構造におけるデータの格納およびアクセス方法であって、
品質指標値の降順に配列されたノードの集合を含む平衡二分木データ構造を生成する工程と、
前記ノードの集合の部分集合であって、該ノードの部分集合に関連する探索労力指標値の昇順に配列されたノードの集合の部分集合を含むバイナリヒープデータ構造を生成する工程と、
品質指標値の最小閾値を設定する工程と、
前記品質指標値の最小閾値以上の品質指標値を有するノードを前記ノードの集合内で識別する工程と、
前記識別されたノードを前記バイナリヒープデータ構造内の前記ノードの集合の部分集合に含める工程と、
前記品質指標値の最小閾値以上の品質指標値を有し、かつ関連する探索労力指標値が最も低いノードを識別する工程と、
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、
前記ノードの部分集合が、前記ノードの集合のすべてのノードを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、さらに、
前記バイナリヒープデータ構造内の前記ノードの部分集合から１ノードを選択する工程と、
選択されたノードをバイナリヒープデータ構造および平衡二分木データ構造から削除する工程と、
該選択されたノードに関連する解の評価のために、選択されたノードを探索キューに配置する工程と、
をさらに含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標データ構造におけるデータの格納またはアクセス方法、及びそのシステムに係り、特に、有界部分最適問題解法を用いた座標データ構造におけるデータの格納あるいはアクセス方法、及びその方法を用いて印刷ジョブに関する解の識別を実行するシステムに関する。
【背景技術】
【０００２】
機械制御システムの設計においては、システムの処理量の最適化、またはそのような最適化に関連する費用の最小化の少なくともいずれか１つのため、リソースをそれらの最大能力まで利用することが重要である。プリンタ、写真複写機などの場合、従来の制御機構は情報処理、ジョブまたはタスクの実行、そのようなジョブまたはタスクの計画を行う仕方が限られている。例えば、あるジョブに関して複数のタスクが実行される場合には、タスクを具体的に順序付けることが１以上の他の順序付けを排除するより好ましいであろうし、そのような解法が機械による実行に関して最適であると考えられる。例えば印刷プラットフォームの場合、印刷すべきページ、印刷に関係するタスクなどの最適な順序付けは、リソースの無駄を軽減しプリンタ処理量を向上させるために望ましい。
【０００３】
従来の計画システムおよび計画方法では、Ａ＊サーチアルゴリズムを含むさまざまな探索アルゴリズムが用いられている。Ａ＊サーチアルゴリズムは、一般的に、所与の初期状態から望ましい目標状態までの経路検索を容易にするために機能する。Ａ＊サーチアルゴリズムは、帰納的評価を利用して、与えられたノードを経由して所望のノードに達する最適経路の評価によってその与えられたノードをランク付けするものなので、「最良」探索アルゴリズムの一例となる。この場合、探索アルゴリズムは、各ノードをそれぞれの評価値に従って、価値付ける順序を決定することができる。しかし、Ａ＊アルゴリズムは、最適なものより劣ることが証明できないすべてのノードを探索するものであるので、時間がかかるとともに計算機的にも費用がかさむことがある。これはリソース（例えばメモリ、処理能力など）を占有し、処理の遅延につながることにもなる。
【０００４】
【特許文献１】米国特許６，９７３，２８６明細書
【特許文献２】米国特許６，９５９，１６５明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、探索アルゴリズムおよび関係するデータ構造の処理効率の向上を助けるシステムまたは方法の少なくともいずれか１つの技術においては、まだ満たされていない要求が存在している。
【課題を解決するための手段】
【０００６】
本明細書に記載されるさまざまな態様では、バランスの取れた二分木データ構造（以後、平衡二分木データ構造という）とバイナリヒープデータ構造とを含むデータ構造の格納、生成、維持、探索およびアクセスに関するシステムおよび方法が記述される。例えば、座標データ構造におけるデータの格納およびアクセス方法は、品質指標値の降順に配列されたノードの集合を含む平衡二分木データ構造を生成する工程と、ノードの集合の部分集合に関係する探索労力指標値の昇順に配列されたノードの集合の部分集合を含むバイナリヒープデータ構造を生成する工程とを含む。
【０００７】
別の態様では、印刷ジョブに関する解の識別を容易にするシステムは、平衡二分木データ構造およびバイナリヒープデータ構造を生成するデータ構造ジェネレータと、平衡二分木データ構造およびバイナリヒープデータ構造について探索アルゴリズムを用いて探索して最適解を識別するソルバと、平衡二分木データ構造およびバイナリヒープデータ構造が評価のため格納される探索キューとを備える。
【０００８】
さらに別の態様は、ある処理を行なうための命令を実行する１つ以上の構成要素と、この処理を行なうためのそれぞれの動作を表わす複数のノードを用いて二分木データ構造とバイナリヒープデータ構造とを含むデータ構造を生成するデータ構造ジェネレータとを備え、各ノードがそのノードにおける最適解の品質を表わす品質指標値およびそのノードにおける最適解への到達に関する探索労力の量を表わす探索労力指標値に関係付けられることを特徴とするシステムに関する。このシステムは、バイナリヒープデータ構造を探索して既知で最良の動作に対して所定の品質範囲の内にある動作を識別するとともに識別されて選択されたノードを評価のため探索キュー内に配置するソルバにおいて、データ構造ジェネレータが二分木データ構造およびバイナリヒープデータ構造から選択された動作に関係するノードを削除してデータ構造を更新し、データ構造が連続して更新されるごとにソルバがバイナリヒープデータ構造を反復して探索し次の最適な動作を選択することを特徴とするソルバをさらに備える。
【発明の効果】
【０００９】
上記構成により、探索アルゴリズムおよび関係するデータ構造の処理効率の向上を図ることができる。
【発明を実施するための最良の形態】
【００１０】
本明細書に記載されるさまざまな態様では、有界部分最適性に関する実行可能な探索結果を高速で識別できるように、平衡二分木データ構造とバイナリヒープデータ構造とを含む座標データ構造を組合せて探索アルゴリズムの実行中に相互相関させることができる。本明細書で提示される特徴は、計算機システム、産業制御システム、生産実施システム、コンピュータゲーム対戦コントローラ、生物学的配列アラインメントシステム、ロジスティクスソフトウェア、電子撮像環境、および１つ以上のゼログラフィ要素を用いてゼログラフィの手順または機能が実施されるゼログラフィ環境を含み、またそれらに限定されないさまざまな環境について、これらに構成されるか、またはこれらに用いられるか、すくなくとも何れか１つであることを理解すべきである。対象となる概念は、主としてプリンタまたは複写機などの印刷プラットフォームに関連して説明されるが、そのような概念は、他の多くの技術または探索アルゴリズムのすくなくともいずれか１つにおいても利用可能であることが了解されよう。他の態様では、そのような方法をゲーム用途、経路決定およびモーションプランニング用途などにも利用することができる。実際、対象となる技術革新は、最良探索プロトコルおよびそれに関係するデータ構造が用いられる任意かつすべての用途において利用可能である。
【００１１】
図１を参照すると、二分木データ構造とバイナリヒープデータ構造とを含む組合せデータ構造を用いて組合せ探索を実行するシステム１００が図示されている。システム１００は、最適な解法の可能性を決定するために複数のノードを評価することができるソルバ１０２（例えばプロセッサなど）を備えている。例えば、各ノード（Ｎ）（ノードは、例えば、一意的な解の可能性を表わすものでよい）は、それに関係する付加的な２つの指標値を有してもよい。例えば、当該ノードにおける最適解を記述する品質指標値（ＱＶ）を当該ノードに関係付け、当該ノードにおける最適解に到達するのに必要な労力のレベルを示す探索労力指標値（ＳＥＶ）を当該ノードに付加的に関係付けてもよい。探索キュー１０４は、ソルバ１０２により利用可能なデータ構造１０６を含んで構成されるものとできる。データ構造１０６内のノードはＮ1からＮn（ｎは整数）として示されており、各々それぞれのＱＶおよびＳＥＶ指標値と関係付けられている。システム１００は、コンピュータ１０８内で実行されるか、またはコンピュータ１０８によって構成されるかの中の少なくともいずれか１つでよいことが了解されよう。
【００１２】
さまざまな態様において、データ構造１０６は、最良ノード（例えば、ジョブ要求などに対する解を探索する際の拡張のための最適ノード）の所定の品質因子の内にあるノードを含むすべてのノードの部分集合から、あるノードを最小の労力量で発見することを実行する。この意味で、「最適」ノードは、最高の品質指標値を有する解である必要はなく（勿論、最適ノードは、すべてのノードの集合で最高の品質指標値を有してもよいが）、むしろ（例えば、最良解の所定の品質因子の内において）最小の探索労力量に関係する「十分に高い」品質指標値を有するノードでありえる。したがって、選択されたノードは、品質において「部分最適」であってもよいが、その子ノード群の中で探索を行なって可能解を発見することは容易であるので、さらなる最適なノードがあるときはそれを超えたものであることが望ましい。
【００１３】
ある一例では、各ノードは、プリンタなどの機械に関するジョブ計画の解における特定の動作を表わすものとできる。ジョブの完了を表わすノードに達することは、ジョブを完成させる動作の順序を発見したことに相当する。この計画は、根（ルート）ノードから最終（ターミナル）ノードに導く複数のノードに沿った経路によって表わすことができる。ソルバ１０２は、すべてのジョブ計画を、最適なジョブ計画に対して、品質指標値を示す効率で５％のばらつきの範囲内で評価することが要求されるものとして決定を行うことができる。例えば、次の最適なノード（Ｎ）は、１の品質値を与えるものとできる。次に少なくとも９５％の品質指標値としての効率を有する最も容易に到達できたノードを、データ構造１０６の二分木データ構造１１４およびバイナリヒープデータ構造１１６から削除し、そして拡張し（例えば、選ばれたノードに関して子ノードを生成して）、この処理を繰り返すことができる。次のパスでは、所定の判定基準を満たす次のノードを選択して、データ構造１０６から削除し、探索アルゴリズム１１０により拡張して、印刷ジョブなどに対する完全な解の生成を実行するものとできる。上記の例は、品質指標値について９５％の効率閾値と設定することに限られず、適切なまたは所望の効率閾値を設定して用いてもよいことが了解されよう。さらに、品質指標値は、１つ以上の因子またはパラメータの関数であってもよく、それらはジョブ処理時間、ジョブ実行時間、所与のジョブ解法の完了に必要な動作の数、所与のジョブ解法の実行に必要なリソ−スの数または質、または別のジョブ解法または動作よりも好適な所与のジョブ解法または動作が得られる他の適切なパラメータを含むが、それらに限定されない。探索労力指標値は、ある解法に対する介在ノードの数、帰納的品質評価の精度、または他の因子など多くの因子の関数であってもよい。
【００１４】
探索キュー１０４およびそのデータ構造１０６は、例えば、二分木データ構造１１４と、バイナリヒープデータ構造１１６とを含んでもよい。態様によっては、二分木データ構造１１４は平衡二分木データ構造であってもよい。システム１００は、実行すべき１つ以上のジョブ、前記１つ以上のジョブに関連して実行すべき１つ以上の動作などの形態で入力を受信するデータ構造ジェネレータ１１２を付加的に備えることができる。ここで、データ構造ジェネレータ１１２は、複数のジョブ動作をそれぞれのノードに関係付けてデータ構造１０６を生成することができる。例えば、データ構造ジェネレータ１１２は、１組の、機械で実行可能な命令を実行し、それぞれが特定のジョブ動作に関係付けられた複数のノードを含む平衡二分木データ構造を生成することができる。探索キュー１０４に含まれるデータ構造ジェネレータ１１２は、最適ノードに関する所定の効率または適合度の範囲内にあるノードを二分木データ構造１１４の中から識別するものとでき、そして識別されて選択されたノードをそれぞれの探索困難性のレベルに従ってバイナリヒープデータ構造１１６内に配置編成するものとしてもよい。このようにして、データ構造ジェネレータ１１２は、ソルバ１０２による評価および拡張のために、ソルバ１０２によるノードの選択を実行するものとできる（例えば、バイナリヒープデータ構造１１６において最も容易に探索されたノードを選択することができる）。さらに、データ構造ジェネレータ１１２は、拡張のためあるノードの選択において、二分木データ構造１１４またはバイナリヒープデータ構造１１６の少なくともいずれか１つからそのノードを削除することによりデータ構造１０６を更新することができる。ノードがソルバ１０２によって拡張されれば、当該ノードおよびその子ノードを二分木データ構造１１４に再挿入し、二分木データ構造１１４およびバイナリヒープデータ構造１１６を更新して、新しいノードによりもたらされる変化を反映させることができる。このようにして、システム１００は、最適解の識別および評価のためソルバ１０２により探索される全体として拡張された解法空間を、効果的に縮小することができる。
【００１５】
図２は、さまざまな特徴による、複数の利用可能なノードの中で適切なノードの識別を実行するためのデータ構造の一部分として用いることができる平衡二分木データ構造２００の図解である。平衡二分木データ構造２００は、親ノード２０２を含んでおり、親ノード２０２は１対の子ノード２０４Ａ，２０４Ｂを有しており、その各々がまた１対の子ノードを有している。例えば、２０４Ａの子ノードはそれぞれ２０６Ａ，２０６Ｂとして標識され、２０４Ｂの子ノードはそれぞれ２０６Ｃ，２０６Ｄとして標識される。平衡二分木データ構造２００の各ノードは、ジョブ要求に対する解として、プリンタなどの機械により実行可能な動作に関係付けられる。平衡二分木データ構造２００は、図解の左から右へ、品質の降順に編成することができるが、他の編成方式も当業者にとっては明らかであろう。各ノードは、印刷ジョブに対するポテンシャル解における次の論理動作としてのノードの適合度およびノード探索に関係する困難度のレベルを示すものとして、それぞれ、品質指標値および探索労力指標値｛ＱＶ，ＳＥＶ｝に関係付けられる。
【００１６】
平衡二分木データ構造２００内の各ノードは、その親ノード、その左の子ノード、およびその右の子ノードに対するポインタを備えるものとしてもよい。平衡二分木データ構造２００は、データの編成が可能な、図１に関して説明したデータ構造１０６の一部分である二分木データ構造１１４などのデータ構造の第１の部分を表わしている。さらに、平衡二分木データ構造２００は、以下で説明するバイナリヒープデータ構造１１６とともに、探索アルゴリズム１１０により探索される適切なノードへのアクセス時間短縮を容易にする１対の座標データ構造として用いることができる。平衡二分木データ構造２００は、ポテンシャル解の同様の数に対応するいかなる数のノードを含んでもよく、図示のような７ノードのツリーサイズに限定されないことが了解されよう。
【００１７】
図３は、１つ以上の態様に従って、二分木データ構造１１４とともに利用して高速組合せ探索のため座標データ構造へのデータ格納を実行することが可能なバイナリヒープデータ構造３００の図解である。バイナリヒープデータ構造３００は、図２の平衡二分木データ構造２００のような二分木データ構造を用いて作成可能なデータ構造である。バイナリヒープデータ構造３００は、ヒープのさまざまな要素への高速アクセスを実行するように、基礎配列データ構造を用いて実装できることが当業者にとって明らかである。ある一例では、バイナリヒープデータ構造３００は、各ノードがその子ノードよりも少ない探索労力で関係付けられる最小ヒープとすることができる。あるノードをこのヒープの最下層に付加し、その親ノードと比較し、平衡二分木データ構造２００内のこのノードの位置がその親ノードの平衡二分木データ構造２００内の位置よりも到達が容易である場合、当該ノードをバイナリヒープデータ構造３００内のその親ノードと入れ替えることができる。これは、バイナリヒープデータ構造３００が正しい順序付けを獲得するまで繰り返えすことができる。
【００１８】
バイナリヒープデータ構造３００は、平衡二分木データ構造２００のすべてのノードを含む必要はないことが了解されよう。しかしながら、バイナリヒープデータ構造３００内の各ノードは、平衡二分木データ構造２００から選択されるノードであるものとしてよい。ある一例では、最適解の値の品質指標値の効率で１０％以内のばらつきにある解の値を有するすべてのノードに関して探索を実行するものとしてもよい。例えば、所与のジョブシーケンスに関する最適解の実行に１５秒かかり、かつ解の評価基準が時間である場合、完了までに１６．５秒よりも長くかからない解を得られそうな動作に関係するノードを、バイナリヒープデータ構造３００に含むものとして選択することができる。
【００１９】
バイナリヒープデータ構造３００を編成する場合、ノード従属性の基準は探索の容易度を含むものとできる。例えば、平衡二分木データ構造２００において最適な次の動作について品質指標値である効率のばらつきの５％以内にあるノードの探索が実行されると、合計４個のノードが返され（例えばノード２０２，２０４Ａ，２０６Ａ，２０６Ｂ）、これらの各ノードを利用してバイナリヒープデータ構造３００を生成することができる。このようにしてノード２０４Ａは、そのＳＥＶが１なので、バイナリヒープデータ構造３００の最上部（根、ルート）に示され、探索困難度が相対的に最低レベルであることを示している。ノード２０６Ｂは、それに関係する探索労力がより大きいのでバイナリヒープデータ構造３００内でさらに下層側にある。
【００２０】
したがって、特定のジョブまたはタスクに対する解の探索が行なわれる場合、ノード２０４Ａは、バイナリヒープデータ構造３００から選択されて削除されるものとできる。さらに、平衡二分木データ構造２００内の対応するノード（例えばノード２０４Ａ）は、バイナリヒープデータ構造３００内に格納される際に（平衡二分木データ構造２００内の）その親ノードおよび子ノードに対するポインタ情報を含んでいるので削除するものとできる。すなわち、ノード２０４Ａは、平衡二分木データ構造２００内に有する子ノードの属性の他に、平衡二分木データ構造２００内のノード２０２の子ノードであることを示すポインタ情報を含むことができる。このようにして、ノード２０４Ａを平衡二分木データ構造２００内に容易に格納配置し、また削除することができる。平衡二分木データ構造２００は、バイナリヒープデータ構造３００と同様に、次の評価のために更新することができる。
【００２１】
上記におけるさまざまな閾値または基準の少なくともいずれか１つは、本質的に例示であり、いかなる適切に設定された閾値（例えば１％、５％、７％、１５％、５０％など）またはいかなる適切な基準（例えば時間、エネルギーの保全または消費、リソースの保全または消費、費用削減など）の少なくともいずれか１つを用いてもよいことが了解されよう。
【００２２】
図４は、上記のような二分木データ構造の部分とバイナリヒープデータ構造の部分とを含む組合せデータ構造４００を示している。複数のノードが図示されており、図内の矢印はあるノードから別のノードへの能動的ポインタに相当している。第１のノード４０１は、関係する５つの情報を（例えば上記ＱＶおよびＳＥＶ情報に加えて）有している。例えば、ノード４０１は、関係するノードデータフィールド部４０２を有しており、このノードデータフィールド部は、ノードの属性に関する情報、ノードに関係する動作（例えば解の一部分をなすもの）、および本明細書で記述されるさまざまな方法を実行するための他の適切な情報を含むものである。さらに、ノード４０１は、そのデータ配列構造４３２（例えばバイナリヒープデータ構造の）内の位置を示す配列指標値４０４を有している。この場合、ノード４０１は、最小量の探索労力指標値に関係付けられ、かつデータ配列構造４３２の最初にあって、このデータ配列構造４３２は、探索労力指標値が０から始まる（勿論、そのようなデータ配列構造４３２は、知られるように１または他の適切な値で始まってもよいが）ので、ノード４０１の配列指標値としての配列ポインタ値は０となる。またノード４０１は３つのポインタフィールド部、すなわちその左に来る子ノードに対するポインタフィールド部４０６と、その右に来る子ノードに対するポインタフィールド部４０８と、その親ノードに対するポインタフィールド部４１０とを有する。ノード４０１は、データ構造４００の３つの部分における根（ルート）ノードなので、親ノードを有しておらず、その親ノードを示すポインタフィールド部４１０は空（ヌル）となり、空ポインタを通すハッシュ線により示されている。
【００２３】
同様に、ノード４０３は、ノードデータフィールド部４１２と、配列指標値４１４または配列ポインタ値と、その左右にそれぞれ来る子ノードに対するポインタフィールド部４１６，４２０と、その親ノードに対するポインタフィールド部４１８とを有している。同様に、ノード４０５は、ノードデータフィールド部４２２と、配列指標値４２４である配列ポインタ値と、その左右にそれぞれ来る子ノードに対するポインタフィールド部４２６，４３０と、その親ノードに対するポインタフィールド部４２８とを有している。この簡略化された例では、三つのノード４０１，４０３，４０５のみが図示されており、ノード４０３，４０５は、子ノードに対するポインタフィールド部はそれぞれ空（ヌル）を示している。しかし、本文書に提示されたシステムおよび方法が、本明細書に記述されるデータ構造で使用可能なノードの数において限定を受けないことは了解されよう。さらに、ノード４０５は、データ配列構造４３２内への包含に関して選択されない結果としてデータ配列構造４３２に包含されないので、配列指標値４３０である配列ポインタ値が空(ヌル)であることが留意されよう。このことは、前の図面に関して上記で説明したように、ノード４０５の品質指標値がデータ配列構造４３２への包含に関する所定の許容範囲を外れていることによって生じるものである。
【００２４】
バイナリヒープデータ構造のデータ配列構造４３２は、それぞれの探索労力指標値に従って配列された複数のノードを有している。図示のように、第１位置４３４は、配列内で最も容易に探索されるノードであることを示すノード４０１に対するポインタを保持している。位置４３４は、データ構造の二分木データ構造の部分内（例えばノード４０１）での高速な配置を可能とするためにノード４０１に対するポインタを有している。同様に、位置４３６は、ノード４０３において二分木データ構造の部分内のある位置に対するポインタを有している。この方法において、ポテンシャルジョブ解法経路を評価する際の拡張のために、データ構造４００から複数のノードを迅速に削除するものとしてもよい。
【００２５】
図５および６に関し、平衡二分木データ構造およびバイナリヒープデータ構造の双方を含むデータ構造の生成または更新の少なくとも何れか１つを実行し、探索アルゴリズムを実行する方法の手順を説明する。ここでは、これらの方法を、一連の行為を図示するフローチャートとして示す。しかし、記述された技術革新のさまざまな態様では、１つ以上の手順が１つ以上の他の手順と同時に、また図示の順序とは異なる順序で生じ得てもよいことが了解されよう。さらに、態様によっては、所与の方法が、図示された手順より少ない手順ですむ場合があることを理解すべきである。
【００２６】
図５は、本明細書に記述される１以上の特徴による、二分木データ構造とバイナリヒープデータ構造とを含む座標データ構造を生成して複数のノードの組合せ探索を実行する方法の手順５００の図解である。この方法では、５０２においてノードに品質指標値が割り当てられる。この品質指標値は、当該ノードに関係付けられたある動作または複数の動作を記述するものである。例えば、プリンタなどの機械では、所与の動作の品質指標として、その動作が印刷ジョブ実行を容易にする迅速性、ジョブ完了に関係する動作の数、動作の完了において消費されるリソ−スの数または質、または動作または解の少なくとも何れか１つの効率に関する他のパラメータなどに関係付けることができる。
【００２７】
５０４において、ノードに探索労力指標値が割り当てられる。例えば、探索労力指標値として、目標ノードまでの経路内のノードの数、評価情報の精度などを評価するものとできる。５０６において、ノードがデータ構造に挿入される。このデータ構造は、それぞれの品質指標値に従って配列されたノードを有する二分木データ構造と、関係する探索労力指標値の相対的程度に従って配列されたノードを有するバイナリヒープデータ構造とを含むことができる。
【００２８】
図６は、ジョブ要求に対する最適解を識別または評価の少なくとも何れか１つのために、平衡二分木データ構造およびバイナリヒープデータ構造の双方を含むデータ構造を探索する方法の手順６００の図解である。６０２において、平衡二分木データ構造が初期化される。６０４において、平衡二分木データ構造の関数として生成されるバイナリヒープデータ構造（または配列）が初期化される。ある一例では、平衡二分木データ構造を探索して、ジョブ解法、すなわち計画内で実行すべき動作に関係付けられる目標値に関して所定の閾値範囲内にあるすべてのノードを識別するものとできる。例えば、品質指標値の目標値が１００％の効率であり、かつ所定の閾値範囲が効率で３０％である場合、既知で最良の次の動作に対して効率が少なくとも７０％の動作に関係するすべてのノードを平衡二分木データ構造内で識別し、それぞれの探索困難性のレベルの順序で、探索労力レベルがより低いものをバイナリヒープデータ構造内で優先するようにして、バイナリヒープデータ構造内に配置できる。６０６において、あるノードをバイナリヒープデータ構造から拡張のため選択され、これにより当該ノードは、平衡二分木データ構造およびバイナリヒープデータ構造から削除され、実施可能なジョブ解法経路を表わす探索木に加えられる。
【００２９】
６０８において、上記のノードの選択が結果として最終（ターミナル）条件を生じるか否かに関する決定が行われる。例えば、複数のそれぞれのノードの動作によって所望の印刷ジョブなどが完了する（例えばさらなる動作の探索が必要でない）場合に、最終条件を生じるものと決定することができる。このような場合、ノードをもはや拡張する必要はなく、方法を終了させることができる。しかし、最終条件の状態が検出されない場合、６１０において、選択されたノードに関して子ノードを生成するものとできる。生成される子ノードは、親ノードの部分解の精密化すなわち拡張を表わすものである。そして、６１２において、新しい子ノードを二分木データ構造に挿入することもできる。挿入された子ノードは、例えば印刷ジョブなどの実行に関係する単一または複数の動作を表わすものとできる。生成された子ノードの付加により、相対的な品質指標値などに関する二分木データ構造を変化させ、その結果、二分木データ構造を更新してもよい。そして、６１４において、バイナリヒープデータ構造またはその配列を更新して、新しいノードの挿入により生じた解の品質閾値または探索困難度の変化を処理する。この方法の手順は、その後６０６に戻り、そこで次のノードを拡張のため選択する。このようにして、ジョブ要求に対する実行可能な解を生成するための膨大な数のポテンシャル動作を探索し、評価し、逐次的に格納する一方で、実行不可能または遠すぎる解法経路の評価に関係する時間消費を低減することができる。
【００３０】
図７は、カラープリントシートバッファまたは高密度統合パラレルプリンタ（ｔｉｇｈｔｌｙ  ｉｎｔｅｇｒａｔｅｄ  ｐａｒａｌｌｅｌ  ｐｒｉｎｔｅｒ：ＴＩＰＰ）システムを備える汎用製品プリンタで使用できるような複数の構成要素を備えるシステム７００を図示しており、本明細書に記述されるさまざまな特徴を利用可能な環境を表わしている。システム７００は、１枚以上の用紙を含む用紙供給源７０２を備え、これは、カラー印刷エンジン７０４およびクロスオーバ７０８と協働的に接続される。用紙供給源７０２からの用紙は、２つの経路のうち一方を通ることができる。例えば、用紙は用紙供給源７０２からカラー印刷エンジン７０４、さらにカラープリントバッファ７０６へと送り、その後クロスオーバ７０８に進入させることができる。付加的または代替的に、用紙を（例えばカラー印刷エンジン７０４およびカラープリントバッファ７０６を迂回して）用紙供給源７０２からクロスオーバ７０８へ直接送ることもできる。
【００３１】
用紙供給源７０２からクロスオーバ７０８へ直接送られた用紙は、白黒印刷エンジン７１０を通り、次に白黒とカラーのページを組み合わせるマージャ７１２を経由させた後、ユーザに提供するため文書を仕上げるフィニッシャ７１４に送られる。クロスオーバ７０８による差込みの前に、用紙を一時的にシートバッファ７１６内に格納してもよい。カラー印刷エンジン７０４およびカラープリントバッファ７０６を経由した用紙は、一時的格納のためクロスオーバ７０８を経由してシートバッファ７１８内へ送られ、その上で、カラー印刷ページをマージャ７１２により他の白黒ページと組み合わせるなどとしてもよい。他の例では、あるページをシステム７００のすべての構成要素に通過させ、カラー部分と白黒部分の双方を有するようにしてもよいことが了解されよう。システム７００により実行されるあるジョブに関係する動作を、そのジョブに対する１つ以上の解を定義する一連の事象に組み入れ、それらを上記データ構造内のそれぞれのノードと関係付けることができる。
【００３２】
上記および他のさまざまな特徴および機能、またはそれらに代わるものは、好ましくは他の多くの異なるシステムまたは用途に組み入れてもよいことが了解されよう。またそれらのさまざまな現時点で予見または予期されない代替、修正、変更または改良をさらに当業者によって実施してもよく、それらも以下の特許請求の範囲に包含されるものとして意図されることが了解されよう。
【図面の簡単な説明】
【００３３】
【図１】二分木データ構造とバイナリヒープデータ構造とを含む組合せデータ構造の生成を実行するシステムを示す図である。
【図２】さまざまな特徴に従って、複数の実施可能な次の動作の中で、あるジョブ解法における適切な次の動作の識別および評価を実行するためのデータ構造の一部分として利用可能な平衡二分木データ構造を示す図である。
【図３】１つ以上の態様に従って、二分木データ構造とともに利用して、探索木における拡張のため、次の最適ノードの迅速な評価のために座標データ構造へのデータ格納を実行するためのバイナリヒープデータ構造を示す図である。
【図４】さまざまな態様に従って、二分木データ構造と、バイナリヒープデータ構造として構成可能な配列の部分とを有する複数のノードを含むデータ構造を示す図である。
【図５】本明細書に記述される１以上の特徴に従って、二分木データ構造とバイナリヒープデータ構造とを含む座標データ構造を生成して複数のノードの組合せ探索を実行する方法の手順を示す図である。
【図６】探索時間および最適解の識別を最適化するため平衡二分木データ構造およびバイナリヒープデータ構造の双方を含むデータ構造を生成する方法の手順を示す図である。
【図７】カラープリントシートバッファまたは高度統合パラレルプリンタ（ＴＩＰＰ）システムを備える汎用製品プリンタで本明細書に記述されるさまざまな特徴と組み合わせて使用できるような、複数の構成要素を示すシステムを表わす図である。
【符号の説明】
【００３４】
１００，７００  システム、１０２  ソルバ、１０４  探索キュー、１０６，４００  データ構造、１０８  コンピュータ、１１０  探索アルゴリズム、１１２  データ構造ジェネレータ、１１４  二分木データ構造、１１６，３００  バイナリヒープデータ構造、２００  平衡二分木データ構造、２０２，２０４Ａ，２０６Ａ，２０６Ｂ，４０１，４０３，４０５  ノード、４０２，４１２，４２２  ノードデータフィールド部、４０４，４１４，４２４，４３０  配列指標値、４０６，４０８，４１０，４１６，４１８，４２６，４２８，４３０，５２０  ポインタフィールド部、４０８，４２０，４３０  ポインタ、４３２  データ配列構造、４３４，４３６  位置、５００，６００  手順、７０２  用紙供給源、７０４  カラー印刷エンジン、７０６  カラープリントバッファ、７０８  クロスオーバ、７１０  白黒印刷エンジン、７１２  マージャ、７１４  フィニッシャ、７１６，７１８  シートバッファ。
【図１】
0004945547.tif 000002
【図２】
0004945547.tif 000003
【図３】
0004945547.tif 000004
【図４】
0004945547.tif 000005
【図５】
0004945547.tif 000006
【図６】
0004945547.tif 000007
【図７】
0004945547.tif 000008