(57)【要約】  推定距離算出器１０は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成部１１を備える。
2018016299.tif 000002
【特許請求の範囲】
【請求項１】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成部を備える
ことを特徴とする推定距離算出器。
【請求項２】
生成された第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出する導出部を備える
請求項１記載の推定距離算出器。
【請求項３】
所定の条件を満たす遷移条件は、全ての遷移条件である
請求項２記載の推定距離算出器。
【請求項４】
所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか１つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件である
請求項２記載の推定距離算出器。
【請求項５】
導出部は、
入力された第２状態要素モデルに含まれる遷移条件が付与されている状態要素と前記第２状態要素モデルに含まれる遷移条件が除去された複数の状態要素のうちのいずれか１つの状態要素とで構成される状態要素モデルである第３状態要素モデルを生成し、
生成された前記第３状態要素モデルを用いて最小の遷移回数を導出する
請求項３記載の推定距離算出器。
【請求項６】
導出部は、
入力された第２状態要素モデルに含まれる複数の状態要素のうちの関連する状態要素群で構成される状態要素モデルである第３状態要素モデルを生成し、
生成された前記第３状態要素モデルを用いて最小の遷移回数を導出する
請求項４記載の推定距離算出器。
【請求項７】
生成部は、
第１状態要素モデルを基に生成可能な全ての第２状態要素モデルを生成し、
導出部は、
生成された前記全ての第２状態要素モデルを入力とし、
入力された各第２状態要素モデルに基づいて最小の遷移回数をそれぞれ導出し、
導出された各最小の遷移回数のうち最大の遷移回数を出力する
請求項２から請求項６のうちのいずれか１項に記載の推定距離算出器。
【請求項８】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器において実行される推定距離算出方法であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する
ことを特徴とする推定距離算出方法。
【請求項９】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成するコンピュータにおいて実行される推定距離算出プログラムであって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記コンピュータに、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成処理
を実行させるための推定距離算出プログラム。
【請求項１０】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成部と、
生成された前記第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出する導出部と、
導出された前記最小の遷移回数を用いることによって前記第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部とを備える
ことを特徴とする自動計画器。
【請求項１１】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器において実行される自動計画方法であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成し、
生成された前記第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出し、
導出された前記最小の遷移回数を用いることによって前記第１状態要素モデルで表現される自動計画問題の解である最短路を探索する
ことを特徴とする自動計画方法。
【請求項１２】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成するコンピュータにおいて実行される自動計画プログラムであって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記コンピュータに、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成処理、
生成された前記第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出する導出処理、および
導出された前記最小の遷移回数を用いることによって前記第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索処理
を実行させるための自動計画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定距離算出器、推定距離算出方法、推定距離算出プログラムおよび自動計画器に関し、特に人工知能を含む自律制御システムが行動手順やタスクの実行手順を決定する自動計画問題の求解に使用される推定距離算出器、推定距離算出方法、推定距離算出プログラムおよび自動計画器に関する。
【背景技術】
【０００２】
自動計画は、人工知能が既知の環境の情報に基づいて次に行われる行動の決定等の行動のスケジューリングを行う技術である。自動計画を行う方法の１つに、状態間の遷移関係を表すグラフ上の最短路を求める問題である最短路問題を解く方法がある。以下、最短路問題を自動計画問題ともいう。【０００３】
図３４は、状態グラフの例を示す説明図である。状態グラフは、状態間の遷移関係を表すグラフである。【０００４】
図３４に示す円は、状態を表す。また、図３４に示すように、複数の円のうち１つの円が現在状態を表し、他の１つの円が目的状態を表す。また、図３４に示す円と円の間の矢印は、状態間の遷移関係を表す。すなわち、図３４に示す状態グラフは、矢印に沿って状態が遷移可能であることを表している。なお、現在状態、および目的状態の各表記は、他の図においても同様である。【０００５】
最短路問題を解く方法では、図３４に示すように状態グラフ内に現在状態と目的状態が定められ、矢印に沿って現在状態から目的状態へ状態が遷移する経路がいくつか探索され、探索された経路の中から目的の状態へ辿りつく最短の手順を示す経路が求められる。【０００６】
特許文献１には、自動計画を応用してシステムの更新手順を出力する手法が記載されている。具体的には、特許文献１には、他の状態遷移系に依存する複数の小さな状態遷移系で構成される１つの大きなシステムの最短の更新手順を求める問題を、１つの状態グラフ上の最短路を求める問題に帰着させることによって自動計画問題を解く手法が記載されている。【０００７】
また、非特許文献１には、最短路問題を解く手法の１つであるA*（エースター）探索が記載されている。A*探索は、状態グラフにおける各状態を辿りながら状態グラフ上の最短路を探索する際、各状態に対してスコア付けを行う。【０００８】
A*探索が各状態に付するスコアは、（「現在状態から探索状態までの距離」+「探索状態から目的状態までの推定距離」）で算出される値である。各状態にスコアを付した上で、A*探索は、スコアが低い状態を目的状態に近い状態であると捉え、よりスコアの低い状態から優先的に探索を進める。【０００９】
図３５は、A*探索による最短路探索の具体例を示す説明図である。図３５に示すように、黒色の状態は、探索状態である。また、斜線が付された状態は、探索済み状態である。また、数字が付された状態は、スコア付き状態である。【００１０】
図３５（ａ）〜図３５（ｄ）は、A*探索による最短路探索の各段階（以下、探索フェーズという。）での探索結果を示す。図３５（ａ）に示すように、A*探索は、最初に探索状態を現在状態に設定する。次いで、A*探索は、探索状態に隣接する全ての状態に対してスコアを計算する。【００１１】
計算した後、A*探索は、スコアが判明している未だ探索されていない状態（以下、未探索状態という。）の中でスコアが最低の状態に探索状態を遷移させる。A*探索は、上記の操作を探索状態が目的状態に到達するまで繰り返し実行することによって最短路を求める。【００１２】
例えば、図３５（ｂ）に対応する探索フェーズでスコアが判明している未探索状態の各スコアは、３、４、４、∞である。よって、A*探索は、スコアが最低である３のスコアを持つ未探索状態に探索状態を遷移させる。探索状態が遷移された、図３５（ｂ）に対応する探索フェーズの次のフェーズでの探索結果を図３５（ｃ）に示す。図３５（ｄ）は、最終の探索フェーズでの探索結果を示す。【００１３】
なお、上記の図３５に示す具体例の説明において、「探索状態から目的状態までの推定距離」を与える方法は、特に明確に説明されていない。推定距離を算出する方法が変更されれば、推定距離の算出方法の変更に伴い探索の進め方も変化する。【００１４】
目的状態までの距離を推定する関数をヒューリスティック関数という。A*探索を用いて正しい最短路を求めるためには、推定距離が常に真の距離以下でなければならないことが知られている。また、A*探索を用いた際に探索をより速く進めるためには、推定距離が真の距離にできるだけ近い値である方がよいことが多いことが知られている。【００１５】
なお、A*探索は、ヒューリスティック関数を全く使用せずに常に推定距離を０として最短路を探索することも可能である。常に推定距離を０とするA*探索の動作は、「ダイクストラ法」と呼ばれる探索手法の動作と同じである。【００１６】
よいヒューリスティック関数を構築する手法として、緩和問題を構築する手法が知られている。特許文献２には、緩和問題の構築により構築されたヒューリスティック関数を利用する技術の一例が記載されている。具体的には、特許文献２には、複数のアイテムを積み替えるタスクを表す積載問題をいくつかの緩和問題に分割する手法が記載されている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】米国特許出願公開第２０１５／０３２４２１１号明細書
【特許文献２】特開２０１４−０５５０３７号公報
【非特許文献】
【００１８】
【非特許文献１】Peter E. Hart, Nils J. Nilsson, and Bertram Raphael, ”A Formal Basis for the Heuristic Determination of Minimal Cost Paths,” in IEEE Transactions on Systems Science and Cybernetics, vol. 4, no. 2, pp. 100-107, July 1968.
【発明の概要】
【発明が解決しようとする課題】
【００１９】
以下、本発明により解決される課題を説明するため、最初に本発明の処理対象として想定される自動計画問題を説明する。【００２０】
本発明の処理対象である自動計画問題は、特許文献１に記載されている自動計画問題に類似している、複数の状態グラフが並べられたモデル上の最短路を求める計画問題である。以下、複数の状態グラフが並べられたモデルを状態要素モデルと呼び、状態要素モデルを構成する状態グラフを状態要素と呼ぶ。【００２１】
以下、自動計画問題の具体例を説明する。図３６は、クレーンと荷物の初期状態と目的状態を示す説明図である。図３６に示す初期状態は、クレーンと荷物が共に場所A に存在することを表している。また、図３６に示す目的状態は、クレーンが場所A に、荷物が場所B にそれぞれ存在することを表している。【００２２】
図３６に示す初期状態から目的状態に状態を遷移させるための最短の手順を求めるために、自動計画問題が生成される。図３７は、状態要素モデルの例を示す説明図である。図３７に示す状態要素モデルは、生成された自動計画問題が示す状態要素モデルである。【００２３】
図３７に示す状態要素モデルには、状態要素itemと、状態要素crane が並べられている。状態要素itemは、図３６に示す荷物に対応する状態要素である。また、状態要素crane は、図３６に示すクレーンに対応する状態要素である。【００２４】
図３７に示す状態要素itemには、状態A 、状態picked、および状態B が含まれている。状態A は、荷物が場所A に存在する状態であることを表す。状態pickedは、荷物がクレーンに掴まれている状態であることを表す。状態B は、荷物が場所B に存在する状態であることを表す。【００２５】
図３７に示す状態要素crane には、状態A 、および状態B が含まれている。状態A は、クレーンが場所A に存在する状態であることを表す。状態B は、クレーンが場所B に存在する状態であることを表す。【００２６】
また、図３６に示す内容を踏まえて、図３７に示す状態要素itemでは現在状態が状態A に、目的状態が状態B にそれぞれ設定されている。同様に、図３７に示す状態要素crane では現在状態と目的状態が共に状態A に設定されている。【００２７】
さらに、状態要素モデルには、状態要素間の干渉内容が記載される。図３７に示す状態遷移を表す矢印に付随する黒色の吹き出しが、状態要素間の干渉内容（以下、依存性と呼ぶ。）を表す。【００２８】
図３７に示すように、吹き出し内には、他の状態要素の名前と、名前が示す状態要素に含まれる状態の集合が記載される。吹き出し内の内容は、名前が示す状態要素の状態が指定された状態の集合のうちのいずれかの状態でなければ、吹き出しが付随する状態遷移が実行されないことを意味する。【００２９】
例えば、図３７に示す依存性「crane:{A} 」は、状態要素itemの状態A →状態pickedの状態遷移、および状態picked→状態A の状態遷移に付随している。すなわち、状態要素crane の状態が状態A でなければ、状態要素itemの状態は状態A から状態pickedへ、または状態pickedから状態A へ遷移できない。【００３０】
図３７に示す状態要素モデル上の最短路を求める自動計画問題が、図３６に示すクレーンで場所A に存在する荷物を場所B に運ぶ最短手順を求める問題に相当する。状態要素モデル上の最短路を求める自動計画問題は、全ての状態要素の状態を各々の目的状態まで遷移させるための最短の手順を求める問題に帰着する。【００３１】
クレーンが最短手順で場所A に存在する荷物を場所B に運ぶ場合のクレーンと荷物の各状態要素の変化の例を図３８に示す。図３８は、状態要素モデルの変化の例を示す説明図である。図３８に示す黒色の状態である探索状態は、各段階でのクレーンおよび荷物の状態を表す。【００３２】
図３８（ａ）に示すように、最初の段階で場所A に存在する荷物とクレーンの各状態は、共に状態A である。次の段階でクレーンが荷物を掴むため、図３８（ｂ）に示すように、荷物の状態が状態pickedに遷移する。荷物を掴んだ後、次の段階でクレーンが荷物を掴んだまま場所A から場所B に移動するため、図３８（ｃ）に示すように、クレーンの状態が状態B に遷移する。【００３３】
場所B に移動した後、次の段階でクレーンが荷物を離すため、図３８（ｄ）に示すように、荷物の状態が状態B に遷移し、目的状態に到達する。荷物を離した後、次の段階でクレーンが場所B から場所A に移動するため、図３８（ｅ）に示すように、クレーンの状態が状態A に遷移し、目的状態に到達する。よって、自動計画問題の解は、図３８の下部に示す手順であることが分かる。【００３４】
図３８に示すような全ての状態要素の状態が各々の目的状態まで遷移する状態要素モデル上の最短路を求めることを考える。特許文献１に記載されているアルゴリズムが使用されると、図３７に示す状態要素モデルは、図３９に示す１つの状態グラフに展開される。本発明において、展開された状態グラフを大域状態グラフと呼ぶ。また、大域状態グラフを構成する状態を大域状態と呼ぶ。【００３５】
図３９は、大域状態グラフの例を示す説明図である。状態要素に含まれる状態と同様に、図３９に示す右向きの矢印が付随する大域状態が現在状態であり、二重枠で囲まれている大域状態が目的状態である。【００３６】
大域状態グラフにおける現在状態および目的状態は、各状態要素の組み合わせに依存する。具体的には、全ての状態要素の状態が現在状態である状態要素モデルの状態が、大域状態グラフにおける現在状態（以下、大域現在状態と呼ぶ。）である。また、全ての状態要素の状態が目的状態に遷移した状態要素モデルの状態が、大域状態グラフにおける目的状態（以下、大域目的状態と呼ぶ。）である。【００３７】
状態要素モデル上の最短路を求める自動計画問題は、状態要素モデルが変換された大域状態グラフにおける大域現在状態から大域目的状態に大域状態を遷移させるための最短手順を求める問題と同値である。すなわち、図３９に示す大域状態グラフ上の最短路を求める問題を解くことによって、図３８に示す手順が得られる。【００３８】
特許文献１に記載されている手法は、上述したような状態要素モデル上の最短路を求める自動計画問題を解くことができる。しかし、特許文献１に記載されている手法には、以下に述べる課題が存在する。【００３９】
特許文献１に記載されている手法に残されている課題は、状態要素モデルに含まれる状態要素の数が増えると状態空間が指数的に増大し、自動計画問題の求解に要する計算時間も指数的に増大することである。【００４０】
例えば、n 個の状態が含まれる状態要素が状態要素モデルに１つ追加されると、状態要素モデルが変換された大域状態グラフを構成する大域状態の数は、状態要素が追加される前に比べてn 倍になる。【００４１】
よって、例えば３つの状態が含まれる状態要素が新たに10個状態要素モデルに追加されると、大域状態グラフを構成する大域状態の数は、状態要素が追加される前に比べて310=59,049倍に増加する。【００４２】
単純に最短路探索に要する計算時間が大域状態グラフを構成する大域状態の数に比例すると仮定した場合、状態要素が新たに10個追加されると、計算時間も59,049倍程度に増大する。将来的に状態要素モデルに含まれる状態要素が20個、30個と増加することを考えると、既存の技術のみを用いて自動計画問題を解く場合、現実的な時間で探索処理が終わらない可能性があることが分かる。【００４３】
A*探索において適切なヒューリスティック関数が導入されない場合、上記の計算時間の急激な増加は、自動計画問題が現実に比較的即していると考えられるユースケースに関する問題である場合にも発生する可能性がある。以下、図４０を参照して計算時間が急激に増加する具体例を説明する。【００４４】
図４０は、状態要素モデルの他の例を示す説明図である。図４０は、ヒューリスティクス関数が使用されない場合に最短路探索処理の実行時間が著しく大きくなる状態要素モデルの具体例を示す。【００４５】
図４０に示す状態要素モデルは、状態要素App1、状態要素App2、状態要素App3、および状態要素Confで構成されている。図４０に示す状態要素モデルは、３つのアプリケーションと、各アプリケーションが共有する設定ファイルとで構成されるシステムを表す状態要素モデルである。【００４６】
状態要素App1、状態要素App2、状態要素App3は、それぞれアプリケーション１、アプリケーション２、アプリケーション３に対応する状態要素である。図４０に示すように、各アプリケーションは、「動作中」を意味する状態onと「停止中」を意味する状態off の２つの状態を含む状態要素としてそれぞれモデル化されている。【００４７】
また、状態要素Confは、設定ファイルに対応する状態要素である。図４０に示すように、設定ファイルは、「更新前」を意味する状態old と「更新後」を意味する状態new の２つの状態を含む状態要素としてモデル化されている。【００４８】
図４０に示す例において、設定ファイルが更新される場合を考える。図４０に示すように、設定ファイルが更新される場合の状態要素Confの現在状態は状態old であり、目的状態は状態new である。また、状態要素App1〜状態要素App3の各現在状態、および各目的状態は、いずれも状態onとする。【００４９】
図４０に示すように、状態要素Confの状態old →状態new の状態遷移に、依存性「App1:{off}, App2:{off}, App3:{off}」が付随している。その理由は、アプリケーションの動作中に設定ファイルが更新されると、アプリケーションがデータを正しく読み込めない可能性があるためである。よって、設定ファイルを参照しているアプリケーションが全て停止している時にしか、設定ファイルに対応する状態要素Confの状態old から状態new への状態遷移は行われない。【００５０】
状態要素App1〜状態要素App3の各状態で構成される大域状態を[(App1の状態), (App2の状態), (App3の状態)]で表す。A*探索が各大域状態に対してスコアを計算せずに設定ファイル更新の最短手順を探索すると、A*探索は、[on, on, on], [on, on, off], [on, off, on], [off, on, on], [on, off, off], [off, on, off], [off, off, on], [off, off, off]の順に大域状態を探索する。【００５１】
その理由は、スコアが使用されない場合、A*探索は、大域現在状態に近い大域状態から順に探索を進めるからである。すなわち、状態要素Confの状態を状態old から状態new に遷移させる最短手順を求めるために、A*探索には、大域現在状態と最も遠い大域目的状態である[off, off, off] との間に存在する大域状態を全て探索することが求められる。【００５２】
上記のように、任意の個数にアプリケーションを増やした場合であっても、現在状態から最も遠い状態への最短路の探索を求められることがある。n 個のアプリケーションを含むシステムを表す状態要素モデル上の最短路を求める場合、アプリケーションが全て停止した状態まで探索を進めるために最大2n個の状態を探索することが求められる可能性がある。すなわち、システムに含まれるアプリケーションの増加に伴い、最短路の探索に要する計算時間も指数的に増大する。【００５３】
従って、状態要素が多く含まれる状態要素モデル上の最短路をA*探索で探索する場合、適切なヒューリスティック関数を選択することが重要である。状態要素間の依存性に基づいて目的状態までの最短距離を適切なヒューリスティック関数で推定することによって、上記のような状況であっても高速で最短路を探索できる、自動計画問題を解く最適解推定装置が求められている。【００５４】
［発明の目的］
そこで、本発明は、上述した課題を解決する、状態要素モデル上の最短路を高速で探索できる推定距離算出器、推定距離算出方法、推定距離算出プログラムおよび自動計画器を提供することを目的とする。
【課題を解決するための手段】
【００５５】
本発明による推定距離算出器は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成部を備えることを特徴とする。【００５６】
本発明による推定距離算出方法は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器において実行される推定距離算出方法であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成することを特徴とする。【００５７】
本発明による推定距離算出プログラムは、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成するコンピュータにおいて実行される推定距離算出プログラムであって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、コンピュータに、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成処理を実行させることを特徴とする。【００５８】
本発明による自動計画器は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成部と、生成された第２状態要素モデルを入力とし第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出部と、導出された最小の遷移回数を用いることによって第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部とを備えることを特徴とする。
【発明の効果】
【００５９】
本発明によれば、状態要素モデル上の最短路を高速で探索できる。
【図面の簡単な説明】
【００６０】
【図１】本発明による推定距離算出器１００の第１の実施形態の構成例を示すブロック図である。
【図２】制約緩和部１０１による緩和問題生成処理の動作を示すフローチャートである。
【図３】制約緩和部１０１による緩和問題生成処理の具体例を示す説明図である。
【図４】求解部１０２による推定距離算出処理の動作を示すフローチャートである。
【図５】制約緩和部１０１が生成した緩和問題の例を示す説明図である。
【図６】求解部１０２による推定距離算出処理の具体例を示す説明図である。
【図７】幅優先探索シミュレーションによる最短路探索処理の例を示す説明図である。
【図８】推定距離算出器１１０の第２の実施形態の構成例を示すブロック図である。
【図９】求解部１１２による推定距離算出処理の動作を示すフローチャートである。
【図１０】求解部１１２による遷移列長計算処理の動作を示すフローチャートである。
【図１１】求解部１１２による遷移列長計算処理の具体例を示す説明図である。
【図１２】本発明による推定距離算出器１２０の第３の実施形態の構成例を示すブロック図である。
【図１３】制約緩和部１１１による緩和問題生成処理の動作を示すフローチャートである。
【図１４】制約緩和部１１１に入力される自動計画問題P の例を示す説明図である。
【図１５】制約緩和部１１１による依存木計算処理の例を示す説明図である。
【図１６】制約緩和部１１１に入力される自動計画問題P の他の例を示す説明図である。
【図１７】制約緩和部１１１が生成する依存木の例を示す説明図である。
【図１８】制約緩和部１１１による緩和問題生成処理の具体例を示す説明図である。
【図１９】求解部１２２による遷移列長計算処理の動作を示すフローチャートである。
【図２０】求解部１２２に入力される緩和問題Q および緩和問題Q の生成に使用された依存木T(E1) の例を示す説明図である。
【図２１】求解部１２２による遷移列長計算処理での緩和問題Q の解の距離の計算過程の例を示す説明図である。
【図２２】求解部１２２が生成する部分木の例を示す説明図である。
【図２３】求解部１２２が生成する問題Q’の例を示す説明図である。
【図２４】求解部１２２による問題Q’の求解例を示す説明図である。
【図２５】自動計画器２００の第４の実施形態の構成例を示すブロック図である。
【図２６】最短路探索部２０２による最短路探索処理の動作を示すフローチャートである。
【図２７】最短路探索部２０２による最短路探索処理の具体例を示す説明図である。
【図２８】最短路探索部２０２による最短路探索処理の具体例を示す説明図である。
【図２９】状態要素モデルの他の例を示す説明図である。
【図３０】状態遷移モデルの他の例を示す説明図である。
【図３１】本発明による推定距離算出器のハードウェア構成例を示す説明図である。
【図３２】本発明による推定距離算出器の概要を示すブロック図である。
【図３３】本発明による自動計画器の概要を示すブロック図である。
【図３４】状態グラフの例を示す説明図である。
【図３５】A*探索による最短路探索の具体例を示す説明図である。
【図３６】クレーンと荷物の初期状態と目的状態を示す説明図である。
【図３７】状態要素モデルの例を示す説明図である。
【図３８】状態要素モデルの変化の例を示す説明図である。
【図３９】大域状態グラフの例を示す説明図である。
【図４０】状態要素モデルの他の例を示す説明図である。
【発明を実施するための形態】
【００６１】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による推定距離算出器１００の第１の実施形態の構成例を示すブロック図である。
【００６２】
図１に示す推定距離算出器１００は、入力として状態要素モデル上の最短路を求める自動計画問題を受け取る。推定距離算出器１００は、自動計画問題が示す状態要素モデルにおける現在状態から目的状態までの最短路における推定距離を出力する。
【００６３】
本実施形態の推定距離算出器１００は、状態要素モデルにおける依存性の制約を考慮する状態間の距離の推定方法を用いることによって、最短路探索装置（図示せず）が大域状態グラフ上でA*探索を高速で実行することを可能にする。すなわち、本実施形態の推定距離算出器１００が使用されると、状態要素モデル上の最短路を求める自動計画問題が高速で求解される。
【００６４】
図１に示すように、本実施形態の推定距離算出器１００は、制約緩和部１０１と、求解部１０２とを備える。
【００６５】
制約緩和部１０１は、入力された自動計画問題を緩和する機能を有する。制約緩和部１０１は、自動計画問題が示す状態要素モデルを構成する複数の状態要素のうちのいずれか１つの状態要素以外の状態要素に含まれる依存性を除去することによって、自動計画問題が緩和された緩和問題を生成する。
【００６６】
制約緩和部１０１は、生成された緩和問題を求解部１０２に入力する。求解部１０２は、入力された緩和問題の解を求める機能を有する。なお、緩和問題の解は、緩和問題が示す状態要素モデル上の最短路である。求解部１０２は、求められた緩和問題の解のうち、自動計画問題が示す状態要素モデル上の最短路における推定距離として最適な解を出力する。
【００６７】
［動作の説明］
以下、本実施形態の推定距離算出器１００の推定距離を出力する動作を図２、および図４を参照して説明する。
【００６８】
最初に、制約緩和部１０１による緩和問題生成処理を説明する。図２は、制約緩和部１０１による緩和問題生成処理の動作を示すフローチャートである。
【００６９】
最初に、制約緩和部１０１には、推定距離算出器１００に入力された状態要素モデルM 上の最短路を求める自動計画問題P が入力される（ステップS110）。次いで、制約緩和部１０１は、集合R を空集合（何も含まれていない集合）に設定する（ステップS111）。
【００７０】
次いで、制約緩和部１０１は、状態要素モデルM に含まれる状態要素のうち未だ自身に関する緩和問題Q が生成されていない状態要素E を取り出す。すなわち、緩和問題生成ループに入る（ステップS112）。
【００７１】
制約緩和部１０１は、取り出された状態要素E に関する緩和問題Q を生成する（ステップS113）。具体的には、制約緩和部１０１は、状態要素モデルM に含まれる依存性のうち、状態要素E に含まれる状態遷移に付随している依存性以外の依存性を全て削除することによって、状態要素E に関する緩和問題Q を生成する。
【００７２】
次いで、制約緩和部１０１は、集合R に緩和問題Q が加えられた集合に集合R を再設定する（ステップS114）。すなわち、制約緩和部１０１は、集合R の要素にステップS113で生成された緩和問題Q を追加する。
【００７３】
制約緩和部１０１は、状態要素モデルM に含まれる状態要素の中で自身に関する緩和問題Q が生成されていない状態要素E が存在する間、ステップS113〜ステップS114の処理を繰り返し実行する。ステップS113〜ステップS114の処理は状態要素ごとに、状態要素モデルM に含まれる状態要素の数だけ繰り返し実行される。
【００７４】
状態要素モデルM に含まれる全ての状態要素に関する緩和問題Q が生成された時、制約緩和部１０１は、緩和問題生成ループを抜ける（ステップS115）。緩和問題生成ループを抜けた後、制約緩和部１０１は、集合R を出力する（ステップS116）。集合R を出力した後、制約緩和部１０１は、緩和問題生成処理を終了する。
【００７５】
図３は、制約緩和部１０１による緩和問題生成処理の具体例を示す説明図である。図３に示す状態要素モデルM は、状態要素E1と、状態要素E2と、状態要素E3とで構成されている。
【００７６】
制約緩和部１０１は、状態要素モデルM 上の最短路を求める自動計画問題P を緩和問題生成処理で緩和する。具体的には、制約緩和部１０１は、自動計画問題P を状態要素E1に関して緩和する場合、図３に示すように状態要素E1に含まれる状態遷移に付随している依存性以外の依存性が全て削除された緩和問題Q1を生成する。
【００７７】
同様に、制約緩和部１０１は、自動計画問題P を状態要素E2と状態要素E3それぞれに関して緩和する場合、緩和問題Q2と緩和問題Q3を生成する。図３に示すように、自動計画問題P が３つの状態要素で構成される状態要素モデルM を示す場合、制約緩和部１０１は、緩和問題生成処理で３つの緩和問題を生成する。
【００７８】
次に、求解部１０２による推定距離算出処理を説明する。図４は、求解部１０２による推定距離算出処理の動作を示すフローチャートである。
【００７９】
最初に、求解部１０２には、制約緩和部１０１が出力した緩和問題Q の集合R が入力される（ステップS120）。次いで、求解部１０２は、SCORE2を０に設定する（ステップS121）。
【００８０】
次いで、求解部１０２は、集合R に含まれる緩和問題Q のうち未だ解が求められていない緩和問題Q を取り出す。すなわち、推定距離算出ループに入る（ステップS122）。
【００８１】
推定距離算出ループ内で求解部１０２は、取り出された緩和問題Q を解く。以下、緩和問題Q に含まれる状態要素のうち、依存性が残る状態要素を$Qと記載する。また、状態要素$Qの状態が現在状態から目的状態へ遷移する冗長でないパスをπと記載する。
【００８２】
なお、「冗長なパス」は、例えば探索状態が同じ状態に二度遷移するパスである。例えば、パス「a1→c1→a1→b1→c1」は、探索状態がa1とc1にそれぞれ二度遷移するため、冗長なパスである。
【００８３】
最初に、求解部１０２は、SCORE1を∞に設定する（ステップS123）。次いで、求解部１０２は、未だ遷移列が求められていないパスπを決定する。すなわち、最短路探索ループに入る（ステップS124）。
【００８４】
緩和問題Q に含まれる状態要素$Qの状態は、大域状態グラフ上の最短路に沿って遷移する際、何らかの冗長でないパスπに沿って遷移することが考えられる。本実施形態の求解部１０２は、「状態要素$Qの状態はπに沿って遷移する」という仮定の下で緩和問題Q を解く。
【００８５】
現在状態から目的状態へ遷移するまでに、状態要素$Qの状態は、状態遷移を何回か経る。求解部１０２は、緩和問題Q の解として、状態要素$Qの状態が現在状態から目的状態へ遷移するまでに行われた状態遷移が最初から順番に並べられた遷移列を得る（ステップS125）。遷移列は、例えば、図３８の下部に示す状態遷移の列「item: A →picked、crane: A→B 、item: picked→B 、crane: B→A 」である。
【００８６】
次いで、求解部１０２は、ステップS125で得られた遷移列の長さをSCORE[π] に設定する（ステップS126）。例えば、４つの状態遷移で遷移列が構成される場合、遷移列の長さは「４」である。
【００８７】
次いで、求解部１０２は、SCORE1がSCORE[π] より大きいか否かを判定する（ステップS127）。SCORE1がSCORE[π] より大きい場合（ステップS127におけるTrue）、求解部１０２は、SCORE[π] をSCORE1に設定する（ステップS128）。
【００８８】
求解部１０２は、状態要素$Qに関する遷移列が求められていないパスπが存在する間、ステップS125〜ステップS128の処理を繰り返し実行する。ステップS125〜ステップS128の処理はパスπごとに、状態要素$Qに関して考えられる冗長でないパスの数だけ繰り返し実行される。
【００８９】
状態要素$Qに関する全てのパスπに対して遷移列が求められた時、求解部１０２は、最短路探索ループを抜ける（ステップS129）。求解部１０２が最短路探索ループを抜けた際、SCORE1には得られた遷移列の長さの最小値が格納されている。すなわち、最短路探索ループを抜けた際のSCORE1が、緩和問題Q の解（最短路）の距離である。
【００９０】
次いで、求解部１０２は、SCORE1がSCORE2より大きいか否かを判定する（ステップS130）。SCORE1がSCORE2より大きい場合（ステップS130におけるTrue）、求解部１０２は、SCORE1をSCORE2に設定する（ステップS131）。
【００９１】
求解部１０２は、集合R に含まれる緩和問題Q のうち解が求められていない緩和問題Q が存在する間、ステップS123〜ステップS131の処理を繰り返し実行する。ステップS123〜ステップS131の処理は緩和問題Q ごとに、集合R に含まれる緩和問題Q の数だけ繰り返し実行される。
【００９２】
集合R に含まれる全ての緩和問題Q の解が求められた時、求解部１０２は、推定距離算出ループを抜ける（ステップS132）。求解部１０２が推定距離算出ループを抜けた際、SCORE2には得られた緩和問題Q の解の距離の最大値が格納されている。すなわち、推定距離算出ループを抜けた際のSCORE2が、自動計画問題P の解である最短路における推定距離である。
【００９３】
推定距離算出ループを抜けた後、求解部１０２は、SCORE2を出力する（ステップS133）。SCORE2を出力した後、求解部１０２は、推定距離算出処理を終了する。
【００９４】
以下、求解部１０２による推定距離算出処理の具体例を説明する。図５は、制約緩和部１０１が生成した緩和問題の例を示す説明図である。図５に示す緩和問題は、図３に示す緩和問題生成処理で生成された緩和問題Q1である。
【００９５】
緩和問題Q1は、自動計画問題P の制約が状態要素E1に関して緩和されたことによって生成された緩和問題である。緩和問題Q1に含まれる状態要素E1における現在状態はa1、目的状態はc1である。状態が現在状態a1から目的状態c1へ遷移する冗長でないパスπには、「a1→c1」と「a1→b1→c1」の２つのパスがある。
【００９６】
図５に示す緩和問題Q1が入力された場合の求解部１０２による推定距離算出処理を、図６を参照して説明する。図６は、求解部１０２による推定距離算出処理の具体例を示す説明図である。
【００９７】
求解部１０２は、冗長でないパスπに沿って状態要素E1の状態を目的状態まで遷移させるための手順を各々のパスに関して求める。例えば、パス「a1→c1」に沿う場合、依存性に従って最初に状態要素E2の状態をa2に遷移させることが求められる。よって、図６に示すように、３つのステップ「E2: b2→a2」「E1: a1→c1」「E2: a2→b2」で構成される手順P1100 が得られる。
【００９８】
なお、例えばステップ「E2: b2→a2」は、状態要素E2の状態をb2からa2に遷移させる手順である。すなわち、１つの手順が１つの状態遷移に相当する。また、最後にステップ「E2: a2→b2」が加えられている理由は、状態要素E2の状態を目的状態b2に遷移させるためである。
【００９９】
また、パス「a1→b1→c1」に沿う場合、状態要素E1の状態をa1からb1へ遷移させた後、依存性に従って状態要素E2の状態をa2に遷移させ、次いで状態要素E3の状態をa3に遷移させることが求められる。よって、図６に示すように、６つのステップで構成される手順P1101 が得られる。
【０１００】
求解部１０２は、得られた手順のうち最も短い手順の長さを解として返す（ステップS129）。図６に示す例では、求解部１０２は、パス「a1→c1」に沿って状態要素E1の状態を遷移させる時の手順である手順P1100 の長さである「３」を解として返す。
【０１０１】
なお、図６に示すようなパスが固定された緩和問題の解である最短路は、例えば、幅優先探索シミュレーションで求められる。図７は、幅優先探索シミュレーションによる最短路探索処理の例を示す説明図である。
【０１０２】
幅優先探索シミュレーションは、パスが固定された緩和問題の解を求める際に使用されるアルゴリズムの１つである。図７に示す状態要素E1に含まれる依存性「E2:{b2,c2}」には、状態要素E2の状態が２つ指定されている。よって、図７に示す最短路探索処理の最初の段階において、どちらの状態に遷移させるかという分岐が発生している。
【０１０３】
幅優先探索シミュレーションが使用された場合、最終的に得られた手順のうち最短の手順が選ばれる。図７に示す例では、手順P1200 が最短路として選ばれている。なお、幅優先探索シミュレーションは、パスが固定された緩和問題を解くために使用される１つの方式である。本実施形態の求解部１０２は、幅優先探索シミュレーション以外の方式でパスが固定された緩和問題を解いてもよい。
【０１０４】
［効果の説明］
本実施形態の推定距離算出器１００は、状態要素モデルに含まれる依存性の一部を緩和することによって自動計画問題を高速で解くことが可能な緩和問題に変形する制約緩和部１０１と、緩和問題を高速で解く求解部１０２とを備える。推定距離算出器１００は、依存性の影響を最も強く受ける状態要素における依存性が加味された推定距離を算出することによって、状態要素モデル上の最短路を求める自動計画問題を解く際に実行されるA*探索の高速化を可能にする。
【０１０５】
本実施形態の推定距離算出器１００がA*探索の高速化を可能にする理由は、A*探索で行われる各状態に対するスコア付けの処理自体を高速化するだけでなく、真の解であるパスの長さに近い値をスコアとして算出できるためである。
【０１０６】
制約緩和部１０１は、状態要素モデルに含まれる１つの状態要素に着目し、着目された状態要素における依存性のみを残し、他の依存性を全て削除する。上記の手法により、制約緩和部１０１は、依存性の一部を考慮しつつ、元の自動計画問題に比べて簡略化された緩和問題を生成する。
【０１０７】
求解部１０２は、状態要素モデルに含まれる全ての状態要素に関して、それぞれの状態要素を中心に緩和された各問題の解を比較する。求解部１０２は、比較した結果最大の値である解を推定距離とする。本実施形態の推定距離算出器１００は、問題の依存性を緩和することによって高速で求解されるように問題を緩和し、緩和問題の解の長さを推定距離とするため、依存性の影響が反映された距離を推定できる。
【０１０８】
他の状態グラフに依存する複数の小さな状態グラフで構成されるシステムに関する自動計画問題をヒューリスティック最短路探索の方式で解く場合、目的状態までの距離の推定が求められる。また、推定される距離は、各状態グラフにおける局所解の影響を受けていないことが求められる。本実施形態の推定距離算出器１００は、制約緩和部１０１が簡略化された緩和問題を生成できるので、上記の条件を満たす推定距離を算出できる。
【０１０９】
実施形態２．
［構成の説明］
次に、本発明の第２の実施形態を、図面を参照して説明する。第２の実施形態は、第１の実施形態で実行される検証手法を実行するための１つの態様である。
【０１１０】
図８は、推定距離算出器１１０の第２の実施形態の構成例を示すブロック図である。図８に示すように、本実施形態の推定距離算出器１１０は、制約緩和部１０１と、求解部１１２とを備える。
【０１１１】
本実施形態の推定距離算出器１１０では、第１の実施形態の求解部１０２が求解部１１２に置き換えられている。なお、求解部１１２以外の第２の実施形態の構成は、第１の実施形態の構成と同様である。
【０１１２】
求解部１１２は、緩和問題Q を解く前に、緩和問題Q に含まれる状態要素$Q以外の状態要素E_1 、状態要素E_2 、・・・、状態要素E_n ごとに、緩和問題Q が示す状態要素モデルを分割する。緩和問題Q が示す状態要素モデルを分割した上で、求解部１１２は、遷移列の長さを求める。
【０１１３】
［動作の説明］
以下、本実施形態の求解部１１２による推定距離算出処理を説明する。図９は、求解部１１２による推定距離算出処理の動作を示すフローチャートである。なお、本実施形態の制約緩和部１０１による緩和問題生成処理は、第１の実施形態の緩和問題生成処理と同様である。
【０１１４】
本実施形態の求解部１１２による推定距離算出処理は、ステップS225の処理を除いて、第１の実施形態の求解部１０２による推定距離算出処理と同様である。すなわち、求解部１１２にも、緩和問題Q の集合である集合R が入力される（ステップS220）。また、求解部１１２も、全ての冗長でないパスπに関して遷移列の長さを求め、求められた遷移列の長さの最小値を緩和問題Q の解の距離として返す（ステップS224〜ステップS229）。
【０１１５】
求解部１１２も、基本的には第１の実施形態の求解部１０２と同様に、状態要素$Qに関する冗長でないパスπが固定された緩和問題Q を解くことによって、遷移列の長さを計算する（ステップS225）。本実施形態の求解部１１２は、第１の実施形態の求解部１０２と遷移列の長さの計算方法が異なる。
【０１１６】
以下、本実施形態の求解部１１２による遷移列長計算処理を説明する。図１０は、求解部１１２による遷移列長計算処理の動作を示すフローチャートである。
【０１１７】
冗長でないパスπが固定された後、求解部１１２は、SCORE[π] にπの長さを設定する（ステップS240）。次いで、求解部１１２は、緩和問題Q に含まれる状態要素$Q以外の状態要素のうち未だ状態要素モデルM_i が生成されていない状態要素E_i を取り出す。すなわち、遷移列長計算ループに入る（ステップS241）。
【０１１８】
状態要素E_i を取り出した後、求解部１１２は、緩和問題Q が示す状態要素モデルから状態要素$Q、および状態要素E_i 以外の状態要素を取り除き、新たな状態要素モデルM_i を生成する（ステップS242）。状態要素モデルM_i で表現される問題をQ’と記載する。
【０１１９】
次いで、求解部１１２は、状態要素$Qの状態がパスπに沿って現在状態から目的状態へ遷移する状態要素モデルM_i 上の最短路が示す遷移列を求める（ステップS243）。
【０１２０】
次いで、求解部１１２は、ステップS243で求められた遷移列のうち状態要素E_i に関する状態遷移の数をカウントする。次いで、求解部１１２は、カウントされた状態遷移の数をSCORE[π] に加算する（ステップS244）。
【０１２１】
求解部１１２は、緩和問題Q に含まれる状態要素$Q以外の状態要素のうち状態要素モデルM_i が生成されていない状態要素E_i が存在する間、ステップS242〜ステップS244の処理を繰り返し実行する。ステップS242〜ステップS244の処理は状態要素E_i ごとに、緩和問題Q に含まれる状態要素$Q以外の状態要素の数だけ繰り返し実行される。
【０１２２】
緩和問題Q に含まれる状態要素$Q以外の状態要素E_1 、状態要素E_2 、・・・、状態要素E_n に関して状態要素モデルM_1 、状態要素モデルM_2 、・・・、状態要素モデルM_n がそれぞれ生成された時、求解部１１２は、遷移列長計算ループを抜ける（ステップS245）。
【０１２３】
求解部１１２が遷移列長計算ループを抜けた時のSCORE[π] には、各状態要素モデルに関して得られた状態遷移の数の総和とパスπの長さの合計値が格納されている。求解部１１２は、遷移列長計算ループを抜けた時のSCORE[π] を、パスπが固定された場合の緩和問題Q の解の距離とする。緩和問題Q の解の距離を求めた後、求解部１１２は、ステップS226の処理を行う。
【０１２４】
以下、求解部１１２による遷移列長計算処理を、図１１を参照して説明する。図１１は、求解部１１２による遷移列長計算処理の具体例を示す説明図である。
【０１２５】
図１１に示す遷移列長計算処理において、求解部１１２は、状態要素E1における状態遷移が冗長でないパス「a1→b1→c1」に固定されて行われる緩和問題Q を扱う。求解部１１２は、緩和問題Q を、状態要素E1と状態要素E2のみが含まれる状態要素モデルを示す問題Q’1 と、状態要素E1と状態要素E3のみが含まれる状態要素モデルを示す問題Q’2 に分割する（ステップS242）。
【０１２６】
次いで、求解部１１２は、問題Q’1 および問題Q’2 各々の解を求める（ステップS243）。問題Q’1 の解は、状態要素E2の状態が２回遷移することを示す。また、問題Q’2 の解は、状態要素E3の状態が２回遷移することを示す。よって、緩和問題Q の解の長さは、2+2+2=6 である（ステップS244）。
【０１２７】
［効果の説明］
本実施形態の求解部１１２は、緩和問題を状態要素ごとに分割し、分割された問題の解の和を取ることによって緩和問題を解く。本実施形態の推定距離算出器１１０は、求解部１１２が緩和問題を第１の実施形態に比べてさらに細かく分割するので、推定距離をより高速で算出できる。状態要素を多く含む状態要素モデル上の最短路を求める問題に対して、本実施形態の推定距離算出器１１０は、特に効果を奏する。
【０１２８】
実施形態３．
［構成の説明］
次に、本発明の第３の実施形態を、図面を参照して説明する。
【０１２９】
図１２は、本発明による推定距離算出器１２０の第３の実施形態の構成例を示すブロック図である。図１２に示すように、本実施形態の推定距離算出器１２０は、制約緩和部１１１と、求解部１２２とを備える。
【０１３０】
本実施形態の推定距離算出器１２０では、第１の実施形態の制約緩和部１０１が制約緩和部１１１に、第１の実施形態の求解部１０２が求解部１２２に、それぞれ置き換えられている。
【０１３１】
制約緩和部１１１は、状態要素モデルに含まれる１つの状態要素$Qに着目する。制約緩和部１１１は、状態要素$Qに含まれる依存性の「依存先」を次々と辿る。「依存先」を辿ることによって、制約緩和部１１１は、着目された状態要素$Qに由来する依存性のみを選択する。また、制約緩和部１１１は、選択された依存性以外の依存性を状態要素モデルから全て削除する。
【０１３２】
上記の手法により、制約緩和部１１１は、第１の実施形態の制約緩和部１０１よりも依存性の影響を多く考慮しつつ、元の自動計画問題に比べて簡略化された緩和問題を生成できる。
【０１３３】
求解部１２２は、緩和問題Q を解く前に、状態要素$Qが直接依存している状態要素E_1 、状態要素E_2 、・・・、状態要素E_n ごとに、緩和問題Q が示す状態要素モデルを分割する。緩和問題Q が示す状態要素モデルを分割した上で、求解部１２２は、遷移列の長さを求める。
【０１３４】
［動作の説明］
以下、本実施形態の推定距離算出器１２０の推定距離を出力する動作を図１３、および図１９を参照して説明する。
【０１３５】
最初に、制約緩和部１１１による緩和問題生成処理を説明する。図１３は、制約緩和部１１１による緩和問題生成処理の動作を示すフローチャートである。
【０１３６】
最初に、制約緩和部１１１には、推定距離算出器１２０に入力された状態要素モデルM 上の最短路を求める自動計画問題P が入力される（ステップS310）。次いで、制約緩和部１１１は、集合R を空集合（何も含まれていない集合）に設定する（ステップS311）。
【０１３７】
次いで、制約緩和部１１１は、状態要素モデルM に含まれる状態要素のうち未だ自身に関する緩和問題Q が生成されていない状態要素E を取り出す。すなわち、緩和問題生成ループに入る（ステップS312）。
【０１３８】
制約緩和部１１１は、取り出された状態要素E を基に、状態要素E に関する依存木T(E)を計算する（ステップS313）。状態要素モデルM の状態要素E に関する依存木T(E)は、状態要素モデルM に含まれる状態要素同士が矢印で結ばれることによって生成されるツリーである。
【０１３９】
ただし、依存木T(E)において状態要素E1と状態要素E2が「E1→E2」のように矢印で結ばれる場合は、状態要素モデルM に含まれる状態要素E1の状態遷移に、状態要素E2の状態への依存性が付随している場合のみである。
【０１４０】
制約緩和部１１１は、取り出された状態要素E に関する緩和問題Q を生成する（ステップS314）。具体的には、制約緩和部１１１は、状態要素モデルM に含まれる依存性のうち、ステップS313で計算された依存木T(E)を構成する矢印と同じ向きの依存性以外の依存性を全て削除することによって、状態要素E に関する緩和問題Q を生成する。
【０１４１】
例えば、「依存木T(E)を構成する矢印E1→E2」と「同じ向き」の依存性は、「状態要素E1の状態遷移に付随している状態要素E2の状態への依存性」である。
【０１４２】
次いで、制約緩和部１１１は、集合R に緩和問題Q が加えられた集合に集合R を再設定する（ステップS315）。すなわち、制約緩和部１１１は、集合R の要素にステップS314で生成された緩和問題Q を追加する。
【０１４３】
制約緩和部１１１は、状態要素モデルM に含まれる状態要素の中で自身に関する緩和問題Q が生成されていない状態要素E が存在する間、ステップS313〜ステップS315の処理を繰り返し実行する。ステップS313〜ステップS315の処理は状態要素ごとに、状態要素モデルM に含まれる状態要素の数だけ繰り返し実行される。
【０１４４】
状態要素モデルM に含まれる全ての状態要素に関する緩和問題Q が生成された時、制約緩和部１１１は、緩和問題生成ループを抜ける（ステップS316）。緩和問題生成ループを抜けた後、制約緩和部１１１は、集合R を出力する（ステップS317）。集合R を出力した後、制約緩和部１１１は、緩和問題生成処理を終了する。
【０１４５】
ステップS313の処理で、制約緩和部１１１は、例えば幅優先探索で状態要素を辿りながら矢印を張ることによって依存木T(E)を求める。幅優先探索は、グラフを網羅的に走査するために用いられるアルゴリズムの１つである。
【０１４６】
本実施形態の制約緩和部１１１は、状態要素モデル内の「状態要素E1の状態遷移に状態要素E2の状態への依存性が付随している」という関係を、「状態要素E1から状態要素E2に向けて枝（矢印）が張られている」とみなす。
【０１４７】
各関係を枝とみなすことによって、制約緩和部１１１は、状態要素モデルM を１つのグラフとして解釈する。制約緩和部１１１は、幅優先探索を用いて状態要素モデルM のグラフを状態要素E から網羅的に走査することによって、依存木T(E)を計算できる。
【０１４８】
図１４は、制約緩和部１１１に入力される自動計画問題P の例を示す説明図である。図１４に示すように、自動計画問題P が示す状態要素モデルM には、状態要素E1〜状態要素E4が含まれている。
【０１４９】
また、状態要素E1には、状態要素E2の状態への依存性、および状態要素E3の状態への依存性が付随された状態遷移が含まれている。状態要素E2、および状態要素E4にも、他の状態要素の状態への依存性が付随された状態遷移が含まれている。
【０１５０】
図１５は、制約緩和部１１１による依存木計算処理の例を示す説明図である。図１５に示す依存木計算処理は、幅優先探索が使用された時の計算処理である。また、図１５に示す依存木計算処理は、図１４に示す状態要素モデルに含まれる状態要素E1に関する依存木の計算処理である。
【０１５１】
図１５に示す黒色の矩形が、状態要素を表す。図１５（ａ）から図１５（ｂ）にかけて、制約緩和部１１１は、状態要素E1から状態要素E2に向けて、および状態要素E1から状態要素E3に向けてそれぞれ矢印を張る。
【０１５２】
同様に、図１５（ｂ）から図１５（ｃ）にかけて、制約緩和部１１１は、状態要素E2から状態要素E4に向けて矢印を張る。図１５（ｃ）に示す状態要素および矢印の組が、制約緩和部１１１が計算した結果得られた依存木T(E1) である。
【０１５３】
幅優先探索は、制約緩和部１１１が依存木を計算する際に用いるアルゴリズムの１つである。なお、本実施形態の制約緩和部１１１は、幅優先探索以外のアルゴリズムを用いて依存木を計算してもよい。
【０１５４】
なお、計算に用いられるアルゴリズムに応じて、入力情報が同じ場合であっても求められる依存木が異なる場合がある。しかし、本実施形態の制約緩和部１１１は緩和問題を生成する際にどのような種類の依存木を用いてもよいため、求められる依存木が異なることに問題はない。以下、制約緩和部１１１による依存木を用いた緩和問題生成処理を、図を参照して説明する。
【０１５５】
図１６は、制約緩和部１１１に入力される自動計画問題P の他の例を示す説明図である。図１６に示すように、自動計画問題P が示す状態要素モデルM には、状態要素E1と、状態要素E2と、状態要素E3とが含まれている。
【０１５６】
図１７は、制約緩和部１１１が生成する依存木の例を示す説明図である。図１７に示す依存木T(E1) は、図１６に示す状態要素モデルM に含まれる状態要素E1に関して計算された依存木である。
【０１５７】
同様に、図１７に示す依存木T(E2) 、および依存木T(E3) は、それぞれ図１６に示す状態要素モデルM に含まれる状態要素E2に関して計算された依存木、状態要素E3に関して計算された依存木である。
【０１５８】
図１８は、制約緩和部１１１による緩和問題生成処理の具体例を示す説明図である。図１８は、制約緩和部１１１が図１７に示す依存木T(E1) 、依存木T(E2) 、および依存木T(E3) を用いて３つの緩和問題を生成する処理を示す。
【０１５９】
制約緩和部１１１は、状態要素モデルM 上の最短路を求める自動計画問題P を緩和問題生成処理で緩和する。具体的には、制約緩和部１１１は、自動計画問題P を状態要素E1に関して緩和する場合、最初に図１７に示すような依存木T(E1) を求める。次いで、制約緩和部１１１は、依存木T(E1) を構成する矢印と同じ向きの依存性以外の依存性が自動計画問題P から全て削除された緩和問題Q1を生成する。
【０１６０】
緩和問題Q1を生成する際、制約緩和部１１１は、状態要素E2の状態b2から状態a2への状態遷移に付随している依存性「E1:{a1,b1}」を削除する。その理由は、依存木T(E1) には、「状態要素E2の状態遷移に付随している状態要素E1の状態への依存性」と同じ向きの矢印、すなわち状態要素E2から状態要素E1に向けた矢印が含まれていないためである。
【０１６１】
同様に、制約緩和部１１１は、自動計画問題P を状態要素E2と状態要素E3それぞれに関して緩和する場合、緩和問題Q2と緩和問題Q3をそれぞれ生成する。次いで、制約緩和部１１１は、生成された緩和問題Q1〜緩和問題Q3を出力する。
【０１６２】
次に、求解部１２２による推定距離算出処理を説明する。本実施形態の求解部１２２による推定距離算出処理は、図９に示す推定距離算出処理と同様である。ただし、本実施形態の求解部１２２が実行するステップS225の遷移列長計算処理は、第２の実施形態の求解部１１２が実行する遷移列長計算処理と異なる。
【０１６３】
以下、本実施形態の求解部１２２による遷移列長計算処理を説明する。図１９は、求解部１２２による遷移列長計算処理の動作を示すフローチャートである。
【０１６４】
なお、第２の実施形態では「緩和問題Q に含まれる状態要素のうち、依存性が残っている状態要素」が、状態要素$Qとして記載された。本実施形態では「緩和問題Q が生成される際に用いられた依存木の根」が、状態要素$Qとして記載される。図１７に示す例であれば、依存木T(E1) の根は状態要素E1である。
【０１６５】
すなわち、制約緩和部１１１は、依存木T($Q) を用いて緩和問題Q を生成する。以下、「依存木T($Q) 」は、緩和問題Q が生成される際に用いられた依存木を指す。また、状態要素$Q上の冗長でないパスπが固定されているとして遷移列長計算処理を説明する。
【０１６６】
冗長でないパスπが固定された後、求解部１２２は、SCORE[π] にπの長さを設定する（ステップS340）。次いで、求解部１２２は、「依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素」のうち未だ部分木が構成されていない状態要素E_i を取り出す。すなわち、第１遷移列長計算ループに入る（ステップS341）。
【０１６７】
状態要素E_i を取り出した後、求解部１２２は、状態要素E_i を根とする部分木を依存木T($Q) において構成する。すなわち、求解部１２２は、依存木T($Q) のうち状態要素E_i から矢印を辿って到達可能な部分を部分木として取り出す（ステップS342）。以下、取り出された部分木に含まれる状態要素の集合をU_i と記載する。
【０１６８】
部分木を取り出した後、求解部１２２は、緩和問題Q が示す状態要素モデルから集合U_i 、および状態要素$Q以外の状態要素を取り除き、新たな状態要素モデルM_i を生成する（ステップS343）。状態要素モデルM_i で表現される問題をQ’と記載する。
【０１６９】
次いで、求解部１２２は、状態要素$Qの状態がパスπに沿って現在状態から目的状態へ遷移する状態要素モデルM_i 上の最短路が示す遷移列、すなわち問題Q’の解である遷移列の長さを求める（ステップS344）。
【０１７０】
次いで、求解部１２２は、ステップS344で求められた遷移列の長さから、固定されているパスπの長さが減算された値をSCORE[π] に加算する（ステップS345）。
【０１７１】
求解部１２２は、依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素のうち部分木が構成されていない状態要素E_i が存在する間、ステップS342〜ステップS345の処理を繰り返し実行する。ステップS342〜ステップS345の処理は状態要素E_i ごとに、依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素の数だけ繰り返し実行される。
【０１７２】
依存木T($Q) において状態要素$Qから直接矢印が伸びている全ての状態要素E_i に関して部分木が構成された時、求解部１２２は、第１遷移列長計算ループを抜ける（ステップS346）。
【０１７３】
次いで、求解部１２２は、「緩和問題Q が示す状態要素モデルに含まれる状態要素のうち依存木T($Q) を構成する状態要素以外の状態要素」から未だ遷移列長が計算されていない状態要素F_i を取り出す。すなわち、第２遷移列長計算ループに入る（ステップS347）。
【０１７４】
取り出された状態要素F_i は、制約緩和部１１１により状態遷移から全ての依存性が取り除かれた状態要素である。かつ、緩和問題Q が示すどの状態要素にも、状態要素F_i に対する依存性が含まれていない。すなわち、緩和問題Q において、求解部１２２は、状態要素F_i の状態を自由に遷移させることができる。
【０１７５】
求解部１２２は、状態要素F_i の状態が現在状態から目的状態へ遷移する緩和問題Q が示す状態要素モデル上の最短路が示す遷移列を求める（ステップS348）。上記の特徴により、求解部１２２は、状態要素F_i の状態が現在状態から目的状態へ遷移する最短路を簡単に求めることができる。
【０１７６】
次いで、求解部１２２は、ステップS348で求められた最短路が示す遷移列の長さをSCORE[π] に加算する（ステップS349）。
【０１７７】
求解部１２２は、依存木T($Q) を構成する状態要素以外の状態要素のうち遷移列長が計算されていない状態要素F_i が存在する間、ステップS348〜ステップS349の処理を繰り返し実行する。ステップS348〜ステップS349の処理は状態要素F_i ごとに、緩和問題Q が示す状態要素モデルに含まれる依存木T($Q) を構成する状態要素以外の状態要素の数だけ繰り返し実行される。
【０１７８】
依存木T($Q) を構成する状態要素以外の全ての状態要素F_i に関して遷移列長が計算された時、求解部１２２は、第２遷移列長計算ループを抜ける（ステップS350）。
【０１７９】
求解部１２２は、第２遷移列長計算ループを抜けた時のSCORE[π] を、パスπが固定された場合の緩和問題Q の解の距離とする。緩和問題Q の解の距離を求めた後、求解部１２２は、ステップS226の処理を行う。
【０１８０】
以下、求解部１２２による遷移列長計算処理を、図を参照して説明する。図２０は、求解部１２２に入力される緩和問題Q および緩和問題Q の生成に使用された依存木T(E1) の例を示す説明図である。
【０１８１】
図２０に示す緩和問題Q は、依存木T(E1) に沿って緩和された問題である。図２０に示すように状態要素E1において、状態a1から状態c1への状態遷移に依存性「E2:{a2} 」が、状態b1から状態c1への状態遷移に依存性「E2:{a2} 」および依存性「E3:{a3} 」が、それぞれ付随している。また、状態要素E2において、状態b2から状態a2への状態遷移に依存性「E4:{a4} 」が付随している。
【０１８２】
また、図２０に示す依存木T(E1) では、状態要素E1から状態要素E2に向けて、および状態要素E1から状態要素E3に向けてそれぞれ矢印が伸びている。また、状態要素E2から状態要素E4に向けて矢印が伸びている。また、状態要素E5は、依存木T(E1) に含まれていない。
【０１８３】
図２１は、求解部１２２による遷移列長計算処理での緩和問題Q の解の距離の計算過程の例を示す説明図である。図２１に示す遷移列長計算処理において、求解部１２２は、状態要素E1における状態遷移が冗長でないパスπ＝「a1→b1→c1」に固定されて行われる緩和問題Q を扱う。
【０１８４】
図２１に示す遷移列長計算処理において、求解部１２２は、依存木T(E1) の根である状態要素E1から直接矢印が伸びている状態要素E2を根とする部分木T1、および状態要素E1から直接矢印が伸びている状態要素E3を根とする部分木T2をそれぞれ生成する（ステップS342）。
【０１８５】
図２２は、求解部１２２が生成する部分木の例を示す説明図である。図２２は、求解部１２２による遷移列長計算処理の一過程において、依存木から１つの枝が選択されることによって得られる部分木を示す。
【０１８６】
図２２に示す部分木T1は、状態要素E2が根として選択された時に生成される部分木である。部分木T1は、状態要素E2と状態要素E4とで構成される部分木である。また、状態要素E2から状態要素E4に向けて矢印が張られている。
【０１８７】
また、図２２に示す部分木T2は、状態要素E3が根として選択された時に生成される部分木である。部分木T2は、状態要素E3のみ、すなわち１つの節点のみで構成される部分木である。また、部分木T2において矢印は張られていない。
【０１８８】
次いで、求解部１２２は、部分木T1および部分木T2に含まれる状態要素を用いて緩和問題Q が示す状態要素モデルを制限する（ステップS343）。
【０１８９】
図２３は、求解部１２２が生成する問題Q’の例を示す説明図である。図２３は、求解部１２２による遷移列長計算処理の一過程において、部分木が用いられて制約された問題を示す。
【０１９０】
図２３に示す問題Q’1 は、緩和問題Q が示す状態要素モデルが部分木T1に制限された問題である。問題Q’1 が示す状態要素モデルには、状態要素E1、状態要素E2、および状態要素E4のみが含まれている。
【０１９１】
また、図２３に示す問題Q’2 は、緩和問題Q が示す状態要素モデルが部分木T2に制限された問題である。問題Q’2 が示す状態要素モデルには、状態要素E1、および状態要素E3のみが含まれている。問題Q’1 が示す状態要素モデルおよび問題Q’2 が示す状態要素モデルのどちらにも、部分木の要素の他に状態要素$Qである状態要素E1が含まれている。
【０１９２】
次いで、求解部１２２は、問題Q’1 の解および問題Q’2 の解を求める（ステップS344）。ステップS344において、求解部１２２には、部分木を定めることによって規定される問題Q’1 および問題Q’2 が示す各状態要素モデル上の最短路をそれぞれ導出することが求められる。各問題は、例えば求解部１２２による遷移列長計算処理が内部で再帰的に使用されることによって求解される。
【０１９３】
以下、上記の方法で求解部１２２が問題Q’1 を解く例を説明する。図２４は、求解部１２２による問題Q’の求解例を示す説明図である。図２４は、求解部１２２による遷移列長計算処理の一過程において、部分木が用いられて制限された問題を解く処理の一例を示す。図２４に示す例では、求解部１２２が遷移列長計算処理を内部で再帰的に用いることによって、問題Q’1 の解の距離を求めている。
【０１９４】
問題Q’1 において状態要素E1の状態が固定パスπに沿って遷移するためには、状態要素E2の状態が状態a2に遷移することが求められる。よって、求解部１２２は、状態要素E2の状態が状態a2に遷移し、次いで目的状態である状態b2に遷移するような冗長でないパスを列挙する。
【０１９５】
求解部１２２は、上記の条件を満たす唯一のパスとして図２４に示すπ’=「b2→a2→b2」を挙げる。従って、求められる対象である問題Q’1 の解の距離は、問題Q’1 が状態要素E2および状態要素E4に制限され、状態要素E2の状態遷移がパスπ’ に固定されて実行されるという設定の問題Q’’1の解の距離にπの長さ「２」が加えられた値である。
【０１９６】
また、問題Q’’1の解も同様の方法で求められる。すなわち、問題Q’’1の解の距離は、問題Q’’1が状態要素E4のみに制限され、状態要素E4の状態遷移がパスπ’’= 「b4→a4→b4」に固定されて実行されるという設定の問題Q’’’1 の解の距離にπ’ の長さ「２」が加えられた値である。
【０１９７】
問題Q’’’1 には依存性が含まれていないので、求解部１２２は、問題Q’’’1 の解の距離をπ’’の長さ、すなわち「２」であるとただちに判別できる。従って、求解部１２２は、元の問題Q’1 の解の距離を「２＋２＋２＝６」と再帰的に計算できる。
【０１９８】
以上のように、問題を依存性が全く含まれない問題にまで細分化することによって、求解部１２２は、ステップS344の遷移列長計算処理で遷移列の長さを求めることができる。
【０１９９】
なお、上記の求解部１２２が遷移列長計算処理を再帰的に利用する手法は、ステップS344において求解部１２２が最短路を示す遷移列の長さを求める１つの手法である。本実施形態の求解部１２２は、上記の手法以外の手法で最短路を示す遷移列の長さを求めてもよい。
【０２００】
問題Q’2 に対しても同様に計算すると、求解部１２２は、問題Q’2 の解の距離として「４」を得る。問題Q’1 および問題Q’2 の各解の距離を求めた後、求解部１２２は、SCORE[π] （初期値はπの長さ「２」）に、各解の距離からパスπの長さ「２」が減算された値をそれぞれ加算する（ステップS345）。
【０２０１】
問題Q’1 および問題Q’2 の各解の距離を求めた後、求解部１２２は、第２遷移列長計算ループに入る（ステップS346〜ステップS347）。緩和問題Q が示す状態要素モデルにおいて依存木T(E1) に含まれていない状態要素は、状態要素E5のみである。
【０２０２】
よって、求解部１２２は、状態要素E5の状態が現在状態から目的状態まで遷移する最短路を示す遷移列の長さ「１」を求める（ステップS348）。次いで、求解部１２２は、求められた遷移列の長さをSCORE[π] に加算する（ステップS349）。
【０２０３】
加算した後、求解部１２２は、第２遷移列長計算ループを抜ける（ステップS350）。次いで、求解部１２２は、図２０に示す状態要素E1の状態遷移がパスπに固定されて実行される場合の緩和問題Q の解の距離としてSCORE[π]=2+4+2+1=9 を出力し、遷移列長計算処理を終了する。
【０２０４】
［効果の説明］
本実施形態の制約緩和部１１１は、第１の実施形態の制約緩和部１０１が生成する緩和問題に比べて依存性が多く反映された緩和問題を生成する。よって、本実施形態の推定距離算出器１２０は、第１の実施形態の推定距離算出器１００よりも推定距離を正確に求めることができる。
【０２０５】
また、依存性がより多く反映されるため、本実施形態で生成される緩和問題は、第１の実施形態で生成される緩和問題に比べて複雑になる。しかし、求解部１２２は、依存木を用いて生成された緩和問題をさらに分割することによって、元の自動計画問題を解く場合に要する計算時間よりも短い計算時間で解を求めることができる。
【０２０６】
実施形態４．
［構成の説明］
次に、本発明の第４の実施形態を、図面を参照して説明する。第４の実施形態は、第１の実施形態、第２の実施形態、または第３の実施形態が応用された実施形態である。
【０２０７】
図２５は、自動計画器２００の第４の実施形態の構成例を示すブロック図である。図２５に示すように、本実施形態の自動計画器２００は、推定距離算出部２０１と、最短路探索部２０２と、入力合成部２０３と、変換部２０４とを備える。
【０２０８】
本実施形態の自動計画器２００は、状態要素モデルM を入力とし、A*探索を行うことによって状態要素モデルM 上の最短路である自動計画問題の解を求める。自動計画器２００は、入力された状態要素モデルM が展開された大域状態グラフ上の最短路を求めるためにA*探索を行う。
【０２０９】
推定距離算出部２０１は、第１の実施形態の推定距離算出器１００と同様の構成および機能、第２の実施形態の推定距離算出器１１０と同様の構成および機能、または第３の実施形態の推定距離算出器１２０と同様の構成および機能を有する構成要素である。
【０２１０】
最短路探索部２０２は、状態要素モデルM 上の最短路を探索する機能を有する。最短路探索部２０２は、入力された大域状態グラフ上の最短路を探索するためにA*探索を行う。
【０２１１】
A*探索の実行では、途中で現在状態から目的状態までの推定距離を要する。推定距離が求められた時、最短路探索部２０２は、入力合成部２０３を介して推定距離算出部２０１に推定距離を問い合わせる。最短路探索部２０２は、推定距離算出部２０１が返した値を推定距離として用いる。
【０２１２】
入力合成部２０３は、大域状態と状態要素モデルM を組み合わせる機能を有する。入力合成部２０３は、組み合わせられた大域状態と状態要素モデルM を推定距離算出部２０１に入力する。
【０２１３】
例えば、入力合成部２０３には、状態要素モデルM と、状態要素モデルM が変換された大域状態G が入力される。入力合成部２０３は、状態要素モデルM の初期状態が大域状態G に設定し直された状態要素モデルM’を生成し、生成された状態要素モデルM’を出力する。
【０２１４】
各大域状態には、「探索済み」フラグ、最短距離、およびスコアの３つの値が保持される。大域初期状態には「探索済み」フラグと最短距離「０」が設定され、スコアは設定されない。
【０２１５】
変換部２０４は、入力された状態要素モデルM を大域状態グラフに変換する機能を有する。変換部２０４は、例えば特許文献１に記載されている手法と同様の手法で状態要素モデルM を大域状態グラフに変換する。
【０２１６】
［動作の説明］
以下、本実施形態の最短路探索部２０２による最短路探索処理を説明する。図２６は、最短路探索部２０２による最短路探索処理の動作を示すフローチャートである。
【０２１７】
最初に、最短路探索部２０２には、状態要素モデルM と、状態要素モデルM が展開された大域状態グラフが入力される（ステップS400）。次いで、最短路探索部２０２は、現在状態C を大域初期状態に、移動回数N を０にそれぞれ初期設定する（ステップS401）。最短路探索部２０２は、１つの現在状態C と移動回数N を保持しながら探索を進める。
【０２１８】
次いで、最短路探索部２０２は、現在状態C から状態遷移可能な大域状態のうち未だスコアが計算されていない大域状態S を取り出す。すなわち、スコア計算ループに入る（ステップS402）。
【０２１９】
大域状態S が取り出された後、入力合成部２０３は、大域状態S と元の自動計画問題が示す状態要素モデルM を合成することによって、状態要素モデルM’を生成する（ステップS403）。入力合成部２０３は、生成された状態要素モデルM’を推定距離算出部２０１に入力する。
【０２２０】
次いで、推定距離算出部２０１は、大域状態S から大域目的状態までの推定距離E を算出する（ステップS404）。次いで、最短路探索部２０２は、N+E+1 を大域状態S のスコアに設定し、N+1 を大域状態S までの最短距離に設定する（ステップS405）。
【０２２１】
最短路探索部２０２は、現在状態C から状態遷移可能な大域状態のうちスコアが計算されていない大域状態S が存在する間、ステップS403〜ステップS405の処理を繰り返し実行する。ステップS403〜ステップS405の処理は大域状態S ごとに、現在状態C から状態遷移可能な大域状態のうちスコアが計算されていない大域状態の数だけ繰り返し実行される。
【０２２２】
現在状態C から状態遷移可能な全ての大域状態S のスコアが計算された時、最短路探索部２０２は、スコア計算ループを抜ける（ステップS406）。
【０２２３】
次いで、最短路探索部２０２は、スコアが算出済みであり、かつ未探索の大域状態のうち、最もスコアが低い大域状態を新たな現在状態C に更新する。また、最短路探索部２０２は、移動回数N を、新たな現在状態C までの移動距離に更新する（ステップS407）。
【０２２４】
なお、ステップS407の処理で現在状態C として選択可能な大域状態がない場合、最短路探索部２０２は、最短路探索処理を終了する。また、最短路探索部２０２は、新たな現在状態C に「探索済み」フラグを設定する（ステップS408）。
【０２２５】
次いで、最短路探索部２０２は、現在状態C が大域目的状態であるか否かを判定する（ステップS409）。現在状態C が大域目的状態でない場合（ステップS409におけるNo）、最短路探索部２０２は、再度ステップS402の処理を行う。
【０２２６】
現在状態C が大域目的状態である場合（ステップS409におけるYes）、最短路探索部２０２は、大域初期状態から現在状態C に到達するまでに辿ったパスを最短路として出力する（ステップS410）。出力した後、最短路探索部２０２は、最短路探索処理を終了する。
【０２２７】
図２６に示すアルゴリズムが使用された場合、探索に用いられるヒューリスティック関数が一貫性(consistency) を持つ時に正しい最短経路（最短路）が得られることが知られている。本実施形態の推定距離算出部２０１は、一貫性を持つヒューリスティック関数として機能する。よって、最短路探索部２０２は、上記の処理を実行する場合大域初期状態から大域目的状態までの最短経路を返す。
【０２２８】
以下、最短路探索部２０２による最短路探索処理を、図２７〜図２８を参照して説明する。図２７および図２８は、最短路探索部２０２による最短路探索処理の具体例を示す説明図である。
【０２２９】
図２７〜図２８は、大域状態グラフ上の最短路の探索処理を示す。図２７（ａ）〜図２７（ｃ）、および図２８（ａ）〜図２８（ｂ）は、最短路探索処理の各段階での大域状態グラフを示す。最短路探索処理中の状態グラフは、図２７（ａ）、図２７（ｂ）、図２７（ｃ）、図２８（ａ）、図２８（ｂ）の順に変化する。
【０２３０】
図２７〜図２８に示す円は、大域状態を表す。すなわち、図２７〜図２８は、大域状態S0〜大域状態S7を示す。また、大域状態S0が初期状態であり、大域状態S7が目的状態である。
【０２３１】
図２７〜図２８に示す大域状態グラフの展開元である状態要素モデルM を図２９に示す。図２９は、状態要素モデルの他の例を示す説明図である。図２９内の各表記の意味は、図４０内の各表記の意味と同様である。図２７〜図２８に示す最短路探索処理では、図２９に示す状態要素モデルM が最短路探索部２０２に入力される。
【０２３２】
図２９に示す状態要素モデルM は、所定の設定ファイルを読み込む１つのアプリケーションが動いている状況を、更新された設定ファイルを読み込む２つのアプリケーションが動いている状況に変更するタスクを表す。図２９に示すタスクでは、アプリケーションのスケールアウトが行われる。
【０２３３】
状態要素モデルに含まれる状態要素の数は３つであるため、大域状態は、３つの状態要素の状態の組み合わせで表現される。状態要素Conf、状態要素App1、および状態要素App2の各状態で構成される大域状態を[Conf:(Conf の状態), App1:(App1 の状態), App2:(App2 の状態)]で表す。
【０２３４】
例えば、図２７〜図２８に示すように大域初期状態S0は、S0=[Conf:old, App1:on, App2:off]で表現される。大域状態を表す状態の組は、円内の黒色の箇所に記述されている。
【０２３５】
また、図２７〜図２８に示す大域状態には、大域状態を表す状態の組に加えて、各大域状態がそれぞれ保持する「探索済み」フラグ、最短距離、スコアが内部に記述されている。「探索済み」フラグは円内の右上に、最短距離は円内の左下に、スコアは円内の右下にそれぞれ記述されている。なお、空白の箇所は、その箇所に記述される値が未設定、または未算出であることを示す。
【０２３６】
以下、図２６に示す動作に従って最短路探索部２０２による最短路探索処理を説明する。最短路探索部２０２は、最初に大域初期状態S0から遷移可能な２つの大域状態S1(S1=[Conf:old, App1:on, App2:on]) と大域状態S2(S2=[Conf:old, App1:off, App2:off]) に関して、目的状態までの推定距離を求める。
【０２３７】
大域状態S1と状態要素モデルM が入力合成部２０３に入力されると、入力合成部２０３は、図３０に示す状態遷移モデルM’を生成する（ステップS403）。図３０は、状態遷移モデルの他の例を示す説明図である。入力合成部２０３は、生成された状態遷移モデルM’を推定距離算出部２０１に入力する。
【０２３８】
次いで、推定距離算出部２０１は、生成された状態遷移モデルM’に基づいて推定距離「５」を得る（ステップS404）。よって、移動距離と合わせると大域状態S1のスコアは「６」になる。同様に、大域状態S2のスコアは、「４」になる（ステップS405）。
【０２３９】
現在状態C から到達可能な全ての大域状態のスコアが算出されたので（ステップS406）、最短路探索部２０２は、現在状態C をスコアが最も低い未探索状態である大域状態S2に更新する（ステップS407）。
【０２４０】
また、最短路探索部２０２は、大域状態S2に「探索済み」フラグを設定する（ステップS408）。大域状態S1および大域状態S2のそれぞれのスコアと最短距離、および大域状態S2の「探索済み」フラグが新たに設定された大域状態グラフを図２７（ｂ）に示す。
【０２４１】
同様に、最短路探索部２０２は、大域状態S2から遷移可能な未探索状態に対して再びステップS403〜ステップS405の処理を行い、次いで現在状態C をスコアが最低の大域状態に更新するステップS407〜ステップS408の処理を行う。
【０２４２】
最短路探索部２０２は、図２６に示す処理を現在状態C が大域目的状態S7(S7=[Conf:new, App1:on, App2:on]) に更新されるまで繰り返し実行する。現在状態C が大域目的状態S7に更新された段階の大域状態グラフを図２８（ｂ）に示す。
【０２４３】
最終的に得られる最短経路は、大域状態グラフの大域状態を[Conf:old, App1:on, App2:off] →[Conf:old, App1:off App2:off] →[Conf:new, App1:off, App2:off]→[Conf:new, App1:on, App2:off] →[Conf:new, App1:on, App2:on]の順で遷移する経路である。すなわち、S0→S2→S4→S5→S7の順で遷移する経路である。
【０２４４】
また、状態要素E の状態s1から状態s2への遷移を「E:s1→s2」と記載すると、図２９に示す自動計画問題の解は、上記の経路を基に「App1:on →off, Conf:old →new, App1:off →on, App2:off→on」の手順であることが分かる。
【０２４５】
［効果の説明］
本実施形態の自動計画器２００は、状態要素モデルに適したヒューリスティック関数として機能する推定距離算出部２０１を用いることによって、より高速で最短路を探索できる。すなわち、本実施形態の自動計画器２００は、状態要素モデル上の最短路である自動計画問題の解を求めるためのより好適な手法を与える。
【０２４６】
以下、各実施形態の推定距離算出器のハードウェア構成の具体例を説明する。図３１は、本発明による推定距離算出器のハードウェア構成例を示す説明図である。図３１は、各実施形態の推定距離算出器をコンピュータで実現するためのハードウェア構成の一例を示す。
【０２４７】
図３１に示すように、推定距離算出器は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｓｅｓｓｉｎｇ  Ｕｎｉｔ）１９１と、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）１９２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１９３と、出力装置１９４とを備える。構成要素同士は、データバス１９５で接続されており、データの授受が可能である。また、出力装置１９４は、例えば表示装置である。
【０２４８】
各実施形態の推定距離算出器は、例えば、ＲＯＭ１９２に格納されているプログラムに従って処理を実行するＣＰＵ１９１によって実現される。すなわち制約緩和部１０１、制約緩和部１１１、求解部１０２、求解部１１２、および求解部１２２は、例えば、プログラム制御に従って処理を実行するＣＰＵ１９１によって実現される。
【０２４９】
また、各実施形態の推定距離算出器における各部は、ハードウェア回路によって実現されてもよい。一例として、制約緩和部１０１、制約緩和部１１１、求解部１０２、求解部１１２、および求解部１２２が、それぞれＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で実現される。また、それらが１つのＬＳＩで実現されていてもよい。
【０２５０】
また、第４の実施形態の自動計画器２００のハードウェア構成が、図３１に示すようなハードウェア構成でもよい。
【０２５１】
次に、本発明の概要を説明する。図３２は、本発明による推定距離算出器の概要を示すブロック図である。本発明による推定距離算出器１０は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成部１１（例えば、制約緩和部１０１）を備える。
【０２５２】
そのような構成により、推定距離算出器は、状態要素モデル上の最短路を高速で探索できる。
【０２５３】
また、推定距離算出器１０は、生成された第２状態要素モデルを入力とし第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出部（例えば、求解部１０２）を備えてもよい。
【０２５４】
また、第２状態要素モデルに含まれる状態遷移のうち使用可能な状態遷移は制限されていてもよい。
【０２５５】
そのような構成により、推定距離算出器は、緩和問題を解くことができる。
【０２５６】
また、所定の条件を満たす遷移条件は、全ての遷移条件でもよい。
【０２５７】
そのような構成により、推定距離算出器は、最も簡略化された緩和問題を生成できる。
【０２５８】
また、所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか１つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件でもよい。
【０２５９】
また、生成部１１は、例えば状態要素モデルと複数の状態要素のうちのいずれか１つの状態要素を入力とし、１つの状態要素を根とする依存木を生成してもよい。具体的には、依存木は、複数の状態要素の一部または全てで構成される節点と、節点のうちの２つの節点に関して一方の節点が含む遷移条件の依存先が他方の節点であるという関係を表す１または複数の有向枝と、節点のうちの１つである根を含む。生成部１１は、複数の状態要素のうちのいずれか１つの状態要素と、複数の状態要素のうちの１つの状態要素を根とする依存木の有向枝に沿った遷移条件以外の遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成してもよい。なお、遷移条件には、複数の状態の一部または全てを示す名称で構成される依存先が含まれる。
【０２６０】
そのような構成により、推定距離算出器は、依存木を用いて緩和問題を生成できる。
【０２６１】
また、導出部は、入力された第２状態要素モデルに含まれる遷移条件が付与されている状態要素と第２状態要素モデルに含まれる遷移条件が除去された複数の状態要素のうちのいずれか１つの状態要素とで構成される状態要素モデルである第３状態要素モデルを生成し、生成された第３状態要素モデルを用いて最小の遷移回数を導出してもよい。
【０２６２】
また、導出部は、入力された第２状態要素モデルで表現される緩和問題において使用可能な状態遷移に制限が加えられた問題を生成し、生成された問題を表現する状態要素モデルを基に第３状態要素モデルを生成し、第３状態要素モデルで表現される問題の解を合算することによって最小の遷移回数を導出してもよい。
【０２６３】
そのような構成により、推定距離算出器は、状態要素が多く含まれる緩和問題を高速で解くことができる。
【０２６４】
また、導出部は、入力された第２状態要素モデルに含まれる複数の状態要素のうちの関連する状態要素群で構成される状態要素モデルである第３状態要素モデルを生成し、生成された第３状態要素モデルを用いて最小の遷移回数を導出してもよい。
【０２６５】
また、導出部は、第２状態要素モデルの生成に用いられた依存木を入力とし、入力された依存木の根から１つの有向枝を辿って到達する節点を根とし、依存木が含む状態要素の一部を節点とする複数の依存木を生成し、入力された第２状態要素モデルに含まれる複数の状態要素のうち、複数の依存木のうち１つの依存木に含まれる複数の状態要素で構成される状態要素モデルである第３状態要素モデルを生成し、生成された第３状態要素モデルを用いて最小の遷移回数を導出してもよい。
【０２６６】
そのような構成により、推定距離算出器は、部分木を用いて状態要素が多く含まれる緩和問題を高速で解くことができる。
【０２６７】
また、生成部１１は、第１状態要素モデルを基に生成可能な全ての第２状態要素モデルを生成し、導出部は、生成された全ての第２状態要素モデルを入力とし、入力された各第２状態要素モデルに基づいて最小の遷移回数をそれぞれ導出し、導出された各最小の遷移回数のうち最大の遷移回数を出力してもよい。
【０２６８】
そのような構成により、推定距離算出器は、状態要素間の依存性の影響を最も強く受けた状態要素における依存性が加味された推定距離を算出できる。その理由は、依存性の影響を強く受ける状態要素ほど緩和問題にかかる制約が大きくなり、緩和問題の解の距離も長くなるためである。
【０２６９】
また、推定距離算出器１０は、導出部が出力した最大の遷移回数を目的状態までの推定距離に用いることによって第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部（例えば、最短路探索部２０２）を備えてもよい。
【０２７０】
そのような構成により、推定距離算出器は、自動計画問題を高速で解くことができる。
【０２７１】
また、導出部は、幅優先探索を行うことによって最小の遷移回数を導出してもよい。
【０２７２】
そのような構成により、推定距離算出器は、幅優先探索を用いて自動計画問題を高速で解くことができる。
【０２７３】
また、導出部は、第３状態要素モデルに対して遷移列長計算処理を繰り返し実行することによって最小の遷移回数を導出してもよい。
【０２７４】
そのような構成により、推定距離算出器は、依存性が多く含まれる緩和問題を高速で解くことができる。
【０２７５】
また、図３３は、本発明による自動計画器の概要を示すブロック図である。本発明による自動計画器２０は、複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成部２１（例えば、推定距離算出部２０１）と、生成された第２状態要素モデルを入力とし第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出部２２（例えば、推定距離算出部２０１）と、導出された最小の遷移回数を用いることによって第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部２３（例えば、最短路探索部２０２）とを備える。
【０２７６】
そのような構成により、自動計画器は、状態要素モデル上の最短路を高速で探索できる。
【０２７７】
また、所定の条件を満たす遷移条件は、全ての遷移条件でもよい。
【０２７８】
そのような構成により、自動計画器は、最も簡略化された緩和問題を生成できる。
【０２７９】
また、所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか１つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件でもよい。
【０２８０】
そのような構成により、自動計画器は、依存木を用いて緩和問題を生成できる。
【０２８１】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【０２８２】
（付記１）複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器において実行される自動計画方法であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成し、生成された第２状態要素モデルを入力とし第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出し、導出された最小の遷移回数を用いることによって第１状態要素モデルで表現される自動計画問題の解である最短路を探索することを特徴とする自動計画方法。
【０２８３】
（付記２）複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成するコンピュータにおいて実行される自動計画プログラムであって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、コンピュータに、複数の状態要素のうちのいずれか１つの状態要素と複数の状態要素のうちの１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第２状態要素モデルを生成する生成処理、生成された第２状態要素モデルを入力とし第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出処理、および導出された最小の遷移回数を用いることによって第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索処理を実行することを特徴とする自動計画プログラム。
【０２８４】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２８５】
この出願は、２０１６年７月２１日に出願された日本特許出願２０１６−１４３３１１と２０１６年１１月１６日に出願された日本特許出願２０１６−２２３３２２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０２８６】
自動計画技術は、人工知能が事前に未来の行動を計算し、計算された行動の実行手順を計画する目的で用いられる。本発明は、状態要素モデル上の最短路を求める自動計画問題を最適化するため、他の部分システムに干渉する複数の小規模な部分システムで構成されるシステムに関する自動計画問題の求解の高速化に好適に適用される。
【符号の説明】
【０２８７】
１０、１００、１１０、１２０  推定距離算出器
１１、２１  生成部
２０  自動計画器
２２  導出部
２３  探索部
１０１、１１１  制約緩和部
１０２、１１２、１２２  求解部
１９１  ＣＰＵ
１９２  ＲＯＭ
１９３  ＲＡＭ
１９４  出力装置
１９５  データバス
２００  自動計画器
２０１  推定距離算出部
２０２  最短路探索部
２０３  入力合成部
２０４  変換部
【図１】
2018016299.tif 000003
【図２】
2018016299.tif 000004
【図３】
2018016299.tif 000005
【図４】
2018016299.tif 000006
【図５】
2018016299.tif 000007
【図６】
2018016299.tif 000008
【図７】
2018016299.tif 000009
【図８】
2018016299.tif 000010
【図９】
2018016299.tif 000011
【図１０】
2018016299.tif 000012
【図１１】
2018016299.tif 000013
【図１２】
2018016299.tif 000014
【図１３】
2018016299.tif 000015
【図１４】
2018016299.tif 000016
【図１５】
2018016299.tif 000017
【図１６】
2018016299.tif 000018
【図１７】
2018016299.tif 000019
【図１８】
2018016299.tif 000020
【図１９】
2018016299.tif 000021
【図２０】
2018016299.tif 000022
【図２１】
2018016299.tif 000023
【図２２】
2018016299.tif 000024
【図２３】
2018016299.tif 000025
【図２４】
2018016299.tif 000026
【図２５】
2018016299.tif 000027
【図２６】
2018016299.tif 000028
【図２７】
2018016299.tif 000029
【図２８】
2018016299.tif 000030
【図２９】
2018016299.tif 000031
【図３０】
2018016299.tif 000032
【図３１】
2018016299.tif 000033
【図３２】
2018016299.tif 000034
【図３３】
2018016299.tif 000035
【図３４】
2018016299.tif 000036
【図３５】
2018016299.tif 000037
【図３６】
2018016299.tif 000038
【図３７】
2018016299.tif 000039
【図３８】
2018016299.tif 000040
【図３９】
2018016299.tif 000041
【図４０】
2018016299.tif 000042
【手続補正書】
【提出日】平成31年1月15日(2019.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成部を備える
ことを特徴とする推定距離算出器。
【請求項２】
生成された第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出する導出部を備える
請求項１記載の推定距離算出器。
【請求項３】
所定の条件を満たす遷移条件は、全ての遷移条件である
請求項２記載の推定距離算出器。
【請求項４】
所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか１つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件である
請求項２記載の推定距離算出器。
【請求項５】
導出部は、
入力された第２状態要素モデルに含まれる遷移条件が付与されている状態要素と前記第２状態要素モデルに含まれる遷移条件が除去された複数の状態要素のうちのいずれか１つの状態要素とで構成される状態要素モデルである第３状態要素モデルを生成し、
生成された前記第３状態要素モデルを用いて最小の遷移回数を導出する
請求項３記載の推定距離算出器。
【請求項６】
導出部は、
入力された第２状態要素モデルに含まれる複数の状態要素のうちの関連する状態要素群で構成される状態要素モデルである第３状態要素モデルを生成し、
生成された前記第３状態要素モデルを用いて最小の遷移回数を導出する
請求項４記載の推定距離算出器。
【請求項７】
生成部は、
第１状態要素モデルを基に生成可能な全ての第２状態要素モデルを生成し、
導出部は、
生成された前記全ての第２状態要素モデルを入力とし、
入力された各第２状態要素モデルに基づいて最小の遷移回数をそれぞれ導出し、
導出された各最小の遷移回数のうち最大の遷移回数を出力する
請求項２から請求項６のうちのいずれか１項に記載の推定距離算出器。
【請求項８】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する推定距離算出器において実行される推定距離算出方法であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する
ことを特徴とする推定距離算出方法。
【請求項９】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成するコンピュータにおいて実行される推定距離算出プログラムであって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記コンピュータに、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成処理
を実行させるための推定距離算出プログラム。
【請求項１０】
複数の状態要素で構成されている状態要素モデルである第１状態要素モデルを基に他の状態要素モデルである第２状態要素モデルを生成する自動計画器であって、
前記状態要素は、複数の状態と前記複数の状態間の遷移条件が付与されている状態遷移とを含み、
前記複数の状態要素のうちのいずれか１つの状態要素と前記複数の状態要素のうちの前記１つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される前記第２状態要素モデルを生成する生成部と、
生成された前記第２状態要素モデルを入力とし前記第２状態要素モデルに含まれる現在状態および目的状態に基づいて状態が前記現在状態から前記目的状態へ遷移するまでの最小の遷移回数を導出する導出部と、
導出された前記最小の遷移回数を用いることによって前記第１状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部とを備える
ことを特徴とする自動計画器。
【国際調査報告】
2018016299.tif 000043
2018016299.tif 000044