JP7425210B2 - 情報処理システムおよび最適解探索処理方法 - Google Patents

情報処理システムおよび最適解探索処理方法 Download PDF

Info

Publication number
JP7425210B2
JP7425210B2 JP2022544983A JP2022544983A JP7425210B2 JP 7425210 B2 JP7425210 B2 JP 7425210B2 JP 2022544983 A JP2022544983 A JP 2022544983A JP 2022544983 A JP2022544983 A JP 2022544983A JP 7425210 B2 JP7425210 B2 JP 7425210B2
Authority
JP
Japan
Prior art keywords
variable
value
memory
information processing
unit
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
JP2022544983A
Other languages
English (en)
Other versions
JPWO2022044184A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2022044184A1 publication Critical patent/JPWO2022044184A1/ja
Application granted granted Critical
Publication of JP7425210B2 publication Critical patent/JP7425210B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Description

本発明は、情報処理装置、演算装置、及び情報処理方法等に関し、最適解探索処理を実行する技術に関する。
特許文献1には、「イジングモデルの1つのスピンを3以上の状態で表現する値を記憶する第1のメモリセルと、1つのスピンに相互作用を及ぼす他のスピンからの相互作用を示す相互作用係数を記憶する第2のメモリセルと、他のスピンの状態を表現する値と前記相互作用係数を定数または変数として持つ関数に基づいて、1つのスピンの次状態を決定する論理回路と、を有する単位ユニットを複数備える半導体装置」が開示される。
特許文献2には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法について記載されている。
特許文献3には、集合分割問題における部分集合の候補の情報である候補情報を取得する取得手段と、前記取得手段により取得された前記候補情報に基づいて、前記集合分割問題に対応するイジングモデルにおけるハミルトニアンの式を生成する生成手段と、が開示される。
特開2016-51314号公報 WO2019/216277号公報 特開2017-151810号公報
Okuyama, T., Sonobe, T., Kawarabayashi, K. I., & Yamaoka, M. (2019). Binary optimization by momentum annealing. Physical Review E, 100(1), 012111. Botev, Z. I. (2017). The normal law under linear restrictions: simulation and estimation via minimax tilting. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 79(1), 125-148. Neal, R. M. (1998). Suppressing random walks in Markov chain Monte Carlo using ordered overrelaxation. In Learning in graphical models (pp. 205-228). Springer, Dordrecht.
物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。
この相互作用モデルに関係づけられた指標を最小化または最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。これらは、オペレーションズ・リサーチの分野では、無制約二値二次計画問題や混合二値二次計画問題に大別される。
巡回セールスマン問題や経路探索問題などを混合二値二次計画問題として、相互作用モデルの基底状態探索問題として解く場合、このエネルギー関数は一般に、制約を表すペナルティー項など複数の項の線形和で表される。各項の重みの最適値は一般には不明であるため、重みを変化させつつ解を探索して、厳密解または良質な近似解を得る。
最適化問題は、解きたい問題をひとたび相互作用モデルで表現できれば、短時間・省電力で計算することが可能となる。しかし、実際に世の中で求められる最適化問題では複雑な制約が課されている場合が多く、これらのペナルティー項を全て相互作用モデルで表現することは困難である。
本発明は上述の背景に鑑みてなされたもので、様々な制約を持つ複雑な最適化問題を、いかにして混合二値二次計画問題で解けるようにするか、その手段を提供することを目的とする。
本発明の好ましい一側面は、演算装置と、前記演算装置を制御する計算機を備える情報処理システムである。前記計算機は、複数の制約を含む最適化問題の解候補を生成し、前記解候補から前記制約の少なくとも一部を満たす解候補を抽出し、抽出された解候補に基づいて混合整数二次計画問題を生成する前処理部と、前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、を備える。前記演算装置は、前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである。
本発明のさらに好ましい一側面は、演算装置と、前記演算装置を制御する計算機を備える情報処理システムである。前記計算機は、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから混合整数二次計画問題を生成する前処理部と、前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、を備える。前記演算装置は、前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものである。
本発明の好ましい他の一側面は、演算装置と、前記演算装置を制御する計算機で実行する最適解探索処理方法である。この方法は、前記計算機の前処理部が、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから二次計画形式問題データを生成する前処理ステップ、前記計算機の記憶部に、前記二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを記憶する第1のステップ、前記計算機のモデル係数設定部が、前記二次計画形式問題データに基づいて、非線形係数メモリに非線形係数Jを設定し、線形係数メモリに線形係数hの値を設定する第2のステップ、前記計算機の重み設定部が重み信号SWの値を決定する第3のステップ、前記計算機の変数値初期化部が、変数メモリに格納されている各変数の値を初期化する第4のステップ、前記計算機の相互作用演算実行部が、前記非線形係数J、前記線形係数h、前記重み信号SWを用いて、前記演算装置の状態遷移計算ブロックに前記変数の次状態の計算を実行させる第5のステップ、前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第6のステップ、を実行する。
本発明によれば、様々な制約を持つ複雑な最適化問題を、混合二値二次計画問題で解けるようにすることができる。上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
最適化問題の変数配列および目的関数値の関係を示す概念図である。 実施例の説明に供する図である。 実施例の説明に供する図である。 情報処理装置の概略的な構成を示すブロック図である。 演算回路のブロック図である。 情報処理装置が備える主な機能を示す機能ブロック図である。 最適解探索処理を説明するフローチャートである。 演算回路の詳細ブロック図である。 演算回路を構成するユニットのブロック図である。 前処理S710の意味を概念的に説明する図である。 候補リスト620の一例を示す表図である。
以下、実施の形態を図面に基づいて詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
以下で説明される一実施例は、混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、前記変数メモリに対応して状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、前記変数メモリに対応して状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、状態遷移計算ブロックの重み信号を受信する重み入力線と、状態遷移計算ブロックの温度信号を受信する温度入力線と、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの非線形係数と前記状態遷移計算ブロックの線形係数を用いて差分計算を計算する差分計算ブロックと、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、前記サンプリングブロックの出力値と前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態計算ブロックと、を備える演算回路である。
一般に、整数計画問題とは、整数変数を含む最適化問題をいう。また、整数値を取る変数と実数値を取る変数が混在している場合は、混合整数計画問題という。二次計画問題となる混合整数計画問題は,混合整数二次計画問題という。本明細書では、特に2値を取る変数と実数値を取る変数が混在している混合整数二次計画問題を、混合二値二次計画問題と呼ぶことにする。まず、混合二値二次計画問題の意義を説明する。
解きたい最適化問題によっては2値変数と連続変数が混合することがある。例えば、金融分野の問題において、金融商品の購入比率は0%、もしくは10%~100%ということがある。購入しないならば当然0%で、購入するならば最低単位の10%以上とする場合などである。このとき、購入するかしないかを示す2値変数x∈{-1,1}と連続変数y∈[-1,1]を用いて、購入比率rは、
r={(1+x)/2} × {0.1+0.9×(1+y))/2}
とすることで表現できる。
連続変数yを複数の2値変数で離散的に表現することも可能だが、連続変数を扱えるようにすることで変数の個数が1個で済む。よって、連続変数を計算機システムで扱えるようにすることで、最適化問題の変数の個数を減らせて、計算機資源で扱える問題規模を大きくすることができる。また、ある問題を解くとき、変数の個数が減るため計算時間を短くすることが期待できる。
一方、問題を連続変数のみで扱うことも可能だが、連続変数では、-1または+1しか値として認めたくない変数に対しても0.3などの値も許してしまうことになる。この場合、「変数xは-1または+1である」という制約をたとえばペナルティー関数(x-1)として目的関数に足せば、変数xを連続変数として扱うことも可能であるが、これでは二次式にならなくなる。また、目的関数が複雑になって最適解を見つけづらいなどの課題がある。よって、二次計画問題を作る際に最初から所定の変数の定義域を2値あるいは離散値とし、計算機で取り扱えるようにする構成のメリットがある。本明細書では以降、最適化問題とのみ称する場合は、混合二値二次計画問題を表すものとする。
最適化問題(ここでは混合二値二次計画問題の意)の変数はs、…、sのN個存在する。そして各変数の定義域Dは2値{-1、+1}または連続値[-1、+1]のいずれかである。どちらであるかは問題毎に決定される。そして、最適化問題の目的関数Hは次式1で表される。すなわち、目的関数Hが変数sの2次式で表される。
Figure 0007425210000001
式1において、s=[s、…、s]のN次元ベクトル、JはN×N対称行列、hはN次元ベクトルである。前述の通り、変数毎に定義域が異なるので、混合二値二次計画問題は次式2の通り表せる。
Figure 0007425210000002
ここで、添字の集合Λ、Λを式3の通り定義する。
Figure 0007425210000003
集合Smixed={s | s ∈ D}を定義する。これらの表記を用いると、式2は次式4とも表現できる。
Figure 0007425210000004
以降、すべてのi∈Λに対して行列Jのi行i列目の要素は0とする。なぜならば、この変換は式2の最適解を変えないためである。
もしD={-1、+1}ならば、この最適化問題はイジングモデルの基底状態探索問題と呼ばれる組合せ最適化問題である。本実施形態では、イジングモデルの基底状態探索も含む最適化問題において、マルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と称する)を活用したアルゴリズムで最適解もしくは近似解を探索する。
図1は変数配列に対する目的関数値のランドスケープを表す概念図である。グラフの横軸は変数配列s、縦軸は目的関数H(s)である。MCMCは現在の状態sから、状態sの近傍のある状態s’への確率的な遷移を繰り返す。状態sから状態s’に遷移する確率を、遷移確率P(s,s’)と称する。遷移確率Pの例としてメトロポリス法(Metropolis method)や熱浴法(heat-bath algorithm)が挙げられる。
遷移確率は温度と呼ばれるパラメータを有し、これは状態間の遷移のし易さを表す。温度を大きな値から徐々に減少させつつMCMCを実行するとき、目的関数値が最も低い状態に漸近的に収束する。これを利用して最小化問題の最適解または近似解を求める手法が、シミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と称する)や非特許文献1で提案されたモメンタム・アニーリング(以下、MA(Momentum Annealing)と称する)である。
式4に示す最小化問題を解くにあたり、代わりに次式5の最小化問題を解くことを考える。ただし集合Srelaxed={s | si ∈ [-1、+1]}である。
Figure 0007425210000005
式5の最適解をs=[s 、…、s ]と表す。証明は割愛するが、次式6で求まるs=[s 、…、s ]は式4の最適解の一つとなる。本出願で示す実施例の目標は式2の最適解探索であるが、式5の最適解sを求解後に式6の変換を得ても、所望の解sを得られるということである。ただし、関数sgnは引数が0以上ならば+1、それ以外ならば-1を返す関数である。
Figure 0007425210000006
ここで、N次元ベクトルv=[v、…、v]を導入して、式7に示す関数H’を定義する。
Figure 0007425210000007
ただし、関数V(v)は式8に記す定義の通りである。
Figure 0007425210000008
行列W=diag(w、…、w)は任意の対角行列で、viは[-1、+1]を動く実数である。式5に示す最小化問題の代わりにH’(s、v) の最小化問題である式9を導入する。
Figure 0007425210000009
2つのN次元ベクトルx=s+v、y=s-vを定義する。本来解きたい最適化問題の目的関数はHのみだが、ここにVという関数を導入することで、MCMCで並列更新可能な関数を新たに得られるようにしている。すると、関数H’は式10と書き直せる。
Figure 0007425210000010
つまり、式5の最小化問題は式11の最小化問題と言い換えられる(最大化問題としてあつかってもよい)。
Figure 0007425210000011
式11の最適解をx、yと表すと、s=(x+y)/2なる等式が成り立つ。これらの議論はWが零行列でも成り立つ。
以上より、式2で表す混合二値二次計画問題の最適解は、式11に示す制約付き二次計画問題の解から求められる。この解を求めるために、MCMCを活用する。
図2は、式11における目的関数Gの各変数どうしの関係を示したグラフィカルモデルである。関数Gの各変数どうしの関係は、完全2部グラフで表すことができる。関数G内で変数xに乗ぜられる変数は、y、…、yとxのみである。MCMCは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数xの値を更新するときy、…、yおよびxを求め、それ以外の変数(ここではx、…、x)を参照しない。これは他の変数、例えばxの値の更新でも同様である。ゆえに、変数配列yの値が一定ならば、配列xのそれぞれの値を独立に同時に確率的更新してもMCMCの理論的要請は破らない。
同様に変数yに乗ぜられる変数も、x、…、xとyのみである。ゆえに、変数配列xの値が一定の下で、配列yのそれぞれの値を独立に同時に確率的更新できる。
以上より、「x、…、xの同時更新」と「y、…、yの同時更新」を繰り返す手続きで構成されたMCMCを実行することで、並列化による高速化という利点を享受しながら関数Gを最小化する配列x、yを探索できる。
本実施例の議論では、行列Jに制約を設けていないことに注意されたい。たとえば行列Jの全要素が非零である場合にも、上記の議論が成り立つため、並列更新が可能である。
図3は、全結合グラフの例である。一方で、原問題である式2の最小化問題に対して直接、MCMCを適用する場合、変数配列sの係わり方が図3に示すように全結合グラフで表現されるため一度に一変数しか確率更新できず、逐次更新に限定される。
ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をxとする。変数y、…、yの値が一定下では、温度Tのボルツマン分布における変数xの存在確率p(x)は式12を満たす。
Figure 0007425210000012
ただし、変数Aiは式13で求める値である。
Figure 0007425210000013
変数xとyは|x|+|y|≦2であるため、xの動ける範囲は-(2-|y|)以上(2-|y|)以下である。よって、変数xは平均Ai/wi、分散T/wiの正規分布で-(2-|y|)以上(2-|y|)以下を定義域とする切断正規分布を基に、xの次状態をサンプリングすれば良い。この方法ではxの現在の状態には依らずに次状態を決めるということである。yについても同様である。本明細書では、xとyの変数を区別しない場合sと表記することがある。
標準正規分布に従う乱数はBox-Muller法で生成可能である。ここでは定義域が限定されるため、非特許文献2で示されたアルゴリズムを用いればよい。
最適解探索は、温度0における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、MCMCでは様々な技術が提案されており、これらを活用も可能である。たとえば、非特許文献3は過剰緩和法を提案している。これは次状態の候補として、温度Tのボルツマン分布から1つだけではなく、K個の状態をサンプリングする。そして計(K+1)個の状態を並び替えてx ≦…≦x r=x≦x と表す。つまり、現在の状態は(K+1)個の値のうち、小さい方から(r+1)番目ということである。そしてx K+1-rを次状態に採用する。この方法では、次状態がxの現在の状態に依存する。
以上を踏まえて、図4~図6で本発明を実現する情報処理装置の構成を示す。
図4は、混合二値二次計画問題の最適解を探索する情報処理装置の一例である。同図に示すように、この情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、一つ以上の演算装置20、及びこれらの装置を通信可能に接続するシステムバス5を備える。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
プロセッサ11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されている。主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等)、RAM(Random Access Memory)(DRAM(Dynamic Random Access Memory)等)等である。補助記憶装置13は、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)等である。補助記憶装置13に格納されているプログラムやデータは、随時、主記憶装置12に読み込まれる。
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
演算装置20は、混合二値二次計画問題の最適解探索に関する処理を実行する装置である。演算装置20は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置20は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等のハードウェアによって構成される。演算装置20は、制御装置、記憶装置、システムバス5に接続するためのインタフェース等を含み、システムバス5を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置20は、例えば、通信線を介して他の演算装置20と通信可能に接続され、他の演算装置20と協調して動作するものであってもよい。演算装置20により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。
図4に示される演算装置20は、後に図5で説明される。演算装置20は、一つもしくは複数を実装することができる。
図5は、演算装置20の動作原理を説明する図であり、演算装置20を構成する回路(以下、演算回路500と称する。)のブロック図である。演算回路500は変数配列x、…、xまたは変数配列y、…、yを温度Tにおけるボルツマン分布(式12)からサンプリングする機能を実現する。以下、同図とともに演算装置20の動作原理について説明する。
同図に示すように、演算回路500は、変数メモリ511、非線形係数メモリ512、線形係数メモリ513、差分計算ブロック514、サンプリングブロック515、及び次状態決定ブロック516を含む。
各演算回路500の変数メモリ511には、前述した変数x、…、xN及びy1、…、yを示す情報が格納される(図2参照)。
非線形係数メモリ512には、行列Jを表す情報が格納される。行列Jは一般に対称行列であり、この対称性を用いて非線形係数メモリ512の使用量を削減することができる。線形係数メモリ513には、ベクトルhを表す情報が格納される。
同図に示すように、演算回路500には、制御信号EN、重み信号SW、及び温度信号TEが入力される。
信号ENは、H(high)とL(low)の値を周期的に繰り返す信号で、変数配列xとyいずれを更新しているかを表す。たとえば、ENがHのときは変数配列xを更新、Lのときはyを更新と定める。この信号ENにより、変数x、…、xを同時に更新し、また変数y、…、yを同時に更新する。図5では簡略化のため信号ENはサンプリングブロック515のみに入力しているが、変数メモリなど本信号を必要とする他の箇所に対しても同様に印加する。
信号SWは、対角行列Wの対角成分を表すN要素のベクトルを表す信号である。
差分計算ブロック514には、非線形係数メモリ512に格納されている行列Jの値、線形係数メモリ513に格納されているベクトルh、信号SW、および変数メモリ511に格納されている変数s(xまたはy)が入力される。差分計算ブロック514は、信号ENがHのとき(J+diag(w、・・・、w))y+h、ENがLのとき(J+diag(w、・・・、w))x+hを出力する。この出力値は前述のAに相当する。
サンプリングブロック515は、差分計算ブロック514の出力と信号SW、温度パラメータの値を保持する信号TW、信号EN、および他の変数の値を受けとる。そしてi番目の要素として、信号ENがHのとき-(2-|y|)以上(2-|y|)以下、ENがLのとき-(2-|x|)以上(2-|x|)以下を定義域とする、式12で表される切断正規分布からランダムにサンプリングして出力する。
次状態決定ブロック516は、サンプリングブロック515から出力される一つないしは複数の値を基に、変数の次状態を決定する。もし、MCMCの更新則として単なる熱浴法に定めたならば、次状態決定ブロック516はサンプリングブロック515の出力値を1つだけ受け取り、それをそのまま変数メモリ511に書き込めばよい。また、MCMCの更新則として公知の過剰緩和法を用いるならば、次状態決定ブロック516はサンプリングブロック515から複数の値、そして変数メモリ511から更新対象の変数の現在値を受け取り、過剰緩和法に従って1つ選択して、変数メモリ511に書き込む。周知のように、過剰緩和法では,直前の状態との相関が負となるように次の状態を決める。
図6に情報処理装置10が備える主な機能(ソフトウェア構成)を示している。同図に示すように、情報処理装置10は、記憶部600、モデル変換部611、モデル係数設定部612、重み設定部613、変数値初期化部614、温度設定部615、相互作用演算実行部616、及び変数値読出部617、前処理部618を備える。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置20が備えるハードウェアにより実現される。尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
上記機能のうち記憶部600は、問題データ601、二次計画形式問題データ602、定義域データ603、及び演算装置制御プログラム604、中間入力データ619、候補リスト620を、主記憶装置12又は補助記憶装置13に記憶する。
問題データ601は、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。本実施例では、問題データ601は前処理部618にて、後述の候補リスト620から作成される。例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して入力した分析入力データは、前処理部618によって候補の組み合わせからなる中間入力データ619に変換される。分析入力データは、例えば人事データや受注データ等の分析対象としたいデータである。人事データは例えば、担当者ID、勤務地、資格、職域などのデータである。受注データは例えば、製品・サービス内容、場所、納期など受注に関するデータである。これらは一例であって、最適化問題の材料として扱えるデータであれば、これに限る必要はない。
中間入力データ619は、分析入力データから生成される。上記の例では、例えばどの担当者がどの受注を担当するかを表現する候補の配列の組み合わせを含む。
公知のように列生成法では、解を限定された部分解の重ね合わせで表現した定式で構成する。前処理部618はさらに、中間入力データ619から制約条件を満たさない所定の候補を除去して候補リスト620を生成する。このような前処理により、複雑な制約を相互作用モデルで表現する必要がなくなる。前処理部618は候補リスト620から、問題データ601を生成する。
二次計画形式問題データ602は、モデル変換部611が、問題データ601を式4が示す二次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ603に書き込まれる。定義域データは、例えば各変数が2値を取るか実数値を取るかを示している。演算装置制御プログラム604は、相互作用演算実行部616が演算装置20を制御する際に実行する、もしくは相互作用演算実行部616が個々の演算装置20にロードして演算装置20に実行させるプログラムである。
以上のように、モデル変換部611は、問題データ601を二次計画問題のフォーマットである二次計画形式問題データ602に変換する。このために、式1から式11を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部611に実装しておけばよい。モデル変換部611の機能は必ずしも情報処理装置10に実装されていなくてもよく、情報処理装置10が、他の情報処理装置等で生成された二次計画形式問題データ602を入力装置14や通信装置16を介して取り込むようにしてもよい。
モデル係数設定部612は、二次計画形式問題データ602に基づく、式11の行列Jを非線形係数メモリ512に、ベクトルhを線形係数メモリ513に設定する。
変数値初期化部614は、演算装置20の変数メモリ511に格納されている各変数の値を初期化する。変数値初期化部614は、例えば、各変数の値を-1以上+1以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約である|x|+|y|≦2を満たすよう注意しなければならない。また、このときの各変数の値は連続値で扱われていることに留意されたい。
温度設定部615は、相互作用演算実行部616が最適解探索を行う際に用いる温度Tを設定する。
相互作用演算実行部616は、温度設定部615により設定された温度Tごとに、式11で表す関数Gを最小化する変数配列xおよびyを探索する演算(以下、相互作用演算と称する。)を演算装置20に実行させる。相互作用演算に際し、相互作用演算実行部616は、例えば、温度Tを高いほうから低いほうに向けて変化させる。
変数値読出部617は、相互作用演算実行部616による最適解探索が終了すると、変数メモリ511に格納されている変数配列xおよびyを読み出す。ここで読み出される値は、式11の解である。上述の議論に従って、N次元ベクトルs=(x+y)/2を計算する。そして定義域データ603を読み出し、式6で得られるベクトルsを最終的な解として出力装置15や通信装置16に出力する。つまり、定義域データ603にてi番目の定義域が{-1、+1}と判明すればsgn(s )、i番目の定義域が[-1、+1]ならばs自体を出力するということである。このようにして、定義された値域に応じた解が求められる。
図7は、最適解探索に際し情報処理装置10が行う処理(以下、最適解探索処理S700と称する。)を説明するフローチャートである。以下、同図とともに最適解探索処理S700について説明する。尚、以下において、符号の前に付している「S」の文字は処理ステップの意味である。最適解探索処理S700は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
図7に示すように、最初に前処理部618が分析入力データから中間入力データ619を生成し、中間入力データ619から候補リスト620を生成し、候補リスト620から問題データ601を生成する(S710)。
次にモデル変換部611が、問題データ601を二次計画形式問題データ602に変換する(S711)。二次計画形式問題データは、たとえば式1で表現される関数Hにおける行列J、ベクトルhを任意の形式で表現する。記憶部600が既に二次計画形式問題データ602を記憶している場合は当該処理S711を省略する。S711の処理と、S712以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またS711の処理と、S712以降の処理とを異なるタイミングで実行するようにしてもよい(例えば、S711の処理を事前に行っておくことが考えられる。)。
続いて、モデル係数設定部612が、非線形係数メモリ512および線形係数メモリ513に行列Jとベクトルhの値を設定する(S712)。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される。)を介してユーザが設定又は編集することもできる。
続いて、重み設定部613が信号SWの値を決定する。前述の式8の説明通り、最適解を探索する上で信号SWは任意の値を取ることが許される。そのため、信号値は常に0としても良い。この場合は計算の負荷を軽減することができる。また、特許文献2の式3~式5に示すように行列Jの固有値から決定しても良い。あるいは、行列Jの行和から決定しても良い。信号SWの値算出の計算は、演算装置20内またはプロセッサ11で実行してもよい。あるいはユーザが自分で設定してもよい(S713)。
続いて、変数値初期化部614が、変数メモリ511に格納されている各変数の値を初期化する(S714)。変数メモリ511に格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式11を表現するパラメータが設定されたことになる。
続いて、温度設定部615が、最適解探索にて使用する温度パラメータの系列T(k=1,2,3、・・・)を設定する(S715)。尚、上記の添字kは設定される温度Tの種類を表す。温度Tの設定方法については、たとえば特許文献1の方法を採用可能である。
続いて、相互作用演算実行部616が、図5に示す演算回路500の演算により、変数配列の確率的な同時更新を実行する(S716)。
続いて、相互作用演算実行部616は、停止条件が成立したか否か(例えば、温度Tが予め設定された最低温度に達したか否か)を判定する(S717)。停止条件が成立したと相互作用演算実行部616が判定した場合(S717:YES)、処理はS718に進む。一方、停止条件が成立しないと相互作用演算実行部616が判定した場合(S717:NO)、処理はS716に戻る。
S718では、変数値読出部617が、変数メモリ511に格納されている変数の値と定義域データ603に格納されている二次計画形式問題データ602の各変数の定義域を読みだす。そして、式6に基づいた変換を通じたベクトルを算出して、式2もしくは式4の解として出力する。以上で最適解探索処理S700は終了する。
以上、詳細に説明したように、本実施形態の情報処理装置10によれば、混合二値二次計画問題の最適解探索を効率よく行うことができる。そのため、最適化問題を効率よく解くことができる。尚、情報処理装置10(演算装置20を含む)は、シンプルな構成であるので安価かつ容易に製造することができる。
演算回路500は、既に述べた最適化問題を解く計算を実行する機能を備える限り、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式でもよい。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式(光パラメトリック発振)、量子ニューラルネットワークなどが知られている。また、一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御NOTゲートといったゲートで置き換えた量子ゲート方式も、本実施例の構成として採用することができる。
演算回路500の具体的な実装例として、特許文献1で説明されているCMOS(Complementary Metal-Oxide Semiconductor)集積回路や、FPGA(Field Programmable Gate Array)上の論理回路として実装する例を説明する。
特許文献1の技術では、SRAM(Static Random Access Memory)の技術を適用したユニットをアレイ状に配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置する。
図8は、SRAMの技術を本実施例の演算回路500に適用した場合の回路構成例を示すブロック図である。複数のユニット801がアレイユニット802を構成している。このような構成は半導体製造技術を応用して製造可能である。
一つのユニット801には、一つの変数x、…、xN及びy1、…、yのいずれかを記憶する多値メモリ901と、多値メモリ901の値を更新するための構成が含まれる。すなわち、ユニット801は2N個準備される。
図8の構成例を、一般化されている図5の構成も参照しつつ説明する。非線形係数メモリ512と線形係数メモリ513に格納されるデータは、モデル係数設定部612から設定される。非線形係数メモリ512には、N×N行列Jが格納されるが、これは全てのユニット801で共通に用いられる。また、線形係数メモリ513にはN次元ベクトルhが格納されるが、これは全てのユニット801で共通に用いられる。回路規模を縮小するために、これらのメモリは各ユニット801共通のものとした。よって、非線形係数メモリ512と線形係数メモリ513は、全てのユニット801に係数Jとhを供給するが、図8ではそのための信号線は省略している。なお、原理的には非線形係数メモリ512と線形係数メモリ513を、各ユニット801が個々に備えてもよい。
重みメモリ803には対角行列Wの対角成分を表すN要素のベクトル(w、…、w)が格納される。このデータは重み設定部613で設定されたものである。x、yを記憶するi番目のユニットは、i番目の成分wを使用するので、ユニット801毎に信号SWの値を切り替える必要がある。図8ではユニット801に信号SWを供給する信号線は省略している。
温度設定部615から供給される温度信号TEは、全てのユニット801に供給される。温度信号の機能や構成は、従来技術を踏襲するものである。ユニット801に信号TEを供給する信号線は省略している。
相互作用ドライバ804は、変数xの更新を許可する信号と、変数yの更新を許可する信号を交互に各ユニット801に入力する。これにより、変数x~xが同時に更新され、変数y~yが同時に更新される。
SRAMインタフェース805は、SRAMの回路構成を応用して作成されたユニット801の変数を格納するメモリに対して書き込みおよび読み出しを行う。演算回路500での処理終了後に読み出された変数は、変数値読出部617に送られる。変数値読出部617は、定義域データ603に基づいて、読み出した変数を連続値あるいは2値として出力することにより、混合二値二次計画問題の解を得る。
コントローラ806は、相互作用演算実行部616の指示により、演算回路500の初期化や処理の終了報告を行う。
図9は、一つのユニット801の回路構成例を示す図である。一つのユニットには、連続変数x、…、xN及びy1、…、yのいずれか一つを記憶する多値メモリ901が含まれる。
差分計算回路902は、差分計算ブロック514の機能を実現する。差分計算回路902には、多値メモリ901の記憶する変数がx、…、xのいずれかの場合には、(y、…、y)のベクトルが入力される。また多値メモリ901の記憶する変数がy、…、yのいずれかの場合には、(x、…、x)のベクトルが入力される。これらの変数ベクトルは、他のユニット801の多値メモリ901からSRAMインタフェース805が読み出して生成する。また、係数であるN×N行列JとN次元ベクトルhが入力される。また、重みwが入力される。差分計算回路902は、これらの入力に対して(J+diag(w、・・・、w))s+h(sはxまたはyの変数ベクトル)のi行目の値Aを出力することになる。
サンプリング回路903は、サンプリングブロック515の機能を実現する。サンプリング回路903には、出力A、信号EN、信号SW、信号TE、および、多値メモリ901の記憶する変数がxの場合はyが、多値メモリ901の記憶する変数がyの場合はxが入力される。そして、式12に基いて変数sの存在確率p(s)から変数の次状態の候補をサンプリングする。
状態決定回路904は、サンプリング回路903から出力される一つないしは複数の候補に基づいて、変数の次状態を決定する。状態決定回路904では、たとえば、過剰緩和法に従う場合には、サンプリング回路903から複数の候補を得ると、多値メモリ901の直前の状態との相関が負となる候補を選択して次状態を決定する。決定された次状態は多値メモリ901に格納される。
以上では、差分計算ブロック514、サンプリングブロック515、次状態決定ブロック516は、FPGA等のハードウェアを想定したが、例えばユニット内に配置したGPUによりソフトウェア実装が可能である。このようにアレイ状のユニット801を備えることにより、並列的な変数の更新が可能となる。
図10は、図7のフローにおける前処理S710の意味を概念的に説明する図である。最適化問題では、制約条件が複雑化してくる場合、相互作用モデルで全制約を表現することが困難になってくる。そこで、解きたい問題の解候補を事前に汎用計算機で生成し、解候補の集合から条件を満たす集合分割・集合被覆問題に分割する。集合分割・集合被覆問題はイジングモデルを始めとする相互作用モデルで表される目的関数の最小化問題(もしくは最大化問題)と等価であり、量子アニーリングやCMOSアニーリングをなど相互作用モデルに対するアニーリング技術で解くことが可能である。これにより、アニーリング技術で解ける問題の種類を増やすことが可能となる。
本実施例では、どの担当者がどの案件を処理するかの業務計画を最適化する例で説明する。図10において、分析入力データ1001は、候補となる担当者のID、資格、所在地などの人事情報、案件の内容、場所、制限時間、対応に必要なスキルなどの受注情報を含む。また、最適かどうかを判定するための評価パラメータ等を含む。
情報処理装置10の前処理部618は、前処理S710において、中間入力データ成形S7101により、入力された分析入力データ1001から、例えば表形式の中間入力データ619を生成して保存する。
前処理部618による前処理S710において、候補リスト生成S7102により、中間入力データ619から候補リスト620が生成される。
図11は、候補リスト620の一例であり、列生成法と呼ばれる最適化アルゴリズムを説明する表図である。このアルゴリズムの目的は、複数の候補から何個かを選ぶことである。ここで候補となっているのは所定の配列であり、配列の集合から所定の条件により最適な組み合わせを選択する。
図11の例では、各候補が「一人の担当者の担当案件」を表している。候補1は「担当者1が案件1のみを担当」、候補3は「担当者2が案件3を担当」などである。与えられた集合の各要素(例えば案件)を1つずつ含む部分集合の組み合わせの中で、コストの総和が最小となる組み合わせを求める問題を、集合分割問題という。
変数xはその候補を選ぶかどうかを表す変数である。たとえばx=1ならば候補1を採用するということになる。x=0ならば候補1を採用しないということになる。スキルの有無aは、その候補の担当者がスキルあるいは資格を有しているかどうかを示すパラメータである。たとえばa=1ならばスキルあり、a=0ならばスキルなしのように表現される。候補の評価値ciはその候補の評価であり、定め方は任意である。
前処理部618は、一般的なプログラムにより分析入力データ1001のデータを組み合わせて、図11のような候補の集合を自動的にあるいはオペレータの編集によって作成し、中間入力データ619とすることができる。自動的なプログラムのアルゴリズムは機械的なデータの組み合わせ生成である。ただし、列生成法では選択した候補を組み合わせて、問題全体の答えとするため、全体の答えのパーツとなる候補1~nがそもそも実行可能でなければならない。
例えば、中間入力データ819は、各担当者が1000個の案件から1~1000個の案件を担当するあらゆる組み合わせを候補として持つとする。しかし、中間入力データ619のなかに、「担当者が案件1と案件100を担当」があった場合、もしそれぞれの案件が以下の通りならば、一人の担当者が両案件を担当することは不可能である。
案件1:6/25(木) 10-12時に東京で作業
案件100:6/25(木) 10-12時に大阪で作業
そこで、実行可能な候補案を生成するため、候補リスト生成S7102では、中間入力データ619に蓄えられた問題設定に基づいて、不適切な候補を除外して候補リスト620を生成する。すなわち、前処理S710では、最適化計算ではなく、一般的な情報処理装置による条件検索により、中間入力データ619に含まれる候補の選別を行う。かくして、前処理S710は候補リスト620の候補群を生成する。そして、候補リスト620から最適化計算の問題データ601を生成する。
上記は「案件1を担当する者は案件100を担当できない」という単純な例であるが、例えば、「案件1と案件2を担当する者は、案件40と案件41と案件43を担当できない」など、さらに複雑な制約は多々考えられる。このような条件による候補の選別は、汎用計算機の通常のソフトウェアで処理する方が単純であり、逆に相互作用モデル等を用いた最適化計算の中の制約として扱うことは煩雑である。
また、たとえば、「案件2の巡回にはスキルが必要」という制約条件については、担当者のスキルの有無を示す変数aと、案件2に要求されるスキルの有無を示す変数を比較すれば、スキルを持たない担当者には、案件2を含む候補を作らないことで、直ちに候補を選別することができる。
本実施例では、前処理S710は、前処理S710の問題生成S7103で、候補リスト620から問題データ601を生成した後、混合二値二次計画問題に対応可能とするため、データ変換S711で問題データ601をさらに二次計画形式問題データ602に変換して最適化問題の生成を完了する。
問題データ601で与えられる制約条件は任意に設定できる。たとえば、一人の担当者は候補を択一的に実行するものとし、複数の候補を割り当てることは不可能であるとする。この条件を満たすためには、例えば担当者1に関しては、候補1か候補2のうちの一つのみを選択するようにしなければならない。選択の場合x=1なので、このために与えられる制約は、
+x=1
なる等式制約で表現される。
また例えば作業員2に関しては、候補3~候補5のうちの一つのみを選択するようにしなければならない。このために与えられる等式制約は、
+x+x=1
である。
このような作業員2に関する等式制約の制約項Pをペナルティー法で表現すると、
Figure 0007425210000014
になる。
また、各作業員が場合により担当を行わなくてもよいとすれば、たとえば、図11で「作業員1は選べる候補が最大一つ」という条件になる。この場合、以下のパターンが考えられる。
・候補1, 2いずれか1つが選ばれる
・候補1, 2いずれも選ばれない
これを数式で表現すると
+x≦1
になる。
このような不等式制約の制約Pをペナルティー法で表現するため、0から1の間を動く連続変数zを導入してペナルティー項を作成する。
たとえば、x+x≦1の制約を表現する際のペナルティー項は、式15のようになる。
Figure 0007425210000015
上記の説明では「0から1の間を動く連続変数z」と述べた。x+x≦1の場合は「0または1の2値変数z」としても成り立つ。しかし、候補数が増えた場合には連続変数を使用する必要がある。
たとえば、候補1から候補100のうちから最大20候補選べる場合、選択される候補数を最適化するため、
+x+x+…x100≦20
を表現しなければならない。この場合には、単一の2値変数zだけでは、この不等式を表現するペナルティー関数Pが作れない。そのため、連続変数zを導入することにより、
=(x+x+x+…x100-20z)
というように、単一の補助変数のみで表現することが可能になる。特許文献3には、取得された候補情報に基づいて、計算対象の集合分割問題を示すイジングモデルにおけるハミルトニアンを生成することが記載されるが、連続変数を利用しないため、単一の補助変数のみで表現することができない。
以上のように、xは“1”または“0”の二値変数、変数zは0以上1以下の実数を範囲にとる補助変数とする。ペナルティー関数Pを組み合わせて、式16の目的関数Hを得る。これが最小化すべき関数となる。本実施例では混合二値二次最適化問題を扱うことが可能である。そのため、補助変数zとして選択できる値の自由度が大きい。また、xとして実数値を選択することもでき、適用範囲が広い。なお、上記で場合により“1”は“+1”に、“0”は“-1”に置き換えることが可能である。
Figure 0007425210000016
なお、図11において定数cは各候補の評価値を表し、この例ではcが大きいほど候補の評価が高い。cはユーザが任意に設定してよいし、自動的に設定してもよい。例えば担当案件の個数が多い候補ほど評価値を高くするなどである。
図10に戻ると、二次計画形式問題データ602は、既に述べたように最適化演算に適した演算装置20によってアニーリング計算が行われ、結果データ1002が読み出される。
後処理S1003は、アニーリングで得た答えを列生成の答えとして妥当なものに変換する。例えば、候補3~5のうち1つだけ選択するのが適切なため、式14のペナルティー関数を加えたものの、アニーリングで得られた解は確率的に得られるためこの制約を破っている可能性がある。このときに、強制的にx+x+x=1となるよう解を調整する。これにより、解候補1004を得る。
解の評価・選定処理S1005では、列生成で得た解候補を評価する。もし得られた全体の解候補が期待にそぐわない場合、アニーリングで得られた答えの品質が良くない、候補毎の定めた評価値cの設定が不適切などの理由が考えられる。そこで、そもそも解の品質は基準に達しているのか、もし達していないならばペナルティー係数の大きさや候補毎の評価値を調整して再計算するなどを判定することをこの処理の中に含める。最終的に得られた解候補1004から、答え1006を得る。
問題の制約条件を前処理S710で処理するか、最適化問題の中で処理するかは、特に限定されない。例えば、混合二値二次計画問題内で扱うのが煩雑な部分は、S710で処理するなど、ケースバイケースで考えてよい。
以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
情報処理装置、演算装置、情報処理方法等に利用することが可能である。
10 情報処理装置、11 プロセッサ、12 主記憶装置、20 演算装置、511 変数メモリ、512 非線形係数メモリ、513 線形係数メモリ、514 差分計算ブロック、515 サンプリングブロック、516 次状態決定ブロック、600 記憶部、601 問題データ、602 二次計画形式問題データ、603 定義域データ、604 演算装置制御プログラム、611 モデル変換部、612 モデル係数設定部、613 重み設定部、614 変数値初期化部、615 温度設定部、616 相互作用演算実行部、617 変数値読出部

