次に、本発明における実施形態について図面を参照して説明する。
各図面は、本発明における実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
また、以下の説明に用いる図面において、本発明における実施形態の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
また、以下の説明において、適宜、数式を用いて説明するが、本発明における実施形態は、下記の数式に限定されない。
<第一の実施形態>
次に、本発明における第一の実施形態について図面を参照して説明する。
なお、第一の実施形態に係る情報処理装置100は、最適化モデルとして、パラメータの変動を考慮した最適化モデル(ロバスト最適化モデル)を用い、その最適化モデルにおける最適解を算出する。つまり、情報処理装置100は、最適化モデルにおける一つ又は複数のパラメータにおける不確実性の範囲(予測誤差又は変動)を考慮した最適解を算出する。
[用語の説明]
本発明における実施形態の説明に先立ち、既に説明した用語を含め、以下の説明に用いる用語の整理しておく。
「予測モデル」とは、所定のデータ(予測用データ)を基に、所定のデータの予測値を算出するモデルである。例えば、商品の売上げ量を予測するための予測モデルは、商品価格から売上げ量を予測するモデルである。予測モデルは、関数などの数式(予測式)を用いて表される。
なお、予測モデルは、例えば、学習用データを用いた機械学習を基に作成される。
「説明変数」とは、予測モデルにおいて入力として用いられる変数である。例えば、予測モデルが関数を用いて表現される場合、説明変数は、その関数の引数となる。説明変数は、独立変数とも呼ばれる。
「被説明変数」とは、予測モデルにおいて、説明変数に基づいて決定される変数である。つまり、被説明変数は、説明変数を予測モデルに適用して算出される値である。なお、被説明変数を算出するための予測モデルは、モデルに含まれる数式などに、被説明変数を含んでもよい。被説明変数が、説明変数(及び被説明変数)の関数として表される場合、その関数は、予測モデルに相当する。被説明変数は、従属変数、又は、応答変数とも呼ばれる。
例えば、商品価格から売上げ量を予測する予測モデルの場合、商品価格が説明変数である。また、売上げ量が、被説明変数である。この場合、説明変数である商品価格は、操作可能な変数である。
「最適化モデル」とは、所定のデータ(最適解算出用データ)及び条件を基に、所定の関数を最適な値(最大値又は最小値)とする所定の変数の値(最適解)を算出するモデルである。最適化モデルは、一般的に、数式として表される。最適化モデルは、数式表現として、1つ又は複数のパラメータを含む。最適化モデルは、最適化問題とも呼ばれる。
本実施形態に係る最適化モデルは、上記の予測モデルを含む。
「目的関数」は、最適化モデルにおいて、最適化の目的となる値(例えば、最大値又は最小値)を表す関数である。目的関数は、その中に予測モデルを含んでもよい。この場合、目的関数は、直接的又は間接的に、予測モデルにおける説明変数及び/又は被説明変数に基づいて値を決定される関数である。目的関数は、評価関数とも呼ばれる。
「目的変数」とは、最適化モデルにおいて、目的関数を最適値とするために算出される最適解となる変数である。そのため、最適化モデルは、目的変数を含む関数として表される。なお、最適化モデルにおける目的変数は、最適化モデルに含まれる予測モデルにおける説明変数の少なくとも一部を含む。
「制約」とは、最適化モデルにおける最適解の算出における制約条件である。制約は、次に説明する変動を含んでもよい。制約は、例えば、利用者の指定を基に設定される。あるいは、制約は、予め保持されているデータである。
「変動」とは、最適化モデルに含まれるパラメータが、その不確実性に基づいて変化する値の範囲(不確実性の範囲)である。そのため、「変動」の範囲は、パラメータの「不確実性」の範囲である。なお、最適解は、パラメータを用いた予測を基に算出される値である。そのため、「変動」は、「予測誤差」とも呼ばれる。
例えば、最適化モデルが、商品価格から売上げ量を予測する予測モデルを含むとする。そして、最適化モデルが、商品価格と売上げ量との積の合計である総売上高を最適とする商品価格の最適解を算出するとする。この場合、例えば、情報処理装置100は、最適化モデルのパラメータ又はパラメータの変動を受信し、総売上高を最大にする商品価格(最適解)を算出する。
上記の例の場合、総売上高を表す関数が、目的関数となる。また、最適解の対象となっている商品価格が、目的変数である。制約は、例えば、商品の在庫数である。なお、商品価格は、予測モデルの説明変数である。売上げ量は、予測モデルの被説明変数である。
上記のように、商品価格は、予測モデルにおいて説明変数であり、最適化モデルにおいて目的変数となる。このように、あるモデルにおける変数は、別のモデルにおいて、異なる変数となる場合もある。
本発明における実施形態は、制約を満足する範囲において、最適化モデルにおける目的関数を最適値(最大値又は最小値)とする目的変数の最適解を算出する。なお、以下の説明では、一例として、最適値は、目的関数の最大値とする。
図10は、上記のモデルとデータとの関係を示す図である。予測モデルは、学習用データを用いた機械学習などを用いて算出される。制約は、利用者などからの入力操作を基に設定される。最適化モデルは、予測モデルと制約とを含むモデルとして設定される。そして、最適解を算出する最適化エンジンが、最適化用データを用いて、最適化モデルにおける最適解を算出する。最適化エンジンは、最適解に加え、その他の値(例えば、目的関数の値)を算出してもよい。
本発明における各実施形態は、少なくとも、最適化エンジンとして動作する構成を含む。
[数式の説明]
次に、第一の実施形態に係る最適化モデルに関連する数式及び変数について説明する。
以下の説明において、数式における変数として用いられる行列及びベクトルの要素は、実数である。また、ベクトルは、列ベクトルとする。
ただし、以下の説明において、ベクトル又は行列は、計算の結果としてスカラーとなる場合がある。ベクトル又は行列は、要素の数が1つの場合を含むとする。
つまり、以下の説明におけるベクトル及び行列との積は、スカラーとの積の場合を含むとする。
なお、以下の説明において、説明を分かりやすくするため、変数及び定数における「ベクトル」及び「行列」の記載を省略する場合もある。
ベクトル「x」は、予測モデルのおける説明変数を示すベクトルである。ベクトル「y」は、予測モデルにおける被説明変数を示すベクトルである。つまり、被説明変数であるベクトルyは、説明変数であるベクトルxを所定の予測モデル(予測式)に適用して算出される変数である。
被説明変数は、説明変数の関数として表現可能である。また、最適化モデルにおいては、最適化の対象である目的関数が、予測モデルにおける被説明変数である場合もある。そのため、最適化モデルは、被説明変数を、明示的に含まなくてもよい。
以下、ベクトルxの要素の数は、「l(lは正の整数)」とする。ベクトルyの要素の数は、「m(mは正の整数)」とする。
なお、ベクトルxは、適宜、ベクトル空間における基底関数(g(x))で置き換え可能である。つまり、基底関数g(x)は、説明変数である。基底関数g(x)の要素の数(n)は、「n=l+1」である。ベクトルxと基底関数g(x)との関係は、次に数式1のように示される。
数式1において「xi(i=1,2,…,l)」は、ベクトルxのi番目の要素である。上付きの「T」は、行列の転置を示す。ベクトルの場合、「T」は、列ベクトルと行ベクトルとの変換となる。つまり、基底関数g(x)は、列ベクトルである。
ただし、各実施形態は、最適化モデルの目的関数を最適値(最大値又は最小値)とするベクトルx又は基底関数g(x)を算出する。そのため、ベクトルx又は基底関数g(x)は、最適化モデルにおける目的変数である。
(1)線形最適化
一般的な最適化モデル(線形最適化モデル)は、次に示されている数式2を用いて表される。
数式2において、第1式は、最適化の対象(つまり、目的関数)を表す式である。なお、第1式の「c0 Tx」が、予測モデルに相当する。
第2式は、制約を表す式である。
第2式の不等号(≦)は、Axの結果であるベクトルの各要素が、ベクトルbの各要素以下であることを示す。
ベクトルxは、既に説明したとおり、予測モデルにおける説明変数のベクトルである。ベクトル「c0」は、予め設定されている列ベクトルであり、ベクトルxと目的関数との関係を示す。
数式2の場合、目的関数は、明示的には被説明変数(ベクトルy)を含まない。ただし、この場合、被説明変数は、目的関数に含まれる予測モデルとみなしてもよい。つまり、この場合、被説明変数のベクトルyは、「y=c0 Tx」としてもよい。なお、この場合、被説明変数(ベクトルy)は、具体的には、スカラーである。
そして、数式2の第1式(目的関数)は、具体的には、予測モデルの説明変数であるベクトルxとベクトルc0との各要素の積の総和を最大にするベクトルxを求めることを示している。
例えば、ベクトルxは、各商品の仕入れ個数を要素とするベクトルとする。さらに、ベクトルc0は、各商品の価格を要素とするベクトルとする。この場合、数式2の第1式(目的関数)は、総売上げを最大化する「仕入れ数(ベクトルx)」を算出することを示す。
制約を表す第2式は、左辺のベクトルの要素と右辺のベクトルの要素との関係(大小関係)を示している。
ベクトル「b」は、制約値を示すベクトルである。行列Aは、説明変数(ベクトルx)と制約値(ベクトルb)との関係を示す行列である。ベクトルb及び行列Aは、予め与えられている情報(変数)である。説明変数(ベクトルx)は、最適化モデルの目的変数である。そのため、制約は、目的変数の制約でもある。
例えば、行列Aが、対角要素の値が「1」である対角行列とする。そして、説明変数のベクトルxが、各商品の仕入れ数とする。この場合、第2式におけるベクトルbは、例えば、各商品の仕入れ可能数量となる。
なお、数式2に示されている最適化モデルは、最適解の算出が保証されているモデルである。
(2)二次最適化
一般的な二次最適化モデルは、次に示す数式3を用いて表される。
数式3において、数式2と同じ変数についての説明を省略する。数式3は、予測モデルの説明変数として、ベクトルxの代わりに、基底関数g(x)を用いている。
数式3は、説明変数である基底関数g(x)の二次の式となっている。数式3は、数式2におけるベクトルc0に換えて、行列Q0を用いて表されている。なお、行列Q0は、予め設定されている行列である。
例えば、行列Q0の要素数は、基底関数g(x)に合わせて設定される。例えば、下記の目的関数を実現するように設定される。
数式3において、予測モデルの被説明変数のベクトルyは、「y=Q0g(x)」である。つまり、目的関数(g(x)TQ0g(x))は、予測モデルにおける説明変数(g(x)T)と被説明変数(Q0g(x))との積である。つまり、被説明変数(ベクトルy=Q0g(x))が、予測モデルに相当する。
なお、基底関数g(x)とベクトルyとの次元が異なる場合、ベクトルy又は行列Q0のいずれかが、計算において必要な数のゼロ要素(値が「0」の要素)又はゼロ行(全ての要素の値が「0」である行)を追加として含めばよい。
数式3は、第2式の制約の下で、第1式(目的関数)を最大化するベクトルxを求める最適化モデルを示す式である。
なお、数式3に示されている最適化モデルは、最適解の算出が保証されているモデルである。さらに、上記の最適化モデルにおける制約は、上記の線形制約(Ax≦b)に限られない。例えば、制約が、整数制約の場合でも、上記の最適化モデルは、任意の近似精度における、近似解の算出が保証されている。
「整数制約」とは、最適解の少なくとも一部が整数である制約である。
(3)ロバスト最適化モデル(ロバスト線形最適化モデル)
線形のロバスト最適化モデルは、次に示す数式4を用いて表される。
数式4において、数式2と同じ変数についての説明を省略する。ベクトル「u」は、パラメータ(c0)における不確実性(例えば、ベクトルc0の要素の変動)を示すベクトルである。なお、縦の二重線は、ノルム(幾何学的ベクトルの長さをベクトル空間の距離に一般化したもの)を示す。変数「λ」は、変動に対する制約である。行列「L」は、変動のベクトルuに対応して、c0が変動する範囲(動く領域)を設定する行列である。ただし、行列Lは、正則な行列である。行列L及び変数λは、予め与えられている変数である。
数式4の第1式は、変動のベクトルuに基づく変動における、目的関数(cTx)の最小値を、最大とするベクトルxを算出することを示す。言い換えると、第1式は、最適解として、ベクトルc0に対して設定された変動範囲における目的関数の最小値を最大とするベクトルxを算出することを示している。
なお、数式4に示されているロバスト最適化モデル(ロバスト線形最適化モデル)は、各種の解法が提案されている。
(4)ロバスト最適化モデル(ロバスト二次最適化モデル)
後ほど詳細に説明する本発明における実施形態に関連する最適化モデルであるロバスト二次最適化モデルは、次に示す数式5を用いて表される。
数式5において、数式2ないし4と同じ変数についての説明を省略する。
行列「U」は、数式4の変動のベクトルuに相当するパラメータ(行列Q0)における変動を示す行列である。なお、第4式のノルムに示されている「F」は、フロベニウスのノルムを示す。
関数「L()」は、数式4の行列Lに相当する行列の関数である。関数L()は、行列Q0に加わる、変動の行列Uに基づく変動を示す関数である。つまり、数式5における行列Qは、行列Q0に関数L(U)で示される変動を加えたものである。変数λ及び関数L()は、予め与えられている。
なお、数式5に示されている最適化モデルにおける制約は、上記の線形制約(Ax≦b)に限られない。上記の最適化モデルにおける制約は、例えば、整数制約を含んでもよい。
数式5の第1式(目的関数)は、最適解として、変動(行列U)の範囲における目的関数の最小値を最大とするベクトルxを算出することを示す。言い換えると、第1式は、Q0に設定された変動範囲における最小値が最大となるベクトルxを、最適解とする。
既に説明したとおり、上記の数式5のように示されているロバスト最適化についての適切な解法は、提案されていない。例えば、非特許文献1に記載されている手法は、数式5における行列Qを、数学的に設定された行列TTTに分解できた場合に、解を算出できる手法である。しかし、行列Qを分解した行列Tは、計算のために導入された行列である。そのため、実際に想定される不確実性を、行列Tに適用することができない。
本発明における実施形態は、上記のような行列Qを分解する必要がなく、実際の最適化の対象における不確実性を適用した最適解を算出して、利用者に提供できる。
[構成の説明]
次に、本発明における第一の実施形態に係る情報処理装置100の構成について説明する。図1は、第一の実施形態に係る情報処理装置100の構成の一例を示すブロック図である。
図1に示されているように、第一の実施形態に係る情報処理装置100は、モデル取得部110と、モデル変換部120と、最適化部130と、出力部140とを含む。
モデル取得部110は、情報処理装置100における最適化処理の対象となる最適化モデルを取得する。以下、最適化モデルの一例として、ロバスト二次最適化モデルを用いて説明する。
ここで、最適化モデルの取得とは、具体的には、数式5に示されているような最適化モデルに対応した数式を取得することである。数式の取得は、数式に含まれる係数及び定数項の取得を含む。
モデル取得部110が最適化モデルを取得する方法は、特に制限されない。
例えば、モデル取得部110は、直接的に、最適化モデルを受信(取得)してもよい。
あるいは、モデル取得部110は、パラメータ等を受信して、最適化モデルを作成してもよい。この動作は、例えば、次のような動作である。
例えば、モデル取得部110は、一般的な二次最適化モデル(予測モデル)と、ロバスト最適化のためのパラメータとを受信する。そして、モデル取得部110は、一般的な二次最適化モデル(予測モデル)にパラメータを適用して、最適化モデルを作成してもよい。
あるいは、モデル取得部110は、最適化モデルの元となる予測モデル(型)を保持する。そして、モデル取得部110は、最適化モデルのパラメータと制約とを受信する。そして、モデル取得部110は、予測モデル(型)を所定の処理(例えば、機械学習)を用いて変形後、パラメータと制約とを適用して最適化モデルを作成してもよい。
あるいは、モデル取得部110は、予め、一般的な二次最適化モデル(予測モデル)の原型となるモデル(予測原型モデル)に関する情報を保持する。そして、モデル取得部110は、予測原型モデルに関するパラメータ(予測モデル用パラメータ)を受信する。そして、モデル取得部110は、予測モデル用パラメータを予測原型モデルに適用して、一般的な二次最適化モデル(予測モデル)を作成する。さらに、モデル取得部110は、最適化モデルのパラメータを受信する。そして、モデル取得部110は、作成した一般的な二次最適化モデルに受信したパラメータを適用して、最適化モデルを作成してもよい。
なお、モデル取得部110が上記の情報(パラメータ又はモデル)を取得する取得元は、特に制限されない。モデル取得部110は、図示しない外部の装置(例えば、情報処理装置100の利用者が操作する装置)から、上記情報を受信してもよい。
あるいは、モデル取得部110は、図示しない記憶部から、上記情報を取得してもよい。
モデル取得部110は、取得又は作成した最適化モデルを、モデル変換部120に送信する。
モデル変換部120は、最適化モデルにおける最適解の算出を、最適化部130に依頼する。そして、モデル変換部120は、最適化部130が算出した最適解を用いて、最適化モデルを変換する。最適化モデルの変換は、特に制限されない。例えば、最適化モデルの変換は、最適化モデルに関する式の形式の変形、又は、最適化モデルに含まれるパラメータの値の変更である。以下、変換の一例として、パラメータの値の変更を用いて説明する。
そして、モデル変換部120は、変換後の最適化モデルにおける最適解の算出を最適化部130に依頼する。モデル変換部120は、最適解、又は、処理の状態(例えば、最適解の算出の処理の回数)が所定の条件を満足するまで、上述の変更と算出の動作を繰り返す。
ここで、所定の条件は、特に制限されない。所定の条件は、対象となる最適化モデルに対応して、決定されればよい。例えば、後ほど詳細な動作において説明する場合において、所定の条件は、上記動作の繰り返しの回数を用いることができる。あるいは、上記の場合、所定の条件は、算出された最適解と前回算出された最適解との差分である変化量が、所定の値より小さくなることでもよい。
所定の条件を満足した場合、モデル変換部120は、最適解を出力部140に送信する。
最適化部130は、モデル変換部120から受信した最適化モデルにおける最適解を算出する。最適化部130は、最適解をモデル変換部120に送信する。
出力部140は、モデル変換部120から受信した最適解(最適化モデルにおける所定の条件を満足した最適解)を、所定の出力先に出力する。例えば、出力部140は、モデル取得部110にパラメータを送信した図示されていない装置に、最適解を出力してもよい。
[動作の説明]
次に、図面を参照して、第一の実施形態に係る情報処理装置100の動作について説明する。図2は、第一の実施形態に係る情報処理装置100の動作の一例を示すフローチャートである。
まず、モデル取得部110は、処理の対象である最適化モデルを受信(取得)又は作成する(ステップS201)。
モデル取得部110は、最適化モデルを、モデル変換部120に送信する。
モデル変換部120は、最適化部130を用いて最適化モデルの最適解を算出する(ステップS202)。
モデル変換部120は、所定の条件を満足しているか否かを判定する(ステップS203)。
条件を満足していない場合(ステップS203でNo)、モデル変換部120は、最適化モデルを変換する(ステップS204)。そして、モデル変換部120は、ステップS203に戻る。
条件を満足する場合(ステップS203でYes)、モデル変換部120は、最適解を出力部140に送信する。
出力部140は、最適解を所定の出力先に出力する(ステップS205)。
以上で、情報処理装置100は、動作を終了する。
[詳細な動作]
次に、上記の数式5に対応したロバスト二次最適化モデルの一例に対応した数式を用いて、情報処理装置100の動作の詳細を説明する。ただし、本実施形態に係る情報処理装置100が用いる数式は、以下で示される数式に限定されない。
以下の説明において、数式5における関数L(U)は、次に示す数式6のように、二つの行列L1及びL2を用いて表すことが可能、又は、近似可能であるとする。
数式6は、変動を示す行列Uを用いている。つまり、情報処理装置100は、実際に発生する変動を用いて最適解を算出する。
モデル取得部110は、数式5に示される最適化モデルを取得又は作成する。以下の説明では、モデル取得部110は、予め、数式5に示されている数式の形式(型)を保持するとする。ただし、関数L(U)は、数式6の形式とする。そして、モデル取得部110は、数式5及び6におけるパラメータを受信する。具体的には、モデル取得部110は、次に示すパラメータを受信する。
行列:Q0、A、L1、L2
ベクトル:b
定数:λ
なお、基底関数g(x)は、数式1とする。
モデル取得部110は、受信したパラメータを用いて、数式5に相当する最適化モデルを作成する。
ただし、本実施形態のモデル取得部110は、数式7に示されている行列M1及びM2、並びに、変数γを導入して、数式5の変形例である数式8を作成する。
モデル変換部120は、後ほど説明するように、変数γを更新する。そこで、変数γの初期値を、初期値γ0とする。初期値γ0は、正の実数であれば、特に制限はない。モデル取得部110は、予め設定されている初期値γ0を用いてもよい。あるいは、モデル取得部110は、受信するパラメータに含めて、初期値γ0を取得してもよい。
更新後の変数γは、順番を示す変数iを付して変数γi(i=1、2、…)とする。
数式8からも明らかなとおり、変数λは、数式8の第1式(目的関数)に含まれている。さらに、数式8は、数式3との比較から明らかなとおり、一般的な二次最適化モデルと同型となっている。つまり、数式8は、最適解の算出が保証されている。つまり、モデル取得部110は、最適解が保証された最適化モデルを作成している。
このように、本実施形態に係る情報処理装置100は、最適化モデル(ロバスト二次最適化モデル)として、最適解の算出が保証された最適化モデルを作成する。
モデル取得部110は、作成した最適化モデルを、モデル変換部120に送信する。
モデル変換部120は、受信した最適化モデルの最適解を、最適化部130を用いて算出する。上記のとおり、この最適化モデルは、最適解の解法が保証されている。そのため、最適化部130は、最適解を算出できる。
なお、最適化部130における最適解の算出方法は、特に制限されない。最適化部130は、一般に用いられている二次最適化モデルにおける最適解の算出手法を用いてもよい。
最適化部130が最適解を算出後、モデル変換部120は、最適解が所定の条件(例えば、処理の回数)を満足するか否かを判定する。
所定の条件が満足された場合、モデル変換部120は、処理を終了し、最適解を出力部140に送信する。
所定の条件が満足されていない場合、モデル変換部120は、最適化モデルを変換する。より詳細には、モデル変換部120は、変数γiを修正する。変数γiの修正は、特に制限されない。モデル変換部120は、例えば、次に示す数式9を用いて、変数γiを変更(修正)してもよい。
数式9において、ベクトル「xγi」は、変数γiを用いて算出されたベクトルxである。例えば、最初のベクトルxγ0は、変数γの初期値γ0を用いて算出されたベクトルxである。また、ベクトルxγ1は、一回変更された変数γ1を用いて算出されたベクトルxである。
モデル変換部120は、算出した変数γi+1を数式8の変数γiと交換して、最適化モデルを変換する。つまり、モデル変換部120は、算出された最適解を用いて、最適化モデルを変換する。
そして、モデル変換部120は、最適化部130に、変換後の最適化モデルにおける最適解の算出を依頼する。
この変数γの修正に対して、数式8の最適解は、非減少であることが保証されている。
その理由は、次のとおりである。数式9に示されているようにγを変更(γiからγi+1に変更)して、γi+1≠γiとなった場合、数式8の第1式(目的関数)の値は、増加する。また、当然であるが、数式8の目的関数は、γi+1=γiの場合、同じ値となる。つまり、数式8における目的関数においてγを数式9に沿って変更した場合、数式8の目的関数は、このγの変更において非減少である。また、任意のγに固定し、xに関して最大化した場合、数式8の目的関数の値は、xに関して最大化を行っているので、非減少である。よって、γを数式9で変更したときの数式8における目的関数における最適解の算出は、非減少である。
そのため、情報処理装置100は、上記のモデル変換部120及び最適化部130の動作を十分大きな回数を繰り返せば、変動範囲における最適解(目的関数の最小値を、最大にする目的変数)、又は、最適解の近似解を算出できる。
このように、モデル変換部120が、パラメータの変動範囲における再定置を探索するように最適化モデルを変換する。そして、最適化部130が、最適化モデルの最適解を算出する。情報処理装置100は、この動作を繰り返せばよい。
そして、所定の条件は、変動の範囲(予測誤差の範囲)における最適解の算出を保証するための条件である。モデル変換部120及び最適化部130は、所定の条件を満足するまで上記動作を繰り返せば、最適解又は最適解の近似値を算出できる。なお、所定の条件は、例えば、過去の結果を基に設定されればよい。
[効果の説明]
次に、第一の実施形態の効果について説明する。
第一の実施形態に係る情報処理装置100は、パラメータの変動(行列U)を考慮した最適化モデル(ロバスト最適化モデル、特に、ロバスト二次最適化モデル)における最適解を算出するとの効果を奏する。つまり、情報処理装置100は、想定可能な不確実性を適用したロバスト最適化モデルにおける最適解を算出するとの効果を奏する。
その理由は、次のとおりである。
モデル取得部110は、最適化の対象である最適化モデル(ロバスト二次最適化モデル)を取得又は作成する。ただし、モデル取得部110は、上記のとおり、最適解が保証された最適化モデルを作成する。さらに、この最適化モデルは、変動を示す行列Uを用いているモデルである。
そして、モデル変換部120が、最適化部130を用いて、最適解の算出が保証された最適化モデルにおける最適解を算出するためである。
さらに、モデル変換部120は、所定の条件が満足されるまで、算出された最適解を用いて最適化モデルを変換する。そして、最適化部130は、変換された最適化モデルにおける最適解を算出する。ここで、モデル変換部120における最適化モデルの変換に対して、対応する最適化モデル(最適化問題)における最適解は、非減少となっている。
また、数式8における目的関数は、数式5におけるリスクを常に大きく見積もる。
これは、数式8の目的関数の値が、いかなるx及びγの組を代入した場合でも、同じxを数式5の目的関数に代入した値以下となるからである。
さらに、モデル変換部120における最適化モデルの変換は、現在の解(xγi)におけるリスクの見積りを、数式5と一致させる修正に相当する。
その理由は、次のとおりである。上記のとおり、いかなるx及びγの組に対しても、数式8の目的関数は、数式5の目的関数以下である。ただし、x及びγの組が数式9の関係を満たすとき、数式8の目的関数の値は、数式5の目的関数の値と一致するからである。
そのため、情報処理装置100は、変動範囲(予測誤差範囲)に対して十分な回数の処理を繰り返す条件を用いれば、数式5と同等のリスクの見積りにおいて、最適解又は最適解の近似値を算出できる。
[具体的な適用例]
以下、第一の実施形態に係る情報処理装置100の理解を容易にするため、簡単な具体例を用いて、第一の実施形態に係る情報処理装置100の適用例を説明する。
なお、以下で説明する適用例には、数式6ないし9を用いて説明した詳細な動作において説明した最適化モデルが適用可能である。最適化モデルにおけるパラメータなどの初期値は、各例に対する知見などを基に設定すればよい。
(1)第1の適用例
まず、第1の適用例として、情報処理装置100が、複数の商品の売上げの予測に基づいて、複数の商品の売上高の総和を最大にするように、複数の商品の価格における最適解を算出する場合について説明する。
より具体的な例として、情報処理装置100が、ある小売店において、この先一か月のサンドイッチ群の売上高の総和を最大にする最適解(販売価格)を算出する場合を考える。サンドイッチ群は、サンドイッチA、B、C、及びDの4種類のサンドイッチを含むとする。この場合、情報処理装置100は、サンドイッチ群の売上高の総和を最大化させる、サンドイッチA、B、C、及びDのそれぞれの販売価格の最適解を算出するという問題を解くことになる。
ただし、例えば、サンドイッチAの売上げ量は、サンドイッチA自体の販売価格に加え、サンドイッチAとともに商品棚に陳列されるサンドイッチ(サンドイッチB、C、及びD)の販売価格の影響を受けると考えられる。これは、その小売店に来店する顧客が、商品棚に同時に陳列されるサンドイッチA、B、C、及びDの中から、好ましいサンドイッチを選択的に購入すると考えられるからである。
ここで、例えば、サンドイッチBの販売価格が、通常設定されている販売価格より低く設定された日を想定する。この場合、顧客がサンドイッチBを購入する可能性は、通常の価格を設定されている日に比べ、高くなると予測される。これに対し、顧客がその他のサンドイッチ(A、C、及びD)を購入する可能性は、通常の価格が設定されている日に比べ、低くなると予測される。これは、通常より低い販売価格が設定された商品(この場合、サンドイッチB)は、一般的に、顧客に対して、購入する誘因を高くするためである。
つまり、サンドイッチBの販売価格に基づいて、その他のサンドイッチ(A、C、及びD)の売上げ量は、減ることになる。このような複数の商品における競合関係は、カニバリゼーションの関係(市場の共食いの関係)と呼ばれている。
すなわち、カニバリゼーションの関係とは、例えば、ある商品の販売価格を下げると、その商品の売上げ量は上がるが、他の競合商品(性質や特徴が互いに類似した複数の商品)の売上げ量が減少するような関係である。
例えば、サンドイッチAの売上げ量は、サンドイッチAの販売価格だけではなく、サンドイッチB、C、及びDの販売価格の影響を受ける。
したがって、サンドイッチAの売上げ量は、全てのサンドイッチ(A、B、C、及びD)の販売価格を含む関数(予測式又は予測モデル)を用いて表される。つまり、この関数が、予測モデルである。そして、サンドイッチ群の販売価格が、予測モデルの説明変数(ベクトルx)である。サンドイッチ群の売上げ量が、予測モデルにおける被説明変数(ベクトルy)となる。この関数(予測式又は予測モデル)は、過去のデータ(各サンドイッチの過去の販売価格とその時の売上げ量など)を基に算出することができる。
最適化モデルは、この関数(予測式又は予測モデル)を含むモデルとなる。つまり、最適化モデルは、説明変数と被説明変数との過去のデータに基づいて算出される。最適化モデルにおける目的変数は、サンドイッチ群の販売価格である。
ただし、最適化モデルは、その他の情報(例えば、外部情報)を含んでもよい。最適化モデルは、この先一か月の天候、気温、又は、周辺でのイベントなどに関する情報を含んでもよい。
なお、制約は、例えば、各サンドイッチの入荷数及び仕入価格である。また、目的関数は、サンドイッチ群の売上高の総和である。
モデル取得部110は、最適化モデルを取得し、モデル変換部120に送信する。
モデル変換部120は、最適化モデルを最適化部130に送信する。
最適化部130は、売上高の最適化モデルにおける販売価格などに対する制約条件を満たす範囲おいて、目的関数(サンドイッチ群の売上高の総和)の最小値が最大となるように、販売価格(目的変数)の最適解を算出する。より具体的には、最適化部130は、サンドイッチA、B、C、及びDのそれぞれの販売価格の最適解を算出する。
ここで、目的関数の最小値とは、あるパラメータにおける目的関数の最小値である。そして、「目的関数の最小値が最大となるように最適解を算出する」とは、「目的関数の最小値を最大とするパラメータを求める」ことである。
モデル変換部120は、最適解を基に、最適化モデルを変更する。
そして、モデル変換部120及び最適化部130は、所定の条件を満足するまで、この動作を繰り返す。
そして、出力部140は、最適解を出力する。
なお、上記の説明では、理解を容易にするために、情報処理装置100は、4つの商品の売上高の総和が最大になるように、個々の商品の販売価格の最適解を算出した。つまり、情報処理装置100は、最適化モデルにおける目的変数として、4つの目的変数を用いた。あるいは、情報処理装置100は、最適化モデルに含まれる予測モデルの説明変数として、4つの変数を用いている。しかし、情報処理装置100の対象とする最適化モデルに含まれる目的変数(又は、予測モデルの説明変数)の数は、4つに限定されない。目的変数の数は、2つ又は3つでもよく、5つ以上でもよい。また、目的変数に対応する値は、実体のある商品に関する値に限定されない。例えば、目的変数の値は、役務(サービス)に関する値でもよい。
(2)第2の適用例
次に、第2の適用例として、情報処理装置100が、最適解として、ホテルの売上高又は利益を最大化するように、ホテルのプラン(宿泊プラン)の価格(料金)を算出する場合について説明する。
この場合、目的関数は、ホテルの売上高又は利益を算出する関数を用いて表される。また、最適化モデルにおける目的変数(予測モデルにおける説明変数)として、ホテルの各部屋を利用するプランにおける料金が、選択される。制約は、例えば、総部屋数である。
つまり、情報処理装置100は、最適解として、ホテルの売上高又は利益の最小値を最大とするように、プランに設定される料金を算出する。
なお、第1の適用例と比較すると、第2の適用例における「プラン(例えば、シングルルームの朝食付きプラン)」が、第1の適用例における「サンドイッチ(例えば、サンドイッチA)」に対応する。
(3)第3の適用例
次に、第3の適用例として、情報処理装置100が、最適解として、ホテルの売上高又は利益を最大化するように、ホテルの部屋の価格及び部屋の在庫(空き部屋)の数を算出する場合について説明する。
この場合、目的関数は、第2に適用例と同様に、ホテルの売上高又は利益を算出する関数を用いて表される。また、最適化モデルにおける目的変数(予測モデルにおける説明変数)として、部屋の価格に対応する変数と、部屋の在庫数に対応する変数が、選択される。例えば、第1の目的変数は、各時期における各部屋の料金を表す変数である。また、第2の目的変数は、各時期における販売する部屋の数(又は、部屋の在庫数)を表す変数となる。制約は、例えば、総部屋数である。
つまり、情報処理装置100は、最適解として、ホテルの売上高又は利益の最小値を最大とするように、部屋の価格と、販売する部屋の数とを算出する。
(4)第4の適用例
次に、第4の適用例として、情報処理装置100が、最適解として、航空会社における売上高又は利益を最大化するように、航空会社における航空券の価格及び在庫(席)数を算出する場合について説明する。
この場合、目的関数は、航空会社の売上高又は利益を算出する関数を用いて表される。また、最適化モデルにおける目的変数(予測モデルにおける説明変数)として、航空券の価格及び販売数(販売する座席の数)に対応した変数が、選択される。
ここで、航空券は、経路(出発地、目的地、及び、ルート)、及び、座席の種類(クラス)に基づいて分けられているとする。この場合、例えば、第1の目的変数は、各時期における、経路及び座席のクラスに対応した航空券の料金を表す変数となる。また、第2の目的変数は、各時期における航空券の販売枚数(販売座席数)を表す変数である。
制約は、例えば、各経路に用いられる航空機の座席数である。
つまり、情報処理装置100は、最適解として、航空会社の売上高又は利益の最小値を最大とするように、航空券の料金と、販売枚数とを算出する。
(5)第5の適用例
次に、第5の適用例として、情報処理装置100が、最適解として、駐車場における売上高又は利益を最大化するように、駐車場における駐車料金を算出する場合について説明する。
この場合、目的関数は、駐車場の売上高又は利益を算出する関数を用いて表される。また、最適化モデルにおける目的変数(予測モデルにおける説明変数)は、例えば、時間帯別及び場所別の駐車料金を表す変数である。制約は、例えば、各駐車場の駐車可能台数である。
つまり、情報処理装置100は、最適解として、駐車場の売上高又は利益の最小値を最大とするように、時間別及び場所別の駐車料金を算出する。
[ハードウェア構成]
以上の説明した情報処理装置100は、次のように構成される。
例えば、情報処理装置100の各構成部は、ハードウェア回路で構成されてもよい。
また、情報処理装置100において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。つまり、各実施形態における情報処理装置は、最適化システムとして実現されてもよい。
この場合、各装置における各構成要素の一部又は全部は、汎用若しくは専用の回路(circuitry)、若しくは、プロセッサ等、又は、これらの組合せを用いて実現される。上記各構成要素の一部又は全部は、単一の集積回路(IC(Integrated circuit)又はchip)を用いて構成されてもよい。あるいは、上記各構成要素の一部又は全部は、所定の母線(bus)を介して接続された複数の集積回路を用いて構成されてもよい。上記各構成要素の一部又は全部は、上記の回路等とプログラムとの組合せを用いて実現されてもよい。
各装置の各構成要素の一部又は全部が、複数の情報処理装置又は回路等を用いて実現される場合、上記の複数の情報処理装置又は回路等は、集中的に配置されてもよい。あるいは、上記の複数の情報処理装置又は回路等は、分散的に配置されてもよい。例えば、上記の情報処理装置又は回路等は、各々の情報処理装置又は回路等が、所定の通信ネットワークを介して接続される形態として実現されてもよい。上記形態は、クライアントアンドサーバシステム、又は、クラウドコンピューティングシステム等のようなシステムである。
また、情報処理装置100において、複数の構成部は、1つのハードウェアで構成されてもよい。
また、情報処理装置100は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。情報処理装置100は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されてもよい。
図3は、本実施形態におけるハードウェアの構成の一例である情報処理装置600の構成を示すブロック図である。
情報処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータ装置を構成している。
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。そして、CPU610を含むコンピュータは、これらの構成を制御し、図1に示されている、モデル取得部110と、モデル変換部120と、最適化部130と、出力部140としての各機能を実現する。
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時的な記録媒体として使用してもよい。
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記録媒体700が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630に保存して、保存したプログラムを基に動作してもよい。
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
内部記憶装置640は、情報処理装置600が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置640は、CPU610の一時記憶装置として動作してもよい。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
ここで、ROM620と内部記憶装置640は、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。さらに、IOC650は、USBのような有線に限らず、無線を用いてもよい。
入力機器660は、情報処理装置600の操作者からの入力指示を受け取る機器である。入力機器660は、モデル取得部110として動作してもよい。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
表示機器670は、情報処理装置600の操作者に情報を表示する機器である。表示機器670は、出力部140として動作してもよい。表示機器670は、例えば、液晶ディスプレイである。
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、モデル取得部110、又は、出力部140として動作してもよい。NIC680は、例えば、LAN(Local Area Network)カードである。さらに、NIC680は、有線に限らず、無線を用いてもよい。
このように構成された情報処理装置600は、情報処理装置100と同様の効果を得ることができる。
その理由は、情報処理装置600のCPU610が、プログラムに基づいて情報処理装置100と同様の機能を実現できるためである。
<第二の実施形態>
情報処理装置100は、最適化モデルを取得した。しかし、情報処理装置100は、過去のデータ等を基に最適化モデルを作成してもよい。
そこで、第二の実施形態として、機械学習を用いて予測モデルを作成し、作成した予測モデルを基に最適化モデルを作成し、作成した最適化モデルにおける最適解を算出する情報処理装置101について説明する。情報処理装置101は、情報処理装置100と同様の構成を用いて、作成した最適化モデルの最適解を算出する。
[構成の説明]
まず、第二の実施形態に係る情報処理装置101の構成について説明する。
図4は、第二の実施形態に係る情報処理装置101の構成の一例を示すブロック図である。図4に示されているように、第二の実施形態に係る情報処理装置101は、第一の実施形態に係る情報処理装置100と比較すると、モデル作成部150を含む点で異なる。そこで、以下の説明では、モデル作成部150について説明し、第1の実施形態の同様の構成についての説明を省略する。なお、情報処理装置101は、情報処理装置100と同様に、図3に示されているコンピュータを用いて構成されてもよい。
モデル作成部150は、最適化モデルを作成し、モデル取得部110に送信する。なお、モデル作成部150は、モデル取得部110の機能を含んでもよい。例えば、モデル作成部150が、作成した最適化モデルをモデル変換部120に渡してもよい。この場合、情報処理装置101は、モデル取得部110を含まなくてもよい。
図5は、第二の実施形態に係るモデル作成部150の構成の一例を示すブロック図である。図5に示されているように、モデル作成部150は、データ記憶部151と、パラメータ受信部152と、モデル学習部153と、モデル計算部154とを含む。
データ記憶部151は、最適化モデルに含まれる予測モデルの元となる原型モデル(型)を記憶する。
さらに、データ記憶部151は、後ほど説明するモデル学習部153における学習(機械学習)に用いられるデータ(学習データ)を記憶する。なお、学習データは、特に制限されない。学習データは、例えば、後ほど説明するモデル学習部153における学習に対応して、予め、情報処理装置101に保存されているデータである。
さらに、データ記憶部151は、モデル計算部154の処理に用いられるデータ(参照データ)を記憶してもよい。参照データは、特に制限されない。参照データは、例えば、所定の観測機器から受信した観測データ(気象データなど)である。
なお、データ記憶部151に記憶されている原型モデルは、特に制限されない。例えば、原型モデルは、回帰予測に関する予測モデルでもよく、その他の一般的な予測モデルでもよい。
モデル学習部153は、データ記憶部151に記憶されている原型モデルを取得する。なお、データ記憶部151が、複数の原型モデルを記憶している場合、モデル学習部153は、所定の指示、又は、予め設定されている規則に基づいて、原型モデルを選択すればよい。
さらに、モデル学習部153は、データ記憶部151に記憶されているデータ(学習データ)を用いて、所定の処理(例えば、機械学習)を実行する。
そして、モデル学習部153は、上記の所定の処理(機械学習)の結果を用いて、原型モデルの少なくとも一部(例えば、パラメータ又は数式)を修正して、予測モデルを算出する。
なお、この予測モデルは、機械学習の結果を用いたモデルである。そのため、この予測モデルは、学習後モデルとも呼ばれる。
例えば、情報処理装置101が、回帰行列を含む予測モデル(回帰モデル)を用いる場合、モデル学習部153は、学習データを基に機械学習を用いて回帰行列を算出し、算出した回帰行列を原型モデルに組み込んで、予測モデルを算出(作成)する。
モデル学習部153が用いる学習処理は、特に制限されない。例えば、モデル学習部153は、回帰モデルを学習する場合、一般的に用いられている回帰モデル学習エンジンを用いてもよい。
モデル学習部153は、予測モデルを、モデル計算部154に送信する。
パラメータ受信部152は、モデル計算部154が用いるパラメータを受信する。パラメータ受信部152が受信するパラメータは、特に制限されない。パラメータは、最適化モデルにおける目的関数又は制約に含まれる変数又はパラメータであればよい。例えば、パラメータ受信部152は、既に説明した変数λ、及び/又は、変数γの初期値γ0を受信してもよい。このように、パラメータ受信部152が受信するパラメータの数は、特に制限されない。
また、パラメータの送信元は、特に制限されない。パラメータ受信部152は、利用者が操作する装置からパラメータを受信してもよい。
あるいは、情報処理装置101が、図示しない入力機器を含み、パラメータ受信部152は、図示しない入力機器に入力されたパラメータを受信してもよい。
例えば、情報処理装置101は、図示しない液晶ディスプレイを含むとする。さらに、情報処理装置101は、液晶ディスプレイの表面に、パラメータ受信部152としてタッチパネルを含むとする。この場合、情報処理装置101は、液晶ディスプレイにパラメータの値、又は、パラメータの値を設定する画像を表示する。そして、パラメータ受信部152は、タッチパネルに対する入力操作を検出して、検出位置に対応するパラメータを取得してもよい。
パラメータ受信部152は、受信したパラメータをモデル計算部154に送信する。
なお、パラメータ受信部152は、予測モデルに対応したパラメータを受信し、モデル学習部153に送信してもよい。図5における破線は、この関係を示している。
モデル計算部154は、モデル学習部153から予測モデルを受信する。さらに、モデル計算部154は、パラメータ受信部152からパラメータを受信する。そして、モデル計算部154は、パラメータと予測モデルとを基に、モデル取得部110に送信する最適化モデルを作成する。なお、モデル計算部154は、最適化モデルの作成において、データ記憶部151に記憶されている参照データを用いてもよい。
そして、モデル計算部154は、作成した最適化モデルをモデル取得部110に送信する。
これ以降、情報処理装置101は、第一の実施形態に係る情報処理装置100と同様な動作を基に最適解を算出する。
[動作の説明]
次に、図面を参照して、第二の実施形態に係るモデル作成部150の動作の詳細の一例について説明する。図6は、第二の実施形態に係るモデル作成部150の動作の一例を示すフロー図である。
データ記憶部151は、予め、原型モデル(型)、及び、学習データを記憶している。データ記憶部151は、さらに、参照データを記憶してもよい。
そして、パラメータ受信部152は、所定の送信元装置からパラメータを受信する(ステップS501)。
なお、既に説明したとおり、パラメータ受信部152が受信するパラメータは、特に制限されない。例えば、パラメータ受信部152は、モデル計算部154が用いるパラメータ(例えば、変動範囲の制約(λ)、又は、変数γの初期値γ0)を受信してもよい。パラメータ受信部152は、受信したパラメータを、モデル計算部154に送信する。
あるいは、パラメータ受信部152は、モデル学習部153が学習に用いるパラメータを受信してもよい。この場合、パラメータ受信部152は、受信した学習用のパラメータをモデル学習部153に送信する。
モデル学習部153は、データ記憶部151に記憶されている学習データを用いて、原型モデルにおける所定の部分(パラメータ、例えば、回帰行列)を学習する。そして、モデル学習部153は、学習結果と原型モデルとを用いて、予測モデルを算出する(ステップS502)。
モデル学習部153は、予測モデルをモデル計算部154に送信する。
なお、モデル学習部153は、パラメータ受信部152より先に動作してもよい。あるいは、モデル学習部153及びパラメータ受信部152は、少なくとも一部の動作において、並列に動作してもよい。
モデル計算部154は、パラメータを用いて、予測モデルから最適化モデル(例えば、ロバスト二次最適化モデル)を作成する(ステップS503)。なお、モデル計算部154は、最適化モデルの算出において、参照データを用いてもよい。
そして、モデル計算部154は、最適化モデルを、モデル取得部110に出力(送信)する(ステップS504)。
[詳細な動作]
次に、モデル学習部153における機械学習の動作の一例を、数式を用いて詳細を説明する。ただし、本実施形態に係るモデル学習部153が用いる数式は、以下の説明に限定されない。
まず、モデル学習部153が機械学習に用いる学習データは、作成される予測モデルにおける、予め測定された説明変数のベクトルx及び被説明変数のベクトルyとする。そのため、学習データにおけるベクトルxの数と、ベクトルyの数とは、同数(以下、N(Nは正の整数)とする)である。なお、学習データにおける個別のベクトルx及び個別のベクトルyを区別する場合、各ベクトルに上付きの添え字i(iは正の整数)を付す。つまり、i番目のベクトルxは、「xi」と表されるとする。
同様に、i番目のベクトルyは、「yi」と表されるとする。なお、yは、数式3における「y=Q0g(x)」である。つまり、yiとQg(xi)とは要素数が同じである。
学習データとして用いられる説明変数と被説明変数は、例えば、所定の期間における商品の販売価格と売上げ量とである。
ここで、モデル学習部153は、行列の要素が次の数式10に示される行列Gを導入する。
数式10において、行列「G」は、基底関数g(xi)を行ベクトルとして含む行列である。つまり、行列Gのi行は、列ベクトルである基底関数g(xi)を行ベクトルに変換して含む行列である。また、「gj(xi)」は、i番目のベクトルxiに対応した基底関数g(xi)のj番目の要素である。つまり、行列Gのi行j列の要素「Gij」は、i番目のベクトルxiに対応した基底関数g(xi)のj番目の要素である。
そして、モデル学習部153は、次の数式11に示されている行列Σ及びΔを導入(算出)する。
数式11において、行列「E1」は、1行1列の要素ひとつが「1」で、他の要素が「0」である行列である。モデル学習部153は、学習データにおけるベクトルx及びyを数式11に適用して、行列Σ及びΔを算出する。
そして、モデル学習部153は、上記の行列Σ及びΔを基に、機械学習の結果として、数式12に示されているように、行列Σ及びΔの平方根である行列L1及びL2を算出する。
数式12において、行列の平方根は、一般的な行列の平方根である。例えば、行列Σは、「Σ=L1 TL1」である。
モデル学習部153は、上記の行列L1及びL2を適用して予測モデルを作成する。
モデル計算部154は、上記の学習結果(予測モデル)を基に、最適化モデルを作成する。
[具体的な適用例]
例えば、一般の小売店は、大量の商品を扱っている。つまり、一般の小売店は、大量の商品の総売上高を最大化するような、各商品における販売価格の最適解の算出を望んでいる。
しかし、上記のような場合に対応した最適化モデルにおける目的関数を定義する作業は、かなり煩雑な作業であり、現実的には、小売店の従業者が実行できる作業ではない。
例えば、小売店における商品の将来の需要予測線が得られた場合、需要予測線に基づいて、発注と在庫との最適解を算出することは、理論的には可能である。しかし、人(従業員)が実際に作成できる需要予測線の数(商品の数)には、おのずから限界がある。また、発注作業は、一日に数回発生する場合も多い。そのため、発注作業のたびに、発注者が、需要予測線の作成などを実行することは、現実的には、無理である。
また、例えば、将来のある期間の売上高を最大とするようにその期間の商品価格の最適解を算出するためには、大量の商品の価格と需要の間の複雑な相関関係を把握することが、必要である。しかし、人が、大量の商品における相関関係を把握することは、かなり困難な作業となる。
一方、一般的に、専用計算機、又は、コンピュータなどの情報処理装置は、予め決められている手順に従って、大量のデータを処理することが容易である。例えば、モデル作成部150のデータ記憶部151は、目的関数の「形(原型モデル)」の定義を保存する。そして、モデル学習部153が、上記の小売店の場合における各商品の売上げ価格と売上げ量と組合せである大量の学習データを基に原型モデルから予測モデルを作成する場合を想定する。この場合の処理は、モデル学習部153において可能な処理である。このように、モデル作成部150は、大量のデータが存在する状況において、最適化モデルを効率良く作成することができる。
さらに、モデル作成部150は、第1の実施形態において説明したカニバリゼーションの関係のような複雑な相関関係が存在する複数の大量のデータを用いる場合でも、その手順が定義されれば、最適化モデルを作成できる。
ここで、既に説明したように、一般的な最適解を算出する装置は、予測誤差を考慮しない。そのため、一般的な装置から算出された最適解は、実際に適用され場合において最適とはならない可能性がある。そのため、一般的な最適解を算出する装置から算出された最適解は、人手に基づく判定及び/又は修正などが必要である。
一方、情報処理装置101は、予測誤差を考慮したロバストな最適化モデルを算出する。あるいは、情報処理装置101は、指定された確率を基に、適切な不確定領域を定めることができる。なお、確率の指定に関しては、後ほど、第3の実施形態として、説明する。
そのため、情報処理装置101は、人手では難しい大量のデータに基づく予測誤差に対してロバストな最適化モデルにおける最適解の算出を、実現することができる。
なお、モデル学習部153は、予測モデルの算出において、外部情報を用いて、機械学習を実行してもよい。外部情報とは、例えば、天候、季節、周辺の状況(例えば、イベントの実施)、周囲における同等製品の料金、又は、ロケーション情報(住宅地、オフィス街、駅からの距離など)である。
[効果の説明]
次に、第二の実施形態に係る情報処理装置101の効果について説明する。
第二の実施形態に係る情報処理装置101は、第一の実施形態の効果に加え、適切な最適化モデルを提供するとの効果を奏する。
その理由は、次のとおりである。
モデル学習部153が、予めデータ記憶部151に記憶されている原型モデルに機械学習の結果を適用して予測モデルを作成する。そして、モデル計算部154は、パラメータ受信部152が受信したパラメータを予測モデルに適用して、最適化モデルを作成する。つまり、モデル作成部150は、機械学習を基に、適切な最適化モデルを算出し、モデル取得部110に提供できるためである。
<第三の実施形態>
情報処理装置100及び情報処理装置101は、利用者などによる操作に基づいて、最適化モデルのパラメータの値を受信し、その値を最適化モデルに適用して、最適解を算出してもよい。あるいは、情報処理装置100及び情報処理装置101は、利用者などの操作に基づいて、パラメータの値の変更の指示を受信し、最適化モデルにおけるパラメータの値を変更して、最適解を算出してもよい。
さらに、情報処理装置100及び情報処理装置101は、受信したパラメータと関連付けて、最適解を表示してもよい。
そこで、第三の実施形態として、情報処理装置100又は情報処理装置101の機能を含み、さらに、パラメータを受信し、最適解を出力する情報処理装置800を説明する。なお、以下の説明は、一例として、情報処理装置100を用いて説明する。ただし、以下の説明おいて、情報処理装置100は、情報処理装置101に置き換え可能である。また、情報処理装置800は、図3に示されているコンピュータを用いて構成されてもよい。
[説明の前提]
以下の説明において、最適化モデルにおける目的関数は、複数の商品における売上げの合計である総売上高(以下、単に「売上高」と呼ぶ)とする。売上高(目的関数、つまり、メリット)は、各商品の販売価格と各商品の売上げ量との積の合計となる。
ただし、各商品の売上げ量は、各商品の販売価格の影響を受ける。数式5における行列Q0は、この影響関係(例えば、カニバリゼーションの関係)を示す行列となる。このように、商品の売上げ量は、商品の販売価格の関数(予測式)を用いて表される値(予測値)である。つまり、最適化モデルに含まれる予測モデルは、商品の販売価格に基づいて商品の売上げ量を予測するモデルである。具体的には、各商品の販売価格が、予測モデルにおける説明変数(ベクトルx)である。また、各商品の売上げ量が、予測モデルにおける被説明変数(ベクトルy)である。
そして、最適化モデルは、目的関数である売上高を最適値(変動範囲における最小値の最大)とする販売価格を算出する。つまり、最適化モデルの目的変数は、各商品の販売価格(ベクトルx)となる。
[構成の説明]
図7は、第三の実施形態に係る情報処理装置800の構成の一例を示す図である。
図7に示されているように、情報処理装置800は、情報処理装置100と、パラメータ受付部300と、出力部400とを含む。
パラメータ受付部300は、情報処理装置100が最適解を算出する最適化モデル(ロバスト最適化モデル)における変動(予測誤差)の範囲を確率的に示すパラメータの入力を受け付ける(受信する)。
なお、パラメータは指標の一例である。そのため、パラメータ受付部300は、指標受付部の一例である。
より詳細には、このパラメータは、例えば、上記の売上高の最適値の分布が、確率密度を用いて表される場合、売上高の最適値おける予測誤差の範囲を、確率的に示すパラメータである。ここで、「確率的に示す」とは、確率に関連する指標を用いて表すことである。例えば、「確率的に示す」とは、確率密度の分布の全体に対する比率(パーセント)、又は、確率密度における標準偏差(σ)に対する比率である。
なお、このパラメータは、想定外の不利益を受ける可能性(リスク)に対する確率に関連するパラメータでもよい。反対に、このパラメータは、想定される不利益を受ける可能性(リスク)の確率に関連するパラメータでもよい。このように、パラメータは、想定外の不利益を受ける可能性(リスク)に対応した値である。
以下、このパラメータの一例として、数式5に示されている「変数λ(以下、「パラメータλ」とする)」を用いて説明する。パラメータλは、予測誤差の範囲を示すデータの一例である。
ここで、パラメータλにおける「確率的に示す」について、より具体例を説明する。説明に用いる確率分布を、標準正規分布とする。そして、αを、確率分布における最適解の算出において考慮されないリスクの比率(単位は、パーセント(%))とする。
なお、αの値が50の場合は、平均を考慮することに相当する。つまり、「α=50」の場合は、一般的な最適化(非ロバストな最適化)に相当する。
そのため、αの値は、50以下とする。そして、上記の確率分布に対応する分布関数を関数F()とする。この場合、情報処理装置100は、パラメータλとして、次の数式13に示される値を用いることができる。
数式13においてF−1()は、関数F()の逆関数である。
なお、パラメータ受付部300におけるパラメータλの受付手法は、特に、制限されない。例えば、パラメータ受付部300は、図示しない入力機器(例えば、キーボード、マウス、又は、タッチパネル)を含み、その入力機器に対する操作を基に、パラメータλを受け付けてもよい。そのため、図7は、破線を用いて、入力機器を示している。
あるいは、パラメータ受付部300は、図示しないネットワークを介して、利用者が操作する装置から、パラメータλを受信してよい。
情報処理装置100は、第一の実施形態の同様に、最適化モデル(ロバスト最適化モデル)の最適解を算出する。つまり、情報処理装置100は、商品の販売価格と商品の売上げ量との積を含んで定まる売上高を表す目的関数について、制約条件の下で目的関数の値が最大となるように商品の価格を算出する。算出された商品の価格は、最適化モデルの最適解である。
より詳細には、情報処理装置100は、パラメータλに基づいて確率的に指定された変動(予測誤差)の範囲内においる売上高(目的関数)の最小値を、最大とする最適解を算出する。
このように、情報処理装置100は、情報処理装置800における最適化部である。
出力部400は、情報処理装置100が算出した最適解(販売価格)を、少なくともパラメータλ(予測誤差の範囲を示す値)と関連付けて出力する。ただし、出力部400における出力方法は、特に制限されない。例えば、出力部400は、図示しない表示機器(例えば、液晶ディスプレイ)を含み、最適解とパラメータλとを、1つに画面に表示してもよい。そのため、図7は、破線を用いて、表示機器を示している。
あるいは、出力部400は、最適解とパラメータλとを、所定の出力装置に出力してもよい。
出力部400は、上記情報(最適解及びパラメータλ)に加え、最適化モデルに関連する情報を関連付けて出力してもよい。例えば、出力部400は、上記情報に加え、予測モデルの被説明変数であるベクトルyの値(商品の売上げ量の予測値)、及び/又は、最適化モデルの目的関数の値(売上高の最適値)を出力してもよい。
なお、出力部400は、必要に応じて、上記の最適化モデル及び最適化モデルに含まれる予測モデルに関連する情報を、情報処理装置100及び/又はパラメータ受付部300から取得すればよい。
さらに、パラメータ受付部300は、出力部400が最適解及びパラメータλを出力後に、再度、パラメータλを受け付けてもよい。例えば、出力部400が、表示機器を含み、その表示機器に最適解とパラメータλとを表示する。情報処理装置800の利用者は、その表示を参照して、確認したいパラメータλ(新しいパラメータλ)の値を、情報処理装置800に入力する。
この入力方法は、特に制限されない。例えば、パラメータ受付部300が、入力機器を含み、その入力機器に対する操作に基づいてパラメータλを取得してもよい。あるいは、ネットワークを経由して情報処理装置800に接続されている利用者の装置が、情報処理装置800に、新しいパラメータλを送信してもよい。
情報処理装置800は、既に説明した動作と同様に動作して、新しいパラメータλに対応する最適解を算出する。そして、情報処理装置800は、新しいパラメータλと最適解とを関連付けて出力する。
情報処理装置800が受け付けるパラメータλの数は、特に限定されない。情報処理装置800は、1つのパラメータλを受け付けて、最適解を算出してもよい。あるいは、情報処理装置800は、複数のパラメータλを受け付けて、それぞれのパラメータλに対応した最適解を算出し、パラメータλと最適解とを関連付けて出力してもよい。
なお、ここまでの説明において、情報処理装置800は、パラメータ受付部300を用いて、パラメータλを受け付けるとしていた。しかし、情報処理装置800は、予め設定されているパラメータλに対して動作してもよい。
例えば、予め、情報処理装置800は、図示しない記憶部に、パラメータλの複数の値(例えば、考慮するリスク又は考慮しないリスクにおける確率の10%、20%、30%、及び40%に対応する値)を保持する。そして、パラメータ受付部300が、保持されているパラメータλを、情報処理装置100に送信する。情報処理装置100は、各パラメータλに対応した最適解を算出する。そして、出力部400は、各パラメータλと、パラメータλに対応する最適解とを対応づけて出力する。
情報処理装置800の利用者は、出力部400が出力した情報(最適解とパラメータλとの組)を参照して、最適解を選択すればよい。
この場合、情報処理装置800は、利用者の操作を基に、新たなパラメータλを受け付けて、新たな最適解を算出してもよい。例えば、利用者が、パラメータλの2つの値の間における最適解(例えば、考慮するリスクの確率が20%と30%との間の詳細な最適解)を知りたい場合がある。このような場合、情報処理装置800は、最適解を知りたいパラメータλを受け付けて、最適解を算出し、パラメータλと最適解とを対応づけて出力すればよい。
[表示例]
次に、図面を参照して、第三の実施形態に係る情報処理装置800における出力部400の出力について説明する。なお、以下の説明は、出力部400が、表示機器を含み、その表示機器を用いて、パラメータλ及び最適解を表示する場合について説明する。
(第1の表示例)
図8は、第三の実施形態に係る出力部400における第1の表示例を示す図である。図8は、受け付けたパラメータλと対応する最適解とを表示する場合の一例の示す図である。
図8は、目的関数の値(最適値)の確率密度関数が、正規分布に従う場合の例を示している。図8に示されている正規分布において、「λ=0」の位置が、正規分布の平均値の位置である。そして、図8において、平均値より右側が、目的関数の値が、よい値の範囲となる。つまり、λの値が正の範囲は、目的関数の値が、平均より高い(売上高が高い)範囲である。反対に、平均より左側の範囲(λの値が負の範囲)は、目的関数の値が、平均より低い(売上高が低い)範囲である。ただし、情報処理装置800が用いる確率密度関数は、正規分布に限定されない。
図8の下部に示されている長方形が、パラメータλの値を示している。つまり、図8において、長方形の位置は、最適解を算出する対象として用いる不確実の範囲の下限を示す。つまり、長方形の位置が、パラメータλの値に相当する。ここで、平均より売上高が高い範囲は、より好ましい結果のため、発生しても問題ない。そこで、最適解の算出に考慮されない(用いられない)リスクの範囲は、平均より低い範囲となる。つまり、図8において、パラメータλに対応する位置から左側の範囲(斜線を付した範囲)が、考慮されないリスクに対応する範囲であり、最適解の算出に用いない不確実性の範囲である。つまり、図8に示されるグラフは、パラメータλに対応した考慮されないリスクの大きさを示している。ただし、斜線を付していない範囲は、最適解の算出において考慮されたリスクの範囲である。そのため、図8に示されるグラフは、パラメータλに対応した考慮されるリスクの大きさを示している図でもある。
さらに、出力部400は、図8の右側に示されているように、パラメータλの値(最適解に対応するリスク)と、パラメータλに対応した最適解の値(商品の価格(単位は、千円))とを表示している。リスクは、平均からの差のため、図8において、考慮されるリスクの範囲は、平均(λ=0)からパラメータλの部分となる。
なお、図8において、出力部400は、上記に加え、パラメータλの値における目的関数の最適値(最適解における売上高の平均値、単位は千円)を表示している。
情報処理装置800は、パラメータ受付部300が、新たなパラメータλを受け付けると、そのパラメータλに対応した最適解を算出する。そして、出力部400は、新たなパラメータλと、対応する最適解とを表示する。
例えば、パラメータ受付部300が、入力機器として、出力部400に含まれる表示機器の表面に設置されたタッチパネルを含むとする。そして、パラメータ受付部300が、タッチパネルを用いて、表示されているパラメータλに対応する長方形を左右に移動させる操作に検出する。そして、パラメータ受付部300は、タッチパネル上の操作位置に対応したパラメータλを新たなパラメータλとして用いてもよい。情報処理装置800が、このような構成を含む場合、情報処理装置800の利用者は、パラメータλを変更できる。
上記のとおり、パラメータλの値は、図8における負の値となる。つまり、パラメータλの正の値は、本表示例では、用いる必要がない。そのため、出力部400は、パラメータλの値における「−」記号を省略してもよい。そのため、図8において、パラメータλの値の「−」記号を省略した。
出力部400は、パラメータλの表示として、パラメータλの値に換えて、パラメータλの値に対応する確率の値(例えば、考慮されないリスク又は考慮されるリスクのパーセントの値)を表示してもよい。
なお、パラメータλの値が「0」の場合、情報処理装置800は、予測誤差の範囲(リスク)を用いない最適化モデル(つまり、一般的な最適化モデル)における最適解を算出する。また、パラメータλの値の絶対値が、設定可能な範囲の最大値の場合、情報処理装置800は、設定可能な全ての予測誤差の範囲(リスク)を用いた最適化モデル(ロバスト最適化モデル)における最適解を算出する。
ただし、情報処理装置800における操作対象は、パラメータλに限定されない。また、情報処理装置800は、表示及び操作するパラメータを一つに限定されない。情報処理装置800は、複数のパラメータを操作及び表示してもよい。
(第2の表示例)
情報処理装置800は、複数の最適解を表示してもよい。例えば、情報処理装置800は、パラメータλの変更に対応する最適解を比較するため、パラメータλの変更前に対応する最適解と変更後に対する最適解とを表示してもよい。
あるいは、情報処理装置800は、複数のパラメータλと、それぞれのパラメータλに対応する最適解とを表示してもよい。
図9は、第三の実施形態に係る出力部400における第2の表示例を示す図である。
図9において、上部のグラフは、変数λに対する目的関数の値(最適値)の変化の一例を示すグラフである。
グラフにおける縦軸は、目的関数の値(売上高の最適値の平均値)である。ただし、グラフを見やすくするため、縦軸における横軸との交点は、0から移動している。
横軸は、パラメータλの値である。
なお、上記のとおり、パラメータλは、負の値となる。そのため、図9は、パラメータλと最適解とを関係を見やすくするため、パラメータλの正の値の表示を省略している。さらに、図9は、「−」記号の表示を省略し、図の右側に行くほどパラメータλの絶対値が大きくなるように、パラメータλの負の値の範囲を表示している。また、目的関数の最適値に対応する確率密度は、単調減少の場合を示している。
図9の下部は、各パラメータλに対する最適解の値(商品の価格、単位は千円)を示している。さらに、出力部400は、各最適解に対応した目的関数の最適値(売上高の平均値、単位は千円)の値を表示している。
パラメータ受付部300は、複数のパラメータλ(リスク)の値を受け付ける。そして、情報処理装置100は、パラメータλに対応する最適解(商品の価格)を算出する。そして、出力部400は、情報処理装置100が算出した複数の最適解(商品の価格)と、各最適解に対応するパラメータλ(リスク)とを関連づけて、1つの画面に表示する。
なお、出力部400は、上記の情報(最適解とパラメータλ)に加え、各最適解(商品の価格)に対応した目的関数の最適値(売上高の平均値)を表示している。
図9に示されている第2の表示例の場合、情報処理装置800の利用者は、一つの画面において、複数のリスク(パラメータλ)と最適解との関係を確認することができる。
なお、情報処理装置800は、パラメータλに限らず、他のパラメータ、又は、複数のパラメータに対応した最適解を算出し、その結果を表示してもよい。
[効果の説明]
次に、第三の実施形態に係る情報処理装置800の効果について説明する。
第三の実施形態に係る情報処理装置800は、予測誤差範囲を示すパラメータλ(リスク)との関係に対応した売上高を最適化する価格の最適解を提供(出力)するとの効果を奏する。
その理由は、次のとおりである。
パラメータ受付部300は、パラメータλを受け付ける。パラメータλは、リスクの大きさ(予測誤差範囲)に関連する値である。情報処理装置100が、制約条件の下で、商品の価格と商品の売上げ量との積を含んで定まる目的関数(売上高)の値(メリット)の最小値を最大とする最適解(最適な商品価格)を算出する。ここで、最適解は、目的関数の値(メリット)を実現するための値である。つまり、最適解は、目的関数の値(メリット)に関連する値である。そして、出力部400は、最適解とパラメータλとを関連付けて出力する。このように、情報処理装置800は、リスクとメリットとの関係に対応した最適解を算出し、出力するためである。
[変形例]
情報処理装置800における出力部400は、既に説明したとおり、他の装置に、最適解とパラメータλを送信してもよい。例えば、複数の端末装置を含むシステムの管理装置が、情報処理装置800を含む場合、情報処理装置800又は上記管理装置は、情報処理装置800が算出した最適解とパラメータλとの組合せを、各端末装置に送信してもよい。
販売時点情報管理システム(Point of sale system (POS system))を用いて、より具体的に説明する。POSシステムの管理装置が、情報処理装置800を含む場合を想定する。この場合、POSシステムの管理装置は、各店舗の端末装置に、最適解(商品の価格)とパラメータλとの組合せを送信する。各端末装置の利用者(例えば、各店舗の店長)は、各店舗の状態(例えば、店舗の位置、及び営業時間)を基に各店舗におけるリスクに対応したパラメータλを選択し、選択されたパラメータλに対応する最適解(商品の価格)を用いればよい。
この場合、管理装置は、情報処理装置800の処理対象である最適化モデルとして、各店舗における最適化モデルを組み合わせたPOSシステム全体の最適化モデルを用いてもよい。この場合、情報処理装置800は、最適化モデルにおける制約として、各店舗における制約(例えば、各店舗の在庫数)を反映した制約を用いることができる。つまり、情報処理装置800は、より正確な最適化モデルを用いて、最適解を算出できる。
さらに、管理装置に含まれる情報処理装置800は、各端末装置からパラメータλを受信してもよい。例えば、端末装置の利用者が、受信した2つのパラメータλの間のパラメータλに対する最適解を知りたい場合、端末装置の利用者は、端末装置を操作して、管理装置に、最適解を算出したいパラメータλの値を送信してもよい。
なお、上記のPOSシステムの場合、送信される情報は、最適化及びパラメータλに加え、予測システムにおける被説明変数(各商品の売上げ量の予測値)、又は、目的関数(売上高)などを含んでもよい。その場合、例えば、各端末装置の利用者は、最適解の選択において、さらに判断条件(例えば、店舗の在庫数)を加えることができる。つまり、情報処理装置800の利用者は、より正確に、最適解を選択できる。
<その他の実施形態>
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
<付記>
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
所定の商品の売上げ量の予測に用いられる予測式が商品の価格を含む関数を用いて表されている場合に、売上げ量の予測データと予測式とに基づいて算出される売上げ量の予測値についての予測誤差範囲を確率的に示すパラメータであるパラメータλの入力を受け付けるパラメータ受付手段と、
所定の制約条件の下で、売上げ量と価格との積を含んで定まる売上高を表す目的関数の値を最大とする価格の最適解を算出する最適化手段と、
価格の最適解をパラメータλと関連付けて出力する出力手段と
を含み、
最適化手段が、売上高の予測値を用いて、パラメータλに基づいて確率的に指定された予測誤差の範囲において、目的関数の値の最小値を最大とする価格の最適解を算出する
情報処理装置。
(付記2)
出力手段が、
価格又はパラメータλと関連づけて、売上げ量及び/又は売上高を出力する
付記1に記載の情報処理装置。
(付記3)
パラメータ受付手段が、
パラメータλの更新を受け付け、
最適化手段が、
更新されたパラメータλに対して更新された最適解を算出し、
出力手段が、
更新されたパラメータλと、更新された最適解とを関連づけて出力する
付記1又は2に記載の情報処理装置。
(付記4)
パラメータ受付手段が、
複数のパラメータλを受け付け、
最適化手段が、
複数のパラメータλそれぞれに対して価格の最適解を算出し、
出力手段が、
各パラメータλと、対応する各最適解とを関連づけて出力する
付記1又は2に記載の情報処理装置。
(付記5)
出力手段が、
パラメータλと最適解とを関連付けて表示する表示手段を含み、
パラメータ受付手段が、
パラメータλを受け付ける入力機器を含む
付記1ないし4のいずれか1項に記載の情報処理装置。
(付記6)
価格と売上げ量とが、市場の共食いの関係となっている
付記1ないし5のいずれか1項に記載の情報処理装置。
(付記7)
所定の商品の売上げ量の予測に用いられる予測式が、商品の価格を含む関数を用いて表されている場合に、売上げ量の予測データと予測式とに基づいて算出される売上げ量の予測値についての予測誤差範囲を確率的に示すパラメータであるパラメータλの入力を受け付け、
所定の制約条件の下で、売上げ量と価格との積を含んで定まる売上高を表す目的関数の値を最大とする価格の最適解を算出し、
価格の最適解をパラメータλと関連付けて出力し、
さらに、
売上高の予測値を用いて、パラメータλに基づいて確率的に指定された予測誤差の範囲において、目的関数の値の最小値を最大とする価格の最適解を算出する
情報処理方法。
(付記8)
所定の商品の売上げ量の予測に用いられる予測式が、商品の価格を含む関数を用いて表されている場合に、売上げ量の予測データと予測式とに基づいて算出される売上げ量の予測値についての予測誤差範囲を確率的に示すパラメータであるパラメータλの入力を受け付ける処理と、
所定の制約条件の下で、売上げ量と価格との積を含んで定まる売上高を表す目的関数の値を最大とする価格の最適解を算出する処理と、
価格の最適解をパラメータλと関連付けて出力する処理と
を含み、さらに、
売上高の予測値を用いて、パラメータλに基づいて確率的に指定された予測誤差の範囲において、目的関数の値の最小値を最大とする価格の最適解を算出する処理
をコンピュータに実行させるプログラムをコンピュータ読み取り可能に記録する不揮発性記録媒体。
この出願は、2016年 2月 3日に出願された米国仮出願62/290568を基礎とする優先権を主張し、その開示の全てをここに取り込む。
条件を満足していない場合(ステップS203でNo)、モデル変換部120は、最適化モデルを変換する(ステップS204)。そして、モデル変換部120は、ステップS202に戻る。