(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024084444
(43)【公開日】2024-06-25
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 17/12 20060101AFI20240618BHJP
【FI】
G06F17/12
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022198722
(22)【出願日】2022-12-13
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】福島 亜梨花
(72)【発明者】
【氏名】吉田 琢史
(72)【発明者】
【氏名】近藤 浩一
(72)【発明者】
【氏名】今原 修一郎
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB02
(57)【要約】
【課題】連立方程式に含まれる複数の変数ごとに解に関する情報を得る。
【解決手段】情報処理装置は、処理部を備える。処理部は、n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与し、複数の誤差項それぞれに対する優先度の1つ以上のパターンごとに、複数の方程式を制約として、優先度と誤差項とに基づく評価関数を最適化するように、変数それぞれの最適解を算出し、n個の変数それぞれに対して、パターンに対して算出された最適解に基づいて、変数の解に関する情報を示す解情報を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与し、
複数の前記誤差項それぞれに対する優先度の1つ以上のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出し、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成する、
処理部、
を備える情報処理装置。
【請求項2】
前記処理部は、
複数の前記パターンごとに前記最適解を算出し、
n個の前記変数それぞれに対して、複数の前記パターンに対する複数の前記最適解の変動がある場合に解が存在しないことを示し、前記変動がない場合に解が存在することを示す判定情報をさらに含む前記解情報を生成する、
請求項1に記載の情報処理装置。
【請求項3】
前記処理部は、
n個の前記変数それぞれに対して、前記最適解の矛盾度をさらに含む前記解情報を生成する、
請求項1に記載の情報処理装置。
【請求項4】
前記処理部は、複数の前記パターンごとに前記最適解を算出し、
前記矛盾度は、複数の前記パターンに対する複数の前記最適解の変動の大きさである、
請求項3に記載の情報処理装置。
【請求項5】
前記処理部は、
複数の前記パターンごとに前記最適解を算出し、
複数の前記パターンに対する複数の前記最適解の代表値である前記解情報を生成する、
請求項1に記載の情報処理装置。
【請求項6】
前記代表値は、複数の前記最適解の平均値、中央値、最頻値、または、四分位数である、
請求項5に記載の情報処理装置。
【請求項7】
前記評価関数は、前記変数のばらつきを最小化するための追加項を含む、
請求項1に記載の情報処理装置。
【請求項8】
前記追加項は、前記変数のL2ノルムまたはL1ノルムである、
請求項7に記載の情報処理装置。
【請求項9】
前記処理部は、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる複数の前記パターンごとに、前記変数それぞれの最適解を算出する、
請求項1に記載の情報処理装置。
【請求項10】
前記処理部は、
複数の前記方程式それぞれに対して複数の前記誤差項のいずれかを付与する付与部と、
前記最適解を算出する算出部と、
前記解情報を生成する生成部と、
を含む、
請求項1に記載の情報処理装置。
【請求項11】
情報処理装置で実行される情報処理方法であって、
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与するステップと、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる1つ以上の前記優先度のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出するステップと、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成するステップと、
を含む情報処理方法。
【請求項12】
コンピュータに、
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与するステップと、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる1つ以上の前記優先度のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出するステップと、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
n個(nは2以上の整数)の変数を用いた連立方程式としてモデル化して得られた実行可能解を利用する処理は、ロボット工学および画像処理などさまざまな分野で実行されている。しかしながら、連立方程式は、解が一意に求まる場合のみではなく、解が複数存在する場合(不定)、および、複数の方程式同士に矛盾が含まれるために解が存在しない場合(不能)がある。
【0003】
連立方程式が実行可能解を持つことを保証するために連立代数方程式の係数に対する許容誤差限界を評価する技術が提案されている。しかしこのような技術は、例えば変数ごとの解に関する情報を得ることができない。また、評価できる変数の個数が制限される場合がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、連立方程式に含まれる複数の変数ごとに解に関する情報を得ることができる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態の情報処理装置は、処理部を備える。処理部は、n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与し、複数の誤差項それぞれに対する優先度の1つ以上のパターンごとに、複数の方程式を制約として、優先度と誤差項とに基づく評価関数を最適化するように、変数それぞれの最適解を算出し、n個の変数それぞれに対して、パターンに対して算出された最適解に基づいて、変数の解に関する情報を示す解情報を生成する。
【図面の簡単な説明】
【0007】
【
図10】実施形態における解析処理のフローチャート。
【
図20】実施形態の情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0009】
実施形態の情報処理装置は、n個の変数を用いた連立方程式を解析する装置である。例えば、本実施形態の情報処理装置は、以下の機能を有する。
(F1)連立方程式の各方程式に誤差項を付与する機能
(F2)誤差項の付与された連立方程式を制約として、制約ごとの予め設定された優先度(重み)を含む評価関数を用いて誤差項を最小化する数理最適化問題を解き、最適解を算出する機能
(F3)最適解を用いて、解に関する情報(解情報)を変数ごとに生成して出力する機能
【0010】
上記のような機能により、例えば、連立方程式の変数ごとに解情報を求めて出力することができる。解情報は、例えば以下の情報を含む。
・得られた解(一意の解、または、不定の場合の解の一例、不能の場合の近似解)を示す情報
・解が存在するか否かを示す情報(判定情報)
【0011】
上記の(F2)では、複数の優先度のパターン(以下、優先度パターン)に従い、優先度を変化させながら誤差項を最小化する数理最適化問題を繰り返し求め、最適解が算出されてもよい。複数の優先度パターンに対する最適解の変動を解析することにより、例えば、各変数が矛盾する度合いを示す情報(矛盾度)を提供することが可能となる。
【0012】
まず、本実施形態を適用し得る連立方程式の例について説明する。
【0013】
本実施形態は、n個の変数x_1~x_nを用いたm個(mは2以上の整数)の方程式の連立k次方程式(kは1以上の整数)であるn元連立k次方程式を対象とすることができる。n元連立k次方程式の解は、1つに定まる(以下、一意とする)場合だけでなく、複数の解が存在する(以下、不定とする)場合、および、解が存在しない(以下、不能とする)場合がある。
【0014】
以下では説明を簡易にするために、x_1~x_3の3つの変数(n=3)を用いた具体例を説明する
【0015】
一意となる連立方程式の例を以下の(1)式に示す。(1)式の連立方程式の解はx_1=3、x_2=4、x_3=3の一通りのみである。
x_1+x_2+x_3= 10
x_1 = 3
x_2 = 4
・・・(1)
【0016】
不定となる連立方程式の例を(2)式に示す。この場合、x_1は1つの値(x_1=3)となるが、x_2およびx_3に関しては、x_2+x_3=7を満たす(x_2,x_3)=(1,6)および(-1,8)などように、複数の値が解となりうる。
x_1+x_2+x_3= 10
x_1 = 3
・・・(2)
【0017】
不能となる連立方程式の例を(3)式に示す。この場合、連立方程式の第1式「x_1+x_2+x_3=10」は第2式~第4式までの加算である「x_1+x_2+x_3=12」と矛盾する。このため、x_1~x_3の変数の間に矛盾が生じており、この連立方程式を満たす解は存在しない。
x_1+x_2+x_3= 10
x_1 = 3
x_2 = 4
x_3 = 5
・・・(3)
【0018】
連立方程式が一意であるか、不定であるか、または、不能であるかは、一般的には係数行列または拡大係数行列のランクと変数数との関係で判断できる。しかし、ランクを用いる方法は、連立方程式を単位として一意、不定および不能を判断できるが、変数ごとの解情報、例えば、不定の場合の解の一例などを得ることはできない。その他、不定および不能の場合に解の情報を得るための手段として、一般化逆行列を用いる方法が考えられる。この方法では、不能の場合は各変数の近似解を得ることができるが、例えば不能の要因となる矛盾に関する情報は提供できない。また、これらの方法はk=1に相当する連立一次方程式に限定されている。
【0019】
そこで本実施形態は、n元連立k次方程式に対し、不能である場合は方程式間の矛盾に要因があることに着目して、矛盾を変数として明示的に扱い(以下、矛盾を示す変数を誤差項とする)、数理最適化により誤差項の値を探索する。これにより、本実施形態は、n元連立k次方程式において解が存在する(一意または不定)か、解が存在しない(不能)かを判定し、各変数についての解情報を提供する。また、本実施形態は、各変数および各方程式に関する矛盾を明示的に示唆することを可能とする。
【0020】
なお、本実施形態による解析の対象は、どのような連立方程式であってもよい。ロボット工学および画像処理で用いられる連立方程式のほか、例えば、以下のようなシステムで用いられる連立方程式を対象とすることができる。
・ビルシステムなどの建物内の空間に含まれる1個以上のエリアそれぞれの在人数を推定するシステム
【0021】
図1は、本実施形態の情報処理装置100の構成の一例を示すブロック図である。
図1に示すように、情報処理装置100は、付与部101と、算出部102と、生成部103と、出力制御部104と、記憶部120と、を備えている。
【0022】
付与部101は、上記の(F1)の機能を実現する構成部である。例えば付与部101は、n元連立k次方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与する。
【0023】
算出部102は、上記の(F2)の機能を実現する構成部である。例えば算出部102は、複数の誤差項それぞれに対する優先度を定める1つ以上の優先度パターンごとに、連立方程式に含まれる複数の方程式を制約として、優先度と誤差項とに基づく評価関数を最適化するように、変数それぞれの最適解を算出する。算出部102が数理最適化問題を解くために用いる手法(ソルバー)は、従来から用いられているどのような手法であってもよい。
【0024】
優先度パターンは1つであってもよいし、複数であってもよい。複数の優先度パターンは、例えば、複数の誤差項それぞれに対する優先度の値が相互に異なるように定められる。複数の優先度パターンを用いれば、複数の優先度パターンに対して得られる複数の最適解の変動を解析し、各変数に関する矛盾度を示す情報を提供することができる。
【0025】
生成部103は、上記の(F3)の機能を実現する構成部である。例えば生成部103は、n個の変数それぞれに対して、優先度パターンに対して算出された最適解に基づいて、変数の解情報を生成する。
【0026】
解情報は、例えば、以下の情報を含む。
(I1)一意の場合の解、不定の場合の解の例、または、不能の場合の近似解。これらの解または近似解は、例えば、複数の優先度パターンに対する複数の最適解の代表値である。代表値は、例えば、複数の最適解の平均値、中央値、最頻値、または、四分位数(第1四分位数、第3四分位数)である。
(I2)解が存在するか否かを示す判定情報。判定情報は、例えば、複数の優先度パターンに対する複数の最適解の変動がある場合に解が存在しないことを示し、変動がない場合に解が存在することを示す。
(I3)最適解の矛盾の度合いを示す矛盾度。矛盾度は、例えば、複数の優先度パターンに対する複数の最適解の変動の大きさを示す情報である。
【0027】
出力制御部104は、情報処理装置100で処理される各種情報の出力を制御する。例えば出力制御部104は、生成部103により生成された解情報を、表示装置、および、外部の情報処理装置(外部装置)などに出力する。
【0028】
上記各部(付与部101、算出部102、生成部103、および、出力制御部104)の少なくとも一部は、1つの処理部により実現されてもよい。上記各部は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0029】
記憶部120は、情報処理装置100で処理される各種情報を記憶する。記憶部120は、例えば、変数テーブル121、連立方程式リスト122、誤差項テーブル123、優先度テーブル124、最適解テーブル125、および、解情報テーブル126を記憶する。
【0030】
なお、情報処理装置100は、変数テーブル121と連立方程式リスト122とを入力し、上記の(F1)、(F2)、(F3)の各機能を実行することにより、各変数の解情報を記述した解情報テーブル126を出力する。各機能の実行時には、誤差項テーブル123、優先度テーブル124、および、最適解テーブル125が使用される。
【0031】
以下、記憶部120に記憶される各情報のデータ構造の例について
図2~
図9を用いて説明する。なお、
図2~
図9に示す各情報のデータ構造は一例であり、これらに限られるものではない。
【0032】
変数テーブル121は、n個の変数の定義を記述したテーブルである。
図2は、変数テーブル121の一例を示す図である。変数テーブル121は、列名に変数名を持つ1列n行のテーブルで、連立方程式で利用されている変数のシンボルを定義するテーブルである。
【0033】
連立方程式の解は数理最適化を用いて求められる。数理最適化を用いるときの各変数の解空間を制御するため、変数テーブル121は、各変数の下界および上界の少なくとも一方を含んでもよい。
図3は、このような場合の変数テーブル121の一例を示す図である。
図3に示すように、この場合の変数テーブル121は、下界および上界の列名を持つ2列が追加される。下界および上界には、どのような値が設定されてもよい。一部の変数のみに下界または上界を設定する場合は、該当する変数の該当列(下界または上界)に値が記述され、その他の要素にはNAが記述される。
【0034】
連立方程式リスト122は、解析対象となる連立方程式を記述した情報である。
図4は、連立方程式リスト122の一例を示す図である。
図4に示すように、連立方程式リスト122は、解析対象となるm個の連立方程式の各方程式を一行ずつ記載したm行のリストである。各方程式の左辺と右辺は「=」でつながれる。左辺および右辺に変数テーブルで定義された変数と値が記述される。
図4は、上記(3)式に対応する連立方程式リスト122の例である。
【0035】
なお、(3)式の例では変数の次数がk=1であり、かつ、説明のために変数を左辺に記述し、値を右辺に記述しているが、このような形式に限られるものではない。
図5は、連立方程式リスト122の他の例を示す図である。
図5に示すように、次数kはk=1以外であってもよいし、左辺と右辺とに変数および値が分かれているような方程式であってもよい。
【0036】
誤差項テーブル123は、付与部101によって付与された誤差項を記述したテーブルである。
図6は、誤差項テーブル123の一例を示す図である。
図6に示すように、誤差項テーブル123は、列名に誤差項名を持つ1列m行のテーブルで、誤差項のシンボルを定義するテーブルである。
図6は、例えば、(3)式のように4個(m=4)の連立方程式の各方程式に対して付与される4個の誤差項eps_1~eps_4を含む誤差項テーブルの例である。
【0037】
優先度テーブル124は、算出部102が誤差項の値を探索する際に利用する優先度を記述するテーブルである。
図7は、優先度テーブル124の一例を示す図である。
図7に示すように、優先度テーブル124は、列名に優先度名{w_1,…,w_j}(j=1,…,J;J≧m)を持ち、各列の要素として優先度w_iの値が予め設定される。Jは、2以上の整数であり、連立方程式の各誤差項に対応できるようにm以上の値が設定される。
【0038】
優先度は、連立方程式内のどの方程式を遵守するか、すなわち、誤差項を0にするかを調整する情報に相当する。優先度は、例えば、乱数より生成される。
【0039】
優先度テーブル124は、複数の優先度{w_1,…,w_j}の値が相互に異なる優先度パターンを記述するテーブルと解釈することができる。
図7では、2つの優先度パターンを含む優先度テーブル124の例が示されている。複数の優先度パターンを記述する場合、優先度テーブル124は、優先度パターンを識別するための識別情報(パターンID)を含んでもよい。
【0040】
最適解テーブル125は、算出部102により算出された最適解を記述するテーブルである。
図8は、最適解テーブル125の一例を示す図である。
図8に示すように、最適解テーブル125は、列名に優先度w_1~w_m、誤差項eps_1~eps_m、変数x_1~x_nを持ち(
図8ではm=4、n=3)、優先度パターンごとに、誤差項および変数それぞれの最適解の値を1つの行に記述するテーブルである。
【0041】
解情報テーブル126は、生成部103により生成された解情報を記述するテーブルである。
図9は、解情報テーブル126の一例を示す図である。
図9に示すように、解情報テーブル126は、列名に変数名と解とを持つ。解の列には、一意の場合の解、不定の場合の解の例、または、不能の場合の近似解が記述される。
【0042】
記憶部120は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0043】
記憶部120は、物理的に異なる記憶媒体としてもよいし、物理的に同一の記憶媒体の異なる記憶領域として実現してもよい。例えば、物理的に異なる複数の記憶媒体に、変数テーブル121、連立方程式リスト122、誤差項テーブル123、優先度テーブル124、最適解テーブル125、および、解情報テーブル126がそれぞれ分散して記憶されてもよい。
【0044】
次に、本実施形態の情報処理装置100による連立方程式の解析処理について説明する。
図10は、本実施形態における解析処理の一例を示すフローチャートである。
【0045】
付与部101は、誤差項付与処理を実行する(ステップS101)。誤差項付与処理では、付与部101は、変数テーブル121および連立方程式リスト122を記憶部120から読み出し、連立方程式リスト122に含まれる連立方程式の各方程式に誤差項を付与する。
【0046】
算出部102は、最適化処理を実行する(ステップS102)。最適化処理では、算出部102は、連立方程式の各方程式を制約として、誤差項の絶対値を最小化するように、すなわち、誤差項の絶対値が0に近づくように設計された数理最適化問題をソルバーで解き、変数および誤差項それぞれの最適解を算出する。
【0047】
生成部103は、解情報出力処理を実行する(ステップS103)。解情報出力処理では、生成部103は、算出部102から出力される最適解を利用して各変数の解情報を生成して出力する。
【0048】
以下、
図10の各ステップの詳細について説明する。
図11は、誤差項付与処理の一例を示すフローチャートである。
【0049】
付与部101は、変数テーブル121を読み出す(ステップS201)。付与部101は、連立方程式リスト122を読み出す(ステップS202)。付与部101は、連立方程式リスト122に含まれる複数の方程式のうち、未処理の方程式を取得する(ステップS203)。
【0050】
付与部101は、取得した方程式に誤差項を付与する(ステップS204)。付与部101は連立方程式リスト122に含まれるすべての方程式を処理したか否かを判定する(ステップS205)。すべての方程式を処理していない場合(ステップS205:No)、付与部101は、ステップS204に戻り、次の未処理の方程式を取得して処理を繰り返す。
【0051】
すべての方程式を処理した場合(ステップS205:Yes)、付与部101は、誤差項をそれぞれ付与した方程式を出力し(ステップS206)、誤差項付与処理を終了する。
【0052】
誤差項付与処理により、連立方程式リスト122に記述されたm個の各方程式にeps_1~eps_mまでのm個の誤差項が付与される。例えば、(3)式の連立方程式に対して誤差項が付与された各方程式は(4)式のようになる。
x_1+x_2+x_3= 10 +eps_1
x_1 = 3 +eps_2
x_2 = 4 +eps_3
x_3 = 5 +eps_4
・・・(4)
【0053】
なお、(4)式では誤差項が左辺に付与されているが、右辺に付与されてもよい。また、付与部101は、誤差項テーブル123を作成し、誤差項テーブル123と、読み出した変数テーブル121と、誤差項を付与した連立方程式に含まれるすべての方程式と、を算出部102へ出力する。
【0054】
次に、最適化処理について説明する。
図12は、最適化処理の一例を示すフローチャートである。
【0055】
算出部102は、記憶部120から優先度テーブル124を読み出すとともに、付与部101から出力された変数テーブル121と、誤差項が付与された連立方程式と、誤差項テーブル123と、を取得する(ステップS301)。
【0056】
算出部102は、優先度テーブル124に含まれる優先度パターンのうち、未処理の優先度パターンを取得する(ステップS302)。算出部102は、連立方程式に含まれる各方程式を、数理最適化問題の制約として設定する(ステップS303)。算出部102は、取得した優先度パターンに含まれる各優先度に基づく評価関数を設定する(ステップS304)。
【0057】
算出部102は、例えば、誤差項を最小化する以下の(5)式のような評価関数を設定する。優先度w_i(i=1,...,m;w_i>=0)は、各誤差項に付与する重みに相当する。
【数1】
【0058】
算出部102は、評価関数を最適化(例えば最小化)するように、複数の誤差項それぞれ、および、複数の変数それぞれの最適解を算出する(ステップS305)。この処理は、優先度を用いてどの方程式の制約を遵守するか、すなわち、誤差項を0にするかを調整することに相当する。
【0059】
算出部102は、優先度テーブル124に含まれるすべての優先度パターンを処理したか否かを判定する(ステップS306)。すべての優先度パターンを処理していない場合(ステップS306:No)、算出部102は、ステップS302に戻り、次の未処理の優先度パターンを取得して処理を繰り返す。
【0060】
すべての優先度パターンを処理した場合(ステップS306:Yes)、算出部102は、算出した最適解を記述した最適解テーブル125を生成して出力し(ステップS307)、最適化処理を終了する。最適解テーブル125は、例えば記憶部120に記憶される。なお、
図8は、(4)式の連立方程式に対して生成される最適解テーブル125の一例を示す。
【0061】
解析対象の連立方程式が一意または不定の場合は、各変数の解が存在する、すなわち矛盾がなく各誤差項を0にする変数の解が存在する。従って、(5)式の評価関数を用いた数理最適化の誤差項eps_iの最適解はすべて0になる。
【0062】
一方、連立方程式が不能の場合は、解が存在しない、すなわち方程式間に矛盾があるため、誤差項の最適解のいずれかが0以外の値となる。そのため、評価関数は、誤差項を0に近づけるような評価関数であればよく、(5)式のような二乗誤差を用いた評価関数に限られない。例えば、算出部102は、以下の(6)式のような絶対値を用いた評価関数を用いてもよい。
【数2】
【0063】
優先度テーブル124に複数の優先度パターンが用意されている場合は、優先度パターンに従って優先度を設定した評価関数を用いることにより、優先する方程式(制約を遵守する方程式)を変化させながら誤差項最小化問題を解き、連立方程式内の矛盾を探索することができる。
【0064】
優先度の作用を(4)式の例を用いて説明する。(4)式は(3)式に誤差項を付与した方程式である。(3)式は、1行目の方程式(以下、第1方程式)の「x_1+x_2+x_3=10」と、2~4行目の方程式(以下、第2~第4方程式)の加算である「x_1+x_2+x_3=12」の間に矛盾が生じるために解が存在しない例である。
【0065】
例えば、第1方程式の誤差項eps_1に対応する優先度w_1を第2~第4方程式より相対的に大きく、すなわち、第1方程式の「x_1+x_2+x_3=10」を遵守(優先)するように設定したとする。なお、説明を簡易化するために第2~第4方程式の優先度は同値に設定する。この場合、数理最適化問題の最適解は例えば以下の(7)式となる。(7)式より第1方程式の誤差項eps_1が0となり、第1方程式「x_1+x_2+x_3=10」が第2~第4方程式よりも遵守される。
eps_1 = 0
eps_2 = -0.66…
eps_3 = -0.66…
eps_4 = -0.66…
x_1 = 2.33…
x_2 = 3.33…
x_3 = 4.33…
・・・(7)
【0066】
一方、第2~第4方程式の誤差項eps_2~eps_4の優先度w_2~w_4を第1方程式の優先度より相対的に大きく、すなわち、第2~第4方程式の「x_1+x_2+x_3=12」を遵守するように設定したとする。なお、説明を簡易化するために第2~第4方程式の優先度は同値に設定する。この場合、数理最適化問題の最適解は例えば以下の(8)式となる。(8)式より第2~第4方程式の誤差項eps_2、eps_3、eps_4が0となり、第2~第4方程式の「x_1=3,x_2=4,x_3=5」が第1方程式よりも遵守される。
eps_1 = 2
eps_2 = 0
eps_3 = 0
eps_4 = 0
x_1 = 3
x_2 = 4
x_3 = 5
・・・(8)
【0067】
算出部102は、例えば優先度パターンの個数分、優先度w_iの値を変化させることにより、連立方程式内で遵守する方程式をさまざまに変化させることができる。生成部103は、優先度パターンに応じて変化させた優先度を用いて得られた複数の最適解により、方程式間の矛盾度を探索することができる。
【0068】
次に、解情報出力処理について説明する。
図13は、解情報出力処理の一例を示すフローチャートである。
【0069】
生成部103は、算出部102により出力され記憶された最適解テーブル125を記憶部120から読み出す(ステップS401)。生成部103は、最適解テーブル125に含まれる複数の変数のうち未処理の変数を取得する(ステップS402)。生成部103は、取得した変数の最適解を用いて解情報を算出する(ステップS403)。生成部103は、最適解テーブル125に含まれるすべての変数を処理したか否かを判定する(ステップS404)。
【0070】
すべての変数を処理していない場合(ステップS404:No)、生成部103は、ステップS402に戻り、次の未処理の変数を取得して処理を繰り返す。すべての変数を処理した場合(ステップS404:Yes)、生成部103は、各変数の解情報を含む解情報テーブル126を生成して出力する(ステップS405)。解情報テーブル126は、例えば記憶部120に記憶される。
【0071】
以下、解情報の具体例について説明する。解情報は、上記のように、(I1)、(I2)、(I3)の情報を含みうる。
【0072】
上記の
図9の解情報テーブル126は、(I1)のように、一意の場合の解、不定の場合の解の例、または、不能の場合の近似解を含む解情報が記述される例である。解または近似解は、複数の最適解の代表値である。代表値は、例えば、複数の最適解の平均値、中央値、最頻値、または、四分位数(第1四分位数、第3四分位数)である。
【0073】
なお、連立方程式が一意または不定であるときは、優先度パターンがどのような場合であってもすべての誤差項が0になるため、各変数の最適解も一定値になる。従って、どのような代表値を選んでも、連立方程式に解が存在する場合(一意または不定の場合)は、代表値は同値となる。
【0074】
図14は、連立方程式が一意または不定の場合の、複数の優先度パターンに対して算出される最適解の例を示す図である。
図14の横軸は、優先度パターンのパターンIDを示す。
図14は、2つの変数の最適解が、それぞれ3および4で一定であることを示す例である。
図14に示すように、連立方程式が一意または不定であるときは、各変数の最適解は同値となる。
【0075】
一方、連立方程式が不能の場合、優先度パターンによって各変数の最適解が変動する。
図15は、連立方程式が不能の場合の、優先度パターンに対して算出される最適解の例を示す図である。
図15に示すように、連立方程式が不能であるときは、各変数の最適解は優先度パターンに応じて変動する。
【0076】
なお、本実施形態では、各変数ごとに最適解を解析することができる。従って、例えば連立方程式を複数の連立方程式に分割した場合、分割した複数の連立方程式をそれぞれ独立に解析したときの各変数の最適解と、分割前の連立方程式を解析したときの各変数の最適解とは同じになる。
【0077】
次に、(I2)のような判定情報を含む解情報の例について説明する。連立方程式が一意または不定の場合は連立方程式を満たす解が存在するが、不能の場合は連立方程式を満たす解は存在せず、算出される最適解は近似解となる。また、不能の場合は、
図15に示すように最適解は優先度パターンに応じて変動する。従って、最適解が変動するか否かによって、連立方程式は不能であるか否か、言い換えると、連立方程式を満たす解が存在するか否かを判定することができる。
【0078】
例えば、生成部103は、各変数に解が存在するか否かを判定し、判定結果を示す判定情報を含む解情報を出力する。
図16は、判定情報を含む解情報を出力する場合の解情報出力処理の一例を示すフローチャートである。
【0079】
ステップS501、S502は、
図13のステップS401、S402と同じであるため説明を省略する。
【0080】
生成部103は、取得した変数の最適解の標準偏差を算出する(ステップS503)。標準偏差は、最適解が変動するか否かを判定するための情報の一例である。変動の幅を示す指標であれば他の情報が用いられてもよい。例えば、標準偏差の代わりに、分散、または、最大値と最小値との差の絶対値などが用いられてもよい。
【0081】
生成部103は、標準偏差が0であるか否かを判定する(ステップS504)。標準偏差が0である場合(ステップS504:Yes)、生成部103は、連立方程式を満たす解が存在すると判定する(ステップS505)。標準偏差が0でない場合(ステップS504:No)、生成部103は、連立方程式を満たす解が存在しないと判定する(ステップS506)。
【0082】
生成部103は、ステップS502で取得した変数の最適解を用いて解情報を算出する(ステップS507)。このとき、生成部103は、ステップS505またはステップS506の判定の結果を示す判定情報を含む解情報を算出する。
【0083】
ステップS508、S509は、
図13のステップS404、S405と同じであるため説明を省略する。
【0084】
図17は、判定情報を含む解情報テーブル126の一例を示す図である。
図17に示すように、解情報テーブル126は、列名として、変数名および解の他に判定が追加される。判定の列には、解が存在するか(解あり)、解が存在しないか(解なし)のいずれかを示す判定情報が設定される。
【0085】
生成部103は、最適解テーブル125の各変数の最適解の変動を矛盾度として扱うことができる。上記のように、各変数の最適解の変動は、変動の幅を示す指標、例えば、標準偏差、分散、および、(最大値-最小値)の絶対値で示すことができる。生成部103は、このような変動の幅を示す指標を、矛盾度として扱うことができる。例えば、一意または不定の場合、各変数の最適解の変動はないため矛盾度=0となり、不能の場合は各変数の最適解の変動があるため矛盾度は0以上の値となる。
【0086】
図18は、矛盾度を含む解情報テーブル126の一例を示す図である。
図18に示すように、解情報テーブル126は、列名として、変数名および解の他に矛盾度が追加される。
【0087】
生成部103は、最適解テーブル125のm個の誤差項を用いて各方程式の矛盾度を示すことも可能である。この場合、生成部103は、誤差項の最適解の変動を矛盾度として利用する。誤差項の矛盾度は、変数の変動と同様に変動の幅を示す指標(例えば、標準偏差、分散、(最大値-最小値)の絶対値など)を用いることができる。一意または不定の場合、各誤差項の最適解の変動はないため方程式の矛盾度=0となり、不能の場合は各誤差項の最適解の変動があるため方程式の矛盾度は0以上の値となる。
【0088】
各方程式の矛盾度を算出する場合、解情報テーブル126は、変数の解情報を示すテーブルの他に、方程式に関する情報を記述するテーブル(以下、方程式情報テーブルとする)をさらに含む。
図19は、方程式情報テーブルの例を示す図である。
図19に示すように、方程式情報テーブルは、列名に方程式の識別情報(順序を示す番号など)、および、矛盾度を持つ。矛盾度の列には、方程式の識別情報で識別される方程式の矛盾度の値が設定される。
【0089】
(変形例1)
一意の連立方程式については、どのようなソルバーにより数理最適化問題を解いたとしても、解は同じとなる。一方、不定の連立方程式については、誤差項eps_i=0を満たす変数x_1~x_nの解は複数存在するため、数理最適化問題の解き方、すなわち、ソルバーによって解が異なる可能性がある。
【0090】
変形例1では、不定の連立方程式に対して各変数の最適解がソルバーによって異ならないように、各変数を用いた第2項(追加項)を評価関数に追加する。以下の(9)式は、第2項を追加した評価関数の例を示す。
【数3】
【0091】
(9)式の例では、第2項として各変数のL2ノルムが追加されている。(9)式中のλは予め設定しておく必要がある。λの値は、数理最適化問題を解く際に、評価関数の第1項目を優先して求解させるため、十分小さい値である必要がある。
【0092】
追加項は、各変数の最適解を調整する項であり、変数のばらつきを最小化するための項と解釈することができる。
【0093】
追加項は、変数のL2ノルムに限られず、各変数を用いて記述されたその他の関数であってもよい。例えば、追加項は、(10)式のようなL1ノルム、または、(11)式のように各変数のばらつきを抑えるような形の関数であってもよい。
【数4】
【数5】
【0094】
(変形例2)
変数x_1~x_nの解の優先度γ_1~γ_nを設定することによって、不定の場合に選択する解を制御することができる。(12)式は、優先度γ_j(jは1以上n以下の整数)を重みとして各変数に付与した評価関数の例を示す。
【数6】
【0095】
例えば、ある変数x_jに付与する優先度γ_jを他の変数に対する優先度より相対的に大きく設定することによって、不定の場合の変数x_jの解空間の中でより小さい解が選択される。さらに、誤差項eps_iに付与する優先度w_iと同様に、解の優先度γ_jのさまざまなパターン(優先度パターン)を予め設定し、数理最適化問題を解くことによって、不定の場合の変数x_jの解空間を探索することができる。例えば、各変数の最適解の変動の幅を示す指標(例えば標準偏差)を、最適解の信頼度とすることができる。
【0096】
なお、(12)式は、(9)式のL2ノルムに優先度γ_jを追加した式であるが、(12)式の代わりに、(10)式または(11)式に対して優先度γ_jを追加した式を用いることもできる。
【0097】
以上説明したとおり、本実施形態および変形例によれば、連立方程式に含まれる複数の変数ごとに解に関する情報を得ることができる。
【0098】
次に、実施形態の情報処理装置のハードウェア構成について
図20を用いて説明する。
図20は、実施形態の情報処理装置のハードウェア構成例を示す説明図である。
【0099】
実施形態の情報処理装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0100】
実施形態の情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0101】
実施形態の情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0102】
さらに、実施形態の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0103】
実施形態の情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0104】
実施形態の構成例について以下に記載する。
(構成例1)
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与し、
複数の前記誤差項それぞれに対する優先度の1つ以上のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出し、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成する、
処理部、
を備える情報処理装置。
(構成例2)
前記処理部は、
複数の前記パターンごとに前記最適解を算出し、
n個の前記変数それぞれに対して、複数の前記パターンに対する複数の前記最適解の変動がある場合に解が存在しないことを示し、前記変動がない場合に解が存在することを示す判定情報をさらに含む前記解情報を生成する、
構成例1に記載の情報処理装置。
(構成例3)
前記処理部は、
n個の前記変数それぞれに対して、前記最適解の矛盾度をさらに含む前記解情報を生成する、
構成例1または2に記載の情報処理装置。
(構成例4)
前記処理部は、複数の前記パターンごとに前記最適解を算出し、
前記矛盾度は、複数の前記パターンに対する複数の前記最適解の変動の大きさである、
構成例3に記載の情報処理装置。
(構成例5)
前記処理部は、
複数の前記パターンごとに前記最適解を算出し、
複数の前記パターンに対する複数の前記最適解の代表値である前記解情報を生成する、
構成例1から4のいずれか1項に記載の情報処理装置。
(構成例6)
前記代表値は、複数の前記最適解の平均値、中央値、最頻値、または、四分位数である、
構成例5に記載の情報処理装置。
(構成例7)
前記評価関数は、前記変数のばらつきを最小化するための追加項を含む、
構成例1から6のいずれか1項に記載の情報処理装置。
(構成例8)
前記追加項は、前記変数のL2ノルムまたはL1ノルムである、
構成例7に記載の情報処理装置。
(構成例9)
前記処理部は、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる複数の前記パターンごとに、前記変数それぞれの最適解を算出する、
構成例1から8のいずれか1項に記載の情報処理装置。
(構成例10)
前記処理部は、
複数の前記方程式それぞれに対して複数の前記誤差項のいずれかを付与する付与部と、
前記最適解を算出する算出部と、
前記解情報を生成する生成部と、
を含む、
構成例1から9のいずれか1項に記載の情報処理装置。
(構成例11)
情報処理装置で実行される情報処理方法であって、
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与するステップと、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる1つ以上の前記優先度のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出するステップと、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成するステップと、
を含む情報処理方法。
(構成例12)
コンピュータに、
n個(nは2以上の整数)の変数を用いた連立方程式に含まれる複数の方程式それぞれに対して、複数の誤差項のいずれかを付与するステップと、
複数の前記誤差項それぞれに対する優先度の値が相互に異なる1つ以上の前記優先度のパターンごとに、複数の前記方程式を制約として、前記優先度と前記誤差項とに基づく評価関数を最適化するように、前記変数それぞれの最適解を算出するステップと、
n個の前記変数それぞれに対して、前記パターンに対して算出された前記最適解に基づいて、前記変数の解に関する情報を示す解情報を生成するステップと、
を実行させるためのプログラム。
【0105】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0106】
100 情報処理装置
101 付与部
102 算出部
103 生成部
104 出力制御部
120 記憶部
121 変数テーブル
122 連立方程式リスト
123 誤差項テーブル
124 優先度テーブル
125 最適解テーブル
126 解情報テーブル