Claims (12)

  1. 演算装置と、前記演算装置を制御する計算機を備える情報処理システムであって、
    前記計算機は、
    複数の制約を含む最適化問題の解候補を生成し、前記解候補から前記制約の少なくとも一部を満たす解候補を抽出し、抽出された解候補に基づいて混合整数二次計画問題を生成する前処理部と、
    前記混合整数二次計画問題に基づくデータを前記演算装置に入力して、演算を実行させる相互作用演算実行部と、
    を備え
    前記演算装置は、
    前記混合整数二次計画問題の変数を更新する演算を行い、目的関数を最大または最小とする前記変数を解として出力するものであり、
    前記前処理部は、
    配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから混合整数二次計画問題を生成し、
    前記演算装置は、
    前記混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、
    前記変数の状態を示す値の次状態を計算する状態遷移計算ブロックと、
    前記状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、
    前記状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、
    前記状態遷移計算ブロックの重み信号を受信する重み入力線と、
    前記状態遷移計算ブロックの温度信号を受信する温度入力線と、を備え、
    前記状態遷移計算ブロックは、
    前記重み信号と前記非線形係数と前記線形係数を用いて差分計算を計算する差分計算ブロックと、
    前記重み信号と前記温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、
    前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態決定ブロックと、を備える、
    情報処理システム。
  2. 前記変数メモリは、前記変数の状態を示す値x、…、xおよびy、…、yとして連続値を記憶する、
    請求項記載の情報処理システム。
  3. 前記混合整数二次計画問題の変数の定義域を記憶する記憶部と、
    前記変数メモリから値を読み出し、前記変数の定義域に基づいて、前記変数メモリに格納されている連続値を2値に変換する変数値読出部と、を備える、
    請求項記載の情報処理システム。
  4. 前記非線形係数Jは、N×N行列であり、
    前記線形係数hは、N次元ベクトルであり、
    前記重み信号SWは、対角行列Wの対角成分w、…、wを表すN要素のベクトルを表す信号である、
    請求項記載の情報処理システム。
  5. 前記差分計算ブロックには、前記非線形係数J、前記線形係数h、前記重み信号SW、および前記変数メモリに記憶されている値が入力され、(J+diag(w、・・・、w))s+hを出力し、
    ただし、sはN次元ベクトル(x、…、x)および(y、…、y)のいずれかである、
    請求項記載の情報処理システム。
  6. 前記非線形係数Jは対称行列である、
    請求項記載の情報処理システム。
  7. 前記非線形係数Jのi行i列目の要素は0である、
    請求項記載の情報処理システム。
  8. 前記サンプリングブロックには、前記差分計算ブロックの出力A、前記重み信号SW、前記温度信号TE、制御信号EN、および、前記変数メモリに記憶されている値が入力され、
    前記制御信号ENが第1の値のとき-(2-|y|)以上(2-|y|)以下、前記制御信号ENが第2の値のとき-(2-|x|)以上(2-|x|)以下を定義域とする正規分布からランダムに1または複数の値をサンプリングして出力し、
    前記正規分布は、前記出力A、前記重み信号SW、および前記温度信号TEに基づいて形成される、
    請求項記載の情報処理システム。
  9. 前記正規分布は、平均A i /wi、分散T/wiの正規分布であり、
    ただし、A i は前記出力Aのi番目の値、Tは前記温度信号TEの値である、
    請求項記載の情報処理システム。
  10. 前記変数の状態を示す値x、…、xおよびy、…、yの一つを記憶する多値メモリを備えるユニットを複数備え、
    前記ユニットのそれぞれは、前記差分計算ブロックの一部の機能を実行する差分計算回路と、前記サンプリングブロックの一部の機能を実行するサンプリング回路と、前記次状態決定ブロックの一部の機能を実行する次状態決定回路を備え、
    前記変数の状態を示す値xまたはyの一つを記憶する多値メモリを備えるユニットにおいては、
    前記差分計算回路は、前記非線形係数J、前記線形係数h、対角行列Wのi番目の対角成分w、および自ユニットの多値メモリが記憶する値がxのときはN次元ベクトル(y、…、y)を、自ユニットの多値メモリが記憶する値がyのときはN次元ベクトル(x、…、x)を入力とし、
    =h+w+Σij
    (ただし、hは線形係数hのi番目の要素、sは自ユニットの多値メモリが記憶する値がxのときはy、自ユニットの多値メモリが記憶する値がyのときはxを示す)
    を出力とする、
    請求項記載の情報処理システム。
  11. 前記サンプリング回路は、前記差分計算回路の出力A、前記対角成分w、前記温度信号TE、制御信号EN、および、前記変数メモリに記憶されている値が入力され、
    前記制御信号ENが第1の値のとき-(2-|y|)以上(2-|y|)以下、前記制御信号ENが第2の値のとき-(2-|x|)以上(2-|x|)以下を定義域とする平均A i /wi、分散T/wiの正規分布からランダムに1または複数の値をサンプリングして出力する、
    (ただし、Tは前記温度信号TEの値である)
    請求項10記載の情報処理システム。
  12. 演算装置と、前記演算装置を制御する計算機で実行する最適解探索処理方法であって、
    前記計算機の前処理部が、配列の組からなる中間入力データから配列の一部を除外して候補リストを作成し、前記候補リストから二次計画形式問題データを生成する前処理ステップ、
    前記計算機の記憶部に、前記二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを記憶する第1のステップ、
    前記計算機のモデル係数設定部が、前記二次計画形式問題データに基づいて、非線形係数メモリに非線形係数Jを設定し、線形係数メモリに線形係数hの値を設定する第2のステップ、
    前記計算機の重み設定部が重み信号SWの値を決定する第3のステップ、
    前記計算機の変数値初期化部が、変数メモリに格納されている各変数の値を初期化する第4のステップ、
    前記計算機の相互作用演算実行部が、前記非線形係数J、前記線形係数h、前記重み信号SWを用いて、前記演算装置の状態遷移計算ブロックに前記変数の次状態の計算を実行させる第5のステップ、
    前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第6のステップ、
    を実行する最適解探索処理方法。
