IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

特許7624420情報処理システム、情報処理方法、及び情報処理プログラム
<>
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図1
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図2
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図3
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図4
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図5
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図6
  • 特許-情報処理システム、情報処理方法、及び情報処理プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-22
(45)【発行日】2025-01-30
(54)【発明の名称】情報処理システム、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20250123BHJP
【FI】
G06N99/00 180
【請求項の数】 9
(21)【出願番号】P 2022024260
(22)【出願日】2022-02-18
(65)【公開番号】P2023121046
(43)【公開日】2023-08-30
【審査請求日】2024-03-07
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】奥山 拓哉
【審査官】新井 則和
(56)【参考文献】
【文献】国際公開第2019/216277(WO,A1)
【文献】鈴木 賢,泉 泰一郎,シミュレーテッド分岐マシンでの制約付き組み合わせ最適化問題のパラメーター自動調整,東芝レビュー76巻5号,[online],2021年09月,[検索日 2024.11.07],Retrieved from the Internet: <URL: https://www.global.toshiba/content/dam/toshiba/jp/technology/corporate/review/2021/05/a12.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
制約付き混合2値2次計画問題の最適解探索を行う情報処理システムであって、
記憶部と協働して処理を実行する処理部を有し、
前記処理部は、
前記制約付き混合2値2次計画問題を、前記制約付き混合2値2次計画問題の目的関数と、前記制約付き混合2値2次計画問題の制約式と、該制約式に基づくペナルティ項と、を含んだ第1の変数ベクトル及び第2の変数ベクトルを変数とする拡張ラグランジュ関数に変換する変換処理を実行し、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第1の変数ベクトルの最適解の探索を、制約なし混合2値2次計画問題の所定の最適化アルゴリズムを用いて行う第1探索処理と、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第2の変数ベクトルの最適解の探索を、連続最適化アルゴリズムを用いて行う第2探索処理と、を実行し、
前記第1探索処理で求まった前記第1の変数ベクトルの最適解を用いて行う前記第2探索処理と、前記第2探索処理で求まった前記第2の変数ベクトルの最適解を用いて行う前記第1探索処理とを繰り返し実行する
ことを特徴とする情報処理システム。
【請求項2】
制約付き混合2値2次計画問題の最適解探索を行う情報処理システムであって、
記憶部と協働して処理を実行する処理部を有し、
前記処理部は、
前記制約付き混合2値2次計画問題を、前記制約付き混合2値2次計画問題の目的関数と、前記制約付き混合2値2次計画問題の制約式と、該制約式に基づくペナルティ項と、を含んだ第1の変数ベクトル及び第2の変数ベクトルを変数とする拡張ラグランジュ関数に変換する変換処理を実行し、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第1の変数ベクトルの最適解の探索を、制約なし混合2値2次計画問題の所定の最適化アルゴリズムを用いて行う第1探索処理と、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第2の変数ベクトルの最適解の探索を、前記所定の最適化アルゴリズムとは異なる他のアルゴリズムを用いて行う第2探索処理と、を実行し、
前記第1探索処理で求まった前記第1の変数ベクトルの最適解を用いて行う前記第2探索処理と、前記第2探索処理で求まった前記第2の変数ベクトルの最適解を用いて行う前記第1探索処理とを繰り返し実行し、
前記所定の最適化アルゴリズムは、
前記制約なし混合2値2次計画問題を、第1の状態変数ベクトルと所定行列と第2の状態変数ベクトルとの積を含んだ目的関数で表される2次計画問題に変換する変換処理と、
前記所定行列と前記第1の状態変数ベクトルとを乗算して第1ベクトルを計算し、該第1ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第2の状態変数ベクトルの確率的更新を行い、前記所定行列と前記第2の状態変数ベクトルとを乗算して第2ベクトルを計算し、該第2ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第1の状態変数ベクトルの確率的更新を行う処理を繰り返すことで、前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルの確率的更新を行う状態更新処理と、を含むアルゴリズムであり、
前記他のアルゴリズムは、連続最適化アルゴリズムである
ことを特徴とする情報処理システム。
【請求項3】
請求項1又は2に記載の情報処理システムであって、
前記処理部は、
局所解探索アルゴリズムを用いて、前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解に基づいて前記制約付き混合2値2次計画問題の実行可能解の候補を探索し、
前記第1探索処理及び前記第2探索処理において、前記実行可能解の候補を用いて前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解を新たに探索する
ことを特徴とする情報処理システム。
【請求項4】
請求項3に記載の情報処理システムであって、
前記処理部は、
前記制約式を遵守する範囲で、前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解との距離が最短となる前記第1の変数ベクトルの前記実行可能解の候補及び前記第2の変数ベクトルの前記実行可能解の候補を探索する
ことを特徴とする情報処理システム。
【請求項5】
請求項3に記載の情報処理システムであって、
前記処理部は、
前記制約式を遵守する範囲で、前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解との距離と、前記制約付き混合2値2次計画問題の目的関数と、の加重和が最小となる前記第1の変数ベクトルの前記実行可能解の候補及び前記第2の変数ベクトルの前記実行可能解の候補を探索する
ことを特徴とする情報処理システム。
【請求項6】
請求項3に記載の情報処理システムであって、
前記処理部は、
前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解に基づいて、前記拡張ラグランジュ関数のラグランジュ乗数を更新し、
更新した前記ラグランジュ乗数を適用した前記拡張ラグランジュ関数に対して前記第1探索処理及び前記第2探索処理を実行して前記第1の変数ベクトルの最適解及び前記第2の変数ベクトルの最適解を新たに探索する
ことを特徴とする情報処理システム。
【請求項7】
請求項6に記載の情報処理システムであって、
前記処理部は、
前記第1探索処理及び前記第2探索処理を、前記ラグランジュ乗数及び前記実行可能解の候補を更新しながら所定終了条件が充足されるまで繰り返し実行する
ことを特徴とする情報処理システム。
【請求項8】
制約付き混合2値2次計画問題の最適解探索を行う情報処理システムが実行する情報処理方法であって、
前記情報処理システムが有する処理部が、記憶部と協働して、
前記制約付き混合2値2次計画問題を、前記制約付き混合2値2次計画問題の目的関数と、前記制約付き混合2値2次計画問題の制約式と、該制約式に基づくペナルティ項と、を含んだ第1の変数ベクトル及び第2の変数ベクトルを変数とする拡張ラグランジュ関数に変換する変換処理を実行し、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第1の変数ベクトルの最適解の探索を、制約なし混合2値2次計画問題の所定の最適化アルゴリズムを用いて行う第1探索処理と、
交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第2の変数ベクトルの最適解の探索を、連続最適化アルゴリズムを用いて行う第2探索処理と、を実行し、
前記第1探索処理で求まった前記第1の変数ベクトルの最適解を用いて行う前記第2探索処理と、前記第2探索処理で求まった前記第2の変数ベクトルの最適解を用いて行う前記第1探索処理とを繰り返し実行する
ことを特徴とする情報処理方法。
【請求項9】
請求項1~7の何れか1項に記載の情報処理システムとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、「イジングモデルの1つのスピンを3以上の状態で表現する値を記憶する第1のメモリセルと、1つのスピンに相互作用を及ぼす他のスピンからの相互作用を示す相互作用係数を記憶する第2のメモリセルと、他のスピンの状態を表現する値と前記相互作用係数を定数または変数として持つ関数に基づいて、1つのスピンの次状態を決定する論理回路と、を有する単位ユニットを複数備える半導体装置」が開示されている。
【0003】
また、特許文献2には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-51314号公報
【文献】国際公開第2019/216277号公報
【非特許文献】
【0005】
【文献】Okuyama,T., Sonobe, T., Kawarabayashi, K. I., & Yamaoka, M. (2019). Binaryoptimization by momentum annealing. Physical Review E, 100(1), 012111.
【文献】Botev, Z.I. (2017). The normal law under linear restrictions: simulation and estimationvia 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 orderedoverrelaxation. In Learning in graphical models (pp. 205-228). Springer,Dordrecht.
【文献】C. Hildreth. (1957). A quadratic programming procedure, NavalResearch Logistics Quarterly, vol. 4, no. 1, pp. 79-85.
【文献】Matteo Fischetti, Fred Glover,Andrea Lodi (2005).The feasibility pump. MathematicalProgramming volume 104, pages91-104.
【発明の概要】
【発明が解決しようとする課題】
【0006】
物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。
【0007】
この相互作用モデルに関係づけられた指標を最小化又は最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。実用的に解くことが求められる問題の多くは、制約が課せられる。例えば、上述のポートフォリオ最適化問題では、複数の金融商品に投資して、評価額の減少というリスクを抑えつつ、収益というリターンを最大化することをめざす。この問題では一般的に「投資額の総和が所定の金額である」という制約が存在する。
【0008】
本発明は上述の背景に鑑みてなされたもので、相互作用モデルの基底状態探索を含む制約付き最適化問題の最適解探索を効率よく実行する技術の提供を目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決するため、本発明の一態様では、制約付き混合2値2次計画問題の最適解探索を行う情報処理システムであって、記憶部と協働して処理を実行する処理部を有し、前記処理部は、前記制約付き混合2値2次計画問題を、前記制約付き混合2値2次計画問題の目的関数と、前記制約付き混合2値2次計画問題の制約式と、該制約式に基づくペナルティ項と、を含んだ第1の変数ベクトル及び第2の変数ベクトルを変数とする拡張ラグランジュ関数に変換する変換処理を実行し、交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第1の変数ベクトルの最適解の探索を、制約なし混合2値2次計画問題の所定の最適化アルゴリズムを用いて行う第1探索処理と、交互方向乗数法における前記拡張ラグランジュ関数を最適化する前記第2の変数ベクトルの最適解の探索を、前記所定の最適化アルゴリズムとは異なる他のアルゴリズムを用いて行う第2探索処理と、を実行し、前記第1探索処理で求まった前記第1の変数ベクトルの最適解を用いて行う前記第2探索処理と、前記第2探索処理で求まった前記第2の変数ベクトルの最適解を用いて行う前記第1探索処理とを繰り返し実行することを特徴とする。
【発明の効果】
【0010】
本発明によれば、相互作用モデルの基底状態探索を含む制約付き最適化問題の最適解探索を高速化できる。
上記した以外の課題、構成及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
図1】最適化問題の変数配列及び目的関数値の関係を例示する概念図である。
図2】最適化問題の目的関数の各変数間の関係を例示する図である。
図3】最適化問題の目的関数の各変数間の関係を例示する図である。
図4】実施形態に係る情報処理装置を実現するコンピュータのハードウェアを例示する図である。
図5】実施形態に係る情報処理装置の構成を例示する機能ブロック図である。
図6】実施形態に係る情報処理装置が実行する全体処理を例示するフローチャートである。
図7】実施形態に係る情報処理装置が実行する最適解探索処理を例示するフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でもよい。
【0013】
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0014】
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であればよく、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)、量子コンピュータ等である。
【0015】
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0016】
以下の説明において、例えば「A~」という表記は、「A」の直上に「~」が記載された表記と同等である。
【0017】
(混合2値2次計画問題に対する、並列演算を活用した解法)
ここでは、相互作用モデルとして混合2値2次計画問題を想定する。最適化問題の変数をs,…,sのN個とし、各変数sの定義域Dを2値{-1,+1}又は連続値[-1,+1]のいずれかであるとする。各変数sの定義域Dがどちらであるかは問題毎に決定される。そして、最適化問題の目的関数Hは式1で表される。すなわち、目的関数Hが変数sの2次式で表される。
【0018】
【数1】
【0019】
式1において、s=[s,…,s]のN次元ベクトル、JはN×N対称行列、hはN次元ベクトルである。前述の通り、変数毎に定義域が異なるので、最適化問題は式2の通りに表される。
【0020】
【数2】
【0021】
ここで、添字の集合Λ、Λを式3の通り定義する。
【0022】
【数3】
【0023】
集合Smixed={s|s∈D}を定義する。これらの表記を用いると、式2は式4のように表現できる。
【0024】
【数4】
【0025】
以降、すべてのi∈Λに対して行列Jのi行i列目の要素は0とする。なぜならば、この変換は式2の最適解を変えないためである。
【0026】
もしすべてのiに対してD={-1,+1}ならば、この最適化問題はイジングモデルの基底状態探索問題と呼ばれる組合せ最適化問題である。本実施形態では、イジングモデルの基底状態探索を含む最適化問題において、マルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と称する)を活用したアルゴリズムで最適解もしくは近似解を探索する。
【0027】
図1は、最適化問題の変数配列及び目的関数値の関係を例示する概念図であり、変数配列に対する目的関数値のランドスケープを表す。グラフの横軸は変数配列s、縦軸は目的関数H(s)の値である。MCMCは現在の状態sから、状態sの近傍のある状態s’への確率的な遷移を繰り返す。状態sから状態s’に遷移する確率を、遷移確率P(s,s’)と称する。遷移確率Pの例としてメトロポリス法(Metropolis method)や熱浴法(heat-bath algorithm)が挙げられる。
【0028】
遷移確率は温度と呼ばれるパラメータを有し、これは状態間の遷移のし易さを表す。温度を大きな値から徐々に減少させつつMCMCを実行するとき、目的関数値が最も低い状態(最低エネルギーの状態、図1のX)に漸近的に収束する。これを利用して最小化問題の最適解又は近似解を求める手法が、シミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と称する)や非特許文献1で提案されたモメンタム・アニーリング(以下、MA(Momentum Annealing)と称する)である。
【0029】
式4に示す最小化問題を解くにあたり、代わりに式5の最小化問題を解くことを考える。ただし集合Srelaxed={s|si∈[-1,+1]}である。
【0030】
【数5】
【0031】
式5の最適解をs=[s ,…,s ]と表す。証明は割愛するが、式6で求まるs=[s ,…,s ]は式4の最適解の一つとなる。本実施形態の目標は式2の最適解探索であるが、式5の最適解sを求解後に式6の変換を得ても、所望の解sを得られるということである。ただし、関数sgnは引数が0以上ならば+1、それ以外ならば-1を返す関数である。
【0032】
【数6】
【0033】
ここで、N次元ベクトルv=[v1,…,v]を導入して、式7に示す関数H’を定義する。
【0034】
【数7】
【0035】
ただし、関数V(v)は式8に記す定義の通りである。
【0036】
【数8】
【0037】
行列W=diag(w,…,w)は任意の対角行列で、vは[-1,+1]を動く実数である。式5に示す最小化問題の代わりにH’(s、v)の最小化問題である式9を導入する。
【0038】
【数9】
【0039】
2つのN次元ベクトルx=s+v、y=s-vを定義する。本来解きたい最適化問題の目的関数はHのみだが、ここにVという関数を導入することで、MCMCで並列更新可能な関数を新たに得られるようにしている。すると、関数H’は式10と書き直せる。
【0040】
【数10】
【0041】
つまり、式5の最小化問題は式11の最小化問題と言い換えられる。
【0042】
【数11】
【0043】
式11の最適解をx、yと表すと、s=(x+y)/2となる等式が成り立つ。これらの議論はWが零行列でも成り立つ。
【0044】
以上より、式2で表す最適化問題の最適解は、式11に示す制約付き2次計画問題の解から求められる。この解を求めるために、MCMCを活用する。
【0045】
図2は、最適化問題の目的関数の各変数間の関係を例示する図であり、式11における関数Gの各変数どうしの関係を示したグラフィカルモデルを表す。図2では、N=6の場合を例示しているが、一般的なNについても同様である。関数Gの各変数どうしの関係は、完全2部グラフで表すことができる。関数G内で変数xに乗ぜられる変数は、y,…,yとxのみである。MCMCは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数xの値を更新するときy,…,y及びxを求め、それ以外の変数(ここではx,…,x)を参照しない。これは他の変数、例えばxの値の更新でも同様である。ゆえに、変数配列yの値が一定ならば、配列xのそれぞれの値を独立に同時に確率的更新してもMCMCの理論的要請は破らない。
【0046】
同様に変数yに乗ぜられる変数も、x,…,xとyのみである。ゆえに、変数配列xの値が一定の下で、配列yのそれぞれの値を独立に同時に確率的更新できる。
【0047】
以上より、「x,…,xの同時更新」と「y,…,yの同時更新」を繰り返す手続きで構成されたMCMCを実行することで、並列化による高速化という利点を享受しながら関数Gを最小化する配列x、yを探索できる。
【0048】
本実施形態の議論では、行列Jに制約を設けていないことに注意されたい。たとえば行列Jの全要素が非零である場合にも、上記の議論が成り立つため、並列更新が可能である。
【0049】
図3は、最適化問題の目的関数の各変数間の関係を例示する図であり、全結合グラフの例である。図3では、N=6の場合を例示しているが、一般的なNについても同様である。一方で、原問題である式2の最小化問題に対して直接MCMCを適用する場合、変数配列sの係わり方が図3に示すように全結合グラフで表現されるため、一度に一変数しか確率更新できず、逐次更新に限定される。
【0050】
ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をxとする。変数y,…,yの値が一定下では、温度Tのボルツマン分布における変数xの存在確率p(x)は式12を満たす。
【0051】
【数12】
【0052】
ただし、変数Aは式13で求める値である。
【0053】
【数13】
【0054】
変数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と表記することがある。
【0055】
標準正規分布に従う乱数はBox-Muller法で生成可能である。ここでは定義域が限定されるため、非特許文献2で示されたアルゴリズムを用いればよい。
【0056】
最適解探索は、温度0における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、MCMCでは様々な技術が提案されており、これらを活用も可能である。たとえば、非特許文献3は過剰緩和法を提案している。これは次状態の候補として、温度Tのボルツマン分布から1つだけではなく、K個の状態をサンプリングする。そして、サンプリングしたK個の状態に加えて、現在の状態の計(K+1)個の状態を並び替えてx ≦…≦x r=x≦x と表す。つまり、現在の状態は(K+1)個の値のうち、小さい方から(r+1)番目ということである。そしてx K+1-rを次状態に採用する。この方法では、次状態がxの現在の状態に依存する。
【0057】
(交互方向乗数法を用いた制約付き混合2値2次計画問題の解法)
ここまでは、制約なし混合2値2次計画問題の解法(MCMC)を説明した。以降、本出願が対象とする制約付き混合2値2次計画問題に関する解法を説明する。
【0058】
制約付き混合2値2次計画問題として、以下の式14を考える。
【0059】
【数14】
【0060】
集合X:={{xi=1.・・・,n|x∈D}、集合Dは閉区間である。この定式化は、QUBO(Quadratic Unconstrained Binary Optimization(制約なし2値2次最適化問題))やmixed-binary QP(Quadratic Programming、混合2値2次計画問題)を含む。集合Sに対する指示関数Iを次の通り定義する。
【0061】
【数15】
【0062】
集合Y:={y∈Rn|ξ(y)≦0}は凸集合とする。ξ(y)はyの一次関数となる場合があるため、Yが閉集合と限らない。
【0063】
式15を用いると、式14は次のように表せる。
【0064】
【数16】
【0065】
次の拡張ラグランジュ関数を定義する。
【0066】
【数17】
【0067】
ベクトルv=λ/ρを導入すると、式17は以下の式18の通りに書き直せる。
【0068】
【数18】
【0069】
交互方向乗数法に則り以下の最適化計算を繰り返すと、ρが充分に大きいときx,yが、式19に示すように、ある1つの点に収束することが知られている。
【0070】
【数19】
【0071】
以降、式19の具体的な計算方法を示す。式19の一つ目の式は、式20の通り変形できる。つまり、式1の2次項の係数行列をJ~:=J-ρI、一次項の係数ベクトルをh~:=h+ρ(y-v)とし、yを固定してxを動かす場合の制約なし混合2値2次計画問題に帰着する。ただしIは単位行列である。この最適化問題は前述の通り、上述のMCMCにより効率的に解くことが可能である。
【0072】
【数20】
【0073】
式19の二つ目の式は、ベクトルc=x+vを用いると、式21の通り表せる。ただし、このxは、式19の一つ目の式から直前に求められたxである。すなわち、xを固定してyを動かす場合の制約あり混合2値2次計画問題に帰着する。
【0074】
【数21】
【0075】
式19の三つ目の式は、式19の一つ目及び二つ目の式から直前に求められたx及びyと、更新前のベクトルvを用いてベクトルvを更新する計算式である。
【0076】
関数ξ(y),…,ξ(y)を凸とする。関数ξ(y)=maxi=1,…,mξ(y)は凸である。これらについて、ξ(y)≦0,…,ξ(y)≦0⇔ξ(y)≦0が成り立つ。以降、凸関数で表現される制約を考える。有限の実数uを持つξ(y)=a x-uなる凸関数を考えると、ξ(y)≦0⇔a x≦uである。また、有限の実数lを持つξ(y)=l-a xなる凸関数を考えると、ξ(y)≦0⇔l≦a xである。
【0077】
ゆえに有限の実数l,uを持つξ(y)=(a x-l)(a x-u)なる凸関数において、ξ(y)≦0⇔l≦a x≦uが成り立つ。よって、L≦Ax≦Uなる制約をξ(y)≦0として扱える。この制約は等式制約も含み、多くの実問題に現れる重要な不等式制約である。
【0078】
式21のξ(y)≦0をL≦Ax≦Uに置き換えた次の式22の最適化問題を扱う。
【0079】
【数22】
【0080】
この線形不等式制約付き最小ノルム問題は、非特許文献4で示されたHildreth algorithmで解ける。
【0081】
ここまで、制約なし混合2値2次計画問題を効率的に解くアニーリング法などの最適化手法と、Hildreth algorithmという従来から存在する連続最適化アルゴリズムを交互に実行することで、線形不等式制約付き混合2値2次計画問題を解くための手段を提示した。
【0082】
(勾配情報を用いた、実行可能解への丸め込み)
交互方向乗数法を用いることで、解きたい問題の各構成要素に対して、それぞれ適切な最適化手法を用いて効率的に解き得る。一方で、交互方向乗数法は、特定の条件下のみに実行可能解への収束を保証し、一般の条件下では交互方向乗数法の終了時に必ずしも実行可能解に達しているとは限らない。これでは実用に不適であるため、混合2値2次計画問題において、勾配情報を用いて効率的に実行可能解へ丸め込む手法を提示する。
【0083】
整数計画問題の実行可能解を求めるヒューリスティックとして、フィージビリティ・ポンプ法が知られている(非特許文献5)。ここでは、上記で述べた混合2値2次計画問題に対する実行可能解への丸め込みに、フィージビリティ・ポンプ法を適用する方法を示す。
【0084】
まず、フィージビリティ・ポンプ法の一般的な考え方を紹介する。式23で表す整数計画問題の解候補としてベクトルx~を持つとする。
【0085】
【数23】
【0086】
フィージビリティ・ポンプ法は、ベクトルx~の次に探索する箇所の一つとして、制約を遵守する範囲で最短距離のベクトルを求めるとする。これは式24を解くことで得られ、これは整数制約を含まない線形計画問題であるため、単体法などで簡単に厳密解を求められる。ただしΔ(x~,x)はベクトルx~とxの距離で、一般的にはL1ノルムを用いる。
【0087】
【数24】
【0088】
前述の式24では式23の目的関数が考慮されていない。目的関数値がより小さい実行可能解を求める方法として、式25の線形計画問題の解をベクトルx~の次に探索する箇所とする方式も存在する。定数αは現在位置からの距離に対する目的関数値の改善幅の重要度を決めるパラメータである。
【0089】
【数25】
【0090】
ここまで従来のフィージビリティ・ポンプ法について説明した。この考え方を混合2値2次計画問題(式1)の実行可能解探索に援用すると、c:=-J~x-hと定めた上で、式25の線形計画問題を解けばよい。この勾配ベクトルは単なる行列積であり、GPUなどで高速に算出可能である。このようにして、交互方向乗数法において、式19を用いて(m+1)回目(mは自然数)の最適化処理による最適解xm+1,ym+1を探索する際に用いるm回目の最適化処理による最適解x,yを、実行可能解の候補へと丸め込むことができる。
【0091】
(情報処理装置10のハードウェア構成)
図4は、実施形態に係る情報処理装置10を実現するコンピュータのハードウェアを例示する図である。情報処理装置10は、ハードウェアとして、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、1又は複数の演算装置17、及びこれらの装置を通信可能に接続するシステムバス18を有する。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
【0092】
プロセッサ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は、HDD(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)等である。補助記憶装置13に格納されているプログラムやデータは、随時、主記憶装置12に読み込まれる。
【0093】
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
【0094】
演算装置17は、組合せ最適化問題の最適解探索に関する処理を実行する装置である。演算装置17は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置17は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA)、ASIC等のハードウェアによって構成される。
【0095】
演算装置17は、制御装置、記憶装置、システムバス18に接続するためのインタフェース等を含み、システムバス18を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置17は、例えば、通信線を介して他の演算装置17と通信可能に接続され、他の演算装置17と協調して動作するものであってもよい。演算装置17により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。
【0096】
情報処理装置10において、プログラムが補助記憶装置13から読み出されて、プロセッサ11及び主記憶装置12の協働により実行されることにより、情報処理装置10の機能が実現される。あるいは、情報処理装置10の機能を実現するためのプログラムは、通信装置16を介した通信により外部のコンピュータから取得されてもよい。あるいは、情報処理装置10の機能を実現するためのプログラムは、可搬型の記録媒体(光学ディスク、磁気ディスク、光磁気ディスク、半導体記憶媒体等)に記録され、媒体読取装置により読み出されてもよい。
【0097】
また、情報処理装置10は、複数の装置が協働して処理を実行する情報処理であってもよい。情報処理システムを実現するプログラムは、各プログラムによって各装置に各機能を実現させることで、情報処理装置10と同様の機能を実現する。
【0098】
図5に情報処理装置10が備える主な機能(ソフトウェア構成)を示している。同図に示すように、情報処理装置10は、記憶部500、モデル変換部511、モデル係数設定部512、重み設定部513、変数値初期化部514、温度設定部515、演算制御部516、及び変数値読出部517を備える。また、演算制御部516は、第1最適解探索部516a、第2最適解探索部516b、及び実行可能解候補探索部516cを含む。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置17が備えるハードウェアにより実現される。尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
【0099】
上記機能のうち記憶部500は、問題データ501、2次計画形式問題データ502、定義域データ503、及び演算装置制御プログラム504を、主記憶装置12又は補助記憶装置13に記憶する。問題データ501は、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。問題データ501は、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定する。
【0100】
2次計画形式問題データ502は、モデル変換部511が、問題データ501を式14が示す制約付き混合2値2次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ503に書き込まれる。定義域データは、例えば各変数が2値を取るか実数値を取るかを示している。演算装置制御プログラム504は、演算制御部516が演算装置17を制御する際に実行したり、演算制御部516が個々の演算装置17にロードして演算装置17に実行させたりするプログラムである。
【0101】
モデル変換部511は、問題データ501を制約付き2次計画問題のフォーマットである2次計画形式問題データ502に変換する。このために、式14から式16を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部511に実装しておけばよい。モデル変換部511の機能は必ずしも情報処理装置10に実装されていなくてもよく、情報処理装置10が、他の情報処理装置等で生成された2次計画形式問題データ502を入力装置14や通信装置16を介して取り込むようにしてもよい。
【0102】
モデル係数設定部512は、2次計画形式問題データ502に基づく式1係数行列Jを非線形係数メモリに、係数ベクトルhを線形係数メモリに設定する。重み設定部513は、後述するように、重みの値を決定する。
【0103】
変数値初期化部514は、演算装置17の変数メモリに格納されている各変数の値を初期化する。変数値初期化部514は、例えば、各変数の値を-1以上+1以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約を満たすよう注意しなければならない。制約の一つとして、|x|+|y|≦2が挙げられる。また、他の制約も考えうる。
【0104】
温度設定部515は、演算制御部516が最適解探索を行う際に用いる温度Tを設定する。
【0105】
演算制御部516は、温度設定部515により設定された温度Tごとに、式16で表す目的関数を最小化する変数配列xおよびyを探索する演算(以下、交互方向乗数法による相互作用演算と称する。)を演算装置17に実行させる。交互方向乗数法による相互作用演算に際し、演算制御部516は、例えば、温度Tを高いほうから低いほうに向けて変化させる。
【0106】
演算制御部516は、交互方向乗数法による相互作用演算を実行するためにラグランジュ乗数(ベクトルλまたはベクトルv)を導入し、式17又は式18の拡張ラグランジュ関数を定義する。そして演算制御部516の第1最適解探索部516aは、式19の一つ目の式から式20の最適化問題を導き、この最適化問題を解いて、最適解xを得る。第1最適解探索部516aは、アニーリングを実行する所定の演算装置である。
【0107】
また、演算制御部516の第2最適解探索部516bは、式19の二つ目の式から式21を経て式22の最適化問題を導き、非特許文献4に示されるHildreth algorithm等のアルゴリズムを用いて最適解yを得る。第2最適解探索部516bは、線形ソルバ等を実行する、前述の所定の演算装置とは異なる他種の演算装置である。
【0108】
そして、演算制御部516の実行可能解候補探索部516cは、最適解x及びyを基に、次回で探索する実行可能解な最適解の候補x及びyを、式24又は式25に示すような最適化問題を解くことで得る(実行可能解への丸め込み)。実行可能解候補探索部516cは、局所解探索アルゴリズム等を実行する演算装置である。
【0109】
そして、演算制御部516は、ラグランジュ乗数(ベクトルλまたはベクトルv)を、式19の三つ目の式のように、今回の最適解探索で用いたベクトルvと、実行可能解への丸め込みで得られた実行可能解な最適解の候補x及びyとを基に更新する。そして、演算制御部516は、第1最適解探索部516aによる式20の最適化問題の解の探索、第2最適解探索部516bによる式22の最適化問題の解の探索、探索解の実行可能解への丸め込みを終了条件が充足されるまで実行する。
【0110】
変数値読出部517は、演算制御部516による最適解探索が終了すると、変数メモリに格納されている変数配列xおよびyを読み出す。ここで読み出される値は、式16の解である。上述の議論に従って、N次元ベクトルs=(x+y)/2を計算する。そして定義域データ503を読み出し、式6で得られるベクトルsを最終的な解として出力装置15や通信装置16に出力する。つまり、定義域データ503にてi番目の定義域が{-1、+1}と判明すればsgn(s )、i番目の定義域が[-1、+1]ならばs自体を出力する。このようにして、定義域に応じた解が求められる。
【0111】
(全体処理のフロー)
図6は、最適解探索に際し情報処理装置10が行う処理(以下、全体処理S600と称する。)を説明するフローチャートである。以下、同図とともに全体処理S600について説明する。尚、以下において、符号の前に付している「S」の文字は処理ステップの意味である。全体処理S600は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
【0112】
同図に示すように、まずモデル変換部511が、問題データ501を2次計画形式問題データ502に変換する(S611)。2次計画形式問題データは、たとえば式14で表現される関数Hにおける行列J、ベクトルhを任意の形式で表現する。記憶部500が既に2次計画形式問題データ502を記憶している場合は当該処理S611を省略する。S611の処理と、S612以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またS611の処理と、S612以降の処理とを異なるタイミングで実行するようにしてもよい(例えば、S611の処理を事前に行っておくことが考えられる。)。
【0113】
続いて、モデル係数設定部512が、行列Jとベクトルhの値をメモリに設定する(S612)。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される。)を介してユーザが設定又は編集することもできる。
【0114】
続いて、重み設定部513が重みの値を決定する。前述の式8の説明通り、最適解を探索する上で任意の値を取ることが許される。そのため、値は常に0としても良い。この場合は計算の負荷を軽減することができる。また、特許文献2の式3~式5に示すように行列Jの固有値から決定しても良い。あるいは、行列Jの行和から決定しても良い。この値算出は、演算装置17内またはプロセッサ11で実行してもよい。あるいはユーザが自分で設定してもよい(S613)。
【0115】
続いて、変数値初期化部514が、メモリに格納されている各変数の値を初期化する(S614)。メモリに格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式16を表現するパラメータが設定されたことになる。
【0116】
続いて、温度設定部515が、最適解探索にて使用する温度パラメータの系列T(k=1,2,3、…)を設定する(S615)。尚、上記の添字kは設定される温度Tの種類を表す。温度Tの設定方法については、たとえば特許文献1の方法を採用可能である。
【0117】
続いて、演算制御部516が、最適解探索処理を実行する(S616)。S616の詳細は、図7を参照して後述する。
【0118】
S617では、変数値読出部517が、変数メモリに格納されている変数の値と定義域データ503に格納されている2次計画形式問題データ502の各変数の定義域を読みだす。そして、式6に基づいた変換を通じたベクトルを算出して、式2もしくは式4の解として出力する。以上で全体処理S600は終了する。
【0119】
(最適解探索処理のフロー)
図7では、図6のS616の具体的な計算を詳述する。
【0120】
先ず演算制御部516は、式17又は式18の拡張ラグランジュ関数のラグランジュ乗数(ベクトルλまたはベクトルv)を更新する(S616a)。
【0121】
次に演算制御部516は、式20及び式21で示す最適化問題のデータを生成する(S616b)。そして第1最適解探索部516aは、S616bで生成した式20で示す最適化問題をアニーリング法などの最適化技法で解く(S616c)。
【0122】
次に第2最適解探索部516bは、式21で示す最適化問題を、Hildreth algorithmなどで解く(S616d)。
【0123】
次に実行可能解候補探索部516cは、フィージビリティ・ポンプ法の考え方を援用して、S616c及びS616dで得られた最適解を実行可能な最適解の候補へ丸め込む(S616e)。
【0124】
次に演算制御部516は、終了条件が充足されているかを確認する(S616f)。もし、最適解探索処理S616の反復回数が所定の回数に達する、または既に実行可能解に達しているなど、事前に定めた条件を満たしている場合、演算制御部516は、最適解探索処理S616を終了する。一方、事前に定めた終了条件を充足していない場合、演算制御部516は、S616aへ処理を戻し、直近のS616eの実行で得られた実行可能な最適解の候補を基にラグランジュ乗数(ベクトルλまたはベクトルv)を更新し、S616b~S616eを実行する。
【0125】
以上、詳細に説明したように、本実施形態の情報処理装置10によれば、制約付き混合2値2次計画問題の最適解探索を効率よく行うことができる。そのため、最適化問題を効率よく解くことができる。尚、情報処理装置10(演算装置17を含む)は、シンプルな構成であるので安価かつ容易に製造することができる。
【0126】
(その他の実施形態)
演算回路は、既に述べた最適化問題を解く計算を実行する機能を備える限り、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式でもよい。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式(光パラメトリック発振)、量子ニューラルネットワークなどが知られている。また、一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御NOTゲートといったゲートで置き換えた量子ゲート方式も、本実施形態の構成として採用することができる。
【0127】
演算回路の一つの実装例として、CMOS(Complementary Metal-Oxide Semiconductor)集積回路や、FPGA上の論理回路として実装することができる。例えば、特許文献1に開示されているように、SRAM(Static Random Access Memory)の技術を適用したユニットを多数配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置してもよい。
【0128】
本発明は上述の実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、矛盾しない限りにおいて、ある実施形態の構成の一部を他の実施形態の構成で置き換え、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、構成の追加、削除、置換、統合、又は分散をすることが可能である。また、実施形態で示した構成及び処理は、処理効率又は実装効率に基づいて適宜分散、統合、又は入れ替えることが可能である。
【符号の説明】
【0129】
10:情報処理装置、11:プロセッサ、12:主記憶装置、13:補助記憶装置、17:演算装置。
図1
図2
図3
図4
図5
図6
図7