(57)【要約】【課題】  従来の物体の移送順序をシミュレートした解候補の集合から成る解空間よりその規模を大幅に減少させ、その結果、解探索処理時間を大幅に短縮させ、実用上の利用価値を向上させる。【解決手段】  解探索処理部１０４は、所定の場所において複数の物体を積載して形成される積み山の識別番号を変数とし、物体毎の各変数に値を割り当てることにより解探索処理を行う。【選択図】  図２
2005025730.tif 000002
【特許請求の範囲】
【請求項１】
所定の場所において一又は複数の物体を積載して形成される積み山の識別番号を値として取る変数を前記各物体毎に有し、前記変数に値を割り当てることにより解探索処理を行う解探索処理手段を有することを特徴とする情報処理装置。
【請求項２】
前記所定の場所において形成可能な前記積み山の数又は前記各積み山の識別情報と、前記複数の物体夫々の識別情報とを初期条件として入力する初期条件入力手段を更に有し、
前記解探索処理手段は、前記初期条件入力手段より入力された前記初期条件に基づいて解探索処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記解探索処理手段は、前記各物体毎に移送順序を値として取る変数を前記変数として更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記解探索処理手段の生成する部分解候補が制約条件を充足するか否かを判断する制約検査手段を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記初期条件入力手段は、移送元から前記所定の場所への前記各物体の移送順序に関する第１の制約条件、及び、前記所定の場所から移送先への前記各物体の移送順序に関する第１の制約条件を初期条件として更に受け付けることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記初期条件入力手段により更に受け付けられる移送元の積載状態に基づいて、前記移送元から前記所定の場所への前記各物体の移送順序に関する第１の制約条件を前記制約条件に包含される条件として導出するとともに、前記初期条件入力手段により更に受け付けられる移送先の積載状態に基づいて、前記所定の場所から前記移送先への前記各物体の移送順序に関する第１の制約条件を前記制約条件に包含される条件として導出する制約条件導出手段を更に有することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記制約条件導出手段は、前記解探索処理手段の生成する部分解候補に基づいて、前記移送元から前記所定の場所への前記各物体の移送順序に関する第２の制約条件及び前記所定の場所から前記移送先への前記各物体の移送順序に関する第２の制約条件を、前記制約条件に包含される条件として導出することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制約検査手段は、前記移送元から前記所定の場所への前記各物体の移送順序に関する第１の制約条件及び前記移送元から前記所定の場所への前記各物体の移送順序に関する第２の制約条件間、並びに、前記所定の場所から前記移送先への前記各物体の移送順序に関する第１の制約条件及び前記所定の場所から前記移送元への前記各物体の移送順序に関する第２の制約条件間の夫々について矛盾の有無を判断し、前記解探索処理手段は、矛盾が無い場合の部分解候補を部分解とすることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記解探索処理手段は、前記移送元から前記所定の場所への移送順序に関する第１の制約条件、及び、前記移送元から前記所定の場所への移送順序に関する第２の制約条件に基づいて、前記移送元から前記所定の場所への前記各物体の移送順序を決定するとともに、前記所定の場所から前記移送先への移送順序に関する第１の制約条件、及び、前記所定の場所から前記移送先への移送順序に関する第２の制約条件に基づいて、前記所定の場所から前記移送先への前記各物体の移送順序を決定することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記解探索処理手段は、前記移送元から前記所定の場所への前記各物体の移送順序及び前記所定の場所から前記移送先への前記各物体の移送順序の双方或いは何れか一方と前記部分解とに基づいて、前記所定の場所における前記各物体の積載順序を示す座標値を決定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記複数の物体の一部又は全部の物体は、設備制約に基づいて規定される一度に移送可能な単位の数量の物体群であることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記複数の物体の一部又は全部の物体は、設備制約に基づいて規定される一度の積載可能な単位の数量の物体群であることを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
情報処理装置による情報処理方法であって、
所定の場所において一又は複数の物体を積載して形成される積み山の識別番号を値として取る前記各物体毎の変数に値を割り当てることにより解探索処理を行うことを特徴とする情報処理方法。
【請求項１４】
請求項１３に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制約条件を充足するように変数に値を割り当てる制約充足問題に適用される技術に関するものである。
【背景技術】
【０００２】
従来から製鉄所内における鋼材等の適切な積替え方法について検討される際には、次のようなモデルが考えられていた。
【０００３】
鋼材等の積載場所として場所Ａ、場所Ｂ及び場所Ｃの３箇所の積載場所を想定する。場所Ａは初めに積替え対象物（以下、単に物体と称す）が積載される場所であり、場所Ｃは物体を最終的に積載するための場所である。場所Ｂは、場所Ａ及び場所Ｃ間の物体の移送経路上において、場所Ａから物体を一旦積替え、場所Ｂから場所Ｃに所望の積載状態で物体を積み替えるための場所である。
【０００４】
このようなモデルの具体例として、一旦、場所Ａである倉庫１から物体を積替えてトラック（場所Ｂに相当）に積載し、積載した物体をトラックによって場所Ｃまで移送する。そして、場所Ｃにおいて所望の積載状態に物体を積み替えるモデルが挙げられる。
【０００５】
ここで、特に鋼材等の重量の重い物体を取り扱う場合、物体の積替え方法を想定する際には特に次のような制約条件が課せられる。即ち、場所Ａから場所Ｂに物体を積み替える場合及び場所Ｂから場所Ｃに物体を積み替える場合の何れにおいても元の場所で上段に積まれている物体から順に取り出さなければならないこと、また、同一の積み直し先に積まれる物体は、先に移動された物体が積み直し先において下段に積み上げなければならないことである。
【０００６】
従来は、各物体の移送手順をシミュレートした解候補の集合から成る解空間を解探索の対象としており、上記のような制約条件を充足する解候補を検出することにより、場所Ｃにおいて所望の積載状態とし得る制約充足解を得ていた。
【０００７】
【特許文献１】特許第２９５１１６７号公報
【特許文献２】特許第３２４３０５８号公報
【特許文献３】特開平５−１７３９９９号公報
【特許文献４】特開平５−２３３５９７号公報
【特許文献５】特開平５−２８１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来から解探索の対象となる解空間の規模の膨大さが懸念されていた。つまり、解空間の規模が膨大であることから、解空間から制約充足解を探索していく解探索処理においては、その処理時間が多大なものとなってしまうことが非常に問題視されている。
【０００９】
本発明は、上記問題点に鑑みてなされたものであり、従来の物体の移送順序をシミュレートした解候補の集合から成る解空間よりその規模を大幅に減少させ、その結果、解探索処理時間を大幅に短縮させ、実用上の利用価値を向上させることが可能な情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明者は、鋭意検討の結果、以下に示す発明の諸態様に想到した。
本発明の情報処理装置は、所定の場所において一又は複数の物体を積載して形成される積み山の識別番号を値として取る変数を前記各物体毎に有し、前記変数に値を割り当てることにより解探索処理を行う解探索処理手段を有することを特徴とする。
【００１１】
本発明の情報処理方法は、情報処理装置による情報処理方法であって、所定の場所において一又は複数の物体を積載して形成される積み山の識別番号を値として取る前記各物体毎の変数に値を割り当てることにより解探索処理を行うを特徴とする。
【００１２】
本発明のプログラムは、前記情報処理方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、所定の場所において複数の物体を積載して形成される積み山の識別番号を値として取る変数を各物体毎に有し、それらの変数に値を割り当てることにより解探索処理を行うことで、従来の物体の移送順序をシミュレートした解候補の集合から成る解空間よりその規模が大幅に減少し、その結果、解探索処理時間を大幅に短縮させ、実用上の利用価値を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１５】
先ず、本発明を適用した制約充足問題のモデリング例を図１を参照しながら説明する。
図１には、場所Ａ、場所Ｂ、場所Ｃの３つの物体の積載箇所が示されている。本発明に適用される制約充足問題は、場所Ａに積載される物体を、最終的に場所Ｃにおいて所望の積載順序で積み替えるために、一旦、場所Ａから場所Ｂのどの積み山に各物体を積み替えるか、及び、各物体を場所Ａから場所Ｂへ移送する順序、場所Ｂから場所Ｃへ移送する順序を解として求める問題を扱う。
【００１６】
図１の例では、場所Ａの積み山１及び積み山２に物体１〜物体４が積載されている。積み山１には、下段から物体２及び物体４が積載されており、積み山２には、下段から物体３及び物体１が積載されている。場所Ｃには、最終的な物体の積載状態が示してあり、ここでは、一つの積み山に下段から物体４、物体２、物体３、物体１の順で積載されている。
【００１７】
なお、ここでいう「積み山」とは、図１に示されるように複数の物体が積み上げられて成る一塊の物体群を指すが、単数の物体で構成されていても「積み山」の概念に含むものとする。
【００１８】
また、以下の説明で用いられる用語「積み山番号変数」、「移送順序変数」、「解」、「部分解」及び「部分解候補」を次のように定義する。
・積み山番号変数：各物体毎に設けられた変数で、各物体が所定の場所に移送される際の、所定の場所における積み山番号を値として取る。
・移送順序変数：移送元から所定の場所、所定の場所から移送先の夫々について、各物体毎に設けられる変数で、各物体の移送順序を値として取る。
・解：存在する全ての変数に値が割り当てられたもので、値が割り当てられた各変数は制約条件を充足する。
・部分解：一部又は全部の物体について積み山番号変数に値が割り当てられたもので、値が割り当てられた各変数が制約条件を充足する。
・部分解候補：一部又は全部の物体について積み山番号変数に値が割り当てられたもので、値が割り当てられた各変数が制約条件を充足しない場合を含む。
【００１９】
本実施形態における制約充足問題では、物体１〜４毎に場所Ｂにおける積み山番号を示す変数（積み山番号変数）、場所Ａから場所Ｂへの移送の順序を表す変数（移送順序変数）ＳAB（ｉ）∈｛１，２，３，４｝、ｉ∈｛１，２，３，４｝及び場所Ｂから場所Ｃへの移送順序変数ＳBC（ｉ）∈｛１，２，３，４｝、ｉ∈｛１，２，３，４｝を設け、各物体１〜４の積み山番号変数への値の割り当て方の組合せから成る部分解候補の集合が解探索の対象となり、部分解候補のうち後述する制約条件を満たす部分解候補を部分解として求める。図１の例では、各物体１〜４の積み山番号変数は夫々１又は２の値をとることになる。更に、上記で得られた各部分解について、移送順序変数に値を割り当てることにより、解を求める。
【００２０】
以下の説明においては、場所Ｘ（Ｘ：Ａ，Ｂ，Ｃ）における物体ｉ（ｉ：１，２，３，４）の積載状態及び物体ｉの場所Ｘから場所Ｙ（Ｙ：Ｂ，Ｃ）への積替え手順（移送手順）を次のように表記する。
ＰX（ｉ）：物体ｉの、場所Ｘにおける積み山番号
ＨX（ｉ）：物体ｉの、場所Ｘにおける下段からの積載順序
ＳXY（ｉ）：物体ｉの、場所Ｘから場所Ｙへの移送順序
【００２１】
従って、場所Ａに着目すると、物体１の積載状態は、
ＰA（１）＝２・・・（式１）
ＨA（１）＝２・・・（式２）
物体２の積載状態は、
ＰA（２）＝１・・・（式３）
ＨA（２）＝１・・・（式４）
物体３の積載状態は、
ＰA（３）＝２・・・（式５）
ＨA（３）＝１・・・（式６）
物体４の積載状態は、
ＰA（４）＝１・・・（式７）
ＨA（４）＝２・・・（式８）
と表記される。
【００２２】
場所Ｃに着目すると、物体１の積載状態は、
ＰC（１）＝１・・・（式９）
ＨC（１）＝４・・・（式１０）
物体２の積載状態は、
ＰC（２）＝１・・・（式１１）
ＨC（２）＝２・・・（式１２）
物体３の積載状態は、
ＰC（３）＝１・・・（式１３）
ＨC（３）＝３・・・（式１４）
物体４の積載状態は、
ＰC（４）＝１・・・（式１５）
ＨC（４）＝１・・・（式１６）
と表記される。
以上は、本制約充足問題に関して予め与えられる初期条件である。
【００２３】
また、制約条件とは、解が充足するべき条件であり、本実施形態では、上記初期条件から導出される制約条件、及び、部分解候補から制約伝播によって導出される制約条件を用いて制約を充足するかどうかを判定する。尚、本発明に適用可能な制約条件は、以下の説明中の制約条件に限られず、ユーザの要求に応じて適当な制約条件を更に設定することも本発明の技術思想の範疇に含まれる。
【００２４】
ここで、初期条件から導出される制約条件について説明する。初期条件から導出される制約条件は、以下のように２種類の制約条件がある。
＜場所Ａに関する初期条件から、場所Ａから場所Ｂへの物体の移送順序が受ける制約条件＞
場所Ａにおいて同じ積み山に複数の物体が積載されている場合、そのうちの任意の２つの物体ｉ、ｊについては上段に積まれている方を先に場所Ｂに動かさなければならない。
＜場所Ｃに関する初期条件から、場所Ｂから場所Ｃへの物体の移送順序が受ける制約条件＞
場所Ｃにおいて同じ積み山に複数の物体が積載される場合、そのうちの任意の２つの物体ｉ，ｊについては下段に積載されるべきものから先に場所Ｂから動かさなければならない。
【００２５】
上記制約条件は次の関係式によって表される。
＜場所Ａに関する初期条件から、場所Ａから場所Ｂへの物体の移送順序が受ける制約条件＞
ＰA（ｉ）＝ＰA（ｊ）かつＨA（ｉ）＞ＨA（ｊ）ならば、
ＳAB（ｉ）＜ＳAB（ｊ）
＜場所Ｃに関する初期条件から、場所Ｂから場所Ｃへの物体の移送順序が受ける制約条件＞
ＰC（ｉ）＝ＰC（ｊ）かつＨC（ｉ）＞ＨC（ｊ）ならば、
ＳBC（ｉ）＞ＳBC（ｊ）
尚、本実施形態におけるＰC（ｉ）とＰC（ｊ）の関係については、場所Ｃにおいて物体ｉ，物体ｊは必ず同一の物体の山に積載されるので、任意の２つの物体ｉ，物体ｊに関しＰC（ｉ）＝ＰC（ｊ）＝１となる。
【００２６】
従って、図１の例における制約条件は次のようになる。
＜場所Ａに関する初期条件から、場所Ａから場所Ｂへの物体の移送順序が受ける制約条件＞
ＳAB（４）＜ＳAB（２）・・・（式１７）
ＳAB（１）＜ＳAB（３）・・・（式１８）
＜場所Ｃに関する初期条件から、場所Ｂから場所Ｃへの物体の移送順序が受ける制約条件＞
ＳBC（４）＜ＳBC（２）・・・（式１９）
ＳBC（４）＜ＳBC（３）・・・（式２０）
ＳBC（４）＜ＳBC（１）・・・（式２１）
ＳBC（２）＜ＳBC（３）・・・（式２２）
ＳBC（２）＜ＳBC（１）・・・（式２３）
ＳBC（３）＜ＳBC（１）・・・（式２４）
【００２７】
図２は、本発明の一実施形態に係る情報処理装置の機能構成を示したブロック図である。
図２に示されるように、本実施形態に係る情報処理装置１０は、初期条件記憶部１０１、制約条件記憶部１０２、制約条件導出部１０３、解探索処理部１０４、制約検査部１０５及び出力制御部１０６の機能的構成を有する。
【００２８】
初期条件記憶部１０１は、キーボード等の入力手段から入力される初期条件を記憶する。ここでいう初期情報には、上記のように、場所Ａ及び場所Ｃにおける物体の積載状態を示す情報（ＰA，ＰC，ＨA，ＨC）の他、場所Ｂにおいて形成可能な積み山数或いは各積み山の識別情報等が含まれる。
【００２９】
制約条件導出部１０３は、初期条件記憶部１０１に記憶される初期条件に基づいて、場所Ａに関する初期条件から、場所Ａから場所Ｂへの物体の移送順序が受ける制約条件、及び、場所Ｃに関する初期条件から、場所Ｂから場所Ｃへの物体の移送順序が受ける制約条件を導出する。制約条件記憶部１０２は、制約条件導出部１０３により導出された制約条件を記憶する。
【００３０】
解探索処理部１０４は、初期条件記憶部１０１に記憶される、個々の物体に付与される物体の識別情報（物体番号）及び場所Ｂにおける積み山数に基づいて、物体１〜４の積み山番号変数に対して値を割り当てることにより部分解候補を生成し、部分解候補を制約検査部１０５に渡す。
【００３１】
制約検査部１０５は、初期条件記憶部１０１を参照し、初期条件である場所Ａ及び場所Ｃにおける物体の積載状態と、解探索処理部１０４によって探索された部分解候補及び以下の式４７、式４８とに基づいてＳAB、ＳBCに関する制約条件（２）を導出する。
（∀ｉ，ｊ：ｉ≠ｊ）（（ＰB（ｉ）＝ＰB（ｊ）∧ＳBC（ｉ）＜ＳBC（ｊ））⇒ＳAB（ｉ）＞ＳAB（ｊ））・・・（式４７）
（∀ｉ，ｊ：ｉ≠ｊ）（（ＰB（ｉ）＝ＰB（ｊ）∧ＳAB（ｉ）＜ＳAB（ｊ））⇒ＳBC（ｉ）＞ＳBC（ｊ））・・・（式４８）
さらに、ＳAB、ＳBCに関する制約条件（２）と、制約条件記憶部１０２に記憶されるＳAB、ＳBCに関する制約条件（１）との矛盾を判断することにより部分解候補が制約を充足するかどうかを判定する。なお、式４７及び式４８においては、所定の場所における積み山番号が同じ物体同士は、ＳABに関する移送順序の前後関係とＳBCに関する移送順序の前後関係が逆転することを意味している。
【００３２】
解探索処理部１０４は、部分解候補が制約検査部１０５により制約を充足すると判定された場合は、部分解候補を部分解とする。部分解候補が制約検査部１０５により制約を充足しないと判定された場合は、解探索処理部１０４はバックトラックし、解探索を続行する。出力制御部１０６は部分解等を表示パネル等の出力手段を用いて出力させる。また、出力制御部１０６は、利用者に対して上記初期条件の各情報の入力を促す画面表示を制御することも可能である。
【００３３】
図３は、本発明の一実施形態に係る情報処理装置のハードウェア構成の具体例を示した図であり、図３に示すように、本発明に係る情報処理装置はＰＣ（パーソナル・コンピュータ）等に適用することができる。
【００３４】
２００は、ユニット間のデータ並びに制御情報を伝送する伝送路であるシステムバスである。情報処理装置の筐体内に存在する各ユニットはシステムバス２００によって接続される。以下、各ユニットについて説明する。中央処理装置（以下、ＣＰＵという）２０１は、本情報処理装置の各種制御および演算などを行い、図２の制約条件導出部１０３、解探索処理部１０４、制約検査部１０５及び出力制御部１０６に相当する機能を有する。
【００３５】
ランダムアクセスメモリ（以下、ＲＡＭという）２０２は、ＣＰＵ２０１の主メモリとして、また実行プログラムの格納領域、プログラムの実行エリアならびにデータエリアとして機能する他、図１の初期条件記憶部１０１及び制約条件記憶部１０２に相当する機能や制約充足解検出部１０５の演算結果を一時保持する機能を有する。読み取り専用メモリ（以下、ＲＯＭという）２０３は、情報処理装置内の各ユニットの制御を行う基本プログラム、すなわちＢＩＯＳ（Basic Input/Output System）や、本情報処理装置を稼働するために必要な情報などを記憶する。
【００３６】
データ入出力を行うユニット群（以下、単にＦＤＤという）２０４は、フレキシブルディスクやＣＤ−ＲＯＭなど、取り外し可能な外部記憶媒体のデータ入出力を行う。ネットワークインタフェース（以下、単にＮＥＴＩＦという）２０５は、後述するモデム２０６を介して外部ネットワークに接続し、または後述するＬＡＮ２０７に接続する。ＮＥＴＩＦ２０５は、ネットワークを介して情報処理装置間のデータ転送を行うための制御や接続状況の診断を行う。
【００３７】
モデム２０６は、外部ネットワークと本情報処理装置とを電話回線を介して接続するための機器であって、モデムやＩＳＤＮ接続用のターミナルアダプタを含む。ＬＡＮ２０７は、イーサネット（登録商標）などのネットワークシステムである。本実施形態に係る情報処理装置は、モデム２０６又はＬＡＮ２０７上に接続されているルータやゲートウェイ等の通信機器を用いて外部ネットワークに接続し、外部装置とのデータの送受信を可能とする。
【００３８】
ビデオＲＡＭ（以下、ＶＲＡＭという）２０８は、後述するＣＲＴ２０９に表示するために展開された画像データを保持する。ＣＲＴ２０９は、ディスプレイなどの表示装置である。
【００３９】
キーボードコントローラ（ＫＢＣ）２１０は、キーボード（ＫＢ）２１１およびマウス２１２からの入力信号を制御する。ＫＢ２１１は、情報処理装置１０の利用者が入力操作を行うためのキーボードである。マウス２１２は、情報処理装置１０の利用者が入力操作を行うためのポインティングデバイスである。
【００４０】
ハードディスクドライブ（ＨＤＤ）２１３は、アプリケーションプログラムや各種データなどの保存に用いられる。図２の初期条件記憶部１０１及び制約条件記憶部１０２は、このハードディスクドライブ２１３に構成しても良い。アプリケーションプログラムとは、例えば図４のフローチャートに示される処理を本情報処理装置に実行させるためのソフトウェアプログラムのことをいう。外部ネットワーク等のデータの伝送媒体、ＣＤ−ＲＯＭ等のデータの記録媒体等を介して情報処理装置がアプリケーションプログラムを得る構成も本発明の技術的思想の範疇に含まれる。
【００４１】
コントローラ（ＩＯＣ）２１４は、外部に接続されるプリンタ（ＰＲＴ）２１５やスキャナ１１６等に対する情報の入出力制御を行うことを可能とする。また本図には示していないが、ＩＯＣ２１４は、プリンタ２１５やスキャナ２１６以外に、例えば、同様に外部に接続されるＨＤＤやＭＯドライブ等と情報の入出力制御を行うことが可能である。
【００４２】
次に、本実施形態に係る情報処理装置１０の動作を図４のフローチャートを用いて詳細に説明する。以下でも図１の制約充足問題を対象に説明を行うものとする。
【００４３】
先ず、利用者はＫＢ２１１やマウス２１２を用いて初期条件を入力する（ステップＳ４０１）。ここで、入力される初期条件には、場所Ａにおける物体の積載状態と場所Ｃにおける所望の物体の積載状態（式１〜式１６）の他、場所Ｂにおいて形成可能な積み山数（ここでは、２つ）等が含まれる。
【００４４】
初期条件記憶部１０１は、入力された初期条件を記憶する。次に、制約条件導出部１０３が初期条件記憶部１０１に記憶される初期条件を読み出し、初期条件に基づいてＳAB、ＳBCに関する制約条件（１）（式１７〜式２４）を導出する。
【００４５】
制約条件記憶部１０２は、導出されたＳAB、ＳBCに関する制約条件（１）を記憶する。次に、解探索処理部１０４は、初期条件記憶部１０１に記憶される"場所Ｂにおいて形成可能な積み山数２"を示す情報を参照することにより、物体１〜４が場所Ｂにおいて夫々積み山１又は２に積み替えられ得ることを判断し、場所Ｂにおける積み山番号を示す変数の値の組合せを更新しながら分枝限定法による解探索を実行する（ステップＳ４０２）。尚、解探索処理部１０４は、初期条件として積み山の識別情報が入力された場合は、物体１〜４が場所Ｂにおいて夫々積み山１又は２に積み替えられることをそれらの識別情報から判断してもよい。
【００４６】
図５は、本実施形態の解探索の対象となる解空間を概念的に示した図であり、この解空間は探索木とも称される。本実施形態による分枝限定法による解探索処理では、図中、解空間の最左の枝から解探索を開始するものとする。解探索処理部１０４は、物体を一つずつ選択しながら、選択した物体についてＰBの値を選択していく。ここでは、ＰB（１）＝ＰB（２）＝１を選択するものとする。
【００４７】
次に、制約条件導出部１０３は、解探索処理部１０４の解探索結果（ＰB（１）＝ＰB（２）＝１）と場所Ｃに関する初期条件式２３と式４７とに基づいて、次のＳABに関する制約条件（２）を導出する（ステップＳ４０３）。
ＳAB（１）＜ＳAB（２）・・・（式２６）
【００４８】
同じく、制約条件導出部１０３は、解探索処理部１０４の解探索結果（ＰB（１）＝ＰB（２）＝１）と場所Ａに関する初期条件及び式４８に基づいて、ＳBCに関する制約条件（２）を導出する（ステップＳ４０４）。しかし、物体１、２の場所Ａにおける積載状態はＰA（１）≠ＰA（２）であるため、場所ＢにおいてＰB（１）＝ＰB（２）＝１の積載状態とするための制約条件は存在しない。従って、ここでは制約条件は導出されない。
【００４９】
次に、ＳABに関する制約条件（１）（式１７〜式１８）とＳABに関する制約条件（２）（式２６）間、及び、ＳBCに関する制約条件（１）（式１９〜式２４）とＳBCに関する制約条件（２）（ここでは、制約条件なし）間に夫々矛盾がないか否かを判断する（ステップＳ４０７）。即ち、ＳABに関する制約条件である式１７〜式１８と式２６間の矛盾の判断において、制約検査部１０５は、式１７〜式１８と式２６の制約条件に反しないＳAB（１）、ＳAB（２）の値を計算し、ＳAB（１）、ＳAB（２）の値が存在する場合（算出された場合）、現時点では制約条件間に矛盾はないものと判断し、解探索処理部１０４は続くＰB（３）の値の解探索を行う。
【００５０】
いま、「ＳAB（１）＝１，ＳAB（２）＝２」、「ＳAB（１）＝２，ＳAB（２）＝３」等、式１７〜式１８と式２６の制約条件を充足するＳAB（１）、ＳAB（２）の値が存在し、また、ＳBCに関する制約条件に関しては、ＳBCに関する制約条件（２）が存在しないため、制約条件間の矛盾はあり得ないので、解探索処理部１０４は、続いてＰB（３）の値（ここでは、ＰB（３）＝１）を選択する（ステップＳ４１０、ステップＳ４１１）。そして、制約条件導出部１０３が同様に制約条件（２）の導出を行い、制約検査部１０５が、同じく制約条件間の矛盾の有無を判断する。
【００５１】
この場合、ＰB（３）探索時における制約検査の過程では、制約条件間の矛盾は検出されないが、ＰB（４）探索時に制約条件間の矛盾が検出される。
【００５２】
ここでは、ＰB（４）＝１が探索されるため、制約検査部１０５は、解探索処理部１０４により探索された部分解候補（ＰB（１）＝ＰB（２）＝ＰB（３）＝ＰB（４）＝１）と場所Ｃに関する初期条件及び式４７に基づいて、次のＳABに関する制約条件（２）を導出する（ステップＳ４０３）。
ＳAB（１）＜ＳAB（３）・・・（式３３）（←式２４及び式４７から導出）
ＳAB（１）＜ＳAB（２）・・・（式３４）（←式２３及び式４７から導出）
ＳAB（１）＜ＳAB（４）・・・（式３５）（←式２１及び式４７から導出）
ＳAB（３）＜ＳAB（２）・・・（式３６）（←式２２及び式４７から導出）
ＳAB（３）＜ＳAB（４）・・・（式３７）（←式２０及び式４７から導出）
ＳAB（２）＜ＳAB（４）・・・（式３８）（←式１９及び式４７から導出）
【００５３】
同じく、制約条件導出部１０３は、解探索処理部１０４により選択された部分解候補（ＰB（１）＝ＰB（２）＝ＰB（３）＝ＰB（４）＝１）と、場所Ａに関する初期条件及び式４８に基づいて、ＳBCに関する制約条件（２）を導出する（ステップＳ４０４）。いま、ＨBに関する制約条件は式３９〜式４０に示す通りであるので、次のＳBCに関する制約条件（２）を導出する。
ＳBC（３）＜ＳBC（１）・・・（式４１）（←式１８及び式４８から導出）
ＳBC（２）＜ＳBC（４）・・・（式４２）（←式１７及び式４８から導出）
【００５４】
次に、制約検査部１０５は、ＳABに関する制約条件（１）（式１７〜式１８）とＳABに関する制約条件（２）（式３３〜式３８）間、及び、ＳBCに関する制約条件（１）（式１９〜式２４）とＳBCに関する制約条件（２）（式４１〜式４２）間に夫々矛盾がないか否かを判断する（ステップＳ４０７）。
【００５５】
この場合、ＳABに関して式１７、式３８のように矛盾した制約条件が存在するため、制約検査部１０５は、ＳABに関する制約条件（１）、（２）に反しないＳAB（１）、ＳAB（２）、ＳAB（３）、ＳAB（４）の値を算出することができず、ＳABに関する制約条件（１）、（２）間に矛盾を検出する。解探索処理部１０４は、この矛盾の検出によって１つバックトラックしてＰB（４）＝２の部分解候補を選択する（ステップＳ４０８、ステップＳ４０９）。つまり、いま、解探索処理部１０４が選択している部分解候補は、ＰB（１）＝ＰB（２）＝ＰB（３）＝１，ＰB（４）＝２となる。
【００５６】
続いて、制約条件導出部１０３は、ＰB（１）＝ＰB（２）＝ＰB（３）＝１，ＰB（４）＝２の部分解候補について同様に制約条件（２）の導出を行い、制約検査部１０５は同様の制約条件間の矛盾を判断する。この部分解候補については上記のような矛盾は検出されないため（ＳAB（１）〜ＳAB（４）、ＳBC（１）〜ＳBC（４）の全てについて、とり得る値が存在する）、解探索処理部１０４はこの部分解候補（ＰB（１）〜ＰB（４））を部分解として保持する（ステップＳ４１２）。
【００５７】
また、解探索処理部１０４は、上記の制約条件（１）及び制約条件（２）に矛盾しないようにＳAB（１）〜ＳAB（４）、ＳBC（１）〜ＳBC（４）に対し値を割り当てることによって解を生成し、解を保持する（ステップＳ４１３）。
【００５８】
ここで、ＳAB及びＳBCの値の算出処理について具体的に説明する。本実施形態では、ＳAB、ＳBCに関して得られた制約条件に反しないように各物体１〜４のＳAB、ＳBCの値を決定する。即ち、ＳAB（ｉ）＜ＳAB（ｊ）、ＳBC（ｉ）＜ＳBC（ｊ）という制約条件が幾つもある中で、単純に前詰めでＳAB及びＳBCの値を決めていく。
【００５９】
ＰB（１）＝ＰB（２）＝ＰB（３）＝１，ＰB（４）＝２の部分解候補について、ステップＳ４０３の処理により得られるＳABに関する制約条件（２）は、
ＳAB（１）＜ＳAB（３）・・・（式４３）
ＳAB（１）＜ＳAB（２）・・・（式４４）
ＳAB（３）＜ＳAB（２）・・・（式４５）
である。
【００６０】
また、同じ部分解候補についてステップＳ４０４の処理により得られるＳBCに関する制約条件（２）は、
ＳBC（３）＜ＳBC（１）・・・（式４６）
である。
【００６１】
従って、式１７〜式１８のＳABに関する制約条件と式４３〜式４５の制約条件を列挙すると、
ＳAB（４）＜ＳAB（２）・・・（式１７）
ＳAB（１）＜ＳAB（３）・・・（式１８（式４３））
ＳAB（１）＜ＳAB（２）・・・（式４４）
ＳAB（３）＜ＳAB（２）・・・（式４５）
となる。
このとき、１番目にＡからＢに移送できるのは各制約条件の右辺に表れないもの、即ち物体１か物体４である。ここでは、物体１を１番目の積替え対象とする。
【００６２】
次に、解探索処理部１０４は、物体１に関する制約条件を除いた中で右辺に表れないものを選択する。従って、式１８及び式４４が除かれ、２番目に積替えられるのは物体３か物体４となる。ここでは、物体３が２番目に積替えられるものとする。すると、式１７のみが残り、次に積み替えられるのは物体４となる。よって、場所Ａから場所Ｂへの積替え順は、物体１、物体３、物体４、物体２となる。
【００６３】
同じく、ＳBCに関して得られた制約条件は、
ＳBC（４）＜ＳBC（２）・・・（式１９）
ＳBC（４）＜ＳBC（３）・・・（式２０）
ＳBC（４）＜ＳBC（１）・・・（式２１）
ＳBC（２）＜ＳBC（３）・・・（式２２）
ＳBC（２）＜ＳBC（１）・・・（式２３）
ＳBC（３）＜ＳBC（１）・・・（式２４（式４６））
である。
このとき、１番目に積替えできるのは各制約条件の右辺に表れないもの、即ち物体４である。
【００６４】
次に、制約充足解検出部１０５は、物体４に関する制約条件を除いた中で右辺に表れないものを選択する。従って、式１９〜式２１が除かれ、２番目に積替えされるのは物体２となる。すると、式２４（式４６）のみが残り、次に積替えできるのは物体３となる。よって、場所Ｂから場所Ｃへの積替え順は、物体４、物体２、物体３、物体１となる。
【００６５】
以上のように、場所Ａから場所Ｂへの移送順序（ＳAB）は、物体１、物体３、物体４、物体２、即ちＳAB（１）＝１、ＳAB（２）＝４、ＳAB（３）＝２、ＳAB（４）＝３となり、また、場所Ｂから場所Ｃへの移送順序（ＳBC）は、物体４、物体２、物体３、物体１、即ちＳBC（１）＝４、ＳBC（２）＝２、ＳBC（３）＝３、ＳBC（４）＝１となる。続いて、解探索処理部１０４は、各物体１〜４のＳAB及びＳBCの値並びにＰBの値に基づいてＨBを決定する（ステップＳ４１４）。即ち、上記ＰBの値（ＰB（１）＝ＰB（２）＝ＰB（３）＝１、ＰB（４）＝２）とＳAB及びＳBCの何れか一方或いは双方からＨBは次のように決定される。
ＨB（１）＝１，ＨB（２）＝３，ＨB（３）＝２，ＨB（４）＝１
【００６６】
次に、下記の演算結果を表示パネル等の出力装置を用いて出力させる（ステップＳ４１５）。
・ＰB（ＰB（１）＝ＰB（２）＝ＰB（３）＝１、ＰB（４）＝２）
・ＳAB（ＳAB（１）＝１、ＳAB（２）＝４、ＳAB（３）＝２、ＳAB（４）＝３、）
・ＳBC（ＳBC（１）＝４、ＳBC（２）＝２、ＳBC（３）＝３、ＳBC（４）＝１）
・ＨB（ＨB（１）＝１，ＨB（２）＝３，ＨB（３）＝２，ＨB（４）＝１）
これにより、利用者は、場所Ａに積載される物体を場所Ｃにおいて所望の積載状態とするための積替え方法を出力結果から把握することができる。
【００６７】
また、ステップＳ４０７において矛盾があると判断され、且つ、未探索の部分解候補が存在しないと判断された場合は（ステップＳ４０８）、制約条件を充足する部分解候補、即ち部分解が存在しない旨を利用者に通知する（ステップＳ４１５）。
【００６８】
本実施形態においては、制約条件を充足する部分解候補、即ち部分解を一つ検出すると、その部分解及び当該部分解に基づいて算出されるＳAB、ＳBC、ＨBを表示パネル上に表示させ、処理を終了するように構成されているが、他の実施形態として、制約条件を充足する部分解候補、即ち部分解を全て探索し、各部分解に基づいてＳAB、ＳBC、ＨBを夫々算出し、各部分解に対応するＰB、ＳAB、ＳBC、ＨBを表示パネル上に表示させた後に処理を終了させるように構成してもよい。
【００６９】
尚、図４中におけるステップＳ４０３の処理と、ステップＳ４０４の処理は、上記説明の手順に限定されるものでなく、ステップＳ４０４の処理から先に行っても良い。
【００７０】
−比較例−
次に、本発明者が想到する他の制約充足問題のモデリング例を説明する。上記実施形態との比較を図るべく、本比較例においても図１の制約充足問題のモデリング例を説明するものとする。
【００７１】
本比較例と上記実施形態との相違点は、値を割り当てる対象となる変数の持ち方にある。上記実施形態では、物体１〜４毎に場所Ｂの積み山番号を値として取る変数を用意し、これらの変数に値を割り当てることにより解探索処理を行うが、本比較例では、場所Ａから場所Ｂへの物体の移送の回数は物体の個数４と等しく、１回目から４回目まである。移送の各回毎に、場所Ａの積み山番号と場所Ｂの積み山番号との組を値として持つ変数を用意し、これらの変数を値の割り当ての対象としている。また、本比較例では、変数に割り当てられた値から、物体の移送順序を特定することができる。
【００７２】
本比較例の解空間は図６に示す探索木によって概念的に表される。当該探索木の枝の組合せが各物体１〜４の場所Ａから場所Ｂへの積替え順序を踏まえた積替え方法を示す解となり、解探索の前段（探索の上段）に属する変数によって示される積替え方法から順次実行されることを示している。即ち、本比較例の解空間は、各物体の実際の移送手順をシミュレートした場合に相当するものである。
【００７３】
当該探索木の最左部分に着目し、当該探索木の変数の組合せにより示される積替え方法を具体的に説明する。
以下では、"１A−１B"、"１A−１B"、"２A−２B"、"２A−２B"の解候補を例に挙げて説明を行う。これは、図７に示すように、移送の１回目に、場所Ａの積み山１に積載される物体４を場所Ｂの積み山１に積替える（"１A−１B"）。移送の２回目に、場所Ａの積み山１に積載される物体２を場所Ｂの積み山１に積替え（"１A−１B"）、移送の３回目に、場所Ａの積み山２に積載される物体１を場所Ｂの積み山２に積替え（"２A−２B"）、移送の４回目に、場所Ａの積み山２に積載される物体３を積み山２に積み直す事象（"２A−２B"）を示している。
【００７４】
本比較例による解探索処理も上記実施形態と同様に実行され、探索された夫々の解候補について所定の制約条件を満たすか否かを判断し、当該制約条件を充足する制約充足解が検出されたときに処理を終了する。尚、本比較例における制約条件は上記実施形態の制約条件とは異なる。それは、上記のように解空間のモデリング方法の違いによるものであり、本比較例では、場所Ｃから場所Ｂをみた制約条件を充足する解候補を検出することによって、場所Ｃにおいて所望の積載状態とし得る制約充足解を得ることができる。
【００７５】
次に、物体１と物体３を例に挙げて本比較例の制約条件について具体的に説明すると、図１の例では、場所Ｃにおいて物体２が物体４より上段に積載（ＨC（２）＞ＨC（４））されている。この積載状態となるには少なくとも場所Ｂにおいて物体２と物体４が異なる積み山に積載（ＰB（２）≠ＰB（４））されているか、或いは同一の積み山に積載され、且つ物体４が物体２より上段に積載（ＰB（２）＝ＰB（４）且つＨB（４）＞ＨB（２））されていなければならないことが制約条件となる。従って、図７に示す"１A−１B"、"１A−１B"、"２A−２B"、"２A−２B"の解候補は、制約違反として検出される。
【００７６】
任意の２つの物体i、jについて該当する制約条件を夫々適用し、全制約条件を充足した場合にそのときの解候補を制約充足解として検出する。これにより、場所ＣにおいてＨC（１）＝４、ＨC（２）＝２、ＨC（３）＝３、ＨC（４）＝１の積載状態とし得る制約充足解を得ることができる。
【００７７】
ここで、上記実施形態と本比較例との解空間について更に考察すると、上記実施形態における解空間は、場所Ａに積載された各物体１〜４を場所Ｂのどの積み山１，２に積み直すかを示す変数への値の割り当て方の組合せの集合によって構成されているので、その解空間内には２4＝１６通りの解候補が存在する。
【００７８】
一方、本比較例の解空間は、どのような順序で場所Ａの積み山１或いは２から物体１〜４を運び出すか、また、運び出した物体１〜４を場所Ｂのどの積み山に積載するかを特定することができる解候補の集合である。従って、その解空間内には２4×4Ｃ2＝９６通りの解候補が存在する。このように、本比較例に比べ上記実施形態の解空間は格段に狭くなっていることが分かる。積替え対象の物体の数や場所Ａにおける積み山数が増加する程、上記実施形態と本比較例との解空間の大きさの差は指数関数的に拡大し、この傾向は顕著となる。
【００７９】
以上の説明から明らかなように、本実施形態によれば解探索処理の対象となる解空間の規模を格段に小さくすることができ、それに伴って解探索処理に要する時間が短縮し、実用性を向上させることが可能となる。
【００８０】
また、多くの場合、個々の移送対象物体（物体）は大きさ・長さ・重さ等の物理的な性質を持っている。そのことに関連して、クレーン及びフォークリフト等の物体の移送手段が一度に移送可能な数量は異なってくる。このような設備制約を背景に、上記実施形態の説明中における「物体」とは必ずしも単数の物体を指すものでなく、上記説明中の「物体」の全部或いは一部を、一度に積載可能な単位又は移送手段が一度に搬送可能な単位の数量の物体群として扱っても良い。
【図面の簡単な説明】
【００８１】
【図１】本発明を適用した制約充足問題のモデリングの一例を説明するための図である。
【図２】本発明の一実施形態に係る情報処理装置の機能構成を示したブロック図である。
【図３】本発明の一実施形態に係る情報処理装置のハードウェア構成を具体例を示した図である。
【図４】本発明の一実施形態に係る情報処理装置の動作の流れを示したフローチャートである。
【図５】本発明の一実施形態における解探索の対象となる解空間を模式的に示した図である。
【図６】比較例の解空間を模式的に示した図である。
【図７】比較例における制約充足問題のモデリングを説明するための図である。
【符号の説明】
【００８２】
１０：情報処理装置
１０１：初期条件記憶部
１０２：制約条件記憶部
１０３：制約条件導出部
１０４：解探索処理部
１０５：制約検査部
１０６：出力制御部
２００：システムバス
２０１：中央処理装置（ＣＰＵ）
２０２：ランダムアクセスメモリ（ＲＡＭ）
２０３：読み取り専用メモリ（ＲＡＭ）
２０４：ユニット群（フレキシブルディスク、ＣＤ−ＲＯＭ等）
２０５：ネットワークインタフェース
２０６：モデム
２０７：ＬＡＭ
２０８：ビデオＲＡＭ（ＶＲＡＭ）
２０９：ＣＲＴ
２１０：キーボードコントローラ（ＫＢＣ）
２１１：キーボード（ＫＢ）
２１２：マウス
２１３：ハードディスクドライブ（ＨＤＤ）
２１４：コントローラ（ＩＯＣ）
２１５：プリンタ（ＰＲＴ）
２１６：スキャナ
【図１】
2005025730.tif 000003
【図２】
2005025730.tif 000004
【図３】
2005025730.tif 000005
【図４】
2005025730.tif 000006
【図５】
2005025730.tif 000007
【図６】
2005025730.tif 000008
【図７】
2005025730.tif 000009