(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-10
(45)【発行日】2025-01-21
(54)【発明の名称】計算プログラム及び情報処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20250114BHJP
G06N 10/60 20220101ALI20250114BHJP
【FI】
G06N99/00 180
G06N10/60
(21)【出願番号】P 2023537774
(86)(22)【出願日】2021-07-27
(86)【国際出願番号】 JP2021027646
(87)【国際公開番号】W WO2023007568
(87)【国際公開日】2023-02-02
【審査請求日】2024-02-27
(73)【特許権者】
【識別番号】000003067
【氏名又は名称】TDK株式会社
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100163496
【氏名又は名称】荒 則彦
(74)【代理人】
【識別番号】100114937
【氏名又は名称】松本 裕幸
(72)【発明者】
【氏名】鈴木 健司
(72)【発明者】
【氏名】浅井 海図
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2020-187451(JP,A)
【文献】FERRINI, Giulia, et al.,"Advanced Quantum Algorithms",スウェーデン,[online], CHALMERS UNIVERSITY OF TECHNOLOGY,2021年03月30日,Pages 1-10, 16-22, 53-72 and 139-145,[retrieved on 2021.08.30], Retrieved from the Internet: <URL: https://www.chalmers.se/en/centres/wacqt/graduate%20school/aqa/Documents/FullLectureNotes.pdf> and <URL: https://www.chalmers.se/en/centres/wacqt/graduate%20school/aqa/Pages/default.aspx>.
【文献】小野涼斗(外2名),「実数変数最適化問題の2進数展開によるイジングモデルへの変換」,電子情報通信学会2016年総合大会講演論文集,分冊:基礎・境界/NOLTA,日本,一般社団法人電子情報通信学会,2016年03月01日,第6頁,ISSN: 1349-1369
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06N 10/60
(57)【特許請求の範囲】
【請求項1】
イジングモデル又はQUBOに特化したイジングマシン又は汎用性のある汎用型情報処理装置によって実行される計算プログラムであって、
前記計算プログラムは、演算プログラムと比較プログラムを有し、
前記演算プログラムは、前記イジングマシン又は前記汎用型情報処理装置に、計算モデルを用いた演算を行うように指示し、
前記計算モデルは、イジングモデル又はQUBOに適用可能な計算モデルであり、複数のイジングビットと、第1補助ビットと、を有し、
前記複数のイジングビット及び前記第1補助ビットのそれぞれは、2値の変数であり、
前記複数のイジングビットは、組み合わせ最適化問題における選択肢のそれぞれを前記変数の組み合わせで表し、
前記第1補助ビットは、前記選択肢を示す複数の値のうち2以上の値を論理演算した値を示
し、
前記論理演算は、排他的論理和、論理和、論理積からなる群から選択される少なくとも1つであり、
前記
比較プログラムは、前記第1補助ビットの値と、前記第1補助ビットの論理演算に用いられた値に対応するイジングビットに対して前記第1補助ビットの値を求める際と同じ論理演算を行った結果と、を比較する、計算
プログラム。
【請求項2】
前記計算モデルは、第2補助ビットをさらに有し、
前記第2補助ビットは、前記選択肢を示す複数の値のうち2以上の値を論理和した値を示す、請求項
1に記載の計算
プログラム。
【請求項3】
前記複数のイジングビットは、前記選択肢を2進数表現している、請求項1
又は2に記載の計算
プログラム。
【請求項4】
前記計算モデルは、第3補助ビットをさらに有し、
前記第3補助ビットは、前記第1補助ビットの値と、前記選択肢を示す複数の値のうち前記第1補助ビットを求める論理演算に用いられなかった値と、を論理演算した値を示す、請求項1~
3のいずれか一項に記載の計算
プログラム。
【請求項5】
前記比較プログラムによる比較結果が不一致の場合に、
前記第1補助ビットの値に基づいて、不一致となった前記選択肢が取りうる前記変数の組み合わせを列挙する抽出プログラムと、
前記選択肢が取りうる前記変数の組み合わせのうち前記演算プログラムを用いた演算結果が最も小さくなる変数の組み合わせで、前記比較結果が不一致となった際の変数を置き換える訂正プログラムと、を
さらに有する請求項
1~4のいずれか一項に記載の計算プログラム。
【請求項6】
イジングモデル又はQUBOに特化したイジングマシン又は汎用性のある汎用型情報処理装置に請求項1~5のいずれか一項に記載の計算プログラムを実行させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算プログラム及び情報処理方法に関する。
【背景技術】
【0002】
量子アニーリングを用いて組み合わせ最適化問題の最適解を求める試みが行われている(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】寺西寛人、永山翔太、「単純グラフ最小カット問題における量子アニーリングの励起状態活用」、一般社団法人電子情報通信学会、第二種研究資料、量子情報技術研究会、QIT2019-89(2019.11)
【発明の概要】
【発明が解決しようとする課題】
【0004】
量子アニーリングマシンには、意図せぬ量子遷移やノイズ等によりエラーが生じる場合があり、最適解が適切に求められない場合がある。
【0005】
本発明は上記事情に鑑みてなされたものであり、ノイズ等によりエラーが生じた場合にも影響を受けにくい、計算モデル、情報処理方法、計算プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上記課題を解決するため、以下の手段を提供する。
【0007】
(1)第1の態様にかかる計算モデルは、イジングモデル又はQUBOに適用可能な計算モデルである。この計算モデルは、複数のイジングビットと、第1補助ビットと、を有する。前記複数のイジングビット及び前記第1補助ビットのそれぞれは、2値の変数である。前記複数のイジングビットは、組み合わせ最適化問題における選択肢のそれぞれを前記変数の組み合わせで表す。前記第1補助ビットは、前記選択肢を示す複数の値のうち2以上の値を論理演算した値を示す。
【0008】
(2)上記計算モデルにおいて、前記論理演算は、排他的論理和であってもよい。
【0009】
(3)上記計算モデルにおいて、前記論理演算は、論理和であってもよい。
【0010】
(4)上記計算モデルにおいて、前記論理演算は、論理積であってもよい。
【0011】
(5)上記計算モデルは、第2補助ビットをさらに有してもよい。前記第2補助ビットは、前記選択肢を示す複数の値のうち2以上の値を論理和した値を示す。
【0012】
(6)上記計算モデルにおいて、前記複数のイジングビットは、前記選択肢を2進数表現していてもよい。
【0013】
(7)上記計算モデルにおいて、前記補助変数は、第3補助ビットをさらに有してもよい。前記第3補助ビットは、前記第1補助ビットの値と、前記選択肢を示す複数の値のうち前記第1補助ビットを求める論理演算に用いられなかった値と、を論理演算した値を示す。
【0014】
(8)上記計算モデルにおいて、前記イジングモデル又は前記QUBOは量子アニーリングマシンによって実行されてもよい。
【0015】
(9)第2の態様にかかる情報処理方法は、上記計算モデルを用いた情報処理方法である。この情報処理方法は、前記第1補助ビットの値と、前記第1補助ビットの論理演算に用いられた値に対応するイジングビットに対して前記第1補助ビットの値を求める際と同じ論理演算を行った結果と、を比較する比較工程を有する。
【0016】
(10)上記態様にかかる情報処理方法は、前記比較工程での比較結果が不一致の場合に、前記第1補助ビットの値から前記複数のイジングビットが選択しうる前記変数の組み合わせを列挙する抽出工程と、列挙された組み合わせのそれぞれに対して前記計算モデルを用いた演算を行う演算工程と、前記複数のイジングビットが選択しうる前記変数の組み合わせのうち演算結果が最も小さくなる前記変数の組み合わせで、エラーが検出された際の前記複数のイジングビットの変数の組み合わせを置き換える置換工程と、を有してもよい。
【0017】
(11)上記態様にかかる情報処理方法の前記抽出工程において、前記複数のイジングビットが選択しうる前記変数の組み合わせの中から前記複数のイジングビットとのハミング距離が小さい組み合わせ抽出してもよい。
【0018】
(12)第3の態様にかかる計算プログラムは、上記態様にかかる計算モデルを用いて演算を行う演算プログラムと、比較プログラムと、を備える。比較プログラムは、前記第1補助ビットの値と、前記第1補助ビットの論理演算に用いられた値に対応するイジングビットに対して前記第1補助ビットの値を求める際と同じ論理演算を行った結果と、を比較する。
【0019】
(13)上記態様にかかる計算プログラムは、抽出プログラムと訂正プログラムとをさらに有してもよい。抽出プログラムは、前記比較プログラムによる比較結果が不一致の場合に、前記第1補助ビットの値に基づいて、不一致となった前記選択肢が取りうる前記変数の組み合わせを列挙する。訂正プログラムは、前記選択肢が取りうる前記変数の組み合わせのうち前記演算プログラムを用いた演算結果が最も小さくなる変数の組み合わせで、前記比較結果が不一致となった際の変数を置き換える。
【0020】
(14)第4の態様にかかる情報処理装置は、上記態様にかかる計算プログラムを備える。
【発明の効果】
【0021】
本発明に係る計算モデル、情報処理方法、計算プログラム及び情報処理装置は、ノイズ等によりエラーが生じた場合にも影響を受けにくい。
【図面の簡単な説明】
【0022】
【
図1】イジングモデル、QUBOのイメージ図である。
【
図2】本実施形態に係る計算モデルのイメージ図である。
【
図3】ワンホット表現で選択肢を表示した場合の一例である。
【
図4】2進数表現で選択肢を表示した場合の一例である。
【
図5】本実施形態に係る計算モデルの具体例である。
【
図6】本実施形態に係る情報処理方法のフロー図である。
【
図7】本実施形態に係る計算モデルの別の例である。
【
図8】本実施形態に係る計算モデルの別の例である。
【
図9】本実施形態に係る計算モデルの別の例である。
【
図10】本実施形態に係る計算モデルの別の例である。
【発明を実施するための形態】
【0023】
以下、本実施形態について、図面を適宜参照しながら詳細に説明する。以下の説明で用いる図面は、本実施形態の特徴をわかりやすくするために便宜上特徴となる部分を拡大して示している場合があり、各構成要素の寸法比率などは実際とは異なっていることがある。以下の説明において例示される材料、寸法等は一例であって、本発明はそれらに限定されるものではなく、その要旨を変更しない範囲で適宜変更して実施することが可能である。
【0024】
「第1実施形態」
第1実施形態に係る計算モデルは、量子アニーリングに用いられるイジングモデル又はQUBOに適用可能な計算モデルである。量子アニーリングは、計算モデルに従い、エネルギーが最小の状態(基底状態)を求めるアルゴリズムである。
【0025】
イジングモデルは、複数の要素が相互作用しあい、それぞれの要素に強制力が与えられた場合に、全体として安定となる状態を予想するモデルである。
【0026】
図1は、イジングモデルのイメージ図である。イジングモデルは、強制力Fによって互いに相互作用する複数のビットbを有する。それぞれのビットbはスピンsからなる。スピンsは、上向き又は下向きのいずれかの状態を示す。ビットbのそれぞれは、2値の状態を示す変数で表される。強制力Fの設定によって、隣接するスピンsが平衡な状態が安定状態となったり、反平行な状態が安定状態となったりする。強制力Fは、相互作用パラメータと言われる。
【0027】
イジングモデルは、以下のエネルギー関数(コスト関数)で表される。
【0028】
【0029】
ここでσ
i、σ
jは入力変数である。σ
i、σ
jは、+1又は-1の2値のいずれかを示す。σ
i、σ
jは、
図1におけるスピンsの状態に対応する。J
ijは、相互作用パラメータである。J
ijは、
図1における強制力Fに対応する。h
iは、外的な要因に伴うパラメータである。
【0030】
QUBO(Quadratic Unconstrained Binary Optimization)は、イジングモデルに等価に変換可能な計算モデルである。イジングモデルでは各ビットbは+1又は-1の2値の変数で表されるのに対し、QUBOでは各ビットbは0又は1の2値の変数で表される。QUBOは、イジングモデルと同様に計算モデルに適用できる。QUBOは以下のエネルギー関数(コスト関数)で表される。
【0031】
【0032】
ここでqi、qjは入力変数である。qi、qjは、1又は0の2値のいずれかを示す。qi、qjは、イジングモデルにおけるスピンsの状態に対応する。Qijは、QUBOにおける相互作用パラメータである。Qijは、イジングモデルにおける強制力Fに対応する。イジングエネルギーはエネルギー関数に入力変数qi、qjの値を入力した際の出力である。
【0033】
イジングモデル及びQUBOは、組み合わせ最適化問題に適用できる。例えばQUBOを組み合わせ最適化問題に適用する場合、まず組み合わせ最適化問題をQijに変換してエネルギー関数として表現し、組み合わせ最適化問題における選択肢のそれぞれを入力変数qi、qjの2値の変数の組み合わせで表す。次にイジングエネルギーがより小さくなるqi、qjの値の組み合わせを求めることで組み合わせ最適化問題を解くことができる。
【0034】
本実施形態に係る計算モデルは、複数のイジングビットと補助ビットとを有する。
図2は、本実施形態に係る計算モデルの一例のイメージ図である。
【0035】
イジングビットx1~x3及び補助ビットy1は、それぞれ2値の変数である。イジングビットx1~x3の数は、3つに限られない。補助ビットy1の数も、1つに限られない。
【0036】
イジングビットx
1~x
3及び補助ビットy
1は、例えば、それぞれ1又は0を示す。イジングビットx
1~x
3及び補助ビットy
1は、例えば、それぞれ+1又は-1を示してもよい。イジングビットx
1~x
3及び補助ビットy
1のそれぞれは、
図1のビットbに対応する。
【0037】
イジングビットx1~x3は、組み合わせ最適化問題における選択肢のそれぞれを2値の変数の組み合わせで表す。例えば、巡回セールスマン問題の場合、どの都市にどの順番で行くかという選択肢がある。例えば、Mという都市にN番目に行くという選択肢が選択肢Aとなる。
【0038】
イジングビットx1~x3による選択肢は、ワンホット表現される場合と2進数表現される場合とがある。
【0039】
図3は、ワンホット表現で選択肢を表示した場合の一例である。ワンホット表現は、N種の情報をN個のビットで表現する方法である。ワンホット表現の場合、N個のビットのうちのいずれか一つのみが「1」となり、他のビットはすべて「0」となる。
図3では、Aという選択肢を(1,0,0)に割り当て、Bという選択肢を(0,1,0)に割り当て、Cという選択肢を(0,0,1)に割り当てている。
【0040】
図4は、2進数表現で選択肢を表示した場合の一例である。2進数表現は、N種の情報を2進数で表現する方法である。2進数表現の場合、複数のビットが同時に「1」となることを許容する。
図4では、Aという選択肢を(1,0,0)に割り当て、Bという選択肢を(0,1,0)に割り当て、Cという選択肢を(0,0,1)に割り当て、Dという選択肢を(1,1,0)に割り当て、Eという選択肢を(0,1,1)に割り当て、Fという選択肢を(1,0,1)に割り当て、Gという選択肢を(0,0,0)に割り当て、Hという選択肢を(1,1,1)に割り当てている。
【0041】
2進数表現は、少ないビットで複数の状態を表現できると言う利点がある。他方で、2進数表現は、ビットの一つがノイズ等で書き換わると、他の状態を表してしまう。そのため2進数表現では、ノイズへの対策が求められる。
【0042】
図5は、本実施形態に係る計算モデルへの最適化問題の選択肢の割り当ての一例のイメージ図である。補助ビットy
1は、選択肢を示す複数の値のうち2以上の値を論理演算した値を示す。ここで「選択肢を示す複数の値」とは、選択肢に割り当てられた数字を構成する各構成要素のことを意味する。例えば、Aという選択肢が(1,0,0)に割り当てられている場合、「1」、「0」、「0」のそれぞれが「選択肢を示す複数の値」に対応する。
【0043】
図5に示す補助ビットy
1は、選択肢を示す複数の値のうちすべての値を排他的論理和した値である。論理演算は、排他的論理和でも、論理和でも、論理積でもよい。
【0044】
本実施形態にかかる計算モデルは、イジングビットx1~x3のいずれかでビット反転が生じるというエラーが起きた場合でも、そのエラーの影響を受けにくい。
【0045】
エラーは、量子アニーリングマシンにおいて、意図せぬ量子遷移やノイズ等が生じた場合に起きる。例えば、本来であれば量子アニーリングマシンが、イジングエネルギーがより小さい選択肢として、
図5の選択肢A(x
1,x
2,x
3)=(1,0,0)を出力する場合において、ノイズが生じたことによって、イジングビットx
1が「1」ではなく、「0」に反転したとする。この場合、量子アニーリングマシンは、ノイズにより選択肢G(x
1,x
2,x
3)=(0,0,0)を誤って出力する。
【0046】
本実施形態の計算モデルは、補助ビットy1を用いてエラーを検出する。以下、本実施形態に係る計算モデルを用いた情報処理方法について説明する。
【0047】
図6は、本実施形態にかかる除法処理方法のプロセスフローである。本実施形態にかかる情報処理方法は、例えば、最適化工程S1と比較工程S2と抽出工程S3と演算工程S4と訂正工程S5とを有する。
【0048】
最適化工程S1では、上記の計算モデルを用いて最適化問題を解くための演算を行う。例えば、QUBOの場合は、まず、上述のエネルギー関数(コスト関数)に対して、最適化問題の選択肢を適用する。例えば、上述のエネルギー関数の入力変数qi、qjに、イジングビットx1~x3及び補助ビットy1を適用する。次に、計算モデルは、エネルギー関数に基づいてイジングエネルギーがより小さくなる入力変数qi、qjの値を出力する。そして、入力変数qi、qjからそれに対応するイジングビットx1~x3及び補助ビットy1の値が求められる。
【0049】
比較工程S2は、例えば、最適化工程S1を行うたびに行う。比較工程S2は、必ずしも最適化工程S1を行うたびに行う必要はなく、適宜設定したタイミングで行ってもよい。
【0050】
最適化工程S1において、計算モデルは、複数のイジングビットx1~x3の組み合わせを出力してもよい。その場合、計算モデルは、各イジングビットx1~x3の値に対して比較工程S2以降を実行する。
【0051】
比較工程S2では、最適化工程S1で出力された補助ビットy1の値と、補助ビットy1の論理演算に用いられた値に対応するイジングビットに対して補助ビットy1の値を求める際と同じ論理演算を行った結果と、を比較する。
【0052】
例えば、
図5に示す場合、補助ビットy
1は、最適化問題における選択肢を表す3つの値の排他的論理和によって求められている。最適化問題における選択肢を表す3つの値は、イジングビットx
1~x
3のそれぞれに対応する。
【0053】
例えば、イジングビットx
1~x
3に対して排他的論理和の演算を行う。排他的論理和は、補助ビットy
1の値を求める際と同じ論理演算である。エラーが生じていなければ、同じ論理演算を行っているので、演算結果と補助ビットy
1の値とは一致する。例えば、
図5の選択肢Aにおいて、イジングビットx
1~x
3に対して排他的論理和は「1」であり、補助ビットy
1の値と一致する。
【0054】
これに対し、イジングビットx
1~x
3のうちの1ビットにエラーが生じた場合は、イジングビットx
1~x
3の値が異なる値となる。例えば、
図5の選択肢Aにおける、イジングビットx
1がエラーにより「1」ではなく、「0」と誤認識されたとする。この場合、選択肢Aの場合において、イジングビットx
1~x
3に対する排他的論理和は「0」となる。演算結果と補助ビットy
1の値とが不一致となる。
【0055】
換言すると、演算結果と補助ビットy1の値とが不一致の場合は、エラーが生じていると言える。
【0056】
本実施形態にかかる情報処理方法は、最適化工程S1と比較工程S2とを繰り返すことで、エラーを検出できる。
【0057】
次いで、抽出工程S3、演算工程S4及び訂正工程S5を行う。これらの行程は、エラーが検出された場合に行う。
【0058】
抽出工程S3では、補助ビットy1の値からイジングビットx1~x3が選択しうる変数の組み合わせを列挙する。
【0059】
例えば、
図5の選択肢Aにおいて、イジングビットx
1~x
3に対する論理演算結果と補助ビットy
1の値とが不一致の場合を例に説明する。補助ビットy
1の値が「1」の場合、イジングビットx
1~x
3が選択し得る変数の組み合わせは、(x
1,x
2,x
3)=(1,0,0)、(0,1,0)、(0,0,1)、(1,1,1)が考えられる。抽出工程S3では、これらの可能性がある変数の組み合わせをすべて列挙する。
【0060】
次いで、演算工程S4では、抽出工程S3で抽出されたすべての変数の組み合わせのそれぞれに対して、上述の計算モデルを用いて演算を行う。例えば、抽出工程S3で列挙された(x1,x2,x3)=(1,0,0)、(0,1,0)、(0,0,1)、(1,1,1)のそれぞれを計算モデルに当てはめ、演算を行う。演算を行うと、それぞれの変数の組み合わせごとのイジングエネルギーが求められる。
【0061】
演算工程S4を短時間で行いたい場合、抽出工程S3において、イジングビットx1~x3が選択し得る変数の組み合わせを適宜削減してもよい。例えば、最適化工程S1の結果として(x1,x2,x3)=(0,0,0)、補助ビットy1の値が「1」であった場合に、補助ビットy1の値が「1」を満たし、かつ(x1,x2,x3)=(0,0,0)とのハミング距離が1となるイジングビットx1~x3が選択し得る変数の組み合わせとして(x1,x2,x3)=(1,0,0)、(0,1,0)、(0,0,1)を抽出してもよい。ハミング距離は、等しい文字数を持つ二つの文字列の中で、対応する位置にある異なった文字の個数である。換言すると、ハミング距離は、ある文字列を別の文字列に変形する際に必要な置換回数を計測したものである。
【0062】
次いで、演算工程S4の結果に基づき、訂正工程S5を行う。訂正工程S5では、演算工程S4において最もイジングエネルギーが小さくなった変数の組み合わせで、イジングビットx1~x3の値を訂正する。例えば、(x1,x2,x3)=(1,0,0)、(0,1,0)、(0,0,1)、(1,1,1)それぞれの演算したイジングエネルギーの結果を、H1、H2、H3、H4、H5とし、イジングエネルギーの大きさがH1<H2<H3<H4<H5とする。この場合、イジングエネルギーの大きさが最も小さい(x1,x2,x3)=(1,0,0)の組み合わせで、エラーが検出された際のイジングビットx1~x3の値を置き換える。
【0063】
訂正工程S5を行うと、イジングビットx1~x3の値が訂正される。したがって、本実施形態にかかる情報処理方法は、抽出工程S3、演算工程S4及び訂正工程S5を行うことで、エラーの訂正を行うことができる。
【0064】
最適化工程S1は、例えば、イジングモデルやQUBOの計算に特化したイジングマシンで実行される。例えば量子アニーリングマシン(D-wave、NEC)やコヒーレントイジングマシン(NTT)、シミュレーテッド分岐マシン(東芝)、デジタルアニーラ(富士通)、CMOSアニーラ(日立)等のマシンは、イジングマシンの一例である。
【0065】
イジングマシンは、量子ゲート型の計算機でもよい。例えばQAOA(Quantum Approximate Optimization Algorithm)を用いればイジングモデルやQUBOを量子ゲート型計算機で計算することができる。
【0066】
上記比較工程S2、抽出工程S3、演算工程S4、訂正工程S5は汎用性のある汎用型情報処理装置を用いて実行される。例えば、パーソナルコンピュータ、スーパーコンピュータ、マイクロコンピュータ等のマシンは汎用型情報処理装置の一例である。最適化工程S1と比較工程S2の間において、イジングマシンは最適化工程S1で求めたイジングビットと補助ビットの値を汎用型情報処理装置に送り、汎用型情報処理装置はイジングマシンより送られてきたイジングビットと補助ビットの値を用いて比較工程S2以降を実行する。
【0067】
また最適化工程S1は上記汎用型情報処理装置によって実行してもよい。
【0068】
イジングマシン及び汎用型情報処理装置は、上記の情報処理を最適化プログラム、比較プログラム、抽出プログラム、演算プログラム及び訂正プログラムを含む計算プログラムに基づいて行う。
【0069】
最適化プログラムは、最適化工程S1を行う。比較プログラムは、比較工程S2を行う。抽出プログラムは、抽出工程S3を行う。演算プログラムは演算工程S4を行う。訂正プログラムは、訂正工程S5を行う。
【0070】
本実施形態の計算プログラム及び情報処理装置によれば、補助ビットy1を用いてエラーを検出でき、適切な最適解を求めることができる。
【0071】
以上、本発明の実施形態について図面を参照して詳述したが、各実施形態における各構成及びそれらの組み合わせ等は一例であり、本発明の趣旨から逸脱しない範囲内で、構成の付加、省略、置換、及びその他の変更が可能である。
【0072】
例えば、補助ビットを求める際に、選択肢を示す複数の値のうちのすべての値を用いなくてもよい。例えば、
図7は、選択肢を示す複数の値のうち2つの値を論理積した値を補助ビットy
2としている。
【0073】
図7に示す場合は、内部をドットで示すイジングビットx
1~x
3にエラーが生じた際に、補助ビットy
2の値と、イジングビットx
1、x
2に対する論理積の値と、が不一致となる。すなわち、
図7に示す場合は、少なくとも一部のイジングビットx
1~x
3に生じたエラーを検出できる。
【0074】
また例えば、補助ビットは、一つに限られず、複数あってもよい。
図8は、補助ビットが複数ある例である。
図8において、補助ビットy
2は、選択肢を示す複数の値のうち2つの値を論理積した値であり、補助ビットy
3は、選択肢を示す複数の値のうち2つの値を論理和した値である。
【0075】
図8に示す場合は、内部をドットで示すイジングビットx
1~x
3にエラーが生じた際に、補助ビットy
2の値と、イジングビットx
1、x
2に対する論理積の値と、が不一致となる。また内部を斜線で示すイジングビットx
1~x
3にエラーが生じた際に、補助ビットy
3の値と、イジングビットx
1、x
2に対する論理和の値と、が不一致となる。すなわち、
図8に示す場合は、少なくとも一部のイジングビットx
1~x
3に生じたエラーを検出できる。補助ビットy
2を用いてエラーを検出できる部分と、補助ビットy
3を用いてエラーを検出できる部分とは、互いに異なり、より広い部分のエラーを検出できる。
【0076】
また例えば、
図9に示すように、補助ビットの論理演算に用いられる値の数は、補助ビットごとに異なっていてもよい。例えば、
図9において補助ビットy
4は、選択肢を示す複数の値のうち2つの値の排他的論理和であり、補助ビットy
5は、選択肢を示す複数の値のうち3つの値の排他的論理和である。補助ビットy
5は、補助ビットy
4と、選択肢を示す複数の値のうち補助ビットy
4の論理演算に用いられなかった値(x
3)との排他的論理和でもある。
【0077】
イジングモデル及びQUBOは、2つの変数を用いた2体問題の演算は可能であるが、2つ以上の変数を用いた多体問題の演算はできない。
図9に示すように補助ビットy
4を用いると、イジングビットx
1、x
2、x
3の3体問題を、補助ビットy
4とイジングビットx
3の2体問題に置き換えることができる。
【0078】
また補助ビットは、イジングモデル及びQUBOの制約の設定に用いることもできる。
【0079】
図10に示すように、最適化問題の選択肢の数が、2進数表現されたイジングビットx
1~x
3の組み合わせの数より少ない場合がある。
図10は、イジングビットx
1~x
3の組み合わせの数が8であるのに対し、選択肢がA,B,C,F,Gの5つの場合の例である。
【0080】
図10は、選択肢A,B,C,D,Eに対して数値を割り当てる際に、一定のルールに従って割り当てている。ここでいう一定のルールとは、補助ビットy
2と補助ビットy
6とのうち少なくとも一方が、「1」となる組み合わせに対して選択肢の割り当てを行わないというルールである。
【0081】
このような割り当てを行い、補助ビットy2と補助ビットy6とのうち少なくとも一方が「1」となる組み合わせに対して制約を与えることで、情報処理の速度を早めることができる。
【0082】
制約は、エネルギー関数に付与される。例えば、補助ビットy2及び補助ビットy6を用いた最適化問題を解くための演算でイジングエネルギーが大きくなるように相互作用パラメータを規定すると、エネルギー関数に制約が付与できる。より具体的にはエネルギー関数にk1y2+k2y6を付与する。k1とk2は制約項の係数であり、0より大きい値である。
【0083】
コンピュータは、人間であれば除外する組み合わせも他の組み合わせと等価なものとして演算する。上記のような制約を加えると、選択肢の割り当てがされていないありえない組み合わせを、最適化問題を解くための演算から除外することができる。不要な組み合わせが除外されると、情報処理速度が速くなる。
【0084】
補助ビットy2及び補助ビットy6は制約を与えるとともに、イジングビットx1~x3のエラー検出にも利用できる。
【符号の説明】
【0085】
b ビット、x1~x3 イジングビット、y1~y6 補助ビット