[go: up one dir, main page]

JP7051771B2 - 計算装置、計算方法およびプログラム - Google Patents

計算装置、計算方法およびプログラム Download PDF

Info

Publication number
JP7051771B2
JP7051771B2 JP2019163893A JP2019163893A JP7051771B2 JP 7051771 B2 JP7051771 B2 JP 7051771B2 JP 2019163893 A JP2019163893 A JP 2019163893A JP 2019163893 A JP2019163893 A JP 2019163893A JP 7051771 B2 JP7051771 B2 JP 7051771B2
Authority
JP
Japan
Prior art keywords
time
variables
unit
variable
constraint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019163893A
Other languages
English (en)
Other versions
JP2021043589A (ja
Inventor
太郎 金尾
光介 辰村
隼人 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019163893A priority Critical patent/JP7051771B2/ja
Priority to US16/801,429 priority patent/US11256779B2/en
Publication of JP2021043589A publication Critical patent/JP2021043589A/ja
Application granted granted Critical
Publication of JP7051771B2 publication Critical patent/JP7051771B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明の実施形態は、計算装置、計算方法およびプログラムに関する。
変数が離散値(2値)で表された最適化問題を解くための様々なアルゴリズムおよびハードウェアが提案されている。最適化問題を解くためのアルゴリズムおよびハードウェアは、簡易な構成および処理であることが望ましい。
また、変数が離散値および連続値の両方で表される最適化問題もある。例えば、金融工学の最も基本的な問題として、2次計画問題により定式化されるポートフォリオ最適化問題が知られている。2次計画問題は、変数が連続値で表された連続最適化問題である。
特許第5865456号公報 特開2018-005541号公報 特開2018-010474号公報 特許第5868048号公報
Hayato Goto, Kosuke Tatsumura, Alexander R. Dixon, "Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems",Science Advances, Vol. 5, no. 4, eaav2372, 19 Apr. 2019 Brendan O’Donoghue and Chris J. Maddison, "Hamiltonian descent for composite objectives", arXiv:1906.02608v1, Submitted on 6 Jun 2019 Chris J. Maddison et al.,"Hamiltonian Descent Methods", arXiv:1809.05042v1, Submitted on 13 Sep 2018 T. Inagaki et al.,"A coherent Ising machine for 2000-node optimization problems", Science 354, 603 (2016). H. Goto,"Bifurcation-based adiabatic quantum computation with a nonlinear oscillator network", Sci. Rep. 6, 21686 (2016). Y. Haribara et al., "Performance evaluation of coherent Ising machines against classical neural networks", Quantum Sci. Technol. 2, 044002 (2017).
発明が解決しようとする課題は、変数が連続値で表された最適化問題を簡易に解くことである。
実施形態に係る計算装置は、変数算出部と、時間発展部と、を備える。前記変数算出部は、第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出する。前記時間発展部は、時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成する。前記時間発展部は、前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出する。前記時間発展部は、前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる。
第1実施形態に係る計算装置の構成図。 第1実施形態に係る演算部の構成図。 第1実施形態に係る演算部の処理の流れを示すフローチャート。 制約条件を満たす方向に第1変数を変化させる処理を示す図。 第1実施形態に係る後処理部の処理の流れを示すフローチャート。 第2実施形態に係る時間発展部の構成図。 第2実施形態に係る演算部の処理の流れを示すフローチャート。 第3実施形態に係るm段目の発展部の構成図。 第3実施形態に係る演算部の処理の流れを示すフローチャート。 第4実施形態に係るm段目の発展部の構成図。 第4実施形態に係る演算部の処理の流れを示すフローチャート。 第4実施形態に係る後処理部の処理の流れを示すフローチャート。 計算装置のハードウェア構成図。
以下、図面を参照しながら実施形態に係る計算装置10について詳細に説明する。実施形態に係る計算装置10は、変数が連続値で表された最適化問題を解くことを目的とする。
(最適化問題)
まず、計算装置10により解かれる最適化問題について説明する。計算装置10により解かれる最適化問題は、K個(Kは、1以上の整数)の不等式による制約を含む2次計画問題である。
計算装置10により解かれる最適化問題の目的関数(E(x))は、式(1)により表される。
Figure 0007051771000001
xは、変数を表す。Nは、変数の個数を表し、2以上の整数である。iおよびjは、変数の識別番号を表し、1以上N以下の任意の整数である。
ijは、i番目の変数xと、j番目の変数xとの間の相互作用を表す。Aijは、N行N列の行列である係数行列Aに含まれるi行j列の係数である。係数行列Aは、半正定値対称行列である。
さらに、計算装置10により解かれる最適化問題は、K個の不等式による制約を含む。計算装置10は、K個の不等式を満たしながら最適化問題を解く。
K個の不等式は、一例として、K個の不等式を含む連立一次不等式により表される。例えば、K個の不等式のうちのk番目(kは、1以上K以下の整数)の不等式は、式(2)のように表される。
Figure 0007051771000002
ikは、N行K列の制約行列Bに含まれるi行k列の係数である。Bikは、k番目の不等式に含まれるi番目の変数xに対する係数を表す。
さらに、計算装置10により解かれる最適化問題は、N個の変数xのそれぞれを0以上とする制約を含んでもよい。この場合、計算装置10は、1からNまでの全てのiについて、式(3)により表される式を満たすように、最適化問題を解く。
Figure 0007051771000003
さらに、計算装置10による解かれる最適化問題は、N個の変数xの合計を1に規格化する制約を含んでもよい。この場合、計算装置10は、式(4)により表される式を満たすように、最適化問題を解く。
Figure 0007051771000004
(ハミルトニアンH)
本発明者は、上述の最適化問題を、N次元空間を運動する粒子のエネルギーを表すハミルトニアンHに組み込むことを考えた。
式(5)は、最適化問題を組み込んだハミルトニアンHの一例を示す。
Figure 0007051771000005
式(5)のハミルトニアンHは、式(1)の目的関数、および、式(2)のK個の不等式による制約が、ポテンシャルエネルギーとして組み込まれている。
式(5)において、右辺の第1項は、粒子の運動エネルギーを表す。式(5)において、yは、粒子の運動量の第i成分を表す。
式(5)において、右辺の第2項は、粒子のポテンシャルエネルギーを表す。式(5)において、xは、粒子の位置の第j成分を表す。
右辺の第2項のポテンシャルエネルギーは、目的関数により表され、下に凸の2次関数であり、x=0で極小値を取る。なお、第2項の係数である1/2は、係数行列Aに含まれるN×N個の係数に、予め乗じられていてもよい。
式(5)において、右辺の第3項は、K個の不等式の制約を取り込んだポテンシャルエネルギー表す。式(5)において、tは、時刻を表す。式(5)において、tは、開始時刻tから終了時刻tまで増加する。
α(t)は、tを変数とした非減少関数であり、0以上であり、少なくとも終了時刻tにおいて1となる。例えば、α(t)は、開始時刻tにおいて0となり、終了時刻tにおいて1となる単調増加関数であってもよい。また、α(t)は、tに関わらず、常時1であってもよい。
Φ(ξ)は、式(6)により表される関数である。式(6)において、φは、予め定められた定数である。
Figure 0007051771000006
さらに、θ(ξ)は、式(7)により表される関数である。
Figure 0007051771000007
右辺の第3項は、-ξ={-Σ i=1((Bik)-α(t))}が0より大きい場合、すなわち、Σ i=1((Bik)-α(t))が0より小さい場合、Σ i=1((Bik)-α(t))を正の方向に変化させるように、xを変化させるポテンシャルエネルギーを表す。なお、右辺の第3項は、-ξ={-Σ i=1((Bik)-α(t))}が0以下である場合、すなわち、Σ i=1((Bik)-α(t))が0以上である場合に、最小となる。
ここで、α(t)は、終了時刻tにおいて1となる関数である。従って、右辺の第3項は、ハミルトニアンHを時間発展させた場合、終了時刻tにおいて、K個の不等式による制約を満たすように、xを変化させることができる。従って、式(5)に示すハミルトニアンHは、時間発展した場合、式(2)のK個の不等式による制約を満たしながら、式(1)の目的関数を最小にするように、xを変化させることができる。
また、式(8)は、最適化問題を組み込んだハミルトニアンHの他の一例を示す。
Figure 0007051771000008
式(8)のハミルトニアンHは、式(1)の目的関数、式(2)のK個の不等式による制約、式(3)のN個の変数xのそれぞれを0以上とする制約、および、式(4)のN個の変数xの合計を1に規格化する制約が、ポテンシャルエネルギーとして組み込まれている。
式(8)において、右辺の第1項、右辺の第2項および右辺の第3項は、式(5)と同一である。
式(8)において、右辺の第4項は、N個の変数xのそれぞれを0以上とする制約を取り込んだポテンシャルエネルギーを表す。
Ψ(ξ)は、式(9)により表される関数である。式(9)において、ψは、予め定められた定数である。
Figure 0007051771000009
右辺の第4項は、-ξ=(-x)が0より大きい場合、すなわち、xが0より小さい場合、xを正の方向に変化させるポテンシャルエネルギーを表す。なお、右辺の第4項は、-ξ=(-x)が0以下である場合、すなわち、xが0以上である場合に、最小となる。
式(8)において、右辺の第5項は、N個の変数xの合計を1に規格化する制約を取り込んだポテンシャルエネルギー表す。βは、予め定められた定数を表す。
右辺の第5項は、{Σ i=1(x)-α(t)}を最小にさせるように、xを変化させるポテンシャルエネルギーを表す。なお、右辺の第5項は、{Σ i=1(x)-α(t)}=0である場合に、最小となる。
ここで、α(t)は、終了時刻tにおいて1となる関数である。従って、右辺の第5項は、ハミルトニアンHを時間発展させた場合、終了時刻tにおいて、N個の変数xの合計を1に規格化する制約を満たすように、xを変化させることができる。以上のような式(8)に示すハミルトニアンHは、時間発展した場合、式(2)、式(3)および式(4)の制約を満たしながら、式(1)の目的関数を最小にするように、xを変化させることができる。
計算装置10は、以上のようなハミルトニアンHを開始時刻tから終了時刻tまで時間発展させる。そして、計算装置10は、終了時刻tにおける第1から第NまでのN個の位置変数xの値を取得し、最適化問題の解として出力する。
計算装置10は、例えば、ハミルトニアンHの時間発展を演算処理によりシミュレーションすることにより、終了時刻tにおけるN個のポテンシャルxを算出する。計算装置10は、ハミルトニアンHを設定可能な他の物理系システムを時間発展させることにより、終了時刻tにおけるN個のポテンシャルxを取得してもよい。
(第1実施形態)
第1実施形態に係る計算装置10について説明する。
第1実施形態に係る計算装置10は、式(5)に示すハミルトニアンHを運動量および位置のそれぞれにより偏微分することにより得られる連立常微分方程式を解く。
式(5)に示すハミルトニアンHを偏微分することにより得られる運動方程式は、式(10)および式(11)により表される。
Figure 0007051771000010
Figure 0007051771000011
第1実施形態において、Nは、変数の個数を表し、2以上の整数である。第1実施形態において、iおよびjは、変数の識別番号を表し、1以上N以下の任意の整数である。
第1実施形態において、Kは、1以上の整数である。また、第1実施形態において、kは、1以上K以下の任意の整数である。
第1実施形態において、xは、粒子の位置の第i成分を表す変数に相当し、第1変数と呼ぶ。第1実施形態において、yは、粒子の運動量の第i成分を表す変数に相当し、第2変数と呼ぶ。
第1実施形態において、Aijは、i番目の第1変数xと、j番目の第1変数xとの間の相互作用を表す。Aijは、N行N列の係数行列Aに含まれるi行j列の係数である。係数行列Aは、密な半正定値対象対称行列である。第1実施形態において、係数行列Aに含まれるN×N個の係数は、予め設定されている。
第1実施形態において、Bikは、K個の不等式のうちのk番目の不等式に含まれるi番目の第1変数xに対する係数を表す。Bikは、N行K列の制約行列Bに含まれるi行k列の係数である。第1実施形態において、制約行列Bに含まれるK×N個の係数は、予め設定されている。
第1実施形態において、rは、式(12)により表される。
Figure 0007051771000012
α(t)は、tを変数とした非減少関数であり、0以上であり、少なくとも終了時刻tにおいて1となる。第1実施形態において、α(t)は、tに関わらず、1である。Bjkは、制約行列Bに含まれるj行k列の係数である。
第1実施形態において、θ(ξ)は、式(13)により表される。
Figure 0007051771000013
従って、式(11)において、θ(-r)は、rが0より小さい場合、1となり、rが0以上である場合、0となる。つまり、式(11)は、任意のiにおいて、rが0より小さい場合、第2項が0以外の値となり、rが0以上である場合、第2項は、0となる。
第1実施形態に係る計算装置10は、式(10)および式(11)により表される連立常微分方程式を離散解法により解く。より具体的には、計算装置10は、tを開始時刻tからサンプリング期間ずつ増加させて、t毎に、式(10)および式(11)を用いてxおよびyを更新する。そして、計算装置10は、tを十分に大きくした終了時刻tにおけるxの値を、解として出力する。これにより、計算装置10は、N個のxおよびN個のyを並行して更新しながら、解を算出することができる。
式(10)および式(11)において、最も計算量が大きい係数行列Aに対する行列乗算は、式(11)には含まれるが、式(10)には含まれない。従って、計算装置10は、最も計算量が大きい係数行列Aに対する行列乗算をyの更新のためにのみ実行すればよく、xの更新のためには実行しなくてよい。
また、xの時間微分値(dx/dt)を算出するための式(10)は、yを含むが、xを含まない。また、yの時間微分値(dy/dt)を算出するための式(11)は、xを含むが、yを含まない。
つまり、式(10)および式(11)を用いる場合、xとyとは、互いに分離されている。従って、計算装置10は、計算量が小さく安定な離散解法を適用して、xおよびyを更新することが可能となる。例えば、計算装置10は、シンプレクティック・オイラー法等を適用して、xおよびyを更新する。従って、計算装置10は、簡易な演算および簡易な構成で、最適化問題の解を算出することができる。
図1は、第1実施形態に係る計算装置10の構成を示す図である。計算装置10は、演算部20と、入力部22と、出力部24と、設定部26とを備える。
演算部20は、CPU(Central Processing Unit)等の1または複数のプロセッシング回路がプログラムを実行することにより実現される。また、演算部20は、FPGA(Field Programmable Gate Array)、ゲートアレイまたは特定用途向け集積回路(ASIC)等であってもよく、さらに、プロセッサ回路を含んでもよい。
演算部20は、時刻を表すパラメータであるtを、開始時刻t(例えば0)からサンプリング期間ずつ増加させる。演算部20は、それぞれの時刻毎に、N個の第1変数xおよびN個の第2変数yを更新する。そして、演算部20は、予め定められた時刻である終了時刻tにおけるN個の第1変数xを出力する。
入力部22は、演算部20による演算処理に先だって、開始時刻tにおけるN個の第1変数xおよび開始時刻tにおけるN個の第2変数yを取得して、演算部20に与える。開始時刻tにおけるN個の第1変数xおよびN個の第2変数yは、予め設定された値であってもよいし、例えば、乱数により発生された値であってもよい。
出力部24は、演算部20による演算処理の終了後に、終了時刻tにおけるN個の第1変数xを取得する。そして、出力部24は、終了時刻tにおけるN個の第1変数xの値を最適解として出力する。
設定部26は、演算部20による演算処理に先だって、各パラメータを演算部20に対して設定する。
図2は、第1実施形態に係る演算部20の構成を示す図である。演算部20は、開始時刻t(例えば、t=0)から終了時刻t(例えば、t=T)までサンプリング期間の間隔で順次に時刻tを増加させ、それぞれの時刻tに対するN個の第1変数x(t)およびN個の第2変数y(t)を算出する。そして、演算部20は、終了時刻tにおけるN個の第1変数x(t)を出力する。
演算部20は、相互作用部32と、第1加算部34と、時間発展部36と、第1変数メモリ38と、第2変数メモリ40と、後処理部42と、管理部44とを有する。
相互作用部32は、第1変数メモリ38から、任意の時刻を表す第1時刻tにおけるN個の第1変数x(t)を取得する。相互作用部32は、第1時刻tにおけるN個の第1変数x(t)と、係数行列Aとを行列演算することにより算出されたN個の値のそれぞれに、第1時間定数dtの正負を反転させた値を乗じたN個の第1中間変数aを生成する。第1時間定数dtは、サンプリング期間を表す値である。
相互作用部32は、例えば、係数行列メモリ52と、行列演算部54と、第1乗算部56(第1中間変数算出部)とを有する。係数行列メモリ52は、係数行列Aを記憶する。係数行列Aは、ユーザ等により予め設定されている。
行列演算部54は、第1変数メモリ38から、第1時刻tにおけるN個の第1変数x(t)を取得する。行列演算部54は、第1時刻tにおけるN個の第1変数x(t)と、係数行列メモリ52に記憶された係数行列Aとを行列演算することにより、N個の値a´を算出する。
第1乗算部56は、第1時間定数dtの正負を反転させた値が予め設定されている。第1乗算部56は、行列演算部54からN個の値a´を取得する。そして、第1乗算部56は、N個のa´のそれぞれに、第1時間定数dtの正負を反転させた値を乗じたN個の第1中間変数aを算出する。
第1加算部34は、第2変数メモリ40から、第1時刻tにおけるN個の第2変数y(t)を取得する。第1加算部34は、相互作用部32から、N個の第1中間変数aを取得する。そして、第1加算部34は、第1時刻tにおけるN個の第2変数y(t)のそれぞれに、N個の第1中間変数aのうちの対応する第1中間変数aを加算することにより、第1時刻tからサンプリング期間を経過した第2時刻tにおけるN個の第2変数y(t)を算出する。
時間発展部36は、第1加算部34から、第2時刻tにおけるN個の第2変数y(t)を取得する。時間発展部36は、第1変数メモリ38から、第1時刻tにおけるN個の第1変数x(t)を取得する。時間発展部36は、第2時刻tにおけるN個の第2変数y(t)に基づいて、第1時刻tにおけるN個の第1変数x(t)を、第2時刻tにおけるN個の第1変数x(t)に時間発展させる。
さらに、時間発展部36は、第2時刻tにおけるN個の第1変数x(t)が予め設定された制約条件を満たしていない場合、第2時刻tにおけるN個の第1変数x(t)を制約条件を満たす方向に変化させる。また、時間発展部36は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていない場合、第2時刻tにおけるN個の第2変数y(t)を制約条件を満たす方向に変化させる。
そして、時間発展部36は、制約条件を満たした、または、制約条件を満たす方向に変化させた後の第2時刻tにおけるN個の第1変数x(t)を第1変数メモリ38に記憶させる。また、時間発展部36は、制約条件を満たした、または、制約条件を満たす方向に変化させた後の第2時刻tにおけるN個の第2変数y(t)を第2変数メモリ40に記憶させる。
時間発展部36は、例えば、第2乗算部62(第2中間変数算出部)と、第2加算部64と、第1制約部66と、第2制約部68とを有する。
第2乗算部62は、第1時間定数dtが予め設定されている。第2乗算部62は、第1加算部34から、第2時刻tにおけるN個の第2変数y(t)を取得する。第2乗算部62は、第2時刻tにおけるN個の第2変数y(t)のそれぞれに第1時間定数dtを乗じたN個の第2中間変数bを算出する。
第2加算部64は、第1変数メモリ38から、第1時刻tにおけるN個の第1変数x(t)を取得する。また、第2加算部64は、第2乗算部62から、N個の第2中間変数bを取得する。そして、第2加算部64は、第1時刻tにおけるN個の第1変数x(t)のそれぞれに、N個の第2中間変数bのうちの対応する第2中間変数bを加算することにより、第2時刻tにおけるN個の第1変数x(t)を算出する。
第1制約部66は、第2加算部64から、第2時刻tにおけるN個の第1変数x(t)を取得する。第1制約部66は、第2時刻tにおけるN個の第1変数x(t)が、制約条件を満たしているか否かを判断する。第1制約部66は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしている場合、第2加算部64から取得した第2時刻tにおけるN個の第1変数x(t)を、そのまま第1変数メモリ38に記憶させる。
第1制約部66は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていない場合、第2加算部64から取得した第2時刻tにおけるN個の第1変数x(t)を制約条件を満たす方向に変化させる。第1制約部66は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていない場合、制約条件を満たす方向に変化させた後の第2時刻tにおけるN個の第1変数x(t)を第1変数メモリ38に記憶させる。なお、第1制約部66は、少なくとも制約条件を満たす方向に変化させれば、変化後の第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていなくてもよい。
第2制約部68は、第1加算部34から、第2時刻tにおけるN個の第2変数y(t)を取得する。第2制約部68は、第2時刻tにおけるN個の第1変数x(t)が、制約条件を満たしているか否かを判断する。なお、第2制約部68は、第1制約部66による判断結果に基づき、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしているか否かを判断してもよい。第2制約部68は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしている場合、第1加算部34から取得した第2時刻tにおけるN個の第2変数y(t)を、そのまま第2変数メモリ40に記憶させる。
第2制約部68は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていない場合、第1加算部34から取得した第2時刻tにおけるN個の第2変数y(t)を制約条件を満たす方向に変化させる。第2制約部68は、第2時刻tにおけるN個の第1変数x(t)が制約条件を満たしていない場合、制約条件を満たす方向に変化させた後の第2時刻tにおけるN個の第2変数y(t)を第2変数メモリ40に記憶させる。
ここで、制約条件は、K個の不等式を含む連立一次不等式で表される。K個の不等式のそれぞれは、N個の第1変数xのうちの1以上N以下の複数の第1変数xを、変数として含む。
第1制約部66および第2制約部68は、K個の不等式のそれぞれ毎に、不等式を満たしているか否かを判断する。そして、K個の不等式のそれぞれ毎に、第1制約部66は、不等式を満たしていない場合、第2時刻tにおけるN個の第1変数x(t)のうちの不等式に含まれる複数の第1変数xを、不等式を満たす方向に変化させる。また、K個の不等式のそれぞれ毎に、第2制約部68は、不等式を満たしていない場合、第2時刻tにおけるN個の第2変数y(t)のうちの不等式に含まれる複数の第1変数xに対応する複数の第2変数yを、不等式を満たす方向に変化させる。
第1変数メモリ38は、開始時刻tから終了時刻tまでの各時刻におけるN個の第1変数x(t)を記憶する。なお、各時刻におけるN個の第1変数x(t)は、次時刻におけるN個の第1変数x(t+dt)が算出された後、計算には用いられない。従って、第1変数メモリ38は、各時刻におけるN個の第1変数x(t)を記憶した後、その時刻以前のN個の第1変数x(t)が消去されてもよい。
第2変数メモリ40は、開始時刻tから終了時刻tまでの各時刻におけるN個の第2変数y(t)を記憶する。なお、各時刻におけるN個の第2変数y(t)は、次時刻におけるN個の第2変数y(t+dt)が算出された後、計算には用いられない。従って、第2変数メモリ40は、各時刻におけるN個の第2変数y(t)を記憶した後、その時刻以前のN個の第2変数y(t)が消去されてもよい。
後処理部42は、終了時刻tにおけるN個の第1変数xが算出された後、終了時刻tにおけるN個の第1変数xを第1変数メモリ38から取得する。後処理部42は、終了時刻tにおけるN個の第1変数xが制約条件を満たしているか否かを判断する。
後処理部42は、終了時刻tにおけるN個の第1変数xが制約条件を満たしている場合、第1変数メモリ38から取得した終了時刻tにおけるN個の第1変数x(t)を、そのまま出力部24に出力する。
後処理部42は、終了時刻tにおけるN個の第1変数xが制約条件を満たしていない場合、第1変数メモリ38から取得した終了時刻tにおけるN個の第1変数x(t)が制約条件を満たすまで、終了時刻tにおけるN個の第1変数x(t)を制約条件を満たす方向に変化させる。そして、後処理部42は、制約条件を満たした終了時刻tにおけるN個の第1変数x(t)を出力部24に出力する。
例えば、後処理部42は、N個の第1変数xを制約条件を満たす方向に変化させる修正処理を、N個の第1変数xが制約条件を満たすまで複数回繰り返す。制約条件は、K個の不等式で表される。従って、後処理部42は、それぞれの修正処理において、K個の不等式のそれぞれ毎に、不等式を満たしているか否かを判断し、不等式を満たしていない場合、終了時刻tにおけるN個の第1変数x(t)のうちの不等式に含まれる複数の第1変数xを、不等式を満たす方向に変化させる。
管理部44は、相互作用部32、時間発展部36および後処理部42による処理のタイミングを管理する。管理部44は、開始時刻tから終了時刻tまでサンプリング期間の間隔で順次に時刻を増加させる。そして、管理部44は、それぞれの時刻に対するN個の第1変数xおよびN個の第2変数yを算出させるように、相互作用部32、時間発展部36および後処理部42による処理を管理する。
以上のような構成の演算部20は、後処理部42から出力された終了時刻tにおけるN個の第1変数x(t)を出力部24に出力する。出力部24は、演算部20から受け取った終了時刻tにおけるN個の第1変数x(t)を外部装置へと出力する。
図3は、第1実施形態に係る演算部20の処理の流れを示すフローチャートである。第1実施形態に係る演算部20は、図3に示す流れで処理を実行する。なお、本例においては、演算部20は、α(t)を、時刻tに関わらず1に固定した処理を実行している。
まず、S11において、演算部20は、時刻t、N個の第1変数xおよびN個の第2変数yを初期化する。例えば、演算部20は、時刻tを0にする。また、演算部20は、N個の第1変数xのそれぞれを1/Nにする。また、演算部20は、N個の第2変数yのそれぞれを0にする。なお、演算部20は、N個の第1変数xのそれぞれおよびN個の第2変数yのそれぞれを、入力部22が外部から取得した値に初期化してもよい。
続いて、演算部20は、時刻tが予め設定されたTとなるまで、S13からS23までの処理を繰り返す(S12とS24との間のループ処理)。Tは、終了時刻tを表す値である。
S13において、相互作用部32は、相互作用演算を実行することにより、N個の第1中間変数aを生成する。相互作用演算として、演算部20は、N個の第1変数xと係数行列Aとを行列演算することにより算出されたN個の値のそれぞれに、第1時間定数dtの正負を反転させた値を乗じる。例えば、S13において、相互作用部32は、i=1~Nのそれぞれについて、式(14)の演算を実行する。
Figure 0007051771000014
続いて、S14において、第1加算部34は、N個の第2変数yのそれぞれに、N個の第1中間変数aのうちの対応する第1中間変数aを加算することにより、N個の第2変数yを算出する。例えば、S14において、第1加算部34は、i=1~Nのそれぞれについて、式(15)の演算を実行する。
Figure 0007051771000015
続いて、S15において、時間発展部36は、N個の第2変数yのそれぞれに第1時間定数dtを乗じたN個の第2中間変数bを生成する。例えば、S15において、時間発展部36は、i=1~Nのそれぞれについて、式(16)の演算を実行する。
Figure 0007051771000016
続いて、S16において、時間発展部36は、N個の第1変数xのそれぞれに、N個の第2中間変数bのうちの対応する第2中間変数bを加算する。例えば、S16において、時間発展部36は、i=1~Nのそれぞれについて、式(17)の演算を実行する。
Figure 0007051771000017
続いて、時間発展部36は、S18からS21までの処理を、K回繰り返して実行する(S17とS22との間のループ処理)。これにより、時間発展部36は、K個の不等式のそれぞれ毎に、不等式の判断処理および制約処理を実行することができる。なお、本フローにおいて、kは、ループ内の繰り返し回数を表す。
S18において、時間発展部36は、K個の不等式のうちのk番目の不等式を満たしているか否かを判断するための条件値rを算出する。例えば、S18において、時間発展部36は、式(18)の演算を実行する。
Figure 0007051771000018
続いて、S19において、時間発展部36は、k番目の不等式を満たしているか否かを判断する。より具体的には、時間発展部36は、条件値rが0より小さいか否かを判断する。k番目の不等式を満たしていない場合、すなわち、条件値rが0より小さい場合(S19のYes)、時間発展部36は、S20およびS21の処理を実行する。
k番目の制約を満たしている場合、すなわち、条件値rが0より小さくない場合(S19のNo)、時間発展部36は、S20およびS21の処理を実行しない。
S20において、時間発展部36は、第1制約処理を実行する。すなわち、時間発展部36は、N個の第1変数xを制約条件を満たす方向に変化させる。例えば、S20において、時間発展部36は、i=1~Nのそれぞれについて、式(19)の演算を実行する。
Figure 0007051771000019
S21において、時間発展部36は、第2制約処理を実行する。すなわち、時間発展部36は、N個の第2変数yを制約条件を満たす方向に変化させる。例えば、S21において、時間発展部36は、i=1~Nのそれぞれについて、式(20)の演算を実行する。
Figure 0007051771000020
時間発展部36は、S18からS21までの処理をK回繰り返した場合、S17とS22との間のループ処理を抜けて、処理をS23に進める。
S23において、演算部20は、時刻tを更新する。例えば、演算部20は、時刻tに第1時間定数dtを加算する。
S24において、演算部20は、時刻tがT以上であるか否かを判断する。演算部20は、時刻tがT以上となった場合、S12とS24との間のループ処理を抜けて、処理をS25に進める。
S25において、演算部20は、後処理を実行する。演算部20は、後処理において、N個の第1変数xが制約条件を満たしていない場合、制約条件を満たすようにN個の第1変数xを修正する。例えば、演算部20は、最急降下法を用いて、N個の第1変数xを制約条件を満たす方向に変化させる修正処理を実行する。そして、演算部20は、このような修正処理を、N個の第1変数xが制約条件を満たすまで繰り返す。
S25の処理を終えると、演算部20は、本フローを終了する。
図4は、制約条件を満たす方向にN個の第1変数xおよびN個の第2変数yを変化させる処理について説明する図である。時間発展部36は、S20において、N個の第1変数xを制約条件を満たす方向に変化させる。また、時間発展部36は、S21において、N個の第2変数yを制約条件を満たす方向に変化させる。
例えば、N=2の場合、制約条件は、例えば1次不等式で表される。この場合、制約条件を満たす領域と制約条件を満たさない領域との境界は、図3に示すような一次方程式で表される。時間発展部36は、制約条件を満たさない場合(不等式を満たさない場合)、不等式により表される境界に対して垂直に近づける方向に、N個の第1変数xにより表される位置を変化させる。また、時間発展部36は、制約条件を満たさない場合(不等式を満たさない場合)、N個の第1変数xにより表される位置が不等式により表される境界に対して近づく方向に、N個の第2変数yを変化させる。
また、制約条件がK個の不等式を含む連立一次不等式で表される場合、時間発展部36は、K個の不等式のそれぞれ毎に、S20およびS21の処理を実行する。すなわち、時間発展部36は、不等式を満たしていない場合、第2時刻におけるN個の第1変数xのうちの不等式に含まれる複数の第1変数により表される位置を、不等式により表される境界に対して垂直に近づける方向に、第1変数xを変化させ、不等式に含まれる複数の第1変数に対応する複数の第2変数yを変化させる。
また、後処理において、制約条件を満たすようにN個の第1変数xを修正する場合、演算部20は、同様の処理を実行してもよい。
図5は、第1実施形態に係る後処理部42の処理の流れを示すフローチャートである。第1実施形態に係る後処理部42は、図5に示す流れで処理を実行する。
まず、S31において、後処理部42は、N個の基準変数x´の全てを0に初期化する。N個の基準変数x´は、直前の修正処理によって変化する前のN個の第1変数xを表す。
続いて、S32において、後処理部42は、直前の修正処理によりN個の第1変数xが変化したか否かを判断する。変化した場合(S32のYes)、後処理部42は、処理をS33に進めて、再度、修正処理を実行する。変化しなかった場合(S32のNo)、後処理部42は、N個の第1変数xが制約条件を満たしたとして、本フローを終了する。
例えば、S32において、後処理部42は、式(21)に示す判定処理を実行する。
Figure 0007051771000021
式(21)において、後処理部42は、N個の基準変数x´と、修正処理の後のN個の第1変数xとの二乗誤差を算出する。そして、後処理部42は、二乗誤差の平方根が許容誤差εより大きくない場合(S32のNo)、N個の第1変数xが制約条件を満たしたとして、本フローを終了する。また、後処理部42は、二乗誤差の平方根が許容誤差εより大きい場合には、処理をS33に進め、再度、修正処理を実行する。なお、許容誤差εは、例えば計算機イプシロンであり、1より大きく計算機で取り扱える最小の値と、1との差である。
S33において、後処理部42は、N個の基準変数x´に、N個の第1変数xを代入する。
続いて、後処理部42は、S35からS37までの処理を、K回繰り返して実行する(S34とS38との間のループ処理)。これにより、後処理部42は、K個の不等式のそれぞれ毎に、不等式の判断処理および制約処理を実行することができる。
S35において、後処理部42は、K個の不等式のうちのk番目の不等式を満たしているか否かを判断するための条件値rを算出する。例えば、S35において、後処理部42は、式(22)の演算を実行する。
Figure 0007051771000022
続いて、S36において、後処理部42は、k番目の不等式を満たしているか否かを判断する。より具体的には、後処理部42は、条件値rが0より小さいか否かを判断する。k番目の不等式を満たしていない場合、すなわち、条件値rが0より小さい場合(S36のYes)、後処理部42は、S37の処理を実行する。
k番目の制約を満たしている場合、すなわち、条件値rが0より小さくない場合(S36のNo)、後処理部42は、S37の処理を実行しない。
S37において、後処理部42は、修正処理を実行する。すなわち、後処理部42は、N個の第1変数xを制約条件を満たす方向に変化させる。例えば、S37において、後処理部42は、i=1~Nのそれぞれについて、式(23)の演算を実行する。なお、式(23)において、γは、予め定められた定数である。
Figure 0007051771000023
後処理部42は、S35からS37までの処理をK回繰り返した場合、S34とS38との間のループ処理を抜けて、処理をS32に戻す。
以上のような第1実施形態に係る計算装置10は、K個の不等式による制約を含む2次計画問題をシミュレーションにより解くことができる。
(第2実施形態)
第2実施形態に係る計算装置10について説明する。第2実施形態に係る計算装置10は、第1実施形態に係る計算装置10と略同一の構成を有するので、略同一の構成を有するブロックには、同一の符号を付けて、相違点を除き詳細な説明を省略する。
図6は、第2実施形態に係る時間発展部36の構成を示す図である。第2実施形態に係る計算装置10は、第1実施形態と比較して、時間発展部36の構成が異なる。
第2実施形態に係る時間発展部36は、第1時刻tにおけるN個の第1変数x(t)に対してM回(Mは2以上の整数)の時間発展処理を実行して、第2時刻tにおけるN個の第1変数x(t)を生成する。第2実施形態に係る時間発展部36は、直列に接続されたM段の発展部72-1~72-Mを有する。
1段目の発展部72-1は、第1変数メモリ38から、第1時刻tにおけるN個の第1変数x(t)を取得する。また、1段目の発展部72-1は、第1加算部34から、第2時刻tにおけるN個の第2変数y(t)を取得する。そして、1段目の発展部72-1は、1回目の時間発展処理を実行して、第1時刻tから、サンプリング期間の1/Mの微小期間を経過した時刻(t+dt´)におけるN個の第1変数x(t+dt´)を出力する。また、1段目の発展部72-1は、1回目の時間発展処理を実行して、第2時刻tにおけるN個の第2変数y(t)を出力する。
f段目(fは、2以上、M-1以下の整数)の発展部72-fは、(f-1)段目の発展部72-(f-1)から、第1時刻tに、微小期間の(f-1)倍の時間を経過した時刻(t+(f-1)×dt´)おけるN個の第1変数x(t+(f-1)×dt´)を取得する。また、f段目の発展部72-fは、(f-1)段目の発展部72-(f-1)から、第2時刻tにおけるN個の第2変数y(t)を取得する。そして、f段目の発展部72-1は、f回目の時間発展処理を実行して、第1時刻tから、微小期間のf倍の時間を経過した時刻(t+f×dt´)におけるN個の第1変数x(t+f×dt´)を出力する。また、f段目の発展部72-fは、f回目の時間発展処理を実行して、第2時刻tにおけるN個の第2変数y(t)を出力する。
M段目の発展部72-Mは、(M-1)段目の発展部72-(M-1)から、第1時刻tに、微小期間の(M-1)倍の時間を経過した時刻(t+(M-1)×dt´)おけるN個の第1変数x(t+(M-1)×dt´)を取得する。また、M段目の発展部72-Mは、(M-1)段目の発展部72-(M-1)から、第2時刻tにおけるN個の第2変数y(t)を取得する。そして、M段目の発展部72-1は、M回目の時間発展処理を実行して、第2時刻tにおけるN個の第1変数x(t)を出力する。また、M段目の発展部72-Mは、M回目の時間発展処理を実行して、第2時刻tにおけるN個の第2変数y(t)を出力する。
M段の発展部72-1~72-Mのそれぞれは、第1実施形態に係る時間発展部36と同一の構成を含む。すなわち、M段の発展部72-1~72-Mのそれぞれは、第2乗算部62と、第2加算部64と、第1制約部66と、第2制約部68とを含む。ただし、M段の発展部72-1~72-Mのそれぞれは、第1実施形態における第1時間定数dtを、微小期間を表す第2時間定数dt´に代えて処理をする。
従って、第m段目(mは、1以上、M以下の整数)の発展部72-mは、M回の時間発展処理のうちのm回目の時間発展処理において、次のような処理を実行する。
すなわち、第m段目の発展部72-mは、第(m-1)回目の時間発展処理で出力した第2時刻tにおけるN個の第2変数y(t)のそれぞれに、第2時間定数dt´を乗じたN個の第2中間変数bを算出する。なお、m=1の場合、第m段目の発展部72-mは、第1加算部34から取得した、第2時刻tにおけるN個の第2変数y(t)のそれぞれに、第2時間定数dt´を乗じたN個の第2中間変数bを算出する。
第m段目の発展部72-mは、第1時刻tから微小期間の(m-1)倍の時間を経過した時刻(t+(m-1)×dt´)におけるN個の第1変数x(t+(m-1)×dt´)のそれぞれに、N個の第2中間変数bのうちの対応する第2中間変数bを加算することにより、第1時刻tから微小期間のm倍の時間を経過した第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を算出する。
第m段目の発展部72-mは、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)が、制約条件を満たしているか否かを判断する。第m段目の発展部72-mは、制約条件を満たしている場合、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)をそのまま出力する。また、第m段目の発展部72-mは、制約条件を満たしている場合、取得した第2時刻tにおけるN個の第2変数y(t)を、そのまま出力する。
第m段目の発展部72-mは、制約条件を満たしていない場合、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を、制約条件を満たす方向に変化させて、出力する。また、第m段目の発展部72-mは、制約条件を満たしていない場合、取得した第2時刻tにおけるN個の第2変数y(t)を、制約条件を満たす方向に変化させて、出力する。
第m段目の発展部72-mは、制約条件を満たす方向に変化させる処理を、第1実施形態に係る時間発展部36と同様に処理する。ただし、第m段目の発展部72-mは、第1実施形態における第1時間定数dtを第2時間定数dt´に代えて処理をする。
図7は、第2実施形態に係る演算部20の処理の流れを示すフローチャートである。第2実施形態に係る演算部20は、図7に示す流れで処理を実行する。図7のフローチャートは、図3のフローチャートと比較して、S14とS15との間にM回のループの開始処理(S41)が追加され、S22とS23との間に、M回のループの終了処理(S42)が追加されている。
第2実施形態に係る時間発展部36は、S14の処理の後において、S15からS22までの処理を、M回繰り返して実行する(S41とS42との間のループ処理)。これにより、時間発展部36は、時間発展処理をM回繰り返して実行することができる。
ただし、S15からS22までの処理において、時間発展部36は、第1実施形態では第1時間定数dtを用いた処理を、第2時間定数dt´を用いて行う。
より詳しくは、S15において、時間発展部36は、N個の第2変数yのそれぞれに第2時間定数dt´を乗じたN個の第2中間変数bを生成する。例えば、S15において、時間発展部36は、i=1~Nのそれぞれについて、式(24)の演算を実行する。
Figure 0007051771000024
また、例えば、S21において、時間発展部36は、i=1~Nのそれぞれについて、式(25)の演算を実行する。
Figure 0007051771000025
以上のような第2実施形態に係る計算装置10は、K個の不等式による制約を含む2次計画問題をシミュレーションにより解くことができる。
(第3実施形態)
第3実施形態に係る計算装置10について説明する。第3実施形態に係る計算装置10は、第2実施形態に係る計算装置10と略同一の構成を有するので、略同一の構成を有するブロックには、同一の符号を付けて、相違点を除き詳細な説明を省略する。
第3実施形態に係る計算装置10は、式(26)および式(27)に示される連立常微分方程式を解く。
Figure 0007051771000026
Figure 0007051771000027
μは、0より大きい緩和定数である。式(27)における、-μyは、運動量の緩和項を表す。
第3実施形態に係る計算装置10は、式(26)および式(27)により表される連立常微分方程式を離散解法により解く。より具体的には、計算装置10は、tを開始時刻tからサンプリング期間ずつ増加させて、t毎に、式(26)および式(27)を用いてxおよびyを更新する。そして、計算装置10は、tを十分に大きくした終了時刻tにおけるxの値を、解として出力する。これにより、計算装置10は、N個のxおよびN個のyを並行して更新しながら、解を算出することができる。
図8は、第3実施形態に係るm段目の発展部72-mの構成を示す図である。M段の発展部72-1~72-Mのそれぞれは、緩和部74をさらに含む。
m段目の発展部72-mの緩和部74は、m-1段目の発展部72-(m-1)から、第2時刻tにおけるN個の第2変数y(t)を取得する。なお、m=1の場合、m段目の発展部72-mの緩和部74は、第1加算部34から、第2時刻tにおけるN個の第2変数y(t)を取得する。
緩和部74は、取得した第2時刻tにおけるN個の第2変数y(t)のそれぞれに、緩和項を加算する。緩和項は、第2時間定数dt´と、予め定められた緩和定数μの正負を反転させた値と、取得した第2時刻tにおけるN個の第2変数y(t)のうちの対応する第2変数y(t)とを乗じた値である。
緩和部74は、緩和項を加算した第2時刻tにおけるN個の第2変数y(t)を、第2制約部68に与える。第2制約部68は、緩和項を加算した第2時刻tにおけるN個の第2変数y(t)に対して制約処理を実行する。
図9は、第3実施形態に係る演算部20の処理の流れを示すフローチャートである。第3実施形態に係る演算部20は、図9に示す流れで処理を実行する。図9のフローチャートは、図7のフローチャートと比較して、S16とS17との間に、緩和処理(S51)が追加されている。
第3実施形態に係る時間発展部36は、S16の処理の後において、N個の第2変数y(t)のそれぞれに、緩和項を加算する緩和処理を実行する。例えば、S51において、時間発展部36は、i=1~Nのそれぞれについて、式(28)の演算を実行する。
Figure 0007051771000028
なお、第1実施形態に係る時間発展部36が緩和項を加算する緩和処理を実行する構成であってもよい。この場合、緩和項は、第1時間定数dtと、緩和定数μの正負を反転させた値と、取得した第2時刻tにおけるN個の第2変数y(t)のうちの対応する第2変数y(t)とを乗じた値となる。すなわち、この場合、第1実施形態に係る時間発展部36は、第2時間定数dt´を、第1時間定数dtに置き換えて処理を実行する。
以上のような第3実施形態に係る計算装置10は、K個の不等式による制約を含む2次計画問題をシミュレーションにより解くことができる。
(第4実施形態)
第4実施形態に係る計算装置10について説明する。第4実施形態に係る計算装置10は、第3実施形態に係る計算装置10と略同一の構成を有するので、略同一の構成を有するブロックには、同一の符号を付けて、相違点を除き詳細な説明を省略する。
第4実施形態に係る計算装置10は、式(8)に示すハミルトニアンHを運動量および位置のそれぞれにより偏微分することにより得られる連立常微分方程式を解く。
式(8)に示すハミルトニアンHを偏微分することにより得られる運動方程式は、式(29)および式(30)により表される。
Figure 0007051771000029
Figure 0007051771000030
式(30)において、βおよびψは、予め定められた定数である。
第4実施形態に係る計算装置10は、式(29)および式(30)により表される連立常微分方程式を離散解法により解く。より具体的には、計算装置10は、tを開始時刻tからサンプリング期間ずつ増加させて、t毎に、式(29)および式(30)を用いてxおよびyを更新する。そして、計算装置10は、tを十分に大きくした終了時刻tにおけるxの値を、解として出力する。これにより、計算装置10は、N個のxおよびN個のyを並行して更新しながら、解を算出することができる。
図10は、第4実施形態に係るm段目の発展部72-mの構成を示す図である。M段の発展部72-1~72-Mのそれぞれは、第3制約部76と、第4制約部78と、第5制約部80とをさらに含む。
m段目の発展部72-mに含まれる第3制約部76、第4制約部78および第5制約部80は、次のような動作をする。
第3制約部76は、緩和部74から、第2時刻tにおけるN個の第2変数y(t)を取得する。第3制約部76は、第2加算部64から、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を取得する。
第3制約部76は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)の合計値が予め定められた規格値となる方向に、取得した第2時刻tにおけるN個の第2変数y(t)のそれぞれを変化させる。本例において、予め定められた規格値は、1である。なお、予め定められた規格値は、α(t)により表される値であってもよい。
第4制約部78は、第2加算部64から、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を取得する。第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のそれぞれが、予め定められた範囲から外れているか否かを判断する。例えば、第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のそれぞれが、0より小さいか否かを判断する。
第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のうち予め定められた範囲から外れている1または複数の第1変数x(t+m×dt´)のそれぞれを、予め定められた範囲の値とする。例えば、第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のうち0より小さい1または複数の第1変数x(t+m×dt´)のそれぞれを、0とする。なお、第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のうち予め定められた範囲内の1または複数の第1変数x(t+m×dt´)のそれぞれについては、そのまま出力する。
第4制約部78は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を、第1制約部66に与える。そして、第1制約部66は、第4制約部78から取得した第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)に対して制約処理を実行する。
第5制約部80は、第3制約部76から、第2時刻tにおけるN個の第2変数y(t)を取得する。第5制約部80は、第2加算部64から、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)を取得する。
第5制約部80は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のそれぞれが、予め定められた範囲から外れているか否かを判断する。なお、第5制約部80は、第4制約部78による判断結果に基づき、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のそれぞれが、予め定められた範囲から外れているか否かを判断してもよい。例えば、第5制約部80は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のそれぞれが、0より小さいか否かを判断する。
第5制約部80は、取得した第2時刻tにおけるN個の第2変数y(t)のうちの、予め定められた範囲から外れている1または複数の第1変数x(t+m×dt´)に対応する1または複数の第2変数y(t)のそれぞれを、対応する第1変数x(t+m×dt´)が予め定められた範囲内となる方向に変化させる。
例えば、第5制約部80は、予め定められた範囲から外れている1または複数の第1変数x(t+m×dt´)に対応する1または複数の第2変数y(t)のそれぞれを、対応する第1変数x(t+m×dt´)が0となる方向に変化させる。なお、第5制約部80は、第m経過時刻(t+m×dt´)におけるN個の第1変数x(t+m×dt´)のうち予め定められた範囲内の1または複数の第1変数x(t+m×dt´)に対応する1または複数の第2変数y(t)については、そのまま出力する。
第5制約部80は、第2時刻tにおけるN個の第2変数y(t)を、第2制約部68に与える。第2制約部68は、第5制約部80から取得した第2時刻tにおけるN個の第2変数y(t)に対して制約処理を実行する。
図11は、第4実施形態に係る演算部20の処理の流れを示すフローチャートである。第4実施形態に係る演算部20は、図11に示す流れで処理を実行する。図11のフローチャートは、図9のフローチャートと比較して、S51とS17との間に、S61~S64の処理が追加されている。従って、第4実施形態に係る時間発展部36は、M回のループの処理(S41とS42との間の処理)内において、緩和処理(S51)の後に、S61~S64の処理を実行する。
まず、S61において、時間発展部36は、第3制約処理を実行する。時間発展部36は、第3制約処理において、N個の第1変数xの合計値が予め定められた規格値となる方向に、N個の第2変数y(t)のそれぞれを変化させる。本例において、予め定められた規格値は、1である。例えば、S61において、時間発展部36は、i=1~Nのそれぞれについて、式(31)の演算を実行する。
Figure 0007051771000031
なお、式(31)において、βは、予め定められた定数である。
続いて、S62において、時間発展部36は、N個の第1変数xのそれぞれが、0より小さいか否かを判断する。時間発展部36は、N個の第1変数xのうち、0より小さい第1変数xについては(S62のYes)、S63およびS64の処理を実行する。時間発展部36は、N個の第1変数xのうち、0以上である第1変数xについては(S62のNo)、S63およびS64の処理を実行せずに、処理をS17に進める。
S63において、時間発展部36は、第5制約処理を実行する。時間発展部36は、第5制約処理において、N個の第1変数xのうち0より小さい第1変数xに対応する第2変数yに対して、式(32)の演算を実行する。
Figure 0007051771000032
なお、式(32)において、ψは、予め定められた定数である。これにより、時間発展部36は、予め定められた範囲から外れている第1変数xに対応する第2変数yを、対応する第1変数xが予め定められた範囲内となる方向に変化させることができる。
S64において、時間発展部36は、第4制約処理を実行する。時間発展部36は、第4制約処理において、N個の第1変数xのうち0より小さい第1変数xを0とする。これにより、時間発展部36は、予め定められた範囲から外れている第1変数xを予め定められた範囲の値とすることができる。S64の処理を終えると、時間発展部36は、処理をS17に進める。
なお、第1実施形態に係る時間発展部36が、第3制約処理、第4制約処理および第5制約処理を実行する構成であってもよい。この場合、式(31)および式(32)の演算における第2時間定数dt´は、第1時間定数dtに置き換えられる。
図12は、第4実施形態に係る後処理部42の処理の流れを示すフローチャートである。第4実施形態に係る後処理部42は、図12に示す流れで処理を実行する。図12のフローチャートは、図5のフローチャートと比較して、S33とS34との間に、S71からS73の処理が追加されている。従って、第4実施形態に係る後処理部42は、S33の後に、S71の処理を実行する。
S71において、後処理部42は、N個の第1変数xの合計値を予め定められた規格値とするように、N個の第1変数xのそれぞれの値を修正する。本例において、予め定められた規格値は、1である。例えば、S71において、後処理部42は、i=1~Nのそれぞれについて、式(33)の演算を実行する。
Figure 0007051771000033
続いて、S72において、後処理部42は、N個の第1変数xのそれぞれが、0より小さいか否かを判断する。後処理部42は、N個の第1変数xのうち、0より小さい第1変数xについては(S72のYes)、S73の処理を実行する。後処理部42は、N個の第1変数xのうち、0以上である第1変数xについては(S72のNo)、S73の処理を実行せずに、処理をS34に進める。
S73において、後処理部42は、N個の第1変数xのうち0より小さい第1変数xを0とする。これにより、後処理部42は、予め定められた範囲から外れている第1変数xを予め定められた範囲の値とすることができる。後処理部42は、S73の処理を終えると、処理をS34に進める。
以上のような第4実施形態に係る計算装置10は、K個の不等式による制約、N個の変数のそれぞれを予め定められた範囲内とする制約、および、N個の変数の合計を予め定められた規格値とする制約を含む2次計画問題をシミュレーションにより解くことができる。
図13は、計算装置10のハードウェアブロック図である。計算装置10は、一例として、図13に示すような一般のコンピュータ(情報処理装置)と同様のハードウェア構成により実現される。計算装置10は、図13に示すような1つのコンピュータにより実現されてもよいし、協働して動作する複数のコンピュータにより実現されてもよい。また、計算装置10は、一部に専用のハードウェア回路を備える構成であってもよい。
計算装置10は、メモリ204と、1または複数のハードウェアプロセッサ206と、記憶装置208と、操作装置210と、表示装置212と、通信装置214とを備える。各部は、バスにより接続される。
メモリ204は、例えば、ROM222と、RAM224とを含む。ROM222は、計算装置10の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。RAM224は、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性の記憶媒体である。RAM224は、1または複数のハードウェアプロセッサ206の作業領域として機能する。
1または複数のハードウェアプロセッサ206は、メモリ204(ROM222およびRAM224)にバスを介して接続される。1または複数のハードウェアプロセッサ206のそれぞれは、例えば、CPU(Central Processing Unit)であってもよいし、演算用のハードウェア回路であってもよい。
1または複数のハードウェアプロセッサ206は、RAM224の所定領域を作業領域としてROM222または記憶装置208に予め記憶された各種プログラムとの協働により各種処理を実行し、計算装置10を構成する各部の動作を統括的に制御する。また、1または複数のハードウェアプロセッサ206は、ROM222または記憶装置208に予め記憶されたプログラムとの協働により、操作装置210、表示装置212および通信装置214等を制御する。
記憶装置208は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶装置208は、計算装置10の制御に用いられるプログラムおよび各種設定情報等を記憶する。
操作装置210は、マウスおよびキーボード等の入力デバイスである。操作装置210は、ユーザから操作入力された情報を受け付け、受け付けた情報を1または複数のハードウェアプロセッサ206に出力する。
表示装置212は、情報をユーザに表示する。表示装置212は、1または複数のハードウェアプロセッサ206から情報等を受け取り、受け取った情報を表示する。なお、通信装置214または記憶装置208等に情報を出力する場合、計算装置10は、表示装置212を備えなくてもよい。通信装置214は、外部の機器と通信して、ネットワーク等を介して情報を送受信する。
本実施形態の計算装置10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の計算装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の計算装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の計算装置10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
情報処理装置を計算装置10として機能させるためのプログラムは、例えば、相互作用モジュール(行列演算モジュールおよび第1乗算モジュール)、第1加算モジュール、時間発展モジュール(第2乗算モジュール、第2加算モジュール、第1制約モジュール、第2制約モジュール、緩和モジュール、第3制約モジュール、第4制約モジュールおよび第5制約モジュール)、および、後処理モジュールを含むモジュール構成となっている。このプログラムは、1または複数のハードウェアプロセッサ206により実行されることにより各モジュールがメモリ204のRAM224にロードされ、1または複数のハードウェアプロセッサ206を、相互作用部32(行列演算部54および第1乗算部56)、第1加算部34、時間発展部36(第2乗算部62、第2加算部64、第1制約部66、第2制約部68、緩和部74、第3制約部76、第4制約部78および第5制約部80)、および、後処理部42として機能させる。なお、これらの構成は、一部または全部がハードウェアにより構成されていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
(技術案)
なお、上記の実施形態を、以下の技術案にまとめることができる.
技術案1
第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出する変数算出部と、
時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成する時間発展部と、
を備え、
前記時間発展部は、
前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
計算装置。
技術案2
前記変数算出部は、
前記第1時刻における前記N個の第1変数と、予め設定されたN行×N列の係数を含む係数行列とを行列演算することにより算出されたN個の値のそれぞれに、前記サンプリング期間を表す第1時間定数の正負を反転させた値を乗じたN個の第1中間変数を生成する相互作用部と、
前記第1時刻における前記N個の第2変数のそれぞれに、前記N個の第1中間変数のうちの対応する第1中間変数を加算することにより、前記第2時刻における前記N個の第2変数を算出する第1加算部と、
を有し、
前記時間発展部は、
前記第2時刻における前記N個の第2変数のそれぞれに前記第1時間定数を乗じたN個の第2中間変数を算出し、
前記第1時刻における前記N個の第1変数のそれぞれに、前記N個の第2中間変数のうちの対応する第2中間変数を加算することにより、前記第2時刻における前記N個の第1変数を算出する
技術案1に記載の計算装置。
技術案3
開始時刻から終了時刻まで前記サンプリング期間の間隔で順次に時刻を増加させ、それぞれの時刻に対する前記N個の第1変数および前記N個の第2変数を算出させるように処理を管理する管理部と、
前記終了時刻における前記N個の第1変数を出力する出力部と、
をさらに備える技術案2に記載の計算装置。
技術案4
前記時間発展部は、前記時間発展処理において、前記第2時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記第2時刻における前記N個の第1変数を前記制約条件を満たす方向に変化させる
技術案3に記載の計算装置。
技術案5
前記終了時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記終了時刻における前記N個の第1変数が前記制約条件を満たすまで、前記終了時刻における前記N個の第1変数を前記制約条件を満たす方向に変化させる修正処理を繰り返す後処理部をさらに備え、
前記出力部は、前記制約条件を満たした後の前記終了時刻における前記N個の第1変数を出力する
技術案4に記載の計算装置。
技術案6
前記時間発展部は、前記第1時刻における前記N個の第2変数に対してM回(Mは1以上の整数)の時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成し、
前記M回の時間発展処理のうちのm回目(mは、1からMまでの整数)の時間発展処理において、前記時間発展部は、
前記第2時刻における前記N個の第2変数のそれぞれに、前記サンプリング期間の1/Mの微小期間を表す第2時間定数を乗じた前記N個の第2中間変数を算出し、
前記第1時刻から前記微小期間の(m-1)倍の時間を経過した時刻における前記N個の第1変数のそれぞれに、前記N個の第2中間変数のうちの対応する第2中間変数を加算することにより、前記第1時刻から前記微小期間のm倍の時間を経過した第m経過時刻における前記N個の第1変数を算出し、
前記第m経過時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記第m経過時刻における前記N個の第1変数、および、前記N個の第2変数を前記制約条件を満たす方向に変化させる
技術案5に記載の計算装置。
技術案7
前記制約条件は、不等式で表される
技術案1から6の何れか1項に記載の計算装置。
技術案8
前記時間発展部は、
前記不等式を満たしていない場合、前記第2時刻における前記N個の第1変数のうちの前記不等式に含まれる複数の第1変数により表される位置を、前記不等式により表される境界に対して垂直に近づける方向に、前記複数の第1変数、および、前記不等式に含まれる前記複数の第1変数に対応する複数の第2変数を変化させる
技術案7に記載の計算装置。
技術案9
前記制約条件は、K個(Kは1以上の整数)の不等式を含む連立一次不等式で表され、
前記K個の不等式のそれぞれは、前記N個の第1変数のうちの1以上N以下の第1変数を変数として含む
技術案6に記載の計算装置。
技術案10
前記m回目の時間発展処理において、前記時間発展部は、
前記K個の不等式のそれぞれ毎に、
不等式を満たしていない場合、前記第2時刻における前記N個の第1変数のうちの前記不等式に含まれる複数の第1変数を前記不等式を満たす方向に変化させ、および、前記不等式に含まれる前記複数の第1変数に対応する複数の第2変数を、前記不等式を満たす方向に変化させる
技術案9に記載の計算装置。
技術案11
前記m回目の時間発展処理において、前記時間発展部は、前記第2時刻における前記N個の第2変数のそれぞれに、緩和項を加算し、
前記緩和項は、前記第2時間定数と、予め定められた緩和定数の正負を反転させた値と、前記第2時刻における前記N個の第2変数のうちの対応する第2変数とを乗じた値である
技術案10に記載の計算装置。
技術案12
前記m回目の時間発展処理において、前記時間発展部は、
前記第m経過時刻における前記N個の第1変数の合計値が予め定められた規格値となる方向に、前記第2時刻における前記N個の第2変数のそれぞれを変化させる
技術案10または11に記載の計算装置。
技術案13
前記m回目の時間発展処理において、前記時間発展部は、
前記第m経過時刻における前記N個の第1変数のうちの予め定められた範囲から外れている1または複数の第1変数のそれぞれを、前記予め定められた範囲の値とし、
前記第2時刻における前記N個の第2変数のうちの、前記1または複数の第1変数に対応する1または複数の第2変数のそれぞれを、対応する第1変数が前記予め定められた範囲となる方向に変化させる
技術案10から12の何れか1項に記載の計算装置。
技術案14
前記相互作用部は、下記の式(101)の演算をi=1からNまで実行し、
Figure 0007051771000034
前記第1加算部は、下記の式(102)の演算をi=1からNまで実行し、
Figure 0007051771000035
i,jは、1以上N以下の整数であり、
は、前記N個の第1中間変数のうちのi番目の第1中間変数であり、
dtは、前記第1時間定数であり、
ijは、前記係数行列におけるi行j列の値であり、
は、前記N個の第1変数のうちのj番目の第1変数であり、
は、前記N個の第2変数のうちのi番目の第2変数である
技術案10に記載の計算装置。
技術案15
前記時間発展部は、前記K個の不等式のそれぞれ毎に、rが0より小さいか否かを判断し、
は、前記K個の不等式のうちのk番目(kは、1以上K以下の整数)の不等式の判断において、下記の式(103)により算出される値であり、
Figure 0007051771000036
jkは、前記k番目の不等式における、前記j番目の第1変数に対する係数である
技術案14に記載の計算装置。
技術案16
前記時間発展部は、前記k番目の不等式の判断において、rが0より小さい場合、下記の式(104)および式(105)の演算をi=1からNまで実行し、
Figure 0007051771000037
Figure 0007051771000038
は、前記N個の第1変数のうちのi番目の第1変数であり、
dt´は、前記第2時間定数であり、
φは、予め設定された定数であり、
ikは、前記k番目の不等式における、前記i番目の第1変数に対する係数である
技術案15に記載の計算装置。
技術案17
前記m回目の時間発展処理において、前記時間発展部は、下記の式(106)の演算をi=1からNまで実行する
Figure 0007051771000039
μは、予め定められた緩和定数である
技術案16に記載の計算装置。
技術案18
前記m回目の時間発展処理において、前記時間発展部は、下記の式(107)の演算をi=1からNまで実行する
Figure 0007051771000040
βは、予め定められた定数である
技術案16または17に記載の計算装置。
技術案19
前記m回目の時間発展処理において、前記時間発展部は、
前記N個の第2変数のうち、前記0より小さい第1変数に対応する第2変数に対して、式(108)の演算を実行し、
Figure 0007051771000041
前記N個の第1変数のうち、0より小さい第1変数を0とし、
ψは、予め定められた定数である
技術案16から18の何れか1項に記載の計算装置。
技術案20
前記修正処理において、前記後処理部は、
下記の式(109)の演算をi=1からNまで実行し、
Figure 0007051771000042
前記N個の第1変数のうち、0より小さい第1変数を0とし、
前記K個の不等式のそれぞれ毎に、
が0より小さいか否かを判断し、
が0より小さい場合、下記の式(110)の演算をi=1からNまで実行する
Figure 0007051771000043
γは、予め定められた定数である
技術案16から19の何れか1項に記載の計算装置。
技術案21
情報処理装置が計算をするための計算方法であって、
前記情報処理装置が、第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出し
前記情報処理装置が、時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成し、
前記情報処理装置が、前記時間発展処理において、
前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
計算方法。
技術案22
情報処理装置に、計算装置として機能させるためのプログラムであって、
前記情報処理装置を、
第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出する変数算出部と、
時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成する時間発展部と、
して機能させ、
前記時間発展部は、
前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
プログラム。
技術案23
ハミルトニアンHを設定可能な計算装置であって、
前記ハミルトニアンHを終了時刻まで時間発展させ、
前記終了時刻におけるxの値を取得して出力し、
前記ハミルトニアンHは、式(111)により表され、
Figure 0007051771000044
i,は、位置を表し、
は、運動量を表し、
Nは、2以上の整数であり、
iおよびjは、1以上N以下の任意の整数であり、
ijは、i番目のxと、j番目のxとの間の相互作用を表し、
ikは、N行K列の制約行列Bに含まれるi行k列の係数であり、
tは、時刻を表し、
α(t)は、tを変数とした非減少関数であり、少なくとも前記終了時刻において1となり、
Φ(ξ)は、式(112)により表される関数であり、
Figure 0007051771000045
φは、予め定められた定数であり、
θ(ξ)は、式(113)により表される関数である
Figure 0007051771000046
計算装置。
10 計算装置
20 演算部
22 入力部
24 出力部
26 設定部
32 相互作用部
34 第1加算部
36 時間発展部
38 第1変数メモリ
40 第2変数メモリ
42 後処理部
44 管理部
52 係数行列メモリ
54 行列演算部
56 第1乗算部
62 第2乗算部
64 第2加算部
66 第1制約部
68 第2制約部
74 緩和部
76 第3制約部
78 第4制約部
80 第5制約部

