実施形態1.
[構成の説明]
以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明による推定距離算出器100の第1の実施形態の構成例を示すブロック図である。
図1に示す推定距離算出器100は、入力として状態要素モデル上の最短路を求める自動計画問題を受け取る。推定距離算出器100は、自動計画問題が示す状態要素モデルにおける現在状態から目的状態までの最短路における推定距離を出力する。
本実施形態の推定距離算出器100は、状態要素モデルにおける依存性の制約を考慮する状態間の距離の推定方法を用いることによって、最短路探索装置(図示せず)が大域状態グラフ上でA*探索を高速で実行することを可能にする。すなわち、本実施形態の推定距離算出器100が使用されると、状態要素モデル上の最短路を求める自動計画問題が高速で求解される。
図1に示すように、本実施形態の推定距離算出器100は、制約緩和部101と、求解部102とを備える。
制約緩和部101は、入力された自動計画問題を緩和する機能を有する。制約緩和部101は、自動計画問題が示す状態要素モデルを構成する複数の状態要素のうちのいずれか1つの状態要素以外の状態要素に含まれる依存性を除去することによって、自動計画問題が緩和された緩和問題を生成する。
制約緩和部101は、生成された緩和問題を求解部102に入力する。求解部102は、入力された緩和問題の解を求める機能を有する。なお、緩和問題の解は、緩和問題が示す状態要素モデル上の最短路である。求解部102は、求められた緩和問題の解のうち、自動計画問題が示す状態要素モデル上の最短路における推定距離として最適な解を出力する。
[動作の説明]
以下、本実施形態の推定距離算出器100の推定距離を出力する動作を図2、および図4を参照して説明する。
最初に、制約緩和部101による緩和問題生成処理を説明する。図2は、制約緩和部101による緩和問題生成処理の動作を示すフローチャートである。
最初に、制約緩和部101には、推定距離算出器100に入力された状態要素モデルM 上の最短路を求める自動計画問題P が入力される(ステップS110)。次いで、制約緩和部101は、集合R を空集合(何も含まれていない集合)に設定する(ステップS111)。
次いで、制約緩和部101は、状態要素モデルM に含まれる状態要素のうち未だ自身に関する緩和問題Q が生成されていない状態要素E を取り出す。すなわち、緩和問題生成ループに入る(ステップS112)。
制約緩和部101は、取り出された状態要素E に関する緩和問題Q を生成する(ステップS113)。具体的には、制約緩和部101は、状態要素モデルM に含まれる依存性のうち、状態要素E に含まれる状態遷移に付随している依存性以外の依存性を全て削除することによって、状態要素E に関する緩和問題Q を生成する。
次いで、制約緩和部101は、集合R に緩和問題Q が加えられた集合に集合R を再設定する(ステップS114)。すなわち、制約緩和部101は、集合R の要素にステップS113で生成された緩和問題Q を追加する。
制約緩和部101は、状態要素モデルM に含まれる状態要素の中で自身に関する緩和問題Q が生成されていない状態要素E が存在する間、ステップS113〜ステップS114の処理を繰り返し実行する。ステップS113〜ステップS114の処理は状態要素ごとに、状態要素モデルM に含まれる状態要素の数だけ繰り返し実行される。
状態要素モデルM に含まれる全ての状態要素に関する緩和問題Q が生成された時、制約緩和部101は、緩和問題生成ループを抜ける(ステップS115)。緩和問題生成ループを抜けた後、制約緩和部101は、集合R を出力する(ステップS116)。集合R を出力した後、制約緩和部101は、緩和問題生成処理を終了する。
図3は、制約緩和部101による緩和問題生成処理の具体例を示す説明図である。図3に示す状態要素モデルM は、状態要素E1と、状態要素E2と、状態要素E3とで構成されている。
制約緩和部101は、状態要素モデルM 上の最短路を求める自動計画問題P を緩和問題生成処理で緩和する。具体的には、制約緩和部101は、自動計画問題P を状態要素E1に関して緩和する場合、図3に示すように状態要素E1に含まれる状態遷移に付随している依存性以外の依存性が全て削除された緩和問題Q1を生成する。
同様に、制約緩和部101は、自動計画問題P を状態要素E2と状態要素E3それぞれに関して緩和する場合、緩和問題Q2と緩和問題Q3を生成する。図3に示すように、自動計画問題P が3つの状態要素で構成される状態要素モデルM を示す場合、制約緩和部101は、緩和問題生成処理で3つの緩和問題を生成する。
次に、求解部102による推定距離算出処理を説明する。図4は、求解部102による推定距離算出処理の動作を示すフローチャートである。
最初に、求解部102には、制約緩和部101が出力した緩和問題Q の集合R が入力される(ステップS120)。次いで、求解部102は、SCORE2を0に設定する(ステップS121)。
次いで、求解部102は、集合R に含まれる緩和問題Q のうち未だ解が求められていない緩和問題Q を取り出す。すなわち、推定距離算出ループに入る(ステップS122)。
推定距離算出ループ内で求解部102は、取り出された緩和問題Q を解く。以下、緩和問題Q に含まれる状態要素のうち、依存性が残る状態要素を$Qと記載する。また、状態要素$Qの状態が現在状態から目的状態へ遷移する冗長でないパスをπと記載する。
なお、「冗長なパス」は、例えば探索状態が同じ状態に二度遷移するパスである。例えば、パス「a1→c1→a1→b1→c1」は、探索状態がa1とc1にそれぞれ二度遷移するため、冗長なパスである。
最初に、求解部102は、SCORE1を∞に設定する(ステップS123)。次いで、求解部102は、未だ遷移列が求められていないパスπを決定する。すなわち、最短路探索ループに入る(ステップS124)。
緩和問題Q に含まれる状態要素$Qの状態は、大域状態グラフ上の最短路に沿って遷移する際、何らかの冗長でないパスπに沿って遷移することが考えられる。本実施形態の求解部102は、「状態要素$Qの状態はπに沿って遷移する」という仮定の下で緩和問題Q を解く。
現在状態から目的状態へ遷移するまでに、状態要素$Qの状態は、状態遷移を何回か経る。求解部102は、緩和問題Q の解として、状態要素$Qの状態が現在状態から目的状態へ遷移するまでに行われた状態遷移が最初から順番に並べられた遷移列を得る(ステップS125)。遷移列は、例えば、図38の下部に示す状態遷移の列「item: A →picked、crane: A→B 、item: picked→B 、crane: B→A 」である。
次いで、求解部102は、ステップS125で得られた遷移列の長さをSCORE[π] に設定する(ステップS126)。例えば、4つの状態遷移で遷移列が構成される場合、遷移列の長さは「4」である。
次いで、求解部102は、SCORE1がSCORE[π] より大きいか否かを判定する(ステップS127)。SCORE1がSCORE[π] より大きい場合(ステップS127におけるTrue)、求解部102は、SCORE[π] をSCORE1に設定する(ステップS128)。
求解部102は、状態要素$Qに関する遷移列が求められていないパスπが存在する間、ステップS125〜ステップS128の処理を繰り返し実行する。ステップS125〜ステップS128の処理はパスπごとに、状態要素$Qに関して考えられる冗長でないパスの数だけ繰り返し実行される。
状態要素$Qに関する全てのパスπに対して遷移列が求められた時、求解部102は、最短路探索ループを抜ける(ステップS129)。求解部102が最短路探索ループを抜けた際、SCORE1には得られた遷移列の長さの最小値が格納されている。すなわち、最短路探索ループを抜けた際のSCORE1が、緩和問題Q の解(最短路)の距離である。
次いで、求解部102は、SCORE1がSCORE2より大きいか否かを判定する(ステップS130)。SCORE1がSCORE2より大きい場合(ステップS130におけるTrue)、求解部102は、SCORE1をSCORE2に設定する(ステップS131)。
求解部102は、集合R に含まれる緩和問題Q のうち解が求められていない緩和問題Q が存在する間、ステップS123〜ステップS131の処理を繰り返し実行する。ステップS123〜ステップS131の処理は緩和問題Q ごとに、集合R に含まれる緩和問題Q の数だけ繰り返し実行される。
集合R に含まれる全ての緩和問題Q の解が求められた時、求解部102は、推定距離算出ループを抜ける(ステップS132)。求解部102が推定距離算出ループを抜けた際、SCORE2には得られた緩和問題Q の解の距離の最大値が格納されている。すなわち、推定距離算出ループを抜けた際のSCORE2が、自動計画問題P の解である最短路における推定距離である。
推定距離算出ループを抜けた後、求解部102は、SCORE2を出力する(ステップS133)。SCORE2を出力した後、求解部102は、推定距離算出処理を終了する。
以下、求解部102による推定距離算出処理の具体例を説明する。図5は、制約緩和部101が生成した緩和問題の例を示す説明図である。図5に示す緩和問題は、図3に示す緩和問題生成処理で生成された緩和問題Q1である。
緩和問題Q1は、自動計画問題P の制約が状態要素E1に関して緩和されたことによって生成された緩和問題である。緩和問題Q1に含まれる状態要素E1における現在状態はa1、目的状態はc1である。状態が現在状態a1から目的状態c1へ遷移する冗長でないパスπには、「a1→c1」と「a1→b1→c1」の2つのパスがある。
図5に示す緩和問題Q1が入力された場合の求解部102による推定距離算出処理を、図6を参照して説明する。図6は、求解部102による推定距離算出処理の具体例を示す説明図である。
求解部102は、冗長でないパスπに沿って状態要素E1の状態を目的状態まで遷移させるための手順を各々のパスに関して求める。例えば、パス「a1→c1」に沿う場合、依存性に従って最初に状態要素E2の状態をa2に遷移させることが求められる。よって、図6に示すように、3つのステップ「E2: b2→a2」「E1: a1→c1」「E2: a2→b2」で構成される手順P1100 が得られる。
なお、例えばステップ「E2: b2→a2」は、状態要素E2の状態をb2からa2に遷移させる手順である。すなわち、1つの手順が1つの状態遷移に相当する。また、最後にステップ「E2: a2→b2」が加えられている理由は、状態要素E2の状態を目的状態b2に遷移させるためである。
また、パス「a1→b1→c1」に沿う場合、状態要素E1の状態をa1からb1へ遷移させた後、依存性に従って状態要素E2の状態をa2に遷移させ、次いで状態要素E3の状態をa3に遷移させることが求められる。よって、図6に示すように、6つのステップで構成される手順P1101 が得られる。
求解部102は、得られた手順のうち最も短い手順の長さを解として返す(ステップS129)。図6に示す例では、求解部102は、パス「a1→c1」に沿って状態要素E1の状態を遷移させる時の手順である手順P1100 の長さである「3」を解として返す。
なお、図6に示すようなパスが固定された緩和問題の解である最短路は、例えば、幅優先探索シミュレーションで求められる。図7は、幅優先探索シミュレーションによる最短路探索処理の例を示す説明図である。
幅優先探索シミュレーションは、パスが固定された緩和問題の解を求める際に使用されるアルゴリズムの1つである。図7に示す状態要素E1に含まれる依存性「E2:{b2,c2}」には、状態要素E2の状態が2つ指定されている。よって、図7に示す最短路探索処理の最初の段階において、どちらの状態に遷移させるかという分岐が発生している。
幅優先探索シミュレーションが使用された場合、最終的に得られた手順のうち最短の手順が選ばれる。図7に示す例では、手順P1200 が最短路として選ばれている。なお、幅優先探索シミュレーションは、パスが固定された緩和問題を解くために使用される1つの方式である。本実施形態の求解部102は、幅優先探索シミュレーション以外の方式でパスが固定された緩和問題を解いてもよい。
[効果の説明]
本実施形態の推定距離算出器100は、状態要素モデルに含まれる依存性の一部を緩和することによって自動計画問題を高速で解くことが可能な緩和問題に変形する制約緩和部101と、緩和問題を高速で解く求解部102とを備える。推定距離算出器100は、依存性の影響を最も強く受ける状態要素における依存性が加味された推定距離を算出することによって、状態要素モデル上の最短路を求める自動計画問題を解く際に実行されるA*探索の高速化を可能にする。
本実施形態の推定距離算出器100がA*探索の高速化を可能にする理由は、A*探索で行われる各状態に対するスコア付けの処理自体を高速化するだけでなく、真の解であるパスの長さに近い値をスコアとして算出できるためである。
制約緩和部101は、状態要素モデルに含まれる1つの状態要素に着目し、着目された状態要素における依存性のみを残し、他の依存性を全て削除する。上記の手法により、制約緩和部101は、依存性の一部を考慮しつつ、元の自動計画問題に比べて簡略化された緩和問題を生成する。
求解部102は、状態要素モデルに含まれる全ての状態要素に関して、それぞれの状態要素を中心に緩和された各問題の解を比較する。求解部102は、比較した結果最大の値である解を推定距離とする。本実施形態の推定距離算出器100は、問題の依存性を緩和することによって高速で求解されるように問題を緩和し、緩和問題の解の長さを推定距離とするため、依存性の影響が反映された距離を推定できる。
他の状態グラフに依存する複数の小さな状態グラフで構成されるシステムに関する自動計画問題をヒューリスティック最短路探索の方式で解く場合、目的状態までの距離の推定が求められる。また、推定される距離は、各状態グラフにおける局所解の影響を受けていないことが求められる。本実施形態の推定距離算出器100は、制約緩和部101が簡略化された緩和問題を生成できるので、上記の条件を満たす推定距離を算出できる。
実施形態2.
[構成の説明]
次に、本発明の第2の実施形態を、図面を参照して説明する。第2の実施形態は、第1の実施形態で実行される検証手法を実行するための1つの態様である。
図8は、推定距離算出器110の第2の実施形態の構成例を示すブロック図である。図8に示すように、本実施形態の推定距離算出器110は、制約緩和部101と、求解部112とを備える。
本実施形態の推定距離算出器110では、第1の実施形態の求解部102が求解部112に置き換えられている。なお、求解部112以外の第2の実施形態の構成は、第1の実施形態の構成と同様である。
求解部112は、緩和問題Q を解く前に、緩和問題Q に含まれる状態要素$Q以外の状態要素E_1 、状態要素E_2 、・・・、状態要素E_n ごとに、緩和問題Q が示す状態要素モデルを分割する。緩和問題Q が示す状態要素モデルを分割した上で、求解部112は、遷移列の長さを求める。
[動作の説明]
以下、本実施形態の求解部112による推定距離算出処理を説明する。図9は、求解部112による推定距離算出処理の動作を示すフローチャートである。なお、本実施形態の制約緩和部101による緩和問題生成処理は、第1の実施形態の緩和問題生成処理と同様である。
本実施形態の求解部112による推定距離算出処理は、ステップS225の処理を除いて、第1の実施形態の求解部102による推定距離算出処理と同様である。すなわち、求解部112にも、緩和問題Q の集合である集合R が入力される(ステップS220)。また、求解部112も、全ての冗長でないパスπに関して遷移列の長さを求め、求められた遷移列の長さの最小値を緩和問題Q の解の距離として返す(ステップS224〜ステップS229)。
求解部112も、基本的には第1の実施形態の求解部102と同様に、状態要素$Qに関する冗長でないパスπが固定された緩和問題Q を解くことによって、遷移列の長さを計算する(ステップS225)。本実施形態の求解部112は、第1の実施形態の求解部102と遷移列の長さの計算方法が異なる。
以下、本実施形態の求解部112による遷移列長計算処理を説明する。図10は、求解部112による遷移列長計算処理の動作を示すフローチャートである。
冗長でないパスπが固定された後、求解部112は、SCORE[π] にπの長さを設定する(ステップS240)。次いで、求解部112は、緩和問題Q に含まれる状態要素$Q以外の状態要素のうち未だ状態要素モデルM_i が生成されていない状態要素E_i を取り出す。すなわち、遷移列長計算ループに入る(ステップS241)。
状態要素E_i を取り出した後、求解部112は、緩和問題Q が示す状態要素モデルから状態要素$Q、および状態要素E_i 以外の状態要素を取り除き、新たな状態要素モデルM_i を生成する(ステップS242)。状態要素モデルM_i で表現される問題をQ’と記載する。
次いで、求解部112は、状態要素$Qの状態がパスπに沿って現在状態から目的状態へ遷移する状態要素モデルM_i 上の最短路が示す遷移列を求める(ステップS243)。
次いで、求解部112は、ステップS243で求められた遷移列のうち状態要素E_i に関する状態遷移の数をカウントする。次いで、求解部112は、カウントされた状態遷移の数をSCORE[π] に加算する(ステップS244)。
求解部112は、緩和問題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 がそれぞれ生成された時、求解部112は、遷移列長計算ループを抜ける(ステップS245)。
求解部112が遷移列長計算ループを抜けた時のSCORE[π] には、各状態要素モデルに関して得られた状態遷移の数の総和とパスπの長さの合計値が格納されている。求解部112は、遷移列長計算ループを抜けた時のSCORE[π] を、パスπが固定された場合の緩和問題Q の解の距離とする。緩和問題Q の解の距離を求めた後、求解部112は、ステップS226の処理を行う。
以下、求解部112による遷移列長計算処理を、図11を参照して説明する。図11は、求解部112による遷移列長計算処理の具体例を示す説明図である。
図11に示す遷移列長計算処理において、求解部112は、状態要素E1における状態遷移が冗長でないパス「a1→b1→c1」に固定されて行われる緩和問題Q を扱う。求解部112は、緩和問題Q を、状態要素E1と状態要素E2のみが含まれる状態要素モデルを示す問題Q’1 と、状態要素E1と状態要素E3のみが含まれる状態要素モデルを示す問題Q’2 に分割する(ステップS242)。
次いで、求解部112は、問題Q’1 および問題Q’2 各々の解を求める(ステップS243)。問題Q’1 の解は、状態要素E2の状態が2回遷移することを示す。また、問題Q’2 の解は、状態要素E3の状態が2回遷移することを示す。よって、緩和問題Q の解の長さは、2+2+2=6 である(ステップS244)。
[効果の説明]
本実施形態の求解部112は、緩和問題を状態要素ごとに分割し、分割された問題の解の和を取ることによって緩和問題を解く。本実施形態の推定距離算出器110は、求解部112が緩和問題を第1の実施形態に比べてさらに細かく分割するので、推定距離をより高速で算出できる。状態要素を多く含む状態要素モデル上の最短路を求める問題に対して、本実施形態の推定距離算出器110は、特に効果を奏する。
実施形態3.
[構成の説明]
次に、本発明の第3の実施形態を、図面を参照して説明する。
図12は、本発明による推定距離算出器120の第3の実施形態の構成例を示すブロック図である。図12に示すように、本実施形態の推定距離算出器120は、制約緩和部111と、求解部122とを備える。
本実施形態の推定距離算出器120では、第1の実施形態の制約緩和部101が制約緩和部111に、第1の実施形態の求解部102が求解部122に、それぞれ置き換えられている。
制約緩和部111は、状態要素モデルに含まれる1つの状態要素$Qに着目する。制約緩和部111は、状態要素$Qに含まれる依存性の「依存先」を次々と辿る。「依存先」を辿ることによって、制約緩和部111は、着目された状態要素$Qに由来する依存性のみを選択する。また、制約緩和部111は、選択された依存性以外の依存性を状態要素モデルから全て削除する。
上記の手法により、制約緩和部111は、第1の実施形態の制約緩和部101よりも依存性の影響を多く考慮しつつ、元の自動計画問題に比べて簡略化された緩和問題を生成できる。
求解部122は、緩和問題Q を解く前に、状態要素$Qが直接依存している状態要素E_1 、状態要素E_2 、・・・、状態要素E_n ごとに、緩和問題Q が示す状態要素モデルを分割する。緩和問題Q が示す状態要素モデルを分割した上で、求解部122は、遷移列の長さを求める。
[動作の説明]
以下、本実施形態の推定距離算出器120の推定距離を出力する動作を図13、および図19を参照して説明する。
最初に、制約緩和部111による緩和問題生成処理を説明する。図13は、制約緩和部111による緩和問題生成処理の動作を示すフローチャートである。
最初に、制約緩和部111には、推定距離算出器120に入力された状態要素モデルM 上の最短路を求める自動計画問題P が入力される(ステップS310)。次いで、制約緩和部111は、集合R を空集合(何も含まれていない集合)に設定する(ステップS311)。
次いで、制約緩和部111は、状態要素モデルM に含まれる状態要素のうち未だ自身に関する緩和問題Q が生成されていない状態要素E を取り出す。すなわち、緩和問題生成ループに入る(ステップS312)。
制約緩和部111は、取り出された状態要素E を基に、状態要素E に関する依存木T(E)を計算する(ステップS313)。状態要素モデルM の状態要素E に関する依存木T(E)は、状態要素モデルM に含まれる状態要素同士が矢印で結ばれることによって生成されるツリーである。
ただし、依存木T(E)において状態要素E1と状態要素E2が「E1→E2」のように矢印で結ばれる場合は、状態要素モデルM に含まれる状態要素E1の状態遷移に、状態要素E2の状態への依存性が付随している場合のみである。
制約緩和部111は、取り出された状態要素E に関する緩和問題Q を生成する(ステップS314)。具体的には、制約緩和部111は、状態要素モデルM に含まれる依存性のうち、ステップS313で計算された依存木T(E)を構成する矢印と同じ向きの依存性以外の依存性を全て削除することによって、状態要素E に関する緩和問題Q を生成する。
例えば、「依存木T(E)を構成する矢印E1→E2」と「同じ向き」の依存性は、「状態要素E1の状態遷移に付随している状態要素E2の状態への依存性」である。
次いで、制約緩和部111は、集合R に緩和問題Q が加えられた集合に集合R を再設定する(ステップS315)。すなわち、制約緩和部111は、集合R の要素にステップS314で生成された緩和問題Q を追加する。
制約緩和部111は、状態要素モデルM に含まれる状態要素の中で自身に関する緩和問題Q が生成されていない状態要素E が存在する間、ステップS313〜ステップS315の処理を繰り返し実行する。ステップS313〜ステップS315の処理は状態要素ごとに、状態要素モデルM に含まれる状態要素の数だけ繰り返し実行される。
状態要素モデルM に含まれる全ての状態要素に関する緩和問題Q が生成された時、制約緩和部111は、緩和問題生成ループを抜ける(ステップS316)。緩和問題生成ループを抜けた後、制約緩和部111は、集合R を出力する(ステップS317)。集合R を出力した後、制約緩和部111は、緩和問題生成処理を終了する。
ステップS313の処理で、制約緩和部111は、例えば幅優先探索で状態要素を辿りながら矢印を張ることによって依存木T(E)を求める。幅優先探索は、グラフを網羅的に走査するために用いられるアルゴリズムの1つである。
本実施形態の制約緩和部111は、状態要素モデル内の「状態要素E1の状態遷移に状態要素E2の状態への依存性が付随している」という関係を、「状態要素E1から状態要素E2に向けて枝(矢印)が張られている」とみなす。
各関係を枝とみなすことによって、制約緩和部111は、状態要素モデルM を1つのグラフとして解釈する。制約緩和部111は、幅優先探索を用いて状態要素モデルM のグラフを状態要素E から網羅的に走査することによって、依存木T(E)を計算できる。
図14は、制約緩和部111に入力される自動計画問題P の例を示す説明図である。図14に示すように、自動計画問題P が示す状態要素モデルM には、状態要素E1〜状態要素E4が含まれている。
また、状態要素E1には、状態要素E2の状態への依存性、および状態要素E3の状態への依存性が付随された状態遷移が含まれている。状態要素E2、および状態要素E4にも、他の状態要素の状態への依存性が付随された状態遷移が含まれている。
図15は、制約緩和部111による依存木計算処理の例を示す説明図である。図15に示す依存木計算処理は、幅優先探索が使用された時の計算処理である。また、図15に示す依存木計算処理は、図14に示す状態要素モデルに含まれる状態要素E1に関する依存木の計算処理である。
図15に示す黒色の矩形が、状態要素を表す。図15(a)から図15(b)にかけて、制約緩和部111は、状態要素E1から状態要素E2に向けて、および状態要素E1から状態要素E3に向けてそれぞれ矢印を張る。
同様に、図15(b)から図15(c)にかけて、制約緩和部111は、状態要素E2から状態要素E4に向けて矢印を張る。図15(c)に示す状態要素および矢印の組が、制約緩和部111が計算した結果得られた依存木T(E1) である。
幅優先探索は、制約緩和部111が依存木を計算する際に用いるアルゴリズムの1つである。なお、本実施形態の制約緩和部111は、幅優先探索以外のアルゴリズムを用いて依存木を計算してもよい。
なお、計算に用いられるアルゴリズムに応じて、入力情報が同じ場合であっても求められる依存木が異なる場合がある。しかし、本実施形態の制約緩和部111は緩和問題を生成する際にどのような種類の依存木を用いてもよいため、求められる依存木が異なることに問題はない。以下、制約緩和部111による依存木を用いた緩和問題生成処理を、図を参照して説明する。
図16は、制約緩和部111に入力される自動計画問題P の他の例を示す説明図である。図16に示すように、自動計画問題P が示す状態要素モデルM には、状態要素E1と、状態要素E2と、状態要素E3とが含まれている。
図17は、制約緩和部111が生成する依存木の例を示す説明図である。図17に示す依存木T(E1) は、図16に示す状態要素モデルM に含まれる状態要素E1に関して計算された依存木である。
同様に、図17に示す依存木T(E2) 、および依存木T(E3) は、それぞれ図16に示す状態要素モデルM に含まれる状態要素E2に関して計算された依存木、状態要素E3に関して計算された依存木である。
図18は、制約緩和部111による緩和問題生成処理の具体例を示す説明図である。図18は、制約緩和部111が図17に示す依存木T(E1) 、依存木T(E2) 、および依存木T(E3) を用いて3つの緩和問題を生成する処理を示す。
制約緩和部111は、状態要素モデルM 上の最短路を求める自動計画問題P を緩和問題生成処理で緩和する。具体的には、制約緩和部111は、自動計画問題P を状態要素E1に関して緩和する場合、最初に図17に示すような依存木T(E1) を求める。次いで、制約緩和部111は、依存木T(E1) を構成する矢印と同じ向きの依存性以外の依存性が自動計画問題P から全て削除された緩和問題Q1を生成する。
緩和問題Q1を生成する際、制約緩和部111は、状態要素E2の状態b2から状態a2への状態遷移に付随している依存性「E1:{a1,b1}」を削除する。その理由は、依存木T(E1) には、「状態要素E2の状態遷移に付随している状態要素E1の状態への依存性」と同じ向きの矢印、すなわち状態要素E2から状態要素E1に向けた矢印が含まれていないためである。
同様に、制約緩和部111は、自動計画問題P を状態要素E2と状態要素E3それぞれに関して緩和する場合、緩和問題Q2と緩和問題Q3をそれぞれ生成する。次いで、制約緩和部111は、生成された緩和問題Q1〜緩和問題Q3を出力する。
次に、求解部122による推定距離算出処理を説明する。本実施形態の求解部122による推定距離算出処理は、図9に示す推定距離算出処理と同様である。ただし、本実施形態の求解部122が実行するステップS225の遷移列長計算処理は、第2の実施形態の求解部112が実行する遷移列長計算処理と異なる。
以下、本実施形態の求解部122による遷移列長計算処理を説明する。図19は、求解部122による遷移列長計算処理の動作を示すフローチャートである。
なお、第2の実施形態では「緩和問題Q に含まれる状態要素のうち、依存性が残っている状態要素」が、状態要素$Qとして記載された。本実施形態では「緩和問題Q が生成される際に用いられた依存木の根」が、状態要素$Qとして記載される。図17に示す例であれば、依存木T(E1) の根は状態要素E1である。
すなわち、制約緩和部111は、依存木T($Q) を用いて緩和問題Q を生成する。以下、「依存木T($Q) 」は、緩和問題Q が生成される際に用いられた依存木を指す。また、状態要素$Q上の冗長でないパスπが固定されているとして遷移列長計算処理を説明する。
冗長でないパスπが固定された後、求解部122は、SCORE[π] にπの長さを設定する(ステップS340)。次いで、求解部122は、「依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素」のうち未だ部分木が構成されていない状態要素E_i を取り出す。すなわち、第1遷移列長計算ループに入る(ステップS341)。
状態要素E_i を取り出した後、求解部122は、状態要素E_i を根とする部分木を依存木T($Q) において構成する。すなわち、求解部122は、依存木T($Q) のうち状態要素E_i から矢印を辿って到達可能な部分を部分木として取り出す(ステップS342)。以下、取り出された部分木に含まれる状態要素の集合をU_i と記載する。
部分木を取り出した後、求解部122は、緩和問題Q が示す状態要素モデルから集合U_i 、および状態要素$Q以外の状態要素を取り除き、新たな状態要素モデルM_i を生成する(ステップS343)。状態要素モデルM_i で表現される問題をQ’と記載する。
次いで、求解部122は、状態要素$Qの状態がパスπに沿って現在状態から目的状態へ遷移する状態要素モデルM_i 上の最短路が示す遷移列、すなわち問題Q’の解である遷移列の長さを求める(ステップS344)。
次いで、求解部122は、ステップS344で求められた遷移列の長さから、固定されているパスπの長さが減算された値をSCORE[π] に加算する(ステップS345)。
求解部122は、依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素のうち部分木が構成されていない状態要素E_i が存在する間、ステップS342〜ステップS345の処理を繰り返し実行する。ステップS342〜ステップS345の処理は状態要素E_i ごとに、依存木T($Q) において状態要素$Qから直接矢印が伸びている状態要素の数だけ繰り返し実行される。
依存木T($Q) において状態要素$Qから直接矢印が伸びている全ての状態要素E_i に関して部分木が構成された時、求解部122は、第1遷移列長計算ループを抜ける(ステップS346)。
次いで、求解部122は、「緩和問題Q が示す状態要素モデルに含まれる状態要素のうち依存木T($Q) を構成する状態要素以外の状態要素」から未だ遷移列長が計算されていない状態要素F_i を取り出す。すなわち、第2遷移列長計算ループに入る(ステップS347)。
取り出された状態要素F_i は、制約緩和部111により状態遷移から全ての依存性が取り除かれた状態要素である。かつ、緩和問題Q が示すどの状態要素にも、状態要素F_i に対する依存性が含まれていない。すなわち、緩和問題Q において、求解部122は、状態要素F_i の状態を自由に遷移させることができる。
求解部122は、状態要素F_i の状態が現在状態から目的状態へ遷移する緩和問題Q が示す状態要素モデル上の最短路が示す遷移列を求める(ステップS348)。上記の特徴により、求解部122は、状態要素F_i の状態が現在状態から目的状態へ遷移する最短路を簡単に求めることができる。
次いで、求解部122は、ステップS348で求められた最短路が示す遷移列の長さをSCORE[π] に加算する(ステップS349)。
求解部122は、依存木T($Q) を構成する状態要素以外の状態要素のうち遷移列長が計算されていない状態要素F_i が存在する間、ステップS348〜ステップS349の処理を繰り返し実行する。ステップS348〜ステップS349の処理は状態要素F_i ごとに、緩和問題Q が示す状態要素モデルに含まれる依存木T($Q) を構成する状態要素以外の状態要素の数だけ繰り返し実行される。
依存木T($Q) を構成する状態要素以外の全ての状態要素F_i に関して遷移列長が計算された時、求解部122は、第2遷移列長計算ループを抜ける(ステップS350)。
求解部122は、第2遷移列長計算ループを抜けた時のSCORE[π] を、パスπが固定された場合の緩和問題Q の解の距離とする。緩和問題Q の解の距離を求めた後、求解部122は、ステップS226の処理を行う。
以下、求解部122による遷移列長計算処理を、図を参照して説明する。図20は、求解部122に入力される緩和問題Q および緩和問題Q の生成に使用された依存木T(E1) の例を示す説明図である。
図20に示す緩和問題Q は、依存木T(E1) に沿って緩和された問題である。図20に示すように状態要素E1において、状態a1から状態c1への状態遷移に依存性「E2:{a2} 」が、状態b1から状態c1への状態遷移に依存性「E2:{a2} 」および依存性「E3:{a3} 」が、それぞれ付随している。また、状態要素E2において、状態b2から状態a2への状態遷移に依存性「E4:{a4} 」が付随している。
また、図20に示す依存木T(E1) では、状態要素E1から状態要素E2に向けて、および状態要素E1から状態要素E3に向けてそれぞれ矢印が伸びている。また、状態要素E2から状態要素E4に向けて矢印が伸びている。また、状態要素E5は、依存木T(E1) に含まれていない。
図21は、求解部122による遷移列長計算処理での緩和問題Q の解の距離の計算過程の例を示す説明図である。図21に示す遷移列長計算処理において、求解部122は、状態要素E1における状態遷移が冗長でないパスπ=「a1→b1→c1」に固定されて行われる緩和問題Q を扱う。
図21に示す遷移列長計算処理において、求解部122は、依存木T(E1) の根である状態要素E1から直接矢印が伸びている状態要素E2を根とする部分木T1、および状態要素E1から直接矢印が伸びている状態要素E3を根とする部分木T2をそれぞれ生成する(ステップS342)。
図22は、求解部122が生成する部分木の例を示す説明図である。図22は、求解部122による遷移列長計算処理の一過程において、依存木から1つの枝が選択されることによって得られる部分木を示す。
図22に示す部分木T1は、状態要素E2が根として選択された時に生成される部分木である。部分木T1は、状態要素E2と状態要素E4とで構成される部分木である。また、状態要素E2から状態要素E4に向けて矢印が張られている。
また、図22に示す部分木T2は、状態要素E3が根として選択された時に生成される部分木である。部分木T2は、状態要素E3のみ、すなわち1つの節点のみで構成される部分木である。また、部分木T2において矢印は張られていない。
次いで、求解部122は、部分木T1および部分木T2に含まれる状態要素を用いて緩和問題Q が示す状態要素モデルを制限する(ステップS343)。
図23は、求解部122が生成する問題Q’の例を示す説明図である。図23は、求解部122による遷移列長計算処理の一過程において、部分木が用いられて制約された問題を示す。
図23に示す問題Q’1 は、緩和問題Q が示す状態要素モデルが部分木T1に制限された問題である。問題Q’1 が示す状態要素モデルには、状態要素E1、状態要素E2、および状態要素E4のみが含まれている。
また、図23に示す問題Q’2 は、緩和問題Q が示す状態要素モデルが部分木T2に制限された問題である。問題Q’2 が示す状態要素モデルには、状態要素E1、および状態要素E3のみが含まれている。問題Q’1 が示す状態要素モデルおよび問題Q’2 が示す状態要素モデルのどちらにも、部分木の要素の他に状態要素$Qである状態要素E1が含まれている。
次いで、求解部122は、問題Q’1 の解および問題Q’2 の解を求める(ステップS344)。ステップS344において、求解部122には、部分木を定めることによって規定される問題Q’1 および問題Q’2 が示す各状態要素モデル上の最短路をそれぞれ導出することが求められる。各問題は、例えば求解部122による遷移列長計算処理が内部で再帰的に使用されることによって求解される。
以下、上記の方法で求解部122が問題Q’1 を解く例を説明する。図24は、求解部122による問題Q’の求解例を示す説明図である。図24は、求解部122による遷移列長計算処理の一過程において、部分木が用いられて制限された問題を解く処理の一例を示す。図24に示す例では、求解部122が遷移列長計算処理を内部で再帰的に用いることによって、問題Q’1 の解の距離を求めている。
問題Q’1 において状態要素E1の状態が固定パスπに沿って遷移するためには、状態要素E2の状態が状態a2に遷移することが求められる。よって、求解部122は、状態要素E2の状態が状態a2に遷移し、次いで目的状態である状態b2に遷移するような冗長でないパスを列挙する。
求解部122は、上記の条件を満たす唯一のパスとして図24に示すπ’=「b2→a2→b2」を挙げる。従って、求められる対象である問題Q’1 の解の距離は、問題Q’1 が状態要素E2および状態要素E4に制限され、状態要素E2の状態遷移がパスπ’ に固定されて実行されるという設定の問題Q’’1の解の距離にπの長さ「2」が加えられた値である。
また、問題Q’’1の解も同様の方法で求められる。すなわち、問題Q’’1の解の距離は、問題Q’’1が状態要素E4のみに制限され、状態要素E4の状態遷移がパスπ’’= 「b4→a4→b4」に固定されて実行されるという設定の問題Q’’’1 の解の距離にπ’ の長さ「2」が加えられた値である。
問題Q’’’1 には依存性が含まれていないので、求解部122は、問題Q’’’1 の解の距離をπ’’の長さ、すなわち「2」であるとただちに判別できる。従って、求解部122は、元の問題Q’1 の解の距離を「2+2+2=6」と再帰的に計算できる。
以上のように、問題を依存性が全く含まれない問題にまで細分化することによって、求解部122は、ステップS344の遷移列長計算処理で遷移列の長さを求めることができる。
なお、上記の求解部122が遷移列長計算処理を再帰的に利用する手法は、ステップS344において求解部122が最短路を示す遷移列の長さを求める1つの手法である。本実施形態の求解部122は、上記の手法以外の手法で最短路を示す遷移列の長さを求めてもよい。
問題Q’2 に対しても同様に計算すると、求解部122は、問題Q’2 の解の距離として「4」を得る。問題Q’1 および問題Q’2 の各解の距離を求めた後、求解部122は、SCORE[π] (初期値はπの長さ「2」)に、各解の距離からパスπの長さ「2」が減算された値をそれぞれ加算する(ステップS345)。
問題Q’1 および問題Q’2 の各解の距離を求めた後、求解部122は、第2遷移列長計算ループに入る(ステップS346〜ステップS347)。緩和問題Q が示す状態要素モデルにおいて依存木T(E1) に含まれていない状態要素は、状態要素E5のみである。
よって、求解部122は、状態要素E5の状態が現在状態から目的状態まで遷移する最短路を示す遷移列の長さ「1」を求める(ステップS348)。次いで、求解部122は、求められた遷移列の長さをSCORE[π] に加算する(ステップS349)。
加算した後、求解部122は、第2遷移列長計算ループを抜ける(ステップS350)。次いで、求解部122は、図20に示す状態要素E1の状態遷移がパスπに固定されて実行される場合の緩和問題Q の解の距離としてSCORE[π]=2+4+2+1=9 を出力し、遷移列長計算処理を終了する。
[効果の説明]
本実施形態の制約緩和部111は、第1の実施形態の制約緩和部101が生成する緩和問題に比べて依存性が多く反映された緩和問題を生成する。よって、本実施形態の推定距離算出器120は、第1の実施形態の推定距離算出器100よりも推定距離を正確に求めることができる。
また、依存性がより多く反映されるため、本実施形態で生成される緩和問題は、第1の実施形態で生成される緩和問題に比べて複雑になる。しかし、求解部122は、依存木を用いて生成された緩和問題をさらに分割することによって、元の自動計画問題を解く場合に要する計算時間よりも短い計算時間で解を求めることができる。
実施形態4.
[構成の説明]
次に、本発明の第4の実施形態を、図面を参照して説明する。第4の実施形態は、第1の実施形態、第2の実施形態、または第3の実施形態が応用された実施形態である。
図25は、自動計画器200の第4の実施形態の構成例を示すブロック図である。図25に示すように、本実施形態の自動計画器200は、推定距離算出部201と、最短路探索部202と、入力合成部203と、変換部204とを備える。
本実施形態の自動計画器200は、状態要素モデルM を入力とし、A*探索を行うことによって状態要素モデルM 上の最短路である自動計画問題の解を求める。自動計画器200は、入力された状態要素モデルM が展開された大域状態グラフ上の最短路を求めるためにA*探索を行う。
推定距離算出部201は、第1の実施形態の推定距離算出器100と同様の構成および機能、第2の実施形態の推定距離算出器110と同様の構成および機能、または第3の実施形態の推定距離算出器120と同様の構成および機能を有する構成要素である。
最短路探索部202は、状態要素モデルM 上の最短路を探索する機能を有する。最短路探索部202は、入力された大域状態グラフ上の最短路を探索するためにA*探索を行う。
A*探索の実行では、途中で現在状態から目的状態までの推定距離を要する。推定距離が求められた時、最短路探索部202は、入力合成部203を介して推定距離算出部201に推定距離を問い合わせる。最短路探索部202は、推定距離算出部201が返した値を推定距離として用いる。
入力合成部203は、大域状態と状態要素モデルM を組み合わせる機能を有する。入力合成部203は、組み合わせられた大域状態と状態要素モデルM を推定距離算出部201に入力する。
例えば、入力合成部203には、状態要素モデルM と、状態要素モデルM が変換された大域状態G が入力される。入力合成部203は、状態要素モデルM の初期状態が大域状態G に設定し直された状態要素モデルM’を生成し、生成された状態要素モデルM’を出力する。
各大域状態には、「探索済み」フラグ、最短距離、およびスコアの3つの値が保持される。大域初期状態には「探索済み」フラグと最短距離「0」が設定され、スコアは設定されない。
変換部204は、入力された状態要素モデルM を大域状態グラフに変換する機能を有する。変換部204は、例えば特許文献1に記載されている手法と同様の手法で状態要素モデルM を大域状態グラフに変換する。
[動作の説明]
以下、本実施形態の最短路探索部202による最短路探索処理を説明する。図26は、最短路探索部202による最短路探索処理の動作を示すフローチャートである。
最初に、最短路探索部202には、状態要素モデルM と、状態要素モデルM が展開された大域状態グラフが入力される(ステップS400)。次いで、最短路探索部202は、現在状態C を大域初期状態に、移動回数N を0にそれぞれ初期設定する(ステップS401)。最短路探索部202は、1つの現在状態C と移動回数N を保持しながら探索を進める。
次いで、最短路探索部202は、現在状態C から状態遷移可能な大域状態のうち未だスコアが計算されていない大域状態S を取り出す。すなわち、スコア計算ループに入る(ステップS402)。
大域状態S が取り出された後、入力合成部203は、大域状態S と元の自動計画問題が示す状態要素モデルM を合成することによって、状態要素モデルM’を生成する(ステップS403)。入力合成部203は、生成された状態要素モデルM’を推定距離算出部201に入力する。
次いで、推定距離算出部201は、大域状態S から大域目的状態までの推定距離E を算出する(ステップS404)。次いで、最短路探索部202は、N+E+1 を大域状態S のスコアに設定し、N+1 を大域状態S までの最短距離に設定する(ステップS405)。
最短路探索部202は、現在状態C から状態遷移可能な大域状態のうちスコアが計算されていない大域状態S が存在する間、ステップS403〜ステップS405の処理を繰り返し実行する。ステップS403〜ステップS405の処理は大域状態S ごとに、現在状態C から状態遷移可能な大域状態のうちスコアが計算されていない大域状態の数だけ繰り返し実行される。
現在状態C から状態遷移可能な全ての大域状態S のスコアが計算された時、最短路探索部202は、スコア計算ループを抜ける(ステップS406)。
次いで、最短路探索部202は、スコアが算出済みであり、かつ未探索の大域状態のうち、最もスコアが低い大域状態を新たな現在状態C に更新する。また、最短路探索部202は、移動回数N を、新たな現在状態C までの移動距離に更新する(ステップS407)。
なお、ステップS407の処理で現在状態C として選択可能な大域状態がない場合、最短路探索部202は、最短路探索処理を終了する。また、最短路探索部202は、新たな現在状態C に「探索済み」フラグを設定する(ステップS408)。
次いで、最短路探索部202は、現在状態C が大域目的状態であるか否かを判定する(ステップS409)。現在状態C が大域目的状態でない場合(ステップS409におけるNo)、最短路探索部202は、再度ステップS402の処理を行う。
現在状態C が大域目的状態である場合(ステップS409におけるYes)、最短路探索部202は、大域初期状態から現在状態C に到達するまでに辿ったパスを最短路として出力する(ステップS410)。出力した後、最短路探索部202は、最短路探索処理を終了する。
図26に示すアルゴリズムが使用された場合、探索に用いられるヒューリスティック関数が一貫性(consistency) を持つ時に正しい最短経路(最短路)が得られることが知られている。本実施形態の推定距離算出部201は、一貫性を持つヒューリスティック関数として機能する。よって、最短路探索部202は、上記の処理を実行する場合大域初期状態から大域目的状態までの最短経路を返す。
以下、最短路探索部202による最短路探索処理を、図27〜図28を参照して説明する。図27および図28は、最短路探索部202による最短路探索処理の具体例を示す説明図である。
図27〜図28は、大域状態グラフ上の最短路の探索処理を示す。図27(a)〜図27(c)、および図28(a)〜図28(b)は、最短路探索処理の各段階での大域状態グラフを示す。最短路探索処理中の状態グラフは、図27(a)、図27(b)、図27(c)、図28(a)、図28(b)の順に変化する。
図27〜図28に示す円は、大域状態を表す。すなわち、図27〜図28は、大域状態S0〜大域状態S7を示す。また、大域状態S0が初期状態であり、大域状態S7が目的状態である。
図27〜図28に示す大域状態グラフの展開元である状態要素モデルM を図29に示す。図29は、状態要素モデルの他の例を示す説明図である。図29内の各表記の意味は、図40内の各表記の意味と同様である。図27〜図28に示す最短路探索処理では、図29に示す状態要素モデルM が最短路探索部202に入力される。
図29に示す状態要素モデルM は、所定の設定ファイルを読み込む1つのアプリケーションが動いている状況を、更新された設定ファイルを読み込む2つのアプリケーションが動いている状況に変更するタスクを表す。図29に示すタスクでは、アプリケーションのスケールアウトが行われる。
状態要素モデルに含まれる状態要素の数は3つであるため、大域状態は、3つの状態要素の状態の組み合わせで表現される。状態要素Conf、状態要素App1、および状態要素App2の各状態で構成される大域状態を[Conf:(Conf の状態), App1:(App1 の状態), App2:(App2 の状態)]で表す。
例えば、図27〜図28に示すように大域初期状態S0は、S0=[Conf:old, App1:on, App2:off]で表現される。大域状態を表す状態の組は、円内の黒色の箇所に記述されている。
また、図27〜図28に示す大域状態には、大域状態を表す状態の組に加えて、各大域状態がそれぞれ保持する「探索済み」フラグ、最短距離、スコアが内部に記述されている。「探索済み」フラグは円内の右上に、最短距離は円内の左下に、スコアは円内の右下にそれぞれ記述されている。なお、空白の箇所は、その箇所に記述される値が未設定、または未算出であることを示す。
以下、図26に示す動作に従って最短路探索部202による最短路探索処理を説明する。最短路探索部202は、最初に大域初期状態S0から遷移可能な2つの大域状態S1(S1=[Conf:old, App1:on, App2:on]) と大域状態S2(S2=[Conf:old, App1:off, App2:off]) に関して、目的状態までの推定距離を求める。
大域状態S1と状態要素モデルM が入力合成部203に入力されると、入力合成部203は、図30に示す状態遷移モデルM’を生成する(ステップS403)。図30は、状態遷移モデルの他の例を示す説明図である。入力合成部203は、生成された状態遷移モデルM’を推定距離算出部201に入力する。
次いで、推定距離算出部201は、生成された状態遷移モデルM’に基づいて推定距離「5」を得る(ステップS404)。よって、移動距離と合わせると大域状態S1のスコアは「6」になる。同様に、大域状態S2のスコアは、「4」になる(ステップS405)。
現在状態C から到達可能な全ての大域状態のスコアが算出されたので(ステップS406)、最短路探索部202は、現在状態C をスコアが最も低い未探索状態である大域状態S2に更新する(ステップS407)。
また、最短路探索部202は、大域状態S2に「探索済み」フラグを設定する(ステップS408)。大域状態S1および大域状態S2のそれぞれのスコアと最短距離、および大域状態S2の「探索済み」フラグが新たに設定された大域状態グラフを図27(b)に示す。
同様に、最短路探索部202は、大域状態S2から遷移可能な未探索状態に対して再びステップS403〜ステップS405の処理を行い、次いで現在状態C をスコアが最低の大域状態に更新するステップS407〜ステップS408の処理を行う。
最短路探索部202は、図26に示す処理を現在状態C が大域目的状態S7(S7=[Conf:new, App1:on, App2:on]) に更新されるまで繰り返し実行する。現在状態C が大域目的状態S7に更新された段階の大域状態グラフを図28(b)に示す。
最終的に得られる最短経路は、大域状態グラフの大域状態を[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」と記載すると、図29に示す自動計画問題の解は、上記の経路を基に「App1:on →off, Conf:old →new, App1:off →on, App2:off→on」の手順であることが分かる。
[効果の説明]
本実施形態の自動計画器200は、状態要素モデルに適したヒューリスティック関数として機能する推定距離算出部201を用いることによって、より高速で最短路を探索できる。すなわち、本実施形態の自動計画器200は、状態要素モデル上の最短路である自動計画問題の解を求めるためのより好適な手法を与える。
以下、各実施形態の推定距離算出器のハードウェア構成の具体例を説明する。図31は、本発明による推定距離算出器のハードウェア構成例を示す説明図である。図31は、各実施形態の推定距離算出器をコンピュータで実現するためのハードウェア構成の一例を示す。
図31に示すように、推定距離算出器は、CPU(Central Prosessing Unit)191と、ROM(Read Only Memory)192と、RAM(Random Access Memory)193と、出力装置194とを備える。構成要素同士は、データバス195で接続されており、データの授受が可能である。また、出力装置194は、例えば表示装置である。
各実施形態の推定距離算出器は、例えば、ROM192に格納されているプログラムに従って処理を実行するCPU191によって実現される。すなわち制約緩和部101、制約緩和部111、求解部102、求解部112、および求解部122は、例えば、プログラム制御に従って処理を実行するCPU191によって実現される。
また、各実施形態の推定距離算出器における各部は、ハードウェア回路によって実現されてもよい。一例として、制約緩和部101、制約緩和部111、求解部102、求解部112、および求解部122が、それぞれLSI(Large Scale Integration)で実現される。また、それらが1つのLSIで実現されていてもよい。
また、第4の実施形態の自動計画器200のハードウェア構成が、図31に示すようなハードウェア構成でもよい。
次に、本発明の概要を説明する。図32は、本発明による推定距離算出器の概要を示すブロック図である。本発明による推定距離算出器10は、複数の状態要素で構成されている状態要素モデルである第1状態要素モデルを基に他の状態要素モデルである第2状態要素モデルを生成する推定距離算出器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか1つの状態要素と複数の状態要素のうちの1つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第2状態要素モデルを生成する生成部11(例えば、制約緩和部101)を備える。
そのような構成により、推定距離算出器は、状態要素モデル上の最短路を高速で探索できる。
また、推定距離算出器10は、生成された第2状態要素モデルを入力とし第2状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出部(例えば、求解部102)を備えてもよい。
また、第2状態要素モデルに含まれる状態遷移のうち使用可能な状態遷移は制限されていてもよい。
そのような構成により、推定距離算出器は、緩和問題を解くことができる。
また、所定の条件を満たす遷移条件は、全ての遷移条件でもよい。
そのような構成により、推定距離算出器は、最も簡略化された緩和問題を生成できる。
また、所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか1つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件でもよい。
また、生成部11は、例えば状態要素モデルと複数の状態要素のうちのいずれか1つの状態要素を入力とし、1つの状態要素を根とする依存木を生成してもよい。具体的には、依存木は、複数の状態要素の一部または全てで構成される節点と、節点のうちの2つの節点に関して一方の節点が含む遷移条件の依存先が他方の節点であるという関係を表す1または複数の有向枝と、節点のうちの1つである根を含む。生成部11は、複数の状態要素のうちのいずれか1つの状態要素と、複数の状態要素のうちの1つの状態要素を根とする依存木の有向枝に沿った遷移条件以外の遷移条件が除去された状態要素とで構成される第2状態要素モデルを生成してもよい。なお、遷移条件には、複数の状態の一部または全てを示す名称で構成される依存先が含まれる。
そのような構成により、推定距離算出器は、依存木を用いて緩和問題を生成できる。
また、導出部は、入力された第2状態要素モデルに含まれる遷移条件が付与されている状態要素と第2状態要素モデルに含まれる遷移条件が除去された複数の状態要素のうちのいずれか1つの状態要素とで構成される状態要素モデルである第3状態要素モデルを生成し、生成された第3状態要素モデルを用いて最小の遷移回数を導出してもよい。
また、導出部は、入力された第2状態要素モデルで表現される緩和問題において使用可能な状態遷移に制限が加えられた問題を生成し、生成された問題を表現する状態要素モデルを基に第3状態要素モデルを生成し、第3状態要素モデルで表現される問題の解を合算することによって最小の遷移回数を導出してもよい。
そのような構成により、推定距離算出器は、状態要素が多く含まれる緩和問題を高速で解くことができる。
また、導出部は、入力された第2状態要素モデルに含まれる複数の状態要素のうちの関連する状態要素群で構成される状態要素モデルである第3状態要素モデルを生成し、生成された第3状態要素モデルを用いて最小の遷移回数を導出してもよい。
また、導出部は、第2状態要素モデルの生成に用いられた依存木を入力とし、入力された依存木の根から1つの有向枝を辿って到達する節点を根とし、依存木が含む状態要素の一部を節点とする複数の依存木を生成し、入力された第2状態要素モデルに含まれる複数の状態要素のうち、複数の依存木のうち1つの依存木に含まれる複数の状態要素で構成される状態要素モデルである第3状態要素モデルを生成し、生成された第3状態要素モデルを用いて最小の遷移回数を導出してもよい。
そのような構成により、推定距離算出器は、部分木を用いて状態要素が多く含まれる緩和問題を高速で解くことができる。
また、生成部11は、第1状態要素モデルを基に生成可能な全ての第2状態要素モデルを生成し、導出部は、生成された全ての第2状態要素モデルを入力とし、入力された各第2状態要素モデルに基づいて最小の遷移回数をそれぞれ導出し、導出された各最小の遷移回数のうち最大の遷移回数を出力してもよい。
そのような構成により、推定距離算出器は、状態要素間の依存性の影響を最も強く受けた状態要素における依存性が加味された推定距離を算出できる。その理由は、依存性の影響を強く受ける状態要素ほど緩和問題にかかる制約が大きくなり、緩和問題の解の距離も長くなるためである。
また、推定距離算出器10は、導出部が出力した最大の遷移回数を目的状態までの推定距離に用いることによって第1状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部(例えば、最短路探索部202)を備えてもよい。
そのような構成により、推定距離算出器は、自動計画問題を高速で解くことができる。
また、導出部は、幅優先探索を行うことによって最小の遷移回数を導出してもよい。
そのような構成により、推定距離算出器は、幅優先探索を用いて自動計画問題を高速で解くことができる。
また、導出部は、第3状態要素モデルに対して遷移列長計算処理を繰り返し実行することによって最小の遷移回数を導出してもよい。
そのような構成により、推定距離算出器は、依存性が多く含まれる緩和問題を高速で解くことができる。
また、図33は、本発明による自動計画器の概要を示すブロック図である。本発明による自動計画器20は、複数の状態要素で構成されている状態要素モデルである第1状態要素モデルを基に他の状態要素モデルである第2状態要素モデルを生成する自動計画器であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか1つの状態要素と複数の状態要素のうちの1つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第2状態要素モデルを生成する生成部21(例えば、推定距離算出部201)と、生成された第2状態要素モデルを入力とし第2状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出部22(例えば、推定距離算出部201)と、導出された最小の遷移回数を用いることによって第1状態要素モデルで表現される自動計画問題の解である最短路を探索する探索部23(例えば、最短路探索部202)とを備える。
そのような構成により、自動計画器は、状態要素モデル上の最短路を高速で探索できる。
また、所定の条件を満たす遷移条件は、全ての遷移条件でもよい。
そのような構成により、自動計画器は、最も簡略化された緩和問題を生成できる。
また、所定の条件を満たす遷移条件は、複数の状態要素のうちのいずれか1つの状態要素に含まれる遷移条件と関係を有する遷移条件以外の遷移条件でもよい。
そのような構成により、自動計画器は、依存木を用いて緩和問題を生成できる。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
(付記1)複数の状態要素で構成されている状態要素モデルである第1状態要素モデルを基に他の状態要素モデルである第2状態要素モデルを生成する自動計画器において実行される自動計画方法であって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、複数の状態要素のうちのいずれか1つの状態要素と複数の状態要素のうちの1つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第2状態要素モデルを生成し、生成された第2状態要素モデルを入力とし第2状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出し、導出された最小の遷移回数を用いることによって第1状態要素モデルで表現される自動計画問題の解である最短路を探索することを特徴とする自動計画方法。
(付記2)複数の状態要素で構成されている状態要素モデルである第1状態要素モデルを基に他の状態要素モデルである第2状態要素モデルを生成するコンピュータにおいて実行される自動計画プログラムであって、状態要素は、複数の状態と複数の状態間の遷移条件が付与されている状態遷移とを含み、コンピュータに、複数の状態要素のうちのいずれか1つの状態要素と複数の状態要素のうちの1つの状態要素以外の所定の条件を満たす遷移条件が除去された状態要素とで構成される第2状態要素モデルを生成する生成処理、生成された第2状態要素モデルを入力とし第2状態要素モデルに含まれる現在状態および目的状態に基づいて状態が現在状態から目的状態へ遷移するまでの最小の遷移回数を導出する導出処理、および導出された最小の遷移回数を用いることによって第1状態要素モデルで表現される自動計画問題の解である最短路を探索する探索処理を実行することを特徴とする自動計画プログラム。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2016年7月21日に出願された日本特許出願2016−143311と2016年11月16日に出願された日本特許出願2016−223322を基礎とする優先権を主張し、その開示の全てをここに取り込む。
産業上の利用の可能性
自動計画技術は、人工知能が事前に未来の行動を計算し、計算された行動の実行手順を計画する目的で用いられる。本発明は、状態要素モデル上の最短路を求める自動計画問題を最適化するため、他の部分システムに干渉する複数の小規模な部分システムで構成されるシステムに関する自動計画問題の求解の高速化に好適に適用される。