JP2022544983A 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法 Active JP7425210B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/032299 WO2022044184A1 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法

Publications (2)

Publication Number Publication Date
JPWO2022044184A1 JPWO2022044184A1 (ja) 2022-03-03
JP7425210B2 true JP7425210B2 (ja) 2024-01-30

Family

ID=80352829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022544983A Active JP7425210B2 (ja) 2020-08-27 2020-08-27 情報処理システムおよび最適解探索処理方法

Country Status (3)

Country Link
JP (1) JP7425210B2 (ja)
AU (1) AU2020465147B2 (ja)
WO (1) WO2022044184A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056368A1 (ja) 2015-09-30 2017-04-06 日本電気株式会社 最適化システム、最適化方法および最適化プログラム
JP2017151810A (ja) 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112505A (ja) * 1998-10-06 2000-04-21 Nec Corp 生産計画立案装置及び生産計画立案方法並びにプログラムを記録した機械読み取り可能な記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017056368A1 (ja) 2015-09-30 2017-04-06 日本電気株式会社 最適化システム、最適化方法および最適化プログラム
JP2017151810A (ja) 2016-02-25 2017-08-31 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
OKUYAMA, Takuya et al.,"Binary optimization by momentum annealing",Physical Review E [online],American Physical Society,2019年07月10日,Vol. 100,Iss. 1,p.012111-1~012111-9,[2020年08月19日検索],インターネット<URL:https://journals.aps.org/pre/pdf/10.1103/PhysRevE.100.012111>,DOI: 10.1103/PhysRevE.100.012111
久保幹雄 ほか,"サプライチェーンリスク管理と人道支援ロジスティクス",初版,株式会社近代科学社,2015年09月30日,p.251-254,ISBN 978-4-7649-0491-0
梅谷俊治,"大規模な集合分割問題に対する局所探索法",第92回 人工知能基本問題研究会資料,一般社団法人人工知能学会,2014年01月,p. 21-25,SIG-FPAI-B303-05
鎌田龍太 ほか,"段階的な最適化計算とグラフ分割を用いた鉄道乗務員スケジュールの作成",計測自動制御学会論文集,公益社団法人計測自動制御学会,2019年02月,Vol. 55,No. 2,p. 92-99