Claims (13)

  1. 第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出する変数算出部と、
    時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成する時間発展部と、
    を備え、
    前記時間発展部は、
    前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
    前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
    計算装置。
  2. 前記変数算出部は、
    前記第1時刻における前記N個の第1変数と、予め設定されたN行×N列の係数を含む係数行列とを行列演算することにより算出されたN個の値のそれぞれに、前記サンプリング期間を表す第1時間定数の正負を反転させた値を乗じたN個の第1中間変数を生成する相互作用部と、
    前記第1時刻における前記N個の第2変数のそれぞれに、前記N個の第1中間変数のうちの対応する第1中間変数を加算することにより、前記第2時刻における前記N個の第2変数を算出する第1加算部と、
    を有し、
    前記時間発展部は、
    前記第2時刻における前記N個の第2変数のそれぞれに前記第1時間定数を乗じたN個の第2中間変数を算出し、
    前記第1時刻における前記N個の第1変数のそれぞれに、前記N個の第2中間変数のうちの対応する第2中間変数を加算することにより、前記第2時刻における前記N個の第1変数を算出する
    請求項1に記載の計算装置。
  3. 開始時刻から終了時刻まで前記サンプリング期間の間隔で順次に時刻を増加させ、それぞれの時刻に対する前記N個の第1変数および前記N個の第2変数を算出させるように処理を管理する管理部と、
    前記終了時刻における前記N個の第1変数を出力する出力部と、
    をさらに備える請求項2に記載の計算装置。
  4. 前記時間発展部は、前記時間発展処理において、前記第2時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記第2時刻における前記N個の第1変数を前記制約条件を満たす方向に変化させる
    請求項3に記載の計算装置。
  5. 前記終了時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記終了時刻における前記N個の第1変数が前記制約条件を満たすまで、前記終了時刻における前記N個の第1変数を前記制約条件を満たす方向に変化させる修正処理を繰り返す後処理部をさらに備え、
    前記出力部は、前記制約条件を満たした後の前記終了時刻における前記N個の第1変数を出力する
    請求項4に記載の計算装置。
  6. 前記時間発展部は、前記第1時刻における前記N個の第2変数に対してM回(Mは1以上の整数)の時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成し、
    前記M回の時間発展処理のうちのm回目(mは、1からMまでの整数)の時間発展処理において、前記時間発展部は、
    前記第2時刻における前記N個の第2変数のそれぞれに、前記サンプリング期間の1/Mの微小期間を表す第2時間定数を乗じた前記N個の第2中間変数を算出し、
    前記第1時刻から前記微小期間の(m-1)倍の時間を経過した時刻における前記N個の第1変数のそれぞれに、前記N個の第2中間変数のうちの対応する第2中間変数を加算することにより、前記第1時刻から前記微小期間のm倍の時間を経過した第m経過時刻における前記N個の第1変数を算出し、
    前記第m経過時刻における前記N個の第1変数が前記制約条件を満たしていない場合、前記第m経過時刻における前記N個の第1変数、および、前記N個の第2変数を前記制約条件を満たす方向に変化させる
    請求項5に記載の計算装置。
  7. 前記制約条件は、不等式で表される
    請求項1から6の何れか1項に記載の計算装置。
  8. 前記時間発展部は、
    前記不等式を満たしていない場合、前記第2時刻における前記N個の第1変数のうちの前記不等式に含まれる複数の第1変数により表される位置を、前記不等式により表される境界に対して垂直に近づける方向に、前記複数の第1変数、および、前記不等式に含まれる前記複数の第1変数に対応する複数の第2変数を変化させる
    請求項7に記載の計算装置。
  9. 前記制約条件は、K個(Kは1以上の整数)の不等式を含む連立一次不等式で表され、
    前記K個の不等式のそれぞれは、前記N個の第1変数のうちの1以上N以下の第1変数を変数として含む
    請求項6に記載の計算装置。
  10. 前記時間発展部は、
    前記N個の第1変数の合計値が予め定められた規格値となる方向に、前記第2時刻における前記N個の第2変数のそれぞれを変化させる
    請求項1から9の何れか1項に記載の計算装置。
  11. 前記時間発展部は、
    前記N個の第1変数のうちの予め定められた範囲から外れている1または複数の第1変数のそれぞれを、前記予め定められた範囲の値とし、
    前記第2時刻における前記N個の第2変数のうちの、前記1または複数の第1変数に対応する1または複数の第2変数のそれぞれを、対応する第1変数が前記予め定められた範囲となる方向に変化させる
    請求項1から10の何れか1項に記載の計算装置。
  12. 情報処理装置が計算をするための計算方法であって、
    前記情報処理装置が、第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出し
    前記情報処理装置が、時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成し、
    前記情報処理装置が、前記時間発展処理において、
    前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
    前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
    計算方法。
  13. 情報処理装置に、計算装置として機能させるためのプログラムであって、
    前記情報処理装置を、
    第1時刻におけるN個(Nは2以上の整数)の第1変数を相互作用させたN個の第1中間変数と、前記第1時刻におけるN個の第2変数とに基づき、前記第1時刻からサンプリング期間を経過した第2時刻における前記N個の第2変数を算出する変数算出部と、
    時間発展処理を実行して、前記第2時刻における前記N個の第1変数を生成する時間発展部と、
    して機能させ、
    前記時間発展部は、
    前記第2時刻における前記N個の第2変数と、前記第1時刻における前記N個の第1変数とに基づき、前記第2時刻における前記N個の第1変数を算出し、
    前記第2時刻における前記N個の第1変数が予め定められた制約条件を満たしていない場合、前記第2時刻における前記N個の第2変数を前記制約条件を満たす方向に変化させる
    プログラム。
