(57)【要約】【課題】適切な範囲から行動を決定すること。【解決手段】行動決定装置１００は、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求める。行動決定装置１００は、価値関数の値と最適行動に対応する価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定する。行動決定装置１００は、特定した範囲から次の行動を決定する。【選択図】図１
2020091611.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
処理を実行させることを特徴とする行動決定プログラム。
【請求項２】
前記論理式は、さらに、行動が取りうる範囲を表す条件式を含む、ことを特徴とする請求項１に記載の行動決定プログラム。
【請求項３】
前記論理式は、さらに、行動と前記最適行動とのユークリッド距離が閾値より大きいことを表す条件式を含む、ことを特徴とする請求項１または２に記載の行動決定プログラム。
【請求項４】
前記コンピュータに、
状態に関する入力値および行動に関する入力値、および、行動に関する入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、前記価値関数の係数を推定する、処理を実行させ、
前記求める処理は、限量子消去を用いて、前記係数が推定された前記価値関数に関する最適行動を求める、ことを特徴とする請求項１〜３のいずれか一つに記載の行動決定プログラム。
【請求項５】
前記求める処理は、
前記価値関数が行動に対して線形である場合、線形計画問題の計算ソフトウェアを用いて、前記最適行動を求める、ことを特徴とする請求項１〜４のいずれか一つに記載の行動決定プログラム。
【請求項６】
前記求める処理は、
前記価値関数が凸形状である場合、最急勾配法の計算ソフトウェアを用いて、前記最適行動を求める、ことを特徴とする請求項１〜５のいずれか一つに記載の行動決定プログラム。
【請求項７】
前記決定する処理は、
ランダムに行動を選択し、選択した前記行動が前記範囲内であれば、選択した前記行動を前記次の行動に決定する、ことを特徴とする請求項１〜６のいずれか一つに記載の行動決定プログラム。
【請求項８】
前記決定する処理は、
特定した前記範囲に対して限量子消去を用いて、前記次の行動を決定する、ことを特徴とする請求項１〜７のいずれか一つに記載の行動決定プログラム。
【請求項９】
コンピュータが、
行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
処理を実行することを特徴とする行動決定方法。
【請求項１０】
行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
制御部を有することを特徴とする行動決定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、行動決定プログラム、行動決定方法、および行動決定装置に関する。
【背景技術】
【０００２】
従来、強化学習の分野では、制御対象の累積利得を示す価値関数を推定し、価値関数に基づき制御対象に対する行動として最適であると判断される最適行動を決定することが行われる。利得は、例えば、報酬である。価値関数は、例えば、状態行動価値関数（Ｑ関数）である。例えば、制御対象に対する行動をランダムに選択し、行動に応じた利得に基づき価値関数を推定することが行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６８８７０号公報
【特許文献２】特開２０１５−１０２２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、価値関数を推定する際、制御対象に対する行動がランダムに選択された結果、制御対象に対する行動が、相対的に価値が低い行動になる場合がある。例えば、制御対象が無人飛行体であれば、制御対象に対する行動が、安定して飛行することが難しい行動になる場合があり、制御対象が落下してしまうことがある。
【０００５】
１つの側面では、本発明は、適切な範囲から行動を決定することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様によれば、行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、特定した前記範囲から次の行動を決定する行動決定プログラム、行動決定方法、および行動決定装置が提案される。
【発明の効果】
【０００７】
一態様によれば、適切な範囲から行動を決定することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる行動決定方法の一実施例を示す説明図である。
【図２】図２は、行動決定装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、係数配列Ｗの記憶内容の一例を示す説明図である。
【図４】図４は、履歴テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、行動決定装置１００の機能的構成例を示すブロック図である。
【図６】図６は、実施例における強化学習の流れを示す説明図（その１）である。
【図７】図７は、実施例における強化学習の流れを示す説明図（その２）である。
【図８】図８は、実施例における強化学習の流れを示す説明図（その３）である。
【図９】図９は、実施例における強化学習の流れを示す説明図（その４）である。
【図１０】図１０は、実施例における強化学習の流れを示す説明図（その５）である。
【図１１】図１１は、制御対象１１０の具体例を示す説明図（その１）である。
【図１２】図１２は、制御対象１１０の具体例を示す説明図（その２）である。
【図１３】図１３は、制御対象１１０の具体例を示す説明図（その３）である。
【図１４】図１４は、強化学習処理手順の一例を示すフローチャートである。
【図１５】図１５は、行動決定処理手順の一例を示すフローチャートである。
【図１６】図１６は、行動決定処理手順の別の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかる行動決定プログラム、行動決定方法、および行動決定装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかる行動決定方法の一実施例）
図１は、実施の形態にかかる行動決定方法の一実施例を示す説明図である。行動決定装置１００は、強化学習を用いて、制御対象１１０に対する行動を決定することにより、制御対象１１０を制御するコンピュータである。行動決定装置１００は、例えば、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１１】
制御対象１１０は、何らかの事象であり、例えば、現実に存在する物理系である。制御対象１１０は、具体的には、自動車、自律移動ロボット、ドローン、ヘリコプター、サーバルーム、発電機、化学プラント、または、ゲームなどである。
【００１２】
行動（ａｃｔｉｏｎ）は、制御対象１１０に対する操作である。行動は、入力（ｉｎｐｕｔ）とも呼ばれる。制御対象１１０に対する行動に応じて、制御対象１１０の状態（ｓｔａｔｅ）が変化する。制御対象１１０の状態は、観測可能である。
【００１３】
強化学習において、例えば、制御対象１１０に対する行動をランダムに選択し、行動に応じた利得に基づき、制御対象１１０の累積利得を示す価値関数を推定することが行われる。利得は、例えば、報酬である。また、利得は、例えば、コストにマイナスをかけた値であり、報酬として扱うことが可能な値であってもよい。価値関数の推定は、例えば、価値関数に用いられる係数の推定に対応する。係数は、多項式にかけられ、行動を表す変数または状態を表す変数にかけられる。係数は、具体的には、後述するｗiである。
【００１４】
ここで、強化学習において、行動は離散量として扱われることがある。行動を離散量として扱う場合、価値関数を推定するための探索行動の手法としては、例えば、ε貪欲法やボルツマン選択などが利用される。ε貪欲法は、行動をランダムに選択し、価値関数を推定する手法である。ボルツマン選択は、取りうる行動すべてに対応する価値関数の値に基づき、相対的に価値が低い行動を選択しにくくして、価値関数を推定する手法である。
【００１５】
一方で、行動を細かく調整して制御対象１１０を効率よく制御するために、強化学習において、行動を連続量として扱うことが求められる場合がある。行動を連続量として扱う場合、価値関数を推定する手法として、例えば、ε貪欲法やノイズ項を用いる手法などを利用することが考えられる。ノイズ項を用いる手法は、現状の価値関数の値から最適であると判断される最適行動にノイズ項を加えた行動を選択し、価値関数を推定する手法である。
【００１６】
しかしながら、強化学習において行動を連続量として扱う場合、価値関数を推定する際、制御対象１１０に対する行動が、相対的に価値が低い行動になってしまう。相対的に価値が低い行動は、例えば、最適行動より一定以上に価値が低い行動である。例えば、行動を連続量として扱う場合、ε貪欲法やノイズ項を用いる手法などは、制御対象１１０に対する行動が、相対的に価値が低い行動になることを抑制することができない。
【００１７】
具体的には、ある状態ｓのときの制御対象１１０に対する行動ａと、行動ａの価値Ｑ（ｓ，ａ）との関係を表すグラフ１２０の尖度が高くなるほど、行動ａの変化に対する行動ａの価値Ｑ（ｓ，ａ）の変化が大きくなり、相対的に価値が低い行動になる可能性が向上してしまう。例えば、ノイズ項を用いる手法により、行動ａを、最適行動に近い範囲１３０内で変化させても、最適行動より一定以上に価値が低い行動を選択してしまうことがある。
【００１８】
結果として、制御対象１１０を効率よく制御することができず、制御対象１１０に不利益を招くことがある。例えば、制御対象１１０が無人飛行体であれば、制御対象１１０に対する行動が、安定して飛行することが難しい行動になる場合があり、制御対象１１０が落下してしまうことがある。また、例えば、制御対象１１０が対戦型のゲームであれば、制御対象１１０に対する行動が、ゲームの状況が著しく不利になる行動になる場合があり、その後ゲームの状況を挽回することが難しくなることがある。
【００１９】
また、例えば、ボルツマン選択を、行動を連続量として扱う場合に適用することが考えられる。しかしながら、ボルツマン選択では、連続量である行動すべてに対応する価値関数の値を算出することになり、処理量の膨大化を招くため、ボルツマン選択を、行動を連続量として扱う場合に適用することは難しい。
【００２０】
また、強化学習において、例えば、観測した制御対象１１０の状態と、制御対象１１０に対する現在までの行動と、推定した価値関数とに基づき、価値関数の値が最適値になるような次の行動を決定することが行われる。最適値は、例えば、最大値である。したがって、価値関数を推定する際、価値関数の値が最適値に近くなる範囲ほど、精度よく推定することが望まれる傾向がある。
【００２１】
そこで、本実施の形態では、価値関数の値と、最適行動に対応する価値関数の値との差分が閾値以下であることを表す条件式を含む論理式に限量子消去を適用し、行動の範囲を限定する行動決定方法について説明する。これにより、行動決定方法は、相対的に価値が低い行動が、制御対象１１０に対する行動に決定されないようにすることができる。
【００２２】
限量子消去は、ＱＥ（Ｑｕａｎｔｉｆｉｅｒ  Ｅｌｉｍｉｎａｔｉｏｎ）とも呼ばれる。以下の説明では、限量子消去を「ＱＥ」と表記する場合がある。限量子消去は、限量子を用いて記述された論理式を、限量子を用いない論理式に変換することである。限量子は、全称限量子（∀）と存在限量子（∃）とである。全称限量子（∀）は、変数を対象とし、変数がどんな値でも論理式が成立すると修飾する記号である。存在限量子（∃）は、変数を対象とし、論理式が成立する変数の値が１つ以上存在すると修飾する記号である。
【００２３】
図１において、行動決定装置１００は、価値関数に関する最適行動を求める。価値関数は、例えば、状態行動価値関数である。状態行動価値関数は、例えば、行動を表す変数についての多項式、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる関数である。最適行動は、現状の価値関数に基づき最適であると判断される行動である。行動決定装置１００は、例えば、所定時間ごとに制御対象１１０の状態を観測して記憶する。行動決定装置１００は、所定時間ごとの制御対象１１０に対する行動を記憶する。行動決定装置１００は、記憶した状態と行動と価値関数とに基づいて、最適行動を求める。最適行動を求める具体例は、例えば、実施例に後述する。
【００２４】
行動決定装置１００は、価値関数の値と最適行動に対応する価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対してＱＥを用いて、行動の範囲を特定する。行動の範囲は、分断された２以上の範囲の集合であってもよい。行動決定装置１００は、例えば、ＱＥを用いて、価値関数の値と最適行動に対応する価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式を、行動を表す変数のみを含む論理式に変形し、変形した論理式が示す行動を表す変数の範囲を特定する。行動の範囲を特定する具体例は、例えば、実施例に後述する。
【００２５】
行動決定装置１００は、特定した範囲から次の行動を決定する。行動決定装置１００は、例えば、特定した範囲に含まれる行動をランダムに選択し、次の行動に決定する。次の行動を決定する具体例は、例えば、実施例に後述する。これにより、行動決定装置１００は、行動が連続量であっても、行動の価値の観点から行動の範囲を限定した上で、行動を選択して試行することができ、行動を試行した結果を価値関数に反映可能にすることができる。
【００２６】
このため、行動決定装置１００は、行動が連続量であっても、価値関数を推定する際、相対的に価値が低い行動を、制御対象１１０に対する行動として決定してしまうことを防止することができる。結果として、行動決定装置１００は、制御対象１１０を効率よく制御することができ、制御対象１１０に不利益を招くことを防止することができる。行動決定装置１００は、例えば、制御対象１１０が無人飛行体であれば、制御対象１１０に対する行動が、安定して飛行することが難しい行動になることを防止し、制御対象１１０が落下してしまうことを防止することができる。
【００２７】
また、行動決定装置１００は、相対的に価値が低い行動よりも、相対的に価値が高い行動を試行することができ、価値関数の値が最適値に近くなる範囲について精度よく推定することができ、価値関数を効率よく推定することができる。結果として、行動決定装置１００は、価値関数を推定する際にかかる時間や処理量の低減化を図ることができる。
【００２８】
また、論理式は、さらに、行動が取りうる範囲を表す制約条件を含んでもよい。これにより、行動決定装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して、次の行動を決定可能にすることができる。このため、行動決定装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。
【００２９】
ここでは、行動決定装置１００が、行動の価値の観点から行動の範囲を限定する場合について説明したが、これに限らない。例えば、行動決定装置１００が、さらに、現状の最適行動から遠い位置に、現状の最適行動よりも適切な行動があるか否かの観点から、行動の範囲を限定する場合があってもよい。
【００３０】
（行動決定装置１００のハードウェア構成例）
次に、図２を用いて、行動決定装置１００のハードウェア構成例について説明する。
【００３１】
図２は、行動決定装置１００のハードウェア構成例を示すブロック図である。図２において、行動決定装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、記録媒体Ｉ／Ｆ２０４と、記録媒体２０５とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００３２】
ここで、ＣＰＵ２０１は、行動決定装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。メモリ２０２は、図３に後述する係数配列Ｗや図４に後述する履歴テーブル４００を記憶してもよい。
【００３３】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどを採用することができる。
【００３４】
記録媒体Ｉ／Ｆ２０４は、ＣＰＵ２０１の制御に従って記録媒体２０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ２０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体２０５は、記録媒体Ｉ／Ｆ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体２０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体２０５は、行動決定装置１００から着脱可能であってもよい。記録媒体２０５は、メモリ２０２の代わりに、図３に後述する係数配列Ｗや図４に後述する履歴テーブル４００を記憶してもよい。
【００３５】
行動決定装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、スピーカー、マイク、プリンタ、スキャナなどを有してもよい。また、行動決定装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を複数有していてもよい。また、行動決定装置１００は、記録媒体Ｉ／Ｆ２０４や記録媒体２０５を有していなくてもよい。
【００３６】
（係数配列Ｗの記憶内容）
次に、図３を用いて、係数配列Ｗの記憶内容について説明する。係数配列Ｗは、例えば、図２に示した行動決定装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００３７】
図３は、係数配列Ｗの記憶内容の一例を示す説明図である。図３に示すように、係数配列Ｗは、係数のフィールドを有する。係数配列Ｗは、係数ごとに各フィールドに情報を設定することにより、係数情報が記憶される。
【００３８】
係数のフィールドには、状態行動価値関数を規定する係数が設定される。
【００３９】
（履歴テーブル４００の記憶内容）
次に、図４を用いて、履歴テーブル４００の記憶内容について説明する。履歴テーブル４００は、例えば、図２に示した行動決定装置１００のメモリ２０２や記録媒体２０５などの記憶領域により実現される。
【００４０】
図４は、履歴テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、履歴テーブル４００は、時点のフィールドに対応付けて、状態と、行動と、利得とのフィールドを有する。履歴テーブル４００は、時点ごとに各フィールドに情報を設定することにより、履歴情報が記憶される。
【００４１】
時点のフィールドには、所定時間ごとの時点が設定される。状態のフィールドには、時点における制御対象１１０の状態が設定される。行動のフィールドには、時点における制御対象１１０に対する行動が設定される。利得のフィールドには、時点における制御対象１１０に対する行動に対応する利得が設定される。
【００４２】
（行動決定装置１００の機能的構成例）
次に、図５を用いて、行動決定装置１００の機能的構成例について説明する。
【００４３】
図５は、行動決定装置１００の機能的構成例を示すブロック図である。行動決定装置１００は、記憶部５００と、設定部５０１と、状態取得部５０２と、行動決定部５０３と、利得取得部５０４と、更新部５０５と、出力部５０６とを含む。
【００４４】
記憶部５００は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域によって実現される。以下では、記憶部５００が、行動決定装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部５００が、行動決定装置１００とは異なる装置に含まれ、記憶部５００の記憶内容が行動決定装置１００から参照可能である場合があってもよい。
【００４５】
設定部５０１〜出力部５０６は、制御部となる機能である。設定部５０１〜出力部５０６は、具体的には、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２や記録媒体２０５などの記憶領域に記憶される。
【００４６】
記憶部５００は、制御対象１１０の行動と、状態と、利得とを蓄積する。記憶部５００は、例えば、制御対象１１０の行動と、状態と、利得とを、図４に示した履歴テーブル４００を用いて記憶する。これにより、記憶部５００は、制御対象１１０の行動と、状態と、利得とを、各処理部に参照させることができる。
【００４７】
記憶部５００は、価値関数を記憶する。価値関数は、状態行動価値関数である。状態行動価値関数は、例えば、行動を表す変数についての多項式、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる。行動を表す変数についての多項式は、非線形であってもよい。行動を表す変数についての多項式は、例えば、行動を表す変数の二乗を含んでもよい。記憶部５００は、例えば、状態行動価値関数の係数を記憶する。記憶部５００は、具体的には、図３に示した係数配列Ｗを記憶する。これにより、記憶部５００は、状態行動価値関数を、各処理部に参照させることができる。
【００４８】
設定部５０１は、各処理部が用いる変数などを初期化する。設定部５０１は、例えば、利用者の操作入力に基づいて、状態行動価値関数の係数を初期化する。設定部５０１は、例えば、利用者の操作入力に基づいて、制約条件を設定する。設定部５０１の動作例は、例えば、実施例に後述する。これにより、設定部５０１は、まだ更新部５０５が状態行動価値関数の係数を推定していない時点において、状態行動価値関数を使用可能にすることができる。また、設定部５０１は、制約条件を、各処理部に参照させることができる。
【００４９】
状態取得部５０２は、状態に関する入力値を取得する。行動決定装置１００は、例えば、所定時間ごとに制御対象１１０の状態を示す値を観測し、状態に関する入力値として取得し、観測した時点に対応付けて記憶部５００に記憶する。状態取得部５０２の動作例は、例えば、実施例に後述する。これにより、状態取得部５０２は、行動決定部５０３や更新部５０５に、状態に関する入力値を参照させることができる。
【００５０】
行動決定部５０３は、ＱＥを用いて状態行動価値関数に関する最適行動を求める。最適行動は、現状の状態行動価値関数に基づき最適と判断される行動である。最適行動は、例えば、状態行動価値関数を最適値にする行動である。最適値は、例えば、最大値である。
【００５１】
行動決定部５０３は、例えば、ＱＥを用いて、設定部５０１が初期化した係数、または、更新部５０５が推定した係数を用いた状態行動価値関数に関する最適行動を求める。最適行動は、状態行動価値関数を最適値にする行動である。行動決定部５０３は、具体的には、所定のタイミングまでに取得した、状態に関する入力値、行動に関する入力値、および、当該入力値に対応する利得に基づいて、更新部５０５が推定した係数を用いた状態行動価値関数に関する最適行動を求める。
【００５２】
行動決定部５０３は、より具体的には、取得した状態に関する入力値、および、行動に関する入力値に基づいて、状態行動価値関数を含む論理式に対してＱＥを用いて、状態行動価値関数の値が取りうる範囲を特定する。次に、行動決定部５０３は、特定した範囲を含む論理式に対してＱＥを用いて、状態行動価値関数の最適値を求める。そして、行動決定部５０３は、求めた最適値を含む論理式に対してＱＥを用いて、状態行動価値関数に関する最適行動を求める。
【００５３】
また、行動決定部５０３は、最適化ソルバを用いて最適行動を求めてもよい。行動決定部５０３は、例えば、状態行動価値関数が行動に対して線形である場合、線形計画問題の計算ソフトウェアを用いて、最適行動を求めてもよい。また、行動決定部５０３は、例えば、状態行動価値関数が凸形状である場合、最急勾配法の計算ソフトウェアを用いて、最適行動を求めてもよい。また、行動決定部５０３は、行動の変数が１つであれば、微分により最適行動を求めてもよい。
【００５４】
また、行動決定部５０３は、ＱＥを用いて、制約条件を適用した、更新部５０５が推定した係数を用いた状態行動価値関数に関する最適行動を求めてもよい。制約条件は、例えば、行動が取りうる範囲を表す条件式である。これにより、行動決定部５０３は、制約条件を満たす、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【００５５】
その後、行動決定部５０３は、求めた最適行動に基づいて制御対象１１０に対する次の行動を決定する。行動決定部５０３は、例えば、状態行動価値関数の値と最適行動に対応する状態行動価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対してＱＥを用いて、行動の範囲を特定し、特定した範囲から次の行動を決定する。論理式は、例えば、後述する式（５）である。行動決定部５０３は、具体的には、ＱＥを用いて、状態行動価値関数の値と最適行動に対応する状態行動価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式を、行動を表す変数を含む論理式に変形し、行動を表す変数の範囲を特定する。
【００５６】
そして、行動決定部５０３は、具体的には、ランダムに行動を選択し、選択した行動が、特定した範囲内であれば、選択した行動を次の行動に決定する。これにより、行動決定部５０３は、制御対象１１０に対して好ましい行動を決定し、制御対象１１０に不利益が生じることを防止することができ、制御対象１１０を効率よく制御可能にすることができる。
【００５７】
行動決定部５０３は、具体的には、特定した範囲に対してＱＥを用いて、次の行動を決定してもよい。これにより、行動決定部５０３は、特定した範囲の大きさに関わらず、次の行動を決定することができ、特定した範囲が小さくなっても次の行動を決定する際にかかる処理量の低減化を図ることができる。
【００５８】
状態行動価値関数の値と最適行動に対応する状態行動価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式は、さらに、行動が取りうる範囲を表す条件式を含んでもよい。論理式は、例えば、後述する式（６）や式（８）である。これにより、行動決定部５０３は、制約条件を満たす、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【００５９】
状態行動価値関数の値と最適行動に対応する状態行動価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式は、さらに、選択する行動と最適行動とのユークリッド距離が閾値より大きいことを表す条件式を含んでもよい。論理式は、例えば、後述する式（７）である。これにより、行動決定部５０３は、現状最適と判断された最適行動とは一定以上離れており、かつ、制御対象１１０に対して好ましい次の行動を決定し、状態行動価値関数を精度よく推定可能にすることができる。
【００６０】
また、行動決定部５０３は、求めた最適行動を、制御対象１１０に対する次の行動に決定してもよい。行動決定部５０３は、例えば、一定確率で、求めた最適行動を、制御対象１１０に対する次の行動に決定してもよい。行動決定部５０３は、例えば、一定回数、行動の範囲を特定して次の行動を決定した後に、求めた最適行動を、制御対象１１０に対する次の行動に決定してもよい。これにより、行動決定部５０３は、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【００６１】
行動決定部５０３は、行動に関する入力値を記憶部５００に記憶する。行動決定部５０３は、例えば、決定した次の行動を示す値を、行動に関する入力値として記憶部５００に記憶する。行動決定部５０３の動作例は、例えば、実施例に後述する。これにより、行動決定部５０３は、制御対象１１０に対する次回の行動を決定する際に、制御対象１１０に対する次の行動を参照可能にすることができる。
【００６２】
利得取得部５０４は、行動に関する入力値に対応する利得を取得する。利得は、例えば、報酬である。また、利得は、例えば、コストにマイナスをかけた値であり、報酬として扱うことが可能な値であってもよい。利得取得部５０４は、制御対象１１０に対する行動が行われる都度、行動が行われてから所定時間後の制御対象１１０における利得を取得する。利得取得部５０４の動作例は、例えば、実施例に後述する。これにより、利得取得部５０４は、利得を、更新部５０５に参照させることができる。
【００６３】
更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、状態行動価値関数の係数を推定する。更新部５０５は、状態行動価値関数の係数を推定する数式に最適化問題が含まれない場合、ＱＥを用いずに状態行動価値関数の係数を推定する。最適化問題が含まれない数式は、例えば、ＳＡＲＳＡを参照することができる。これにより、更新部５０５は、状態行動価値関数の係数を推定し、状態行動価値関数をより精度よく推定することができる。
【００６４】
更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、ＱＥを用いて、状態行動価値関数の係数を推定する。更新部５０５は、状態行動価値関数の係数を推定する数式に最適化問題が含まれる場合、ＱＥを用いて状態行動価値関数の係数を推定する。
【００６５】
具体的には、更新部５０５が、Ｑ学習を用いる場合がある。この場合、更新部５０５は、取得した状態に関する入力値、行動に関する入力値に基づいて、状態行動価値関数を含む論理式に対してＱＥを用いて、状態行動価値関数の値が取りうる範囲を特定する。次に、更新部５０５は、特定した範囲を含む論理式に対してＱＥを用いて、状態行動価値関数の最適値を求める。そして、更新部５０５は、取得した状態に関する入力値、行動に関する入力値、および利得に基づいて、求めた最適値を用いて状態行動価値関数の係数を推定する。
【００６６】
また、具体的には、更新部５０５が、Ｑ学習以外、例えば、ＳＡＲＳＡを用いる場合があってもよい。この場合、更新部５０５は、状態行動価値関数の最適値を求めず、状態行動価値関数の係数を推定する。更新部５０５の動作例は、例えば、実施例に後述する。これにより、更新部５０５は、例えば、Ｑ学習を用いる場合、状態行動価値関数の係数を推定し、状態行動価値関数をより精度よく推定することができる。
【００６７】
出力部５０６は、行動決定部５０３が決定した行動を制御対象１１０に対して出力する。これにより、出力部５０６は、制御対象１１０を制御することができる。
【００６８】
出力部５０６は、各処理部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ２０３による外部装置への送信、または、メモリ２０２や記録媒体２０５などの記憶領域への記憶である。これにより、出力部５０６は、各機能部の処理結果を利用者に通知可能にし、行動決定装置１００の管理や運用、例えば、行動決定装置１００の設定値の更新などを支援することができ、行動決定装置１００の利便性の向上を図ることができる。
【００６９】
（実施例における強化学習の流れ）
次に、図６〜図１０を用いて、実施例における強化学習の流れについて説明する。
【００７０】
図６〜図１０は、実施例における強化学習の流れを示す説明図である。図６の例では、行動決定装置１００が、状態行動価値関数を最大化する最適行動を求める場合について説明する。この場合、行動決定装置１００は、表６００に示すように、左側の論理式が入力されると右側の論理式を出力するようなＱＥを用いて、状態行動価値関数に関する最適行動を求める。
【００７１】
ＱＥは、限量子を用いて記述された論理式を、限量子を用いない論理式に変換することである。限量子は、全称限量子（∀）と存在限量子（∃）とである。全称限量子（∀）は、変数を対象とし、変数がどんな値でも論理式が成立すると修飾する記号である。存在限量子（∃）は、変数を対象とし、論理式が成立する変数の値が１つ以上存在すると修飾する記号である。ＱＥは、例えば、下記参考文献１〜３を参照することができる。
【００７２】
参考文献１：Ｂａｓｕ，  Ｓａｕｇａｔａ，  Ｒｉｃｈａｒｄ  Ｐｏｌｌａｃｋ，  ａｎｄ  Ｍａｒｉｅ−Ｆｒａｎｃｏｉｓｅ  Ｒｏｙ．  “Ａｌｇｏｒｉｔｈｍｓ  ｉｎ  ｒｅａｌ  ａｌｇｅｂｒａｉｃ  ｇｅｏｍｅｔｒｙ．”  Ｖｏｌ．  ２００３３．  Ｓｐｒｉｎｇｅｒ，  １９９６．
【００７３】
参考文献２：Ｃａｖｉｎｅｓｓ，  Ｂｏｂ  Ｆ．，  ａｎｄ  Ｊｅｒｅｍｙ  Ｒ．  Ｊｏｈｎｓｏｎ，  ｅｄｓ．  “Ｑｕａｎｔｉｆｉｅｒ  ｅｌｉｍｉｎａｔｉｏｎ  ａｎｄ  ｃｙｌｉｎｄｒｉｃａｌ  ａｌｇｅｂｒａｉｃ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ．”  Ｓｐｒｉｎｇｅｒ  Ｓｃｉｅｎｃｅ  ＆  Ｂｕｓｉｎｅｓｓ  Ｍｅｄｉａ，  ２０１２．
【００７４】
参考文献３：Ｈｉｔｏｓｈｉ  Ｙａｎａｍｉ，  “Ｍｕｌｔｉ−ｏｂｊｅｃｔｉｖｅ  ｄｅｓｉｇｎ  ｂａｓｅｄ  ｏｎ  ｓｙｍｂｏｌｉｃ  ｃｏｍｐｕｔａｔｉｏｎ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｈａｒｄ  ｄｉｓｋ  ｓｌｉｄｅｒ  ｄｅｓｉｇｎ．”  ＪＭＩ２００９Ｂ−８  −  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｔｈ−ｆｏｒ−Ｉｎｄｕｓｔｒｙ．
【００７５】
ここで、表６００の１段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）とを含む論理式を、関数ｙ＝ｆ（ｘ）の実行可能領域Ｔ（ｙ）を示す論理式に変換可能であることを示している。実行可能領域Ｔ（ｙ）は、関数ｙ＝ｆ（ｘ）が取りうる範囲である。表６００の２段目は、ＱＥにより、実行可能領域Ｔ（ｙ）を含み、ｙより大きいｚが存在しないという条件を含む論理式を、関数ｙ＝ｆ（ｘ）の最大値Ｐ（ｙ）を示す論理式に変換可能であることを示している。
【００７６】
表６００の３段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）と関数ｙ＝ｆ（ｘ）の最大値Ｐ（ｙ）を含む論理式を、関数ｙ＝ｆ（ｘ）の最適解Ｘ（ｘ）を示す論理式に変換可能であることを示している。最適解は、関数ｙ＝ｆ（ｘ）を最大値Ｐ（ｙ）にすることができる解である。
【００７７】
行動決定装置１００は、表６００に示すようなＱＥを、状態行動価値関数に適用する。行動決定装置１００は、例えば、表６００の関数ｆ（ｘ）を、状態行動価値関数を示す下記式（１）に置き換える。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａは、行動である。ｗiは、係数である。ｗiは、係数配列Ｗにより記憶される。ｗiΦi（ｓ，ａ）は、係数がかかる状態と行動とを表す変数を含む項である。Φi（ｓ，ａ）は、ｓとａとの２次以下の単項式により、または、ｓに値を代入した結果ａについての多項式になるように、状態行動価値関数を表現するための項である。
【００７８】
【数１】
2020091611.tif 000003
【００７９】
これにより、行動決定装置１００は、状態行動価値関数を示す上記式（１）を含む論理式と等価であり、限量子を含まず、行動ａを含まない論理式を求めることができ、状態行動価値関数を示す上記式（１）の最適行動、または最適値を求めることができる。このため、行動決定装置１００は、行動ａが連続量である場合、強化学習を実現することができる。
【００８０】
さらに、行動決定装置１００は、状態行動価値関数を示す上記式（１）の最適値を求めることができるため、例えば、強化学習手法としてＱ学習を用いる場合、下記式（２）を用いて、状態行動価値関数を示す上記式（１）の係数ｗiを更新し、状態行動価値関数を推定することができる。行動決定装置１００は、例えば、下記式（２）の下線部に、状態行動価値関数を示す上記式（１）の最適値を代入可能になる。ここで、ｔは、時点である。ｓtは、時点ｔにおける状態である。ａtは、時点ｔにおける行動である。ｒtは、時点ｔにおける行動ａtに対する利得である。
【００８１】
【数２】
2020091611.tif 000004
【００８２】
さらに、行動決定装置１００は、制約条件Ｃ（ｓ，ａ）を用いることができる。行動決定装置１００は、例えば、下記式（３）および下記式（４）などを制約条件Ｃ（ｓ，ａ）に用いることにより、行動についての制約条件を考慮して、強化学習を実現することができる。下記式（３）および下記式（４）のａ1やａ2は、ある時点における行動ａを表す複数の変数ａ1，ａ1，・・・，ａnに含まれる変数でる。
【００８３】
【数３】
2020091611.tif 000005
【００８４】
【数４】
2020091611.tif 000006
【００８５】
これにより、行動決定装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。このため、行動決定装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。次に、図７の説明に移行する。
【００８６】
図６の例では、行動決定装置１００が、状態行動価値関数を最大化する最適行動を求める場合について説明した。これに対し、図７の例では、行動決定装置１００が、状態行動価値関数を最小化する最適行動を求める場合について説明する。この場合、行動決定装置１００は、表７００に示すように、左側の論理式を入力されると右側の論理式を出力するようなＱＥを用いて、状態行動価値関数に関する最適行動を求める。
【００８７】
ここで、表７００の１段目は、表６００の１段目と同様であるため、説明を省略する。表７００の２段目は、ＱＥにより、実行可能領域Ｔ（ｙ）を含み、ｙより小さいｚが存在しないという条件を含む論理式を、関数ｙ＝ｆ（ｘ）の最小値Ｐ（ｙ）を示す論理式に変換可能であることを示している。
【００８８】
表７００の３段目は、ＱＥにより、関数ｙ＝ｆ（ｘ）と制約条件Ｃ（ｘ）と関数ｙ＝ｆ（ｘ）の最小値Ｐ（ｙ）を含む論理式を、関数ｙ＝ｆ（ｘ）の最適解Ｘ（ｘ）を示す論理式に変換可能であることを示している。最適解は、関数ｙ＝ｆ（ｘ）を最小値Ｐ（ｙ）にすることができる解である。
【００８９】
行動決定装置１００は、表７００に示すようなＱＥを、状態行動価値関数に適用する。表７００に示すようなＱＥを状態行動価値関数に適用する具体例は、表６００に示すようなＱＥを状態行動価値関数に適用する具体例と同様であるため、説明を省略する。
【００９０】
行動決定装置１００は、状態を表す変数と行動を表す変数との両方についての多項式により状態行動価値関数を表現してもよい。この場合、行動決定装置１００は、ＱＥにより状態行動価値関数に関する最適行動を求める数式を事前に求めておけば、状態行動価値関数に関する最適行動を求める都度ＱＥを用いなくてもよく、処理量を低減することができる。最適行動を求める数式は、具体的には、後述する式（１１）〜式（１３）により求めることができる。
【００９１】
ここでは、行動決定装置１００が、ＱＥを用いて最適行動を求める場合について説明したが、これに限らない。例えば、行動決定装置１００が、最適化ソルバを用いて最適行動を求める場合があってもよい。次に、図８の説明に移行する。
【００９２】
図８の例では、行動決定装置１００が、求めた最適行動に基づき、探索行動を決定する範囲を特定する場合について説明する。探索行動は、状態行動価値関数を推定するために試行される行動である。探索行動は、最適行動でなくてもよい。この場合、行動決定装置１００は、ＱＥを用いて、表８００に示す、状態行動価値関数の範囲８０１に対応する行動の範囲８０２を、探索行動を決定する範囲として特定する。
【００９３】
表８００の横軸は、行動である。表８００の縦軸は、状態行動価値関数の値である。行動に対する状態行動価値関数の値は、曲線８１０上に存在する。範囲８０１は、状態行動価値関数の値と状態行動価値関数の最適値との差分が閾値より小さくなる状態行動価値関数の範囲である。
【００９４】
行動決定装置１００は、具体的には、範囲８０１を表す下記式（５）にＱＥを適用する。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａ＝ａ1，・・・，ａnは、行動である。ａt*＝ａ1*，・・・，ａn*は、最適行動である。ｕは、閾値である。
【００９５】
【数５】
2020091611.tif 000007
【００９６】
これにより、行動決定装置１００は、範囲８０１を表す上記式（５）の論理式と等価であり、限量子を含まず、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求めることができる。論理式Ψ（ａ1，・・・，ａn）は、行動ａ＝ａ1，・・・，ａnの範囲を表す論理式である。上記式（５）のような１階述語論理式にＱＥを適用可能なことについては、例えば、上記参考文献１〜３を参照することができる。
【００９７】
このため、行動決定装置１００は、探索行動に対応する状態行動価値関数の値を、状態行動価値関数の最適値から閾値ｕまでの範囲に収めるためには、探索行動をどんな範囲から選択すればよいかを判定可能にすることができる。結果として、行動決定装置１００は、探索行動が、最適行動より一定以上に価値が低いような行動になることを防止することができる。
【００９８】
さらに、行動決定装置１００は、制約条件Ｃ（ｓ，ａ）を用いることができる。行動決定装置１００は、例えば、上記式（５）の論理式に代わり下記式（６）の論理式を用いて、行動についての制約条件Ｃ（ｓ，ａ）を考慮して、行動ａ＝ａ1，・・・，ａnを決定する範囲を表す論理式Ψ（ａ1，・・・，ａn）を求めることができる。下記式（６）のような１階述語論理式にＱＥを適用可能なことについては、例えば、上記参考文献１〜３を参照することができる。制約条件Ｃ（ｓ，ａ）は、状態ｓと行動ａとを用いて、行動ａが取りうる範囲を表す条件である。
【００９９】
【数６】
2020091611.tif 000008
【０１００】
これにより、行動決定装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して、行動ａ＝ａ1，・・・，ａnを決定する範囲を表す論理式を求めることができる。このため、行動決定装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。次に、図９の説明に移行する。
【０１０１】
図９の例では、行動決定装置１００が、求めた最適行動から一定以上離れた、探索行動を決定する範囲を特定する場合について説明する。この場合、行動決定装置１００は、ＱＥを用いて、表９００に示す、状態行動価値関数の範囲９０１に対応する行動の範囲９０２のうち、行動の範囲９０３を除外した行動の範囲を、探索行動を決定する範囲として特定する。
【０１０２】
表９００の横軸は、行動である。表９００の縦軸は、状態行動価値関数の値である。行動に対する状態行動価値関数の値は、曲線９１０上に存在する。範囲９０１は、状態行動価値関数の値と状態行動価値関数の最適値との差分が閾値より小さくなる状態行動価値関数の範囲である。範囲９０３は、行動と最適行動とのユークリッド距離が閾値以下になる行動の範囲である。
【０１０３】
行動決定装置１００は、具体的には、範囲９０１を表す条件式と、範囲９０３以外を表す条件式とを含む下記式（７）にＱＥを適用する。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａ＝ａ1，・・・，ａnは、行動である。ａt*＝ａ1*，・・・，ａn*は、最適行動である。ｕは、状態行動価値関数の値に対する閾値である。ｒは、行動間の距離に関する閾値である。
【０１０４】
【数７】
2020091611.tif 000009
【０１０５】
これにより、行動決定装置１００は、上記式（７）の論理式と等価であり、限量子を含まず、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求めることができる。論理式Ψ（ａ1，・・・，ａn）は、行動ａ＝ａ1，・・・，ａnの範囲を表す論理式である。上記式（７）のような１階述語論理式にＱＥを適用可能なことについては、例えば、上記参考文献１〜３を参照することができる。
【０１０６】
このため、行動決定装置１００は、探索行動に対応する状態行動価値関数の値を、状態行動価値関数の最適値から閾値ｕまでの範囲に収めるためには、探索行動をどんな範囲から選択すればよいかを判定可能にすることができる。結果として、行動決定装置１００は、探索行動が、最適行動より一定以上に価値が低いような行動になることを防止することができる。
【０１０７】
また、行動決定装置１００は、現状最適と判断された最適行動とは一定以上離れており、かつ、制御対象１１０に対して好ましい探索行動を決定することができる。このため、行動決定装置１００は、現状最適と判断された最適行動から離れた位置に、現状最適と判断された最適行動よりも適切である行動がある場合、当該行動を試行することができ、当該行動の価値を状態行動価値関数に反映することができる。結果として、行動決定装置１００は、状態行動価値関数を精度よく推定することができる。
【０１０８】
さらに、行動決定装置１００は、制約条件Ｃ（ｓ，ａ）を用いることができる。行動決定装置１００は、例えば、上記式（７）の論理式に代わり下記式（８）の論理式を用いて、行動についての制約条件Ｃ（ｓ，ａ）を考慮して、行動ａ＝ａ1，・・・，ａnが取りうる範囲を表す論理式Ψ（ａ1，・・・，ａn）を求めることができる。下記式（８）のような１階述語論理式にＱＥを適用可能なことについては、例えば、上記参考文献１〜３を参照することができる。制約条件Ｃ（ｓ，ａ）は、状態ｓと行動ａとを用いて、行動ａが取りうる範囲を表す条件である。
【０１０９】
【数８】
2020091611.tif 000010
【０１１０】
これにより、行動決定装置１００は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して、行動ａ＝ａ1，・・・，ａnが取りうる範囲を表す論理式を求めることができる。このため、行動決定装置１００は、様々な種類の制御対象１１０に強化学習を適用可能にし、強化学習の利便性の向上を図ることができる。制約条件を使用可能にする具体例は、例えば、実施例に後述する。次に、図１０の説明に移行する。
【０１１１】
図１０の例では、行動決定装置１００が、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）から、探索行動を決定する場合について説明する。図１０の例では、論理式Ψ（ａ1，・・・，ａn）が表す行動の範囲は、範囲１０００である。論理式Ψ（ａ1，・・・，ａn）が表す行動の範囲は、分断された２以上の範囲の集合であってもよい。
【０１１２】
この場合、行動決定装置１００は、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）を満たす行動をランダムに選択し、探索行動に決定する。これにより、行動決定装置１００は、探索行動に対応する状態行動価値関数の値を、状態行動価値関数の最適値から閾値ｕまでの範囲に収めることができ、探索行動として相対的に価値が低い行動が決定されることを防止することができる。
【０１１３】
また、行動決定装置１００は、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）についてＱＥを適用し、探索行動を決定してもよい。これにより、行動決定装置１００は、特定した行動の範囲の大きさに関わらず、探索を決定する際にかかる処理量の低減化を図ることができる。探索行動を決定する具体例は、例えば、実施例に後述する。
【０１１４】
（実施例における強化学習の具体例）
次に、実施例における強化学習の具体例について説明する。ここでは、実施例において、行動決定装置１００が、最適行動ａt*に基づいて探索行動ａtを決定し、制御対象１１０を制御する強化学習の具体例について説明する。
【０１１５】
実施例において、設定部５０１は、上記式（１）において、状態行動価値関数を規定するΦi（ｓ，ａ）を設定する。設定部５０１は、例えば、利用者の操作入力に基づいて、Φi（ｓ，ａ）を設定する。設定部５０１は、具体的には、下記式（９）のように、Φi（ｓ，ａ）をａについての多項式として設定する。ｄi,jは、下記式（１０）により定義される。
【０１１６】
【数９】
2020091611.tif 000011
【０１１７】
【数１０】
2020091611.tif 000012
【０１１８】
例えば、設定部５０１が、ｓとａとの２次以下の単項式により、Φi（ｓ，ａ）を設定する場合がある。この場合、例えば、「Φ1＝１，Φ2＝ｓ1，Φ3＝ｓ2，・・・，Φn+2＝ａ1，・・・」が設定される。
【０１１９】
また、例えば、設定部５０１が、ｓに値を代入した結果、ａについての多項式になるように、Φi（ｓ，ａ）を設定する場合がある。この場合、例えば、「Φ1＝１，Φ2＝ｅｘｐ（ｓ1），・・・，Φn+2＝ａ1＊ｅｘｐ（ｓ2），・・・」が設定される。これにより、設定部５０１は、状態行動価値関数を多項式で表現し、状態行動価値関数を使用可能にすることができ、多項式により行動を連続量で扱うことができるようにすることができる。
【０１２０】
また、設定部５０１は、制約条件Ｃ（ｓ，ａ）を設定する。設定部５０１は、例えば、利用者の操作入力に基づいて制約条件Ｃ（ｓ，ａ）を設定する。制約条件Ｃ（ｓ，ａ）は、例えば、ｓ，ａに関する一階述語論理式の形式で規定される。制約条件Ｃ（ｓ，ａ）は、ａについての多項式として規定される。これにより、設定部５０１は、強化学習において制約条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。
【０１２１】
設定部５０１は、係数配列Ｗを初期化する。設定部５０１は、例えば、係数配列Ｗの要素である係数ｗiを、−１〜１の範囲のランダムな値で初期化する。設定部５０１は、利用者の操作入力に基づいて、係数配列Ｗの要素である係数ｗiを、制御対象１１０に関するモデルにより初期化してもよい。
【０１２２】
設定部５０１は、時点を示す変数ｔを初期化する。設定部５０１は、例えば、時点を示す変数ｔ＝０と設定する。変数ｔは、例えば、単位時間ごとの時点を示す変数である。変数ｔは、例えば、単位時間が経過する都度インクリメントされる変数である。
【０１２３】
その後、状態取得部５０２と、行動決定部５０３と、利得取得部５０４と、更新部５０５とが、以下に示すような処理を繰り返すことになる。
【０１２４】
実施例において、状態取得部５０２は、単位時間ごとに、時点ｔの制御対象１１０の状態ｓtを観測し、履歴テーブル４００を用いて記憶する。
【０１２５】
実施例において、行動決定部５０３は、単位時間ごとに、時点ｔの制御対象１１０の状態ｓtを履歴テーブル４００から読み出し、制御対象１１０に対する行動を決定する。行動決定部５０３は、例えば、ＱＥを用いて、状態行動価値関数Ｑ（ｓt，ａ）を最大化する最適行動ａt*を決定し、最適行動ａt*に基づいて探索行動ａtを決定する。
【０１２６】
まず、行動決定部５０３は、具体的には、下記式（１１）の右辺の論理式にＱＥを適用し、下記式（１１）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）の値が取りうる範囲Ｔ（Ｆ）を特定する。状態行動価値関数Ｑ（ｓt，ａ）は、ｓtとしてｓtが代入可能であるため、ａについての多項式により表現される。下記式（１１）は、表６００の１段目に対応する。
【０１２７】
【数１１】
2020091611.tif 000013
【０１２８】
次に、行動決定部５０３は、範囲Ｔ（Ｆ）を含む下記式（１２）の右辺の論理式にＱＥを適用し、下記式（１２）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）の最大値Ｔ*（Ｆ*）を特定する。上付の＊は、最大値を示す記号である。下記式（１２）は、表６００の２段目に対応する。
【０１２９】
【数１２】
2020091611.tif 000014
【０１３０】
そして、行動決定部５０３は、最大値Ｔ*（Ｆ*）を含む下記式（１３）の右辺の論理式にＱＥを適用し、下記式（１３）の左辺に示した、状態行動価値関数Ｑ（ｓt，ａ）を最大値Ｔ*（Ｆ*）にすることができる最適行動ａt*＝Ｔ*a（ａ）を特定する。上付の＊は、最適行動を示す記号である。下記式（１３）は、表６００の３段目に対応する。
【０１３１】
【数１３】
2020091611.tif 000015
【０１３２】
また、行動決定部５０３は、最適行動ａt*を決定する際、ＱＥを用いない場合があってもよい。行動決定部５０３は、例えば、状態行動価値関数が行動に対して線形である場合、線形計画問題の計算ソフトウェアを用いて、最適行動ａt*を決定してもよい。また、行動決定部５０３は、例えば、状態行動価値関数が凸形状である場合、最急勾配法の計算ソフトウェアを用いて、最適行動ａt*を決定してもよい。
【０１３３】
行動決定部５０３は、最適行動ａt*＝Ｔ*a（ａ）に基づいて、探索行動ａtを決定し、制御対象１１０に対する次の行動にする。行動決定部５０３は、常に探索行動ａtを決定してもよいし、一定確率で探索行動ａtを決定してもよいし、または、一定回数ごとに探索行動ａtを決定してもよい。行動決定部５０３は、探索行動ａtを決定しない場合、最適行動ａt*を制御対象１１０に対する次の行動にする。
【０１３４】
行動決定部５０３は、例えば、下記式（１４）にＱＥを適用し、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求める。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａ＝ａ1，・・・，ａnは、行動である。ａt*＝ａ1*，・・・，ａn*は、最適行動である。ｕは、閾値である。論理式Ψ（ａ1，・・・，ａn）は、探索行動ａt＝ａ1，・・・，ａnの範囲を表す論理式である。
【０１３５】
【数１４】
2020091611.tif 000016
【０１３６】
行動決定部５０３は、同様に、下記式（１５）にＱＥを適用し、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求めてもよい。制約条件Ｃ（ｓ，ａ）は、行動が取りうる範囲を表す条件である。
【０１３７】
【数１５】
2020091611.tif 000017
【０１３８】
行動決定部５０３は、同様に、下記式（１６）にＱＥを適用し、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求めてもよい。ここで、Ｑ（ｓ，ａ）は状態行動価値関数である。ｓは、状態である。ａ＝ａ1，・・・，ａnは、行動である。ａt*＝ａ1*，・・・，ａn*は、最適行動である。ｕは、状態行動価値関数の値に対する閾値である。ｒは、行動間の距離に関する閾値である。
【０１３９】
【数１６】
2020091611.tif 000018
【０１４０】
行動決定部５０３は、同様に、下記式（１７）にＱＥを適用し、変数ｙを含まない論理式Ψ（ａ1，・・・，ａn）を求めてもよい。制約条件Ｃ（ｓ，ａ）は、行動が取りうる範囲を表す条件である。
【０１４１】
【数１７】
2020091611.tif 000019
【０１４２】
行動決定部５０３は、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）から、探索行動を決定する。行動決定部５０３は、例えば、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）を満たす行動をランダムに選択し、探索行動ａtに決定する。
【０１４３】
また、行動決定部５０３は、例えば、特定した行動の範囲を表す論理式Ψ（ａ1，・・・，ａn）についてＱＥを適用し、探索行動を決定してもよい。行動決定部５０３は、具体的には、ｉ＝１，・・・，ｎから、ｉをランダムに選択し、下記式（１８）の右辺に対してＱＥを適用し、下記式（１８）の左辺を取得する。
【０１４４】
【数１８】
2020091611.tif 000020
【０１４５】
行動決定部５０３は、ＱＥを適用した結果に基づいて、φi（ａi）を、下記式（１９）が示す区間和の形式で表現する。区間和の形式で表現する方法は、具体的には、上述した参考文献２を参照することができる。
【０１４６】
【数１９】
2020091611.tif 000021
【０１４７】
行動決定部５０３は、下記式（２０）が示す確率で、ｊ＝１，・・・，ｍから、ｊを選択する。
【０１４８】
【数２０】
2020091611.tif 000022
【０１４９】
行動決定部５０３は、選択したｊに対応する下記式（２１）が示す領域からａiをランダムに選択し、論理式Ψにａiを代入する。
【０１５０】
【数２１】
2020091611.tif 000023
【０１５１】
行動決定部５０３は、上述した処理を繰り返し、探索行動ａt＝（ａ1，・・・，ａn）を決定する。
【０１５２】
その後、行動決定部５０３は、決定した最適行動ａt*、または、探索行動ａtを、制御対象１１０に対する次の行動として、出力部５０６を介して制御対象１１０に与えることにより、制御対象１１０を制御する。そして、行動決定部５０３は、制御対象１１０に与えた行動ａtを履歴テーブル４００を用いて記憶する。
【０１５３】
これにより、行動決定部５０３は、強化学習において、行動を連続量として扱うことができ、行動を細かく調整して制御対象１１０を効率よく制御することができる。また、行動決定部５０３は、連続的な行動のすべてを用いて状態行動価値関数の値を網羅的に算出しなくても状態行動価値関数の最大値を求めることができるため、強化学習にかかる時間の増大化を抑制することができる。
【０１５４】
また、行動決定部５０３は、相対的に価値が低い行動を、次の行動に決定してしまうことを防止することができる。結果として、行動決定部５０３は、制御対象１１０を効率よく制御することができ、制御対象１１０に不利益を招くことを防止することができる。行動決定部５０３は、例えば、制御対象１１０が無人飛行体であれば、制御対象１１０に対する行動が、安定して飛行することが難しい行動になることを防止し、制御対象１１０が落下してしまうことを防止することができる。
【０１５５】
また、行動決定部５０３は、相対的に価値が低い行動よりも、相対的に価値が高い行動を試行することができ、状態行動価値関数の値が最適値に近くなる範囲について精度よく推定することができ、状態行動価値関数を効率よく推定することができる。
【０１５６】
実施例において、利得取得部５０４は、制御対象１１０に行動ａtが与えられた単位時間後、時点を示す変数ｔ＝ｔ＋１になると、行動ａtに応じた利得ｒt-1を、制御対象１１０から取得する。利得ｒt-1は、スカラー量である。利得取得部５０４は、利得ｒt-1を、履歴テーブル４００を用いて記憶する。
【０１５７】
実施例において、更新部５０５は、所定のタイミングで、係数配列Ｗ＝ｗ1，・・・，ｗnを更新する。所定のタイミングは、例えば、行動決定部５０３がＮ回行動ａtを求め、行動ａtを制御対象１１０に与えるごとのタイミングである。
【０１５８】
更新部５０５は、例えば、更新則としてＱ学習を用い、履歴テーブル４００に、時点ｔ０，…，ｔｋに対応するレコードが記憶されている場合、下記式（２２）に示す更新則を用いて、時点ｔ０，…，ｔｋ−１に対して処理を行う。ｓt，ａt，ｓt+1，ｒtは、履歴テーブル４００から取得可能である。
【０１５９】
【数２２】
2020091611.tif 000024
【０１６０】
更新部５０５は、上記式（２２）のｍａｘ部については、ＱＥを用いて算出する。ｍａｘ部について制約条件が規定されてもよい。まず、更新部５０５は、具体的には、下記式（２３）の右辺の論理式にＱＥを適用し、下記式（２３）の左辺に示した、状態行動価値関数Ｑ（ｓt+1，ａ）の値が取りうる範囲Ｔ（Ｆ）を特定する。状態行動価値関数Ｑ（ｓt+1，ａ）は、ａについての多項式により表現される。下記式（２３）は、表６００の１段目に対応する。
【０１６１】
【数２３】
2020091611.tif 000025
【０１６２】
次に、更新部５０５は、範囲Ｔ（Ｆ）を含む下記式（２４）の右辺の論理式にＱＥを適用し、下記式（２４）の左辺に示した、状態行動価値関数Ｑ（ｓt+1，ａ）の最大値Ｔ*（Ｆ*）を特定する。上付の＊は、最大値を示す記号である。下記式（２４）は、表６００の２段目に対応する。
【０１６３】
【数２４】
2020091611.tif 000026
【０１６４】
そして、更新部５０５は、最大値Ｔ*（Ｆ*）を、上記式（２２）のｍａｘ部に用いて、上記式（２２）に基づいて、係数配列Ｗ＝ｗ1，・・・，ｗnを更新する。
【０１６５】
これにより、更新部５０５は、係数配列Ｗ＝ｗ1，・・・，ｗnを更新し、状態行動価値関数を、さらに制御対象１１０の累積利得を精度よく示すように推定することができ、制御対象１１０を効率よく制御することができる。また、更新部５０５は、履歴テーブル４００のレコードを、末尾のレコードを残して削除する。更新部５０５は、更新則としてＳＡＲＳＡを参照する場合には、ｍａｘ部を算出しなくてよい。
【０１６６】
（制御対象１１０の具体例）
次に、図１１〜図１３を用いて、制御対象１１０の具体例について説明する。
【０１６７】
図１１〜図１３は、制御対象１１０の具体例を示す説明図である。図１１の例では、制御対象１１０は、自律移動体１１００であり、具体的には、自律移動体１１００の移動機構１１０１である。自律移動体１１００は、具体的には、ドローン、ヘリコプター、自律移動ロボット、自動車などである。行動は、移動機構１１０１に対する指令値である。行動は、例えば、移動方向や移動距離などに関する指令値である。移動方向や移動距離は、連続量として扱うことができる。
【０１６８】
行動は、例えば、自律移動体１１００がヘリコプターであれば、回転翼の速度や回転翼の回転面の傾きなどである。行動は、例えば、自律移動体１１００が自動車であれば、アクセルやブレーキの強さ、ハンドルの向きなどである。
【０１６９】
状態は、自律移動体１１００に設けられたセンサ装置からのセンサデータであり、例えば、自律移動体１１００の位置などである。利得は、例えば、短期的な、自律移動ロボット１１００の目標の位置と、自律移動ロボット１１００の現在の位置との誤差にマイナスをかけた値などである。状態行動価値関数は、例えば、長期的な、自律移動ロボット１１００の目標の位置と、自律移動ロボット１１００の現在の位置の誤差にマイナスをかけた値を累積利得として表す関数である。
【０１７０】
ここで、行動決定装置１００は、自律移動体１１００の目標の動作と、自律移動体１１００の実際の動作との誤差が大きくなるような指令値を、次の行動になる指令値に決定することを防止することができる。このため、行動決定装置１００は、自律移動体１１００に不利益が生じることを防止することができる。
【０１７１】
行動決定装置１００は、例えば、自律移動体１１００がヘリコプターであれば、バランスを崩して落下し、ヘリコプターが破損することを防止することができる。行動決定装置１００は、例えば、自律移動体１１００が自律移動ロボットであれば、バランスを崩して転倒したり、障害物に衝突したりして、自律移動ロボットが破損することを防止することができる。
【０１７２】
また、行動決定装置１００は、長期的な誤差を効率よく最小化するように、状態行動価値関数の係数を更新することができ、次の行動になる指令値を決定し、制御対象１１０になる移動機構１１０１を制御することができる。
【０１７３】
この際、行動決定装置１００は、次の行動になる指令値を細かな単位で設定することができ、制御対象１１０になる移動機構１１０１を効率よく制御することができる。行動決定装置１００は、例えば、移動方向を３６０度いずれの方向にも指定することができ、制御対象１１０になる移動機構１１０１を効率よく制御することができる。このため、行動決定装置１００は、誤差が最小化されるまでにかかる時間の低減化を図ることができ、自律移動体１１００が、最終的な目標の位置に、精度よく、素早く辿り着くことができるようにすることができる。
【０１７４】
図１２の例では、制御対象１１０は、熱源であるサーバ１２０１と、ＣＲＡＣやＣｈｉｌｌｅｒなどの冷却器１２０２とを含むサーバルーム１２００である。行動は、冷却器１２０２に対する設定温度や設定風量である。
【０１７５】
状態は、サーバルーム１２００に設けられたセンサ装置からのセンサデータなどであり、例えば、温度などである。状態は、制御対象１１０以外から得られる制御対象１１０に関するデータであってもよく、例えば、気温や天気などであってもよい。利得は、例えば、サーバルーム１２００の５分間の消費電力量にマイナスをかけた値である。状態行動価値関数は、例えば、サーバルーム１２００の２４時間分の累積消費電力量にマイナスをかけた値を累積利得として表す関数である。
【０１７６】
ここで、行動決定装置１００は、サーバルーム１２００の２４時間分の消費電力量が著しく大きくなるような行動を、次の行動に決定することを防止することができる。このため、行動決定装置１００は、サーバルーム１２００に不利益が生じることを防止することができる。行動決定装置１００は、例えば、状態行動価値関数を推定する際でも、サーバルーム１２００の２４時間分の消費電力量を一定以下に抑制することができる。
【０１７７】
また、行動決定装置１００は、２４時間分の累積消費電力量を効率よく最小化するように、状態行動価値関数を更新することができ、次の最適行動を効率よく決定することができる。この際、行動決定装置１００は、次の行動である設定温度や設定風量を細かな単位で設定することができ、制御対象１１０になるサーバルーム１２００を効率よく制御することができる。
【０１７８】
このため、行動決定装置１００は、制御対象１１０の累積消費電力量が最小化されるまでにかかる時間の低減化を図ることができ、サーバルーム１２００の運営コストの低減化を図ることができる。また、行動決定装置１００は、サーバ１２０１の使用状況の変化および気温の変化などが発生した場合も、その変化から比較的短い時間で、累積消費電力量を効率よく最小化することができる。
【０１７９】
図１３の例では、制御対象１１０は、発電機１３００である。行動は、発電機１３００に対する指令値である。状態は、発電機１３００に設けられたセンサ装置からのセンサデータであり、例えば、発電機１３００の発電量や発電機１３００のタービンの回転量などである。利得は、例えば、発電機１３００の５分間の発電量である。状態行動価値関数は、例えば、発電機１３００の２４時間分の累積発電量を累積利得として表す関数である。
【０１８０】
ここで、行動決定装置１００は、発電機１３００の２４時間分の累積発電量が小さくなるような指令値を、次の行動になる指令値に決定することを防止することができる。このため、行動決定装置１００は、発電機１３００に不利益が生じることを防止することができる。行動決定装置１００は、例えば、発電機１３００のタービンにかかる負荷が大きくなり、タービンが停止してしまい、タービンを再稼働するために、発電機１３００の２４時間分の累積発電量が小さくなってしまうような事態を防止することができる。
【０１８１】
また、行動決定装置１００は、２４時間分の累積発電量を効率よく最大化するように、状態行動価値関数の係数を更新することができ、次の行動になる指令値を決定し、制御対象１１０になる発電機１３００を制御することができる。この際、行動決定装置１００は、次の行動になる指令値を細かな単位で設定することができ、制御対象１１０になる発電機１３００を効率よく制御することができる。
【０１８２】
このため、行動決定装置１００は、制御対象１１０の累積発電量が最大化されるまでにかかる時間の低減化を図ることができ、発電機１３００の利益の増大化を図ることができる。また、行動決定装置１００は、発電機１３００の状況の変化などが発生した場合も、その変化から比較的短い時間で、累積発電量を効率よく最大化することができる。
【０１８３】
また、制御対象１１０は、例えば、化学プラントなどであってもよい。また、制御対象１１０は、例えば、対戦型のゲームであってもよい。この場合、行動決定装置１００は、例えば、制御対象１１０に対する行動が、ゲームの状況が著しく不利になる行動になることを防止することができ、その後ゲームの状況を挽回することが難しくなることを防止することができる。
【０１８４】
（強化学習処理手順の一例）
次に、図１４を用いて、強化学習処理手順の一例について説明する。
【０１８５】
図１４は、強化学習処理手順の一例を示すフローチャートである。図１４において、行動決定装置１００は、変数ｔを０に設定し、係数配列Ｗを初期化する（ステップＳ１４０１）。次に、行動決定装置１００は、状態ｓtを観測する（ステップＳ１４０２）。
【０１８６】
そして、行動決定装置１００は、ＱＥを用いて、状態行動価値関数を最適化する最適行動ａt*を決定する（ステップＳ１４０３）。さらに、行動決定装置１００は、最適行動ａt*に基づいて、図１５または図１６に後述する行動決定処理を実行することにより、行動ａtを決定する（ステップＳ１４０４）。
【０１８７】
次に、行動決定装置１００は、ｔをｔ＋１に設定する（ステップＳ１４０５）。そして、行動決定装置１００は、行動ａt-1に対応する利得ｒt-1を取得する（ステップＳ１４０６）。次に、行動決定装置１００は、状態行動価値関数を更新するか否かを判定する（ステップＳ１４０７）。更新は、例えば、ステップＳ１４０２〜Ｓ１４０６の一連の処理が、Ｎ回実行されるごとに行われる。
【０１８８】
ここで、状態行動価値関数を更新しない場合（ステップＳ１４０７：Ｎｏ）、行動決定装置１００は、ステップＳ１４０２の処理に戻る。一方で、状態行動価値関数を更新する場合（ステップＳ１４０７：Ｙｅｓ）、行動決定装置１００は、ＱＥを用いて、状態行動価値関数を更新する（ステップＳ１４０８）。
【０１８９】
次に、行動決定装置１００は、制御対象１１０の制御を終了するか否かを判定する（ステップＳ１４０９）。ここで、終了しない場合（ステップＳ１４０９：Ｎｏ）、行動決定装置１００は、ステップＳ１４０２の処理に戻る。一方で、終了する場合（ステップＳ１４０９：Ｙｅｓ）、行動決定装置１００は、強化学習処理を終了する。これにより、行動決定装置１００は、相対的に価値が低い行動を、次の行動に決定してしまうことを防止することができる。
【０１９０】
図１４の例では、行動決定装置１００が、バッチ処理形式で強化学習処理を実行する場合について説明したが、これに限らない。例えば、行動決定装置１００が、逐次処理形式で強化学習処理を実行する場合があってもよい。
【０１９１】
（行動決定処理手順の一例）
次に、図１５を用いて、行動決定処理手順の一例について説明する。
【０１９２】
図１５は、行動決定処理手順の一例を示すフローチャートである。図１５において、行動決定装置１００は、ＱＥを用いて、最適行動ａt*に基づいて、論理式Ψ（ａ１，・・・，ａｎ）を生成する（ステップＳ１５０１）。
【０１９３】
次に、行動決定装置１００は、ａ＝（ａ１，・・・，ａｎ）をランダムに初期化する（ステップＳ１５０２）。そして、行動決定装置１００は、ａ＝（ａ１，・・・，ａｎ）が論理式Ψを満たすか否かを判定する（ステップＳ１５０３）。
【０１９４】
ここで、論理式Ψを満たさない場合（ステップＳ１５０３：Ｎｏ）、行動決定装置１００は、ステップＳ１５０２の処理に戻る。一方で、論理式Ψを満たす場合（ステップＳ１５０３：Ｙｅｓ）、行動決定装置１００は、ステップＳ１５０４の処理に移行する。
【０１９５】
ステップＳ１５０４では、行動決定装置１００は、ａ＝（ａ１，・・・，ａｎ）を、行動ａtに決定する（ステップＳ１５０４）。そして、行動決定装置１００は、行動決定処理を終了する。これにより、行動決定装置１００は、次の行動を決定することができる。
【０１９６】
（行動決定処理手順の別の例）
次に、図１６を用いて、行動決定処理手順の別の例について説明する。
【０１９７】
図１６は、行動決定処理手順の別の例を示すフローチャートである。図１６において、行動決定装置１００は、ＱＥを用いて、最適行動ａt*に基づいて、論理式Ψ（ａ１，・・・，ａｎ）を生成する（ステップＳ１６０１）。
【０１９８】
次に、行動決定装置１００は、ｉ＝１，・・・，ｎから、まだａiの値が決定していないｉになるまで、ｉをランダムに選択する（ステップＳ１６０２）。そして、行動決定装置１００は、下記式（２５）が示すφi（ａi）に対してＱＥを適用する（ステップＳ１６０３）。
【０１９９】
【数２５】
2020091611.tif 000027
【０２００】
次に、行動決定装置１００は、ＱＥを適用した結果に基づいて、φi（ａi）を、下記式（２６）が示す区間和の形式で表現する（ステップＳ１６０４）。
【０２０１】
【数２６】
2020091611.tif 000028
【０２０２】
次に、行動決定装置１００は、下記式（２７）が示す確率で、ｊ＝１，・・・，ｍから、ｊを選択する（ステップＳ１６０５）。
【０２０３】
【数２７】
2020091611.tif 000029
【０２０４】
次に、行動決定装置１００は、選択したｊに対応する下記式（２８）が示す領域からａiをランダムに選択する（ステップＳ１６０６）。
【０２０５】
【数２８】
2020091611.tif 000030
【０２０６】
次に、行動決定装置１００は、選択したａiを論理式Ψに代入する（ステップＳ１６０７）。そして、行動決定装置１００は、すべてのｉを選択したか否かを判定する（ステップＳ１６０８）。未選択のｉがある場合（ステップＳ１６０８：Ｎｏ）、行動決定装置１００は、ステップＳ１６０２の処理に戻る。一方で、すべてのｉを選択した場合（ステップＳ１６０８：Ｙｅｓ）、行動決定装置１００は、行動決定処理を終了する。これにより、行動決定装置１００は、次の行動を決定することができる。
【０２０７】
以上説明したように、行動決定装置１００によれば、状態行動価値関数に関する最適行動を求めることができる。行動決定装置１００によれば、状態行動価値関数の値と最適行動に対応する状態行動価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対してＱＥを適用して行動の範囲を特定し、特定した範囲から次の行動を決定することができる。これにより、行動決定装置１００は、行動を連続量と扱っても、状態行動価値関数を推定する際、制御対象１１０に対する行動を決定する場合、相対的に価値が低い行動を決定してしまうことを防止することができる。
【０２０８】
行動決定装置１００によれば、論理式に、さらに、行動が取りうる範囲を表す条件式を含めることができる。これにより、行動決定装置１００は、行動が取りうる範囲を表す条件式を満たす、制御対象１１０に対して好ましい行動を決定し、制御対象１１０を効率よく制御可能にすることができる。
【０２０９】
行動決定装置１００によれば、論理式に、さらに、行動と最適行動とのユークリッド距離が閾値より大きいことを表す条件式を含めることができる。これにより、行動決定装置１００は、現状最適と判断された最適行動とは一定以上離れていても、制御対象１１０に対して好ましい次の行動があれば試行することができ、状態行動価値関数を精度よく推定可能にすることができる。
【０２１０】
行動決定装置１００によれば、状態に関する入力値および行動に関する入力値、および、行動に関する入力値に対応する利得を取得し、取得した入力値および利得に基づいて、状態行動価値関数の係数を推定することができる。行動決定装置１００によれば、ＱＥを用いて、係数が推定された状態行動価値関数に関する最適行動を求めることができる。これにより、行動決定装置１００は、強化学習において、行動を連続量として扱うことができ、行動を細かく調整して制御対象１１０を効率よく制御することができる。また、行動決定装置１００は、強化学習にかかる時間の増大化を抑制することができる。
【０２１１】
行動決定装置１００によれば、取得した入力値および利得に基づいて、ＱＥを用いて、状態行動価値関数の係数を推定することができる。これにより、行動決定装置１００は、状態行動価値関数の係数を求める際に、最適化問題を解く場合であっても、状態行動価値関数の係数を推定し、状態行動価値関数を改善することができる。
【０２１２】
行動決定装置１００によれば、ＱＥを用いて、行動が取りうる範囲を表す条件式を適用した、係数が推定された状態行動価値関数に関する最適行動を求めることができる。これにより、行動決定装置１００は、強化学習において行動が取りうる範囲を表す条件を使用可能にすることができ、制御対象１１０の性質を精度よく考慮して制御対象１１０を制御可能にすることができる。
【０２１３】
行動決定装置１００によれば、ＱＥを用いて、所定の係数を用いた状態行動価値関数に関する最適行動を求めることができる。これにより、行動決定装置１００は、まだ状態行動価値関数の係数を推定していない時点でも、最適行動、または、最適値を求めることができる。
【０２１４】
行動決定装置１００によれば、状態行動価値関数が行動に対して線形である場合、線形計画問題の計算ソフトウェアを用いて、最適行動を求めることができる。これにより、行動決定装置１００は、ＱＥを用いなくても最適行動を求めることができる。
【０２１５】
行動決定装置１００によれば、状態行動価値関数が凸形状である場合、最急勾配法の計算ソフトウェアを用いて、最適行動を求めることができる。これにより、行動決定装置１００は、ＱＥを用いなくても最適行動を求めることができる。
【０２１６】
行動決定装置１００によれば、ランダムに行動を選択し、選択した行動が範囲内であれば、選択した行動を次の行動に決定することができる。これにより、行動決定装置１００は、特定した範囲内の行動を、次の行動に決定することができる。
【０２１７】
行動決定装置１００によれば、特定した範囲に対してＱＥを用いて、次の行動を決定することができる。これにより、行動決定装置１００は、特定した範囲内の行動を、次の行動に決定することができる。また、行動決定装置１００は、特定した範囲の大きさに関わらず、次の行動を決定する処理量の低減化を図ることができる。
【０２１８】
なお、本実施の形態で説明した行動決定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した行動決定プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した行動決定プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２１９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２２０】
（付記１）コンピュータに、
行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
処理を実行させることを特徴とする行動決定プログラム。
【０２２１】
（付記２）前記論理式は、さらに、行動が取りうる範囲を表す条件式を含む、ことを特徴とする付記１に記載の行動決定プログラム。
【０２２２】
（付記３）前記論理式は、さらに、行動と前記最適行動とのユークリッド距離が閾値より大きいことを表す条件式を含む、ことを特徴とする付記１または２に記載の行動決定プログラム。
【０２２３】
（付記４）前記コンピュータに、
状態に関する入力値および行動に関する入力値、および、行動に関する入力値に対応する利得を取得し、
取得した前記入力値および前記利得に基づいて、前記価値関数の係数を推定する、処理を実行させ、
前記求める処理は、限量子消去を用いて、前記係数が推定された前記価値関数に関する最適行動を求める、ことを特徴とする付記１〜３のいずれか一つに記載の行動決定プログラム。
【０２２４】
（付記５）前記推定する処理は、
取得した前記入力値および前記利得に基づいて、限量子消去を用いて、前記価値関数の係数を推定する、ことを特徴とする付記４に記載の行動決定プログラム。
【０２２５】
（付記６）前記求める処理は、
限量子消去を用いて、行動が取りうる範囲を表す条件式を適用した、前記係数が推定された前記価値関数に関する最適行動を求める、ことを特徴とする付記４または５に記載の行動決定プログラム。
【０２２６】
（付記７）前記求める処理は、
限量子消去を用いて、所定の係数を用いた前記価値関数に関する最適行動を求める、ことを特徴とする付記４〜６のいずれか一つに記載の行動決定プログラム。
【０２２７】
（付記８）前記求める処理は、
前記価値関数が行動に対して線形である場合、線形計画問題の計算ソフトウェアを用いて、前記最適行動を求める、ことを特徴とする付記１〜７のいずれか一つに記載の行動決定プログラム。
【０２２８】
（付記９）前記求める処理は、
前記価値関数が凸形状である場合、最急勾配法の計算ソフトウェアを用いて、前記最適行動を求める、ことを特徴とする付記１〜７のいずれか一つに記載の行動決定プログラム。
【０２２９】
（付記１０）前記決定する処理は、
ランダムに行動を選択し、選択した前記行動が前記範囲内であれば、選択した前記行動を前記次の行動に決定する、ことを特徴とする付記１〜９のいずれか一つに記載の行動決定プログラム。
【０２３０】
（付記１１）前記決定する処理は、
特定した前記範囲に対して限量子消去を用いて、前記次の行動を決定する、ことを特徴とする付記１〜１０のいずれか一つに記載の行動決定プログラム。
【０２３１】
（付記１２）コンピュータが、
行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
処理を実行することを特徴とする行動決定方法。
【０２３２】
（付記１３）行動を表す変数についての多項式になる、または状態を表す変数に値を代入すると行動を表す変数についての多項式になる価値関数に関する最適行動を求め、
前記価値関数の値と前記最適行動に対応する前記価値関数の値との差分が閾値より小さいことを表す条件式を含む論理式に対して限量子消去を用いて、行動の範囲を特定し、
特定した前記範囲から次の行動を決定する、
制御部を有することを特徴とする行動決定装置。
【符号の説明】
【０２３３】
１００  行動決定装置
１１０  制御対象
１２０  グラフ
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  記録媒体Ｉ／Ｆ
２０５  記録媒体
２１０  ネットワーク
４００  履歴テーブル
５００  記憶部
５０１  設定部
５０２  状態取得部
５０３  行動決定部
５０４  利得取得部
５０５  更新部
５０６  出力部
６００，７００，８００，９００  表
８０１，８０２，９０１〜９０３，１０００  範囲
１１００  自律移動体
１１０１  移動機構
１２００  サーバルーム
１２０１  サーバ
１２０２  冷却器
１３００  発電機
【図１】
2020091611.tif 000031
【図２】
2020091611.tif 000032
【図３】
2020091611.tif 000033
【図４】
2020091611.tif 000034
【図５】
2020091611.tif 000035
【図６】
2020091611.tif 000036
【図７】
2020091611.tif 000037
【図８】
2020091611.tif 000038
【図９】
2020091611.tif 000039
【図１０】
2020091611.tif 000040
【図１１】
2020091611.tif 000041
【図１２】
2020091611.tif 000042
【図１３】
2020091611.tif 000043
【図１４】
2020091611.tif 000044
【図１５】
2020091611.tif 000045
【図１６】
2020091611.tif 000046