Also Published As

Publication number Publication date
AU2020465147B2 (en) 2023-11-09
AU2020465147A1 (en) 2023-03-23
WO2022044184A1 (ja) 2022-03-03
JPWO2022044184A1 (ja) 2022-03-03

Similar Documents

Publication Publication Date Title
JP7186797B2 (ja) 量子計算のための方法及びシステム
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
Köksoy et al. Robust design using Pareto type optimization: a genetic algorithm with arithmetic crossover
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JPWO2019216277A1 (ja) 情報処理装置、演算装置、及び情報処理方法
Tak Type-1 recurrent intuitionistic fuzzy functions for forecasting
Ballinas et al. Hybrid quantum genetic algorithm with adaptive rotation angle for the 0-1 Knapsack problem in the IBM Qiskit simulator
Huang et al. Comparative empirical study on constraint handling in offline data-driven evolutionary optimization
WO2019208564A1 (ja) ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、プログラム
Yang et al. Learning dynamical systems from data: A simple cross-validation perspective, part v: Sparse kernel flows for 132 chaotic dynamical systems
Wauters et al. Development of an adaptive infill criterion for constrained multi-objective asynchronous surrogate-based optimization
JP7425210B2 (ja) 情報処理システムおよび最適解探索処理方法
Chandorkar et al. Fixed-size least squares support vector machines: Scala implementation for large scale classification
JP7470019B2 (ja) 情報処理システム
Nguyen et al. Short-term forecasting electricity load by long short-term memory and reinforcement learning for optimization of hyper-parameters
Paliwal et al. Stock prediction using neural networks and evolution algorithm
JP7357795B2 (ja) 情報処理方法および情報処理システム
JP7444804B2 (ja) 制御方法およびサンプリング装置
JP7398401B2 (ja) 最適化方法、情報処理装置及びそれを用いたシステム
JP2024049148A (ja) 情報処理方法、及び情報処理装置
JP2022158010A (ja) 情報処理システム、情報処理方法、及び情報処理プログラム
US20230267170A1 (en) Information processing system, information processing method, and non-transitory computer-readable recording medium for information processing program
Alia-Martinez et al. A straightforward implementation of a gpu-accelerated ELM in R with NVIDIA graphic cards
WO2021084629A1 (ja) 演算回路、演算装置、情報処理装置およびイジングモデルの基底状態探索方法
JP2023073842A (ja) 最適化方法、情報処理装置、及び、情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240118

R150 Certificate of patent or registration of utility model

Ref document number: 7425210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150