JP2019163893A 2019-09-09 2019-09-09 計算装置、計算方法およびプログラム Active JP7051771B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019163893A JP7051771B2 (ja) 2019-09-09 2019-09-09 計算装置、計算方法およびプログラム
US16/801,429 US11256779B2 (en) 2019-09-09 2020-02-26 Calculation apparatus, calculation method and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019163893A JP7051771B2 (ja) 2019-09-09 2019-09-09 計算装置、計算方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2021043589A JP2021043589A (ja) 2021-03-18
JP7051771B2 true JP7051771B2 (ja) 2022-04-11

Family

ID=74849468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019163893A Active JP7051771B2 (ja) 2019-09-09 2019-09-09 計算装置、計算方法およびプログラム

Country Status (2)

Country Link
US (1) US11256779B2 (ja)
JP (1) JP7051771B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7532323B2 (ja) * 2021-09-03 2024-08-13 株式会社東芝 計算装置
JP2024084000A (ja) 2022-12-12 2024-06-24 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP2025014382A (ja) 2023-07-18 2025-01-30 株式会社東芝 情報処理装置、情報処理方法、プログラムおよび回路情報
JP2025014338A (ja) 2023-07-18 2025-01-30 株式会社東芝 情報処理装置、情報処理方法、プログラムおよび回路情報
JP2025018507A (ja) 2023-07-27 2025-02-06 株式会社東芝 情報処理装置、情報処理方法、プログラムおよび回路情報
JP2025018431A (ja) 2023-07-27 2025-02-06 株式会社東芝 情報処理装置、情報処理方法、プログラムおよび回路情報
JP2025042316A (ja) 2023-09-14 2025-03-27 株式会社東芝 情報処理システム、ソルバ装置、情報処理方法、プログラムおよび回路情報
JP2025042315A (ja) 2023-09-14 2025-03-27 株式会社東芝 情報処理システム、情報処理装置、情報処理方法、プログラムおよび回路情報

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190250571A1 (en) 2018-02-13 2019-08-15 Mitsubishi Electric Research Laboratories, Inc. Method with quasi-newton jacobian updates for nonlinear predictive control
JP2019145010A (ja) 2018-02-23 2019-08-29 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4329933B2 (ja) 2004-07-02 2009-09-09 三菱電機株式会社 2次計画法求解装置
JP5168048B2 (ja) 2008-09-23 2013-03-21 三菱電機株式会社 2次計画問題計算装置、2次計画問題計算装置用プログラム、潮流計画計算装置、発電機出力値計算装置及びポートフォリオ最適化装置
JP5672063B2 (ja) * 2011-02-24 2015-02-18 富士通株式会社 送信制御プログラム、通信装置および送信制御方法
JP5865456B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 半導体装置
JP6468254B2 (ja) 2016-07-01 2019-02-13 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6691297B2 (ja) 2016-07-13 2020-04-28 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6964056B2 (ja) * 2018-09-18 2021-11-10 株式会社東芝 計算装置
JP7108185B2 (ja) * 2018-11-22 2022-07-28 富士通株式会社 最適化装置および最適化装置の制御方法
US11809147B2 (en) * 2019-06-17 2023-11-07 Fujitsu Limited Optimization device, method for controlling optimization processing, and non-transitory computer-readable storage medium for storing program for controlling optimization processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190250571A1 (en) 2018-02-13 2019-08-15 Mitsubishi Electric Research Laboratories, Inc. Method with quasi-newton jacobian updates for nonlinear predictive control
JP2019145010A (ja) 2018-02-23 2019-08-29 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
US20190266212A1 (en) 2018-02-23 2019-08-29 Kabushiki Kaisha Toshiba Calculating device, calculation program, recording medium, and calculation method

