(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】計算方法、計算装置、及びプログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20241029BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2020207989
(22)【出願日】2020-12-15
【審査請求日】2023-11-30
【新規性喪失の例外の表示】特許法第30条第2項適用 https://ieeexplore.ieee.org/document/9294135 令和2年12月15日
【国等の委託研究の成果に係る記載事項】(出願人による申告)2018年度、国立研究開発法人新エネルギー・産業技術総合開発機構「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/次世代コンピューティング技術の開発/イジングマシン共通ソフトウェア基盤の研究開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】110002675
【氏名又は名称】弁理士法人ドライト国際特許事務所
(72)【発明者】
【氏名】戸川 望
(72)【発明者】
【氏名】多和田 雅師
(72)【発明者】
【氏名】於久 太祐
(72)【発明者】
【氏名】田中 宗
【審査官】新井 則和
(56)【参考文献】
【文献】米国特許出願公開第2019/0026645(US,A1)
【文献】SHIKURI, Yuta,Efficient Conversion of Bayesian Network Learning into QuadraticUnconstrained Binary Optimization,[online], arXiv,2020年06月17日,pp.1-11,[検索日 2024.07.02], インターネット:<URL:https://arxiv.org/pdf/2006.06926v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
複数のスピンと、前記複数のスピン間の相互作用係数と、前記複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するため
に、プロセッサによって実行される計算方法であって、
前記イジングモデルに補助スピンを追加し、
前記複数のスピンのうちの少なくとも1つのスピンと、前記補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、前記複数のスピン間の相互作用係数及び前記複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減する、計算方法。
【請求項2】
前記補助スピンは、前記新たなイジングモデルのエネルギーを最小にするスピンである、請求項1に記載の計算方法。
【請求項3】
前記複数のスピンのうちの2つのスピン間の相互作用係数のビット幅を削減するとき、
前記2つのスピン間の相互作用係数が、第1相互作用係数と第2相互作用係数との和で表されるとすると、
前記2つのスピン間の相互作用係数を、前記2つのスピン間の前記第1相互作用係数と、前記2つのスピン間の前記第2相互作用係数とに分割し、
前記2つのスピンの一方と前記補助スピンとの間に前記第1相互作用係数を設定し、前記2つのスピンの他方と前記補助スピンとの間に前記第1相互作用係数の絶対値を設定することで、前記2つのスピン間の前記第1相互作用係数を拡張する、請求項1又は2に記載の計算方法。
【請求項4】
前記複数のスピンのうちの1つのスピンに作用する外部磁場係数のビット幅を削減するとき、
前記1つのスピンに作用する外部磁場係数が、第1外部磁場係数と第2外部磁場係数との和で表されるとすると、
前記1つのスピンに対して前記第1外部磁場係数を設定し、
前記補助スピンに対して前記第2外部磁場係数を設定し、
前記1つのスピンと前記補助スピンとの間に、前記新たな相互作用係数として、前記第2外部磁場係数の絶対値を設定する、請求項1又は2に記載の計算方法。
【請求項5】
複数のスピンと、前記複数のスピン間の相互作用係数と、前記複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するための計算装置であって、
前記イジングモデルに補助スピンを追加し、
前記複数のスピンのうちの少なくとも1つのスピンと、前記補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、前記複数のスピン間の相互作用係数及び前記複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減するプロセッサを備える計算装置。
【請求項6】
複数のスピンと、前記複数のスピン間の相互作用係数と、前記複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するための計算方法をコンピュータに実行させるためのプログラムであって、
前記イジングモデルに補助スピンを追加し、
前記複数のスピンのうちの少なくとも1つのスピンと、前記補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、前記複数のスピン間の相互作用係数及び前記複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減する処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算方法、計算装置、及びプログラムに関する。
【背景技術】
【0002】
多数の組み合わせの中から最も良い組合せを選ぶ組合せ最適化問題をイジングモデルに変換し、アニーリングマシン又はイジングマシンを用いて求解する技術が知られている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】K. Takehara, D. Oku, Y. Matsuda, S. Tanaka, and N. Togawa, "A multiple coefficients trial method to solve combinatorial optimization problems for simulated-annealing-based ising machines," in Proc. IEEE 9th International Conference on Consumer Electronics (ICCE-Berlin). ieeexplore.ieee.org, Sep. 2019, pp. 64-69.
【発明の概要】
【発明が解決しようとする課題】
【0004】
アニーリングマシン又はイジングマシンに入力するイジングモデルの相互作用係数及び外部磁場係数のビット幅は、多くのハードウェアにおいて制約があるため、任意の値を使用することができない。シフト法を用いて下位ビットを切り捨てることによってビット幅を削減すると、イジングモデルのエネルギーが最小となる基底状態が変異してしまい、所望の解を得ることができないという課題が生じる。
【0005】
本発明は、上記課題に鑑みてなされたものであり、基底状態を変えることなく、イジングモデルのビット幅を削減する計算方法、計算装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る計算方法は、複数のスピンと、複数のスピン間の相互作用係数と、複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するための計算方法であって、イジングモデルに補助スピンを追加し、複数のスピンのうちの少なくとも1つのスピンと、補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、複数のスピン間の相互作用係数及び複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減する。
【0007】
本発明に係る計算装置は、複数のスピンと、複数のスピン間の相互作用係数と、複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するための計算装置であって、イジングモデルに補助スピンを追加し、複数のスピンのうちの少なくとも1つのスピンと、補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、複数のスピン間の相互作用係数及び複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減するプロセッサを備える。
【0008】
本発明に係るプログラムは、複数のスピンと、複数のスピン間の相互作用係数と、複数のスピンのそれぞれに作用する外部磁場係数と、によって表されるイジングモデルのビット幅を削減するための計算方法をコンピュータに実行させるためのプログラムであって、イジングモデルに補助スピンを追加し、複数のスピンのうちの少なくとも1つのスピンと、補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、複数のスピン間の相互作用係数及び複数のスピンのそれぞれに作用する外部磁場係数のうちの少なくとも1つのビット幅を削減する処理をコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、イジングモデルに補助スピンを追加し、イジングモデルのスピンと追加された補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることにより、基底状態を変えることなく、イジングモデルのビット幅を削減することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】イジングモデルにシフト法を適用した例を示す模式図である。
【
図2】本実施形態に係る計算装置のハードウェア構成を示すブロック図である。
【
図3】相互作用係数の拡張方法を説明する模式図である。
【
図4】相互作用係数のビット幅を削減する方法を説明する模式図である。
【
図5】相互作用係数のビット幅を削減する例を示す模式図である。
【
図6】外部磁場係数のビット幅を削減する方法を説明する模式図である。
【
図7】外部磁場係数のビット幅を削減する例を示す模式図である。
【
図8】イジングモデルに本実施形態に係る計算方法を適用した例を示す模式図である。
【
図9】整数分割問題をイジングモデルで表した例を示す模式図である。
【
図10】頂点被覆問題とその最適解の一例を示す模式図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。
本実施形態において、整数は符号ビットを含むものとし、整数の符号を変えても、そのビット幅は変わらないものとする。よって、nビットの整数は[-(2n-1-1)、2n-1-1]の範囲内にある任意の整数を指すものとする。
【0012】
<イジングモデル>
イジングモデルは、無向グラフG=(V、E)上で定義された統計力学モデルである。ここで、Vは頂点の集合、Eはエッジの集合である。イジングモデルは、複数のスピンと、複数のスピン間の相互作用係数と、複数のスピンのそれぞれに作用する外部磁場係数とによって表される。スピンσiは頂点i∈V上で定義され、+1、-1(又は、上向き、下向き)の値をとる。相互作用係数Ji、jはエッジ(i、j)∈E上で定義され、σiとσjとの接続の重みを示している。外部磁場係数hiは頂点i∈V上で定義され、スピンσiに作用する力を表している。
【0013】
イジングモデルのエネルギー関数(ハミルトニアン)は、式(1)で与えられる。
【数1】
【0014】
式(1)では、スピンによらない定数を省略している。本実施形態では、Ji、jとhiが整数であるものとする。
【0015】
イジングモデルは、エネルギーが一番低い状態(基底状態)で安定する。組合せ最適化問題の最適解をイジングモデルの基底状態にマッピングすることができれば、最適解を得られることが期待される。
【0016】
しかしながら、上述のように、アニーリングマシン又はイジングマシンに入力するイジングモデルの相互作用係数及び外部磁場係数のビット幅には、多くのハードウェアにおいて制約がある。よって、アニーリングマシン又はイジングマシンに載せることが可能なビット幅よりも大きなビット幅の相互作用係数及び外部磁場係数が入力されたときには、ビット幅を削減する必要がある。
【0017】
<シフト法>
イジングモデルのビット幅を削減するナイーブな手法としてシフト法がある。
図1に、イジングモデルの例として、4個の頂点と6本のエッジで定義されるイジングモデル10を示す。イジングモデル10において、J
1、2=3、J
1、4=2、J
2、3=J
2、4=J
3、4=J
1、3=1、h
1=3、h
2=-2、h
3=h
4=0である。
図1において、σ
1とσ
2にある矢印は外部磁場の向きを表す。イジングモデル10の基底状態のスピンは、(σ
1、σ
2、σ
3、σ
4)=(+1、+1、+1、+1)となる。
【0018】
符号ビットを含めると、値「2」、「3」及び「-2」のビット幅は3ビットであり、値「1」のビット幅は2ビットである。シフト法では、ビットシフトによってビット数を減らす。イジングモデル10の3ビットの値「2」、「3」及び「-2」を1ビットシフト(右ビットシフト)することによって、それぞれ、2ビットの値「1」、「1」、「-1」が得られる。
【0019】
このように、3ビットのビット幅[-3、+3]で表現されたイジングモデル10に上述のシフト法を適用すると、2ビットのビット幅[-1、+1]で表現されたイジングモデル12(
図1の右側)が求められる。しかしながら、
図1に示すように、イジングモデル12の基底状態のスピンは4通りあり、これら4通りのスピンのうちの1つは、イジングモデル10の基底状態のスピンと一致するものの、両イジングモデルの基底状態は、完全には一致しない。
【0020】
<本実施形態>
そこで、本実施形態では、イジングモデルの基底状態を変えることなくビット幅を削減する手法を提案する。
【0021】
まず、
図2を参照して、本実施形態に係る計算方法を実行する計算装置100のハードウェア構成について説明する。
【0022】
図2に示すように、計算装置100は、プロセッサ102と、メモリ104と、記憶装置106と、入力部108と、ディスプレイ110と、ネットワークインターフェース112とを備え、これらのデバイスはバスを介して接続される。
【0023】
プロセッサ102は、Central Processing Unit(CPU)等を有し、メモリ104及び記憶装置106に格納されたプログラムに従って各種の処理を実行する。プロセッサ102によって実行される計算方法の詳細については後述する。
【0024】
なお、プロセッサ102として、CPU等の汎用コンピュータの代わりに、本実施形態に係る計算方法を実行するためのApplication Specific Integrated Circuits(ASIC)、Field Programmable Gate Array(FPGA)等の専用コンピュータを用いてもよい。
【0025】
メモリ104は、Read Only Memory(ROM)及びRandom Access Memory(RAM)を有する。ROMは、BIOS等のブートプログラムを格納している。プロセッサ102が、ROMに格納されたプログラム又は記憶装置106に格納されたプログラムを読み出す際、これらのプログラムはRAMにロードされる。
【0026】
記憶装置106は、コンピュータ読み取り可能な記憶媒体を有し、本実施形態に係る計算方法を実行するためのプログラム、プログラムの実行に必要なデータ等を格納している。コンピュータ読み取り可能な記憶媒体として、Hard Disk Drive(HDD)、Solid State Drive(SSD)、光ディスク等が挙げられる。
【0027】
なお、プロセッサ102によって実行されるプログラムを、ネットワークを介して接続された他のコンピュータに格納し、プロセッサ102が、他のコンピュータからネットワークインターフェース112を介してプログラムを読み出すようにしてもよい。
【0028】
入力部108は、マウス、キーボード等の入力デバイスを有する。ディスプレイ110は、Liquid Crystal Display(LCD)等により構成され、プロセッサ102により実行された処理の結果を表示する。
【0029】
ネットワークインターフェース112は、計算装置100をLocal Area Network(LAN)、Wide Area Network(WAN)、及び/又はインターネット等のネットワークに接続するためのインターフェースである。
【0030】
次に、
図3~
図8を参照して、プロセッサ102によって実行される計算方法について説明する。
【0031】
イジングモデルの相互作用係数のビット幅を削減する方法を説明する前に、
図3を参照して、補助スピンの追加による相互作用係数の拡張方法について説明する。
【0032】
図3に示すように、イジングモデル(モデル3-1)において、2つのスピンσ
iとσ
jが相互作用係数J
i、jによって接続されているものとする。まず、モデル3-1に補助スピンσ
xを追加する。そして、σ
iとσ
xとの間のエッジ(i、x)と、σ
xとσ
jとの間のエッジ(j、x)を追加する。そして、追加されたエッジ(i、x)と(j、x)に、新たに相互作用係数J
i、jとその絶対値|J
i、j|をそれぞれ設定する。このように、モデル3-1にσ
xを追加して、σ
iとσ
jと間のJ
i、jを拡張させることで、拡大イジングモデル(モデル3-2)が求められる。
【0033】
図3に示すイジングモデル(モデル3-1)のエネルギーをH
1とすると、エネルギーH
1は式(2)で表される。なお、以下では、相互作用係数J
i、jによらない項を省略している。
【数2】
【0034】
図3に示す拡大イジングモデル(モデル3-2)のエネルギーをH′
1とすると、J
i、j>0のとき、H′
1は式(3)で表される。
【数3】
【0035】
補助スピンσ
xは、+1又は-1の値をとる。σ
xがH′
1を最小にするスピンであると仮定すると、式(3)は式(4)のように表される。
【数4】
【0036】
モデル3-1とモデル3-2とのエネルギーの差(式(2)と式(4)との差)は|Ji、j|となる。
【0037】
J
i、j<0のとき、H′
1は式(5)で表される。
【数5】
【0038】
σ
xがH′
1を最小にするスピンであると仮定すると、式(5)は式(6)のように表される。
【数6】
【0039】
モデル3-1とモデル3-2とのエネルギーの差(式(2)と式(6)との差)は|Ji、j|となる。
【0040】
このように、σ
xがH′
1を最小にするスピンであると仮定すると、元のイジングモデル(モデル3-1)と拡大イジングモデル(モデル3-2)とのエネルギー差は常に|J
i、j|となる。よって、モデル3-1の基底状態とモデル3-2の基底状態とのエネルギー差は|J
i、j|にならなければならない。|J
i、j|の値は、スピンの状態によらないので、モデル3-1で基底状態を与えるスピンσ
i、σ
jは、モデル3-2においても基底状態を与えることになる。すなわち、
図3に示すように、元のイジングモデルに補助スピンとエッジとを追加し、元のスピンに着目すると、同一の基底状態を得ることができる。
【0041】
次に、
図4を参照して、相互作用係数のビット幅を削減する方法を説明する。
図4に示すように、イジングモデル(モデル4-1)において、2つのスピンσ
iとσ
jが相互作用係数J
i、jで接続されているものとする。
【0042】
まず、J
i、j=J′
i、j+J″
i、jとなるように、J
i、jを第1相互作用係数J′
i、jと第2相互作用係数J″
i、jとに分割する。
図4に示すように、J′
i、jとJ″
i、jはいずれも、σ
iとσ
jとを接続するものである。そして、J′
i、jとJ″
i、jの一方(
図4ではJ′
i、j)に対して、
図3に示す相互作用係数の拡張方法を適用すると、拡大イジングモデル(モデル4-2)が求められる。
【0043】
上述のように、拡大イジングモデルのエネルギーを最小にする補助スピンを元のイジングモデルに追加して相互作用係数を拡張すれば、拡大イジングモデルの基底状態は、元のイジングモデルの基底状態と一致する。したがって、プロセッサ102に載せることが可能なビット幅になるまで、
図4に示す処理を繰り返すことによって、基底状態を変えることなく元のイジングモデルの相互作用係数のビット幅を削減することができる。
【0044】
例えば、J
i、j=2J′
i、jとすると、モデル4-1のエネルギーH
10は、式(7)のように表される。なお、以下では、相互作用係数J
i、jによらない項を省略している。
【数7】
【0045】
J
i、j=2J′
i、jを2つの同一の相互作用係数J′
i、jに分割する(J′
i、j=J″
i、j)。モデル4-2のエネルギーをH′
10とすると、J′
i、j>0のとき、H′
10は式(8)で表される。
【数8】
【0046】
σ
xはH′
10を最小にするスピンなので、式(8)は式(9)のように表される。
【数9】
【0047】
式(7)及び式(9)より、スピンによらない定数|J′i、j|を除くと、H10=H′10となる。すなわち、基底状態を変えずに、相互作用係数Ji、j(=2J′i、j)のビット幅を1ビット減らすことができる。
【0048】
J′
i、j<0のとき、モデル4-2のエネルギーH′
10は、式(10)で表される。
【数10】
【0049】
σ
xはH′
10を最小にするスピンなので、式(10)は式(11)のように表される。
【数11】
【0050】
式(7)及び式(11)より、スピンによらない定数|J′i、j|を除くと、H10=H′10となる。すなわち、基底状態を変えることなく、相互作用係数Ji、j(=2J′i、j)のビット幅を1ビット減らすことができる。
【0051】
次に、
図5を参照して、相互作用係数のビット幅を削減する例を説明する。
図5では、スピンσ
iとσ
jとの間の相互作用係数J
i、jが、5ビット(符号ビットを含む)の値から3ビットの値へ削減する例を示している。
【0052】
元のイジングモデル(モデル5-1)において、Ji、jの値が「14」(符号ビットを含めて5ビット)であるものとする(ステップ50)。まず、モデル5-1の「14」を「3」(3ビット)と「11」(5ビット)に分解する(ステップ52)。そして、σiとσjとを接続する「3」について、補助スピンa1を追加して、σiとa1との間の相互作用係数を「3」に設定し、a1とσjとの間の相互作用係数も「3」に設定することで、新たなイジングモデル(モデル5-2)を求める(ステップ54)。
【0053】
次に、モデル5-2のJi、jの値「11」を「3」(3ビット)と「8」(5ビット)に分解する(ステップ56)。そして、σiとσjとを接続する「3」について、補助スピンa2を追加して、σiとa2との間の相互作用係数を「3」に設定し、a2とσjとの間の相互作用係数も「3」に設定することで、新たなイジングモデル(モデル5-3)を求める(ステップ58)。
【0054】
次に、モデル5-3のJi、jの値「8」を「3」(3ビット)と「5」(4ビット)に分解する(ステップ60)。そして、σiとσjとを接続する「3」について、補助スピンa3を追加して、σiとa3との間の相互作用係数を「3」に設定し、a3とσjとの間の相互作用係数も「3」に設定することで、新たなイジングモデル(モデル5-4)を求める(ステップ62)。
【0055】
次に、モデル5-4のJi、jの値「5」を「3」と「2」(ともに3ビット)に分解する(ステップ64)。そして、σiとσjとを接続する「3」について、補助スピンa4を追加して、σiとa4との間の相互作用係数を「3」に設定し、a4とσjとの間の相互作用係数も「3」に設定する。これにより、全ての相互作用係数が3ビット以下で表現された拡大イジングモデル(モデル5-5)を求めることができる(ステップ66)。
【0056】
次に、
図6を参照して、外部磁場係数のビット幅を削減する方法を説明する。
図6に示すように、イジングモデル(モデル6-1)が、スピンσ
iに作用する外部磁場係数h
iを有するものとする。
【0057】
hiが、第1外部磁場係数h′iと第2外部磁場係数hxとの和(hi=h′i+hx)で表されるとすると、まず、モデル6-1に補助スピンσxを追加し、σiの外部磁場係数としてh′iを設定し、σxの外部磁場係数としてhxを設定する。そして、σiとσxとの間にエッジ(i、x)を追加し、追加されたエッジ(i、x)上の相互作用係数として、第2外部磁場係数の絶対値|hx|を設定する。このようにして、拡大イジングモデル(モデル6-2)が求められる。
【0058】
次に、モデル6-2の基底状態を、モデル6-1の基底状態と一致させるための条件を考察する。
【0059】
モデル6-1のエネルギーをH
2とすると、H
2は式(12)で表される。なお、以下では、外部磁場係数h
iによらない項を省略している。
【数12】
【0060】
モデル6-2のエネルギーをH′
2とすると、h
x>0、h
i>h
xのとき、H′
2は式(13)で表される。
【数13】
【0061】
σ
iの値は+1又は-1なので、式(13)の(1+σ
i)は2又は0となり、常に非負の値をとる。よって、σ
x=+1のときにH′
2は最小となり、式(13)は式(14)で表される。
【数14】
【0062】
モデル6-1とモデル6-2とのエネルギーの差(式(12)と式(14)との差)は|hx|となる。
【0063】
h
x<0、h
i<h
xのとき、H′
2は式(15)で表される。
【数15】
【0064】
σ
iの値は+1又は-1なので、式(15)の(1-σ
i)は0又は2となり、常に非負の値をとる。よって、σ
x=-1のときにH′
2は最小となり、式(15)は式(16)で表される。
【数16】
【0065】
モデル6-1とモデル6-2とのエネルギーの差(式(12)と式(16)との差)は|hx|となる。
【0066】
このように、σ
xがH′
2を最小にするスピンであると仮定すると、元のイジングモデル(モデル6-1)と拡大イジングモデル(モデル6-2)とのエネルギー差は常に|h
x|となる。よって、モデル6-1の基底状態とモデル6-2の基底状態とのエネルギー差は|h
x|にならなければならない。|h
x|の値は、スピンの状態によらないので、モデル6-1で基底状態を与えるスピンσ
iは、モデル6-2においても基底状態を与えることになる。すなわち、
図6に示すように、元のイジングモデルに補助スピンとエッジとを追加し、元のスピンに着目すると、同一の基底状態を得ることができる。
【0067】
プロセッサ102に載せることが可能なビット幅になるまで、
図6に示す処理を繰り返すことによって、基底状態を変えることなく元のイジングモデルの外部磁場係数のビット幅を削減することができる。
【0068】
次に、
図7を参照して、外部磁場係数のビット幅を削減する例を説明する。
図7では、スピンσ
iに作用する外部磁場係数h
iが、5ビット(符号ビットを含む)の値から3ビットの値へ削減する例を示している。
【0069】
元のイジングモデル(モデル7-1)において、hiの値が「14」(符号ビットを含めて5ビット)であるものとする(ステップ70)。モデル7-1のhiの値「14」が「3」(3ビット)と「11」(5ビット)との和で表されることから、まず、モデル7-1に補助スピンa1を追加し、σiの外部磁場係数として「11」を設定し、a1の外部磁場係数として「3」を設定する。そして、σiとa1との間にエッジを追加し、追加されたエッジ上に新たな相互作用係数として「3」を設定することで新たなイジングモデル(モデル7-2)を求める(ステップ72)。
【0070】
次に、モデル7-2のhiの値「11」が「3」(3ビット)と「8」(5ビット)との和で表されることから、モデル7-2に補助スピンa2を追加し、σiの外部磁場係数として「8」を設定し、a2の外部磁場係数として「3」を設定する。そして、σiとa2との間にエッジを追加し、追加されたエッジ上に新たな相互作用係数として「3」を設定することで新たなイジングモデル(モデル7-3)を求める(ステップ74)。
【0071】
次に、モデル7-3のhiの値「8」が「3」(3ビット)と「5」(4ビット)との和で表されることから、モデル7-3に補助スピンa3を追加し、σiの外部磁場係数として「5」を設定し、a3の外部磁場係数として「3」を設定する。そして、σiとa3との間にエッジを追加し、追加されたエッジ上に新たな相互作用係数として「3」を設定することで新たなイジングモデル(モデル7-4)を求める(ステップ76)。
【0072】
次に、モデル7-4のhiの値「5」が「3」と「2」(ともに3ビット)との和で表されることから、モデル7-4に補助スピンa4を追加し、σiの外部磁場係数として「2」を設定し、a4の外部磁場係数として「3」を設定する。そして、σiとa4との間にエッジを追加し、追加されたエッジ上に新たな相互作用係数として「3」を設定する。これにより、全ての外部磁場係数が3ビット以下で表現された拡大イジングモデル(モデル7-5)を求めることができる(ステップ78)。
【0073】
本実施形態に係る計算方法によって元のイジングモデルのビット幅を1ビット削減する際に追加される補助スピンの数を定式化することができる。
【0074】
元のイジングモデルのJi、j及びhiの値が、符号ビットを含めてnビットであり、1ビット削減することにより、[-(2n-2-1)、2n-2-1]の範囲内の(n-1)ビットの任意の整数(n-1≧2)になるものとする。
【0075】
J
i、jが1ビット削減されるときに追加される補助スピンの数をs
i、jとすると、s
i、jは式(17)で表される。
【数17】
【0076】
h
iが1ビット削減されるときに追加される補助スピンの数をs
iとすると、s
iは式(18)で表される。
【数18】
【0077】
式(17)と式(18)から、ビット幅がnビットで表現されるイジングモデルを本実施形態に係る計算方法によって1ビット削減するとき、追加される補助スピンの総数sは、式(19)で表される。
【数19】
【0078】
図1に示す3ビットのビット幅([-3、+3])で表現されたイジングモデル10に、本実施形態に係る計算方法を適用してビット幅を1ビット削減すると、
図8に示すように、2ビットのビット幅[-1、+1]で表現された拡大イジングモデル80(
図8の右側)を得ることができる。
【0079】
図8の拡大イジングモデル80において、実線で描かれたエッジ、実線で描かれた矢印は、それぞれ、相互作用係数、外部磁場係数が+1であることを表し、点線で描かれた矢印は、外部磁場係数が-1であることを表している。
【0080】
式(17)~式(19)より、イジングモデル10に追加された補助スピンの総数sは6個となる。実際、h1(=3)を1ビット削減するため、補助スピンa1、a2を追加し、J1、2(=3)を1ビット削減するため、補助スピンa3、a4を追加し、h2(=-2)を1ビット削減するため、補助スピンa5を追加し、J1、4(=2)を1ビット削減するため、補助スピンa6を追加することで、拡大イジングモデル80が得られる。
【0081】
拡大イジングモデル80では、J1、2=J1、3=J1、4=J2、3=J2、4=J3、4=+1、h1=+1、h2=-1、h3=h4=0となる。これにより、拡大イジングモデル80の基底状態のスピンは、補助スピンを除くと、(σ1、σ2、σ3、σ4)=(+1、+1、+1、+1)となり、元のイジングモデル10の基底状態のスピンと一致することがわかる。
【0082】
次に、本実施形態に係る計算方法をランダムイジングモデルと2つの組合せ最適化問題(整数分割問題及び頂点被覆問題)とに適用した例を説明する。
【0083】
<ランダムイジングモデル>
以下のランダムイジングモデルは、頂点とエッジがランダムに生成された連結グラフであり、頂点の数が5~20の範囲内にあり、エッジ密度が約1.0に設定されているものとする。また、相互作用係数と外部磁場係数は、所定のビット幅の一様分布をとるようにランダムに生成され、ビット幅が5ビットから11ビットの範囲内にあるものとする。
【0084】
このようにランダムに生成された各イジングモデルに本実施形態に係る計算方法を適用した例を表1に示す。
【表1】
【0085】
表1において、「Name」欄に記載された#1~#11は、それぞれ異なるイジングモデルのグラフを表している。「Name」欄において、|V|は頂点の数、|E|はエッジの数を表す。また、「Bit-Width」欄は、元のイジングモデルのビット幅を表し、「#Reduction bits」欄は、元のイジングモデルに本実施形態に係る計算方法を適用することによって削減したビット数を表し、「#Spins」欄は、元のイジングモデルのビット幅を削減することによって得られた拡大イジングモデルの総スピン数を表す。削減したビット数が「0」のときの総スピン数は、元のイジングモデルのスピン数と同じである。「#Spins」欄における空欄は、ビット幅をこれ以上削減することができないことを意味する。後述の各表の構成も表1と同様である。
【0086】
表1において、例えば、#1のイジングモデルは、頂点の数が5個、エッジの数が10本、ビット幅が5ビットである。#1のイジングモデルに本実施形態に係る計算方法を適用することによってビット幅が1ビット削減したとき、総スピン数は15個となり、ビット幅が2ビット削減したとき総スピン数は34個となり、ビット幅が3ビット削減したとき、総スピン数は109個となる。表1より、#1~#11のイジングモデルのビット幅を削減するにつれ、総スピン数が増加していることがわかる。
【0087】
<整数分割問題>
整数分割問題(Number Partition Problem)(以下、NPPと呼ぶ。)は、N個の自然数の集合M={m1、m2、…、mN}が与えられたとき、Mを2つの部分集合M1とM2とに分け、M1に属する自然数の和とM2に属する自然数の和とが等しいか否かを判断するものである。NPPはNP完全な問題として知られている。
【0088】
例えば、集合M={1、2、4、7}が与えられたとき、Mを部分集合M1={1、2、4}とM2={7}とに分けると、M1の自然数の和とM2の自然数の和とが等しくなる。
【0089】
NPPは、イジングモデルで表すことができる。N個(=|M|)のスピンσ
i(1≦i≦N)を用意し、エネルギー関数(ハミルトニアン)をH
NPPとすると、NPPは、式(20)及び式(21)のようにイジングモデルに定式化することができる。
【数20】
【数21】
【0090】
式(21)に示すように、σi(1≦i≦N)は、miがM1に割り当てられたときは+1となり、miがM2に割り当てられたときは-1となる。式(20)において、HNPPの最小値はゼロである。HNPPがゼロのとき、M1に属する自然数の和とM2に属する自然数の和とが等しくなる。
【0091】
上述の集合M={1、2、4、7}が与えられたときに、NPPをイジングモデルで表した例を
図9に示す。
図9に示すイジングモデル90の相互作用係数J
i、jは、式(20)より、2m
im
jである。スピンσ
i(1≦i≦N)はm
i(1≦i≦N)に対応する。上述のように、集合MはM
1={1、2、4}とM
2={7}とに分けることができ、
図9に示すように、(σ
1、σ
2、σ
3、σ
4)=(+1、+1、+1、-1)又は(σ
1、σ
2、σ
3、σ
4)=(-1、-1、-1、+1)のときに、H
NPPは最小値をとる。
【0092】
NPPのイジングモデルに本実施形態に係る計算方法を適用した例を表2に示す。
【表2】
【0093】
表2の「Name」欄に記載された#12~#23は、それぞれ異なる集合Mを表している。ここで、集合MのN個の自然数(N mod 3=0又は2)は、式(22)で定義されるf(i,j)に基づいて生成され、式(22)はフィボナッチ数列(Fibonacci sequence)を表している。式(22)に基づいて集合Mを生成すると、NPPは常に解を有する。
【数22】
【0094】
表2の#13、#15、#18、#20~#23は、式(22)のf(i,j)に基づいて生成された集合を表している。#14の集合は、
図9に示すビット幅が7のイジングモデル90に対応している。例えば、イジングモデル90に本実施形態に係る計算方法を適用してビット幅を1ビット削減したとき、総スピン数が5個になり、ビット幅を5ビット削減したとき、総スピン数が124個になる。このように、NPPにおいても、本実施形態に係る計算方法によってビット幅を削減すると、総スピン数が増加していることがわかる。
【0095】
<頂点被覆問題>
無向グラフG=(V、E)の頂点被覆とは、Eの各エッジの少なくとも一方の頂点が、頂点の部分集合V′⊆Vに含まれることである。頂点被覆問題(Vertex Cover Problem)(以下、VCPと呼ぶ。)は、最小サイズのV′を見つけることであり、NP困難な問題として知られている。
【0096】
図10に、VCPの一例を示す。
図10に示すグラフ1000は、8個の頂点(1~8)と16本のエッジを有する。グラフ1000の最小サイズのV′は、頂点が5個の集合であり、
図10に示すように、頂点1、3、4、6及び7からなる部分集合V′
1と、頂点2、4、5、6及び8からなる部分集合V′
2とがある。すなわち、グラフ1000の各エッジの少なくとも一方の頂点は、V′
1に含まれるか、又は、V′
2に含まれる。
【0097】
VCPも、イジングモデルで表すことができる。N個(=|V|)のスピンσ
i(1≦i≦N)を用意し、エネルギー関数(ハミルトニアン)をH
VCPとすると、VCPは、式(23)及び式(24)のようにイジングモデルに定式化することができる。
【数23】
【数24】
【0098】
式(23)において、αVCP及びβVCPは正の重みパラメータである。式(24)に示すように、σi(1≦i≦N)は、頂点iがV′に属するときは+1となり、頂点iがV′に属さないときは-1となる。
【0099】
式(23)の第1項、第2項は、それぞれ、ペナルティ関数、目的関数を意味する。Eの各エッジの少なくとも一方の頂点がV′に属すると、式(23)の第1項はゼロとなる。V′が最小サイズであれば、式(23)の第2項が最小のときにHVCPが最小となり、最適解を得ることができる。なお、βVCP≦αVCPと設定すれば、実行可能解(feasible solutions)と呼ばれる制約条件を満たす解を得ることができる。
【0100】
VCPのイジングモデルに本実施形態に係る計算方法を適用した例を表3に示す。
【表3】
【0101】
表3の「Name」欄は、以下のサイトのAG-Monien Graph Collectionから選択したベンチマークのグラフを示している。
“AG-Monien - SuiteSparse matrix collection,” https://sparse.tamu.edu/AG-Monien.
また、表3の全てのグラフについて、αVCP及びβVCPの双方の値を1に設定している。
【0102】
表3に示す各グラフについても、本実施形態に係る計算方法を適用してビット幅を1ビット削減すると、総スピン数が増加していることがわかる。
【0103】
なお、アニーリングマシン又はイジングマシンは、予め定められたスピン数を有しており、その予め定められたスピン数以下であれば処理可能である。実際、表1~表3において、総スピン数が、プロセッサ102が有する予め定められたスピン数以下である場合に、プロセッサ102は基底状態を正しく求めることができる。
【0104】
次に、本実施形態に係る計算方法との比較のため、ランダムイジングモデル、NPP、及びVCPにナイーブな手法(シフト法)を適用して得られた結果を、それぞれ、表4、表5、及び表6に示す。
【0105】
【0106】
【0107】
【0108】
表4~表6の「Name」欄の内容は、それぞれ、表1~表3と同一である。また、表4~表6の「#Ground states by naive method/#Original ground states matched」欄の“a”/“b”において、“a”は、シフト法によってビット幅が削減されたイジングモデルの基底状態の数を表し、“b”は、シフト法適用後のイジングモデルの基底状態のうち、元のイジングモデルの基底状態と一致した基底状態の数を表す。
【0109】
表4(ランダムイジングモデル)より、シフト法によってビット幅が3ビットに削減された各イジングモデルの基底状態は、元のイジングモデルの基底状態とほぼ一致していることがわかる(表4の下線部のデータ参照)。一方、シフト法によってビット幅が2ビットに削減された各イジングモデルの基底状態は、元のイジングモデルの基底状態とほとんど一致しない(表4の二重下線部のデータ参照)。
【0110】
表5(NPP)より、シフト法によってビット幅が削減された各イジングモデルの基底状態の数は、元のイジングモデルの基底状態の数とほとんど一致しないことがわかる。例えば、#14に対応するイジングモデル(
図9に示すイジングモデル90)のビット幅を3ビット以上削減すると、NPPの最適解を得ることはできない。また、表5の#12~#19に示す問題において、シフト法によってビット幅が2ビットに削減された各イジングモデルの基底状態の数は、元のイジングモデルと一致した基底状態の数よりも著しく大きいことがわかる(表5の下線部のデータ参照)。この場合、NPPの最適解をほとんど得ることができない。
【0111】
表6(VCP)より、頂点の数が15未満のグラフ(表6のse 1、cage 1、cage 2)については、シフト法によって1ビット削減したイジングモデルの基底状態は、元のイジングモデルの基底状態と一致する。しかしながら、グラフのサイズが大きくなると、シフト法によって1ビット削減したイジングモデルの基底状態の数は、元のイジングモデルの基底状態の数と一致しなくなる。特に、表6のbfly 1(|V|=24、|E|=96)では、元のイジングモデルのビット幅を1ビット削減しただけで、VCPの最適解を全く得ることができなくなる。
【0112】
本実施形態によれば、イジングモデルに補助スピンを追加し、イジングモデルのスピンと補助スピンとの間に新たな相互作用係数を設定して新たなイジングモデルを求めることで、イジングモデルの係数(相互作用係数、外部磁場係数)の大きさを分散させる。これにより、基底状態を変えることなく、イジングモデルのビット幅を削減することができる。このように、本実施形態では、ハードウェアに載せることが可能なビット幅よりも大きいビット幅のイジングモデルが入力された場合であっても、イジングモデルの基底状態を正しく求めることができる。
【0113】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の変更が可能であり、当業者によってなされる他の実施形態、変形例も本発明に含まれる。
【符号の説明】
【0114】
100 計算装置
102 プロセッサ
104 メモリ
106 記憶装置
108 入力部
110 ディスプレイ
112 ネットワークインターフェース