Also Published As

Publication number Publication date
US11256779B2 (en) 2022-02-22
JP2021043589A (ja) 2021-03-18
US20210073319A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
JP7051771B2 (ja) 計算装置、計算方法およびプログラム
Ramasamy et al. Multi-disease classification model using strassen’s half of threshold (SHoT) training algorithm in healthcare sector
US11250308B2 (en) Apparatus and method for generating prediction model based on artificial neural network
US20200210812A1 (en) Joint optimization of ensembles in deep learning
Yan et al. Robust stochastic configuration networks for industrial data modelling with student’st mixture distribution
WO2019055847A1 (en) QUANTUM ARTIFICIAL NEURONAL NETWORK
US11526735B2 (en) Neuromorphic neuron apparatus for artificial neural networks
Mishra Introduction to neural networks using PyTorch
Johnson et al. Learning rate schedules and optimizers, a game changer for deep neural networks
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
Khan et al. A derivative-free method for quantum perceptron training in multi-layered neural networks
Bilek et al. Recursive variational quantum compiling
Devgupta et al. Scientific machine learning in ecological systems: A study on the predator-prey dynamics
El-Amir et al. Deep learning fundamentals
KR102168882B1 (ko) 뉴럴 네트워크 하드웨어
Weytjens et al. Timing process interventions with causal inference and reinforcement learning
BN et al. Software Effort Estimation using ANN (Back Propagation)
Gori et al. Neural network training as a dissipative process
Akhtar On tuning neural ode for stability, consistency and faster convergence
Anand et al. Time-series forecasting using continuous variables-based quantum neural networks
Dudek Boosted ensemble learning based on randomized NNs for time series forecasting
Nastac An adaptive retraining technique to predict the critical process variables
AbdulQader et al. Enabling incremental training with forward pass for edge devices
Zawalska et al. Solving the traveling salesman problem with a hybrid quantum-classical feedforward neural network
Bilgaiyan et al. Chaos-based modified morphological genetic algorithm for effort estimation in agile software development

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210311

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220330

R150 Certificate of patent or registration of utility model

Ref document number: 7051771

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150