(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 2023543629
(86)(22)【出願日】2021-08-27
(86)【国際出願番号】 JP2021031608
(87)【国際公開番号】W WO2023026494
(87)【国際公開日】2023-03-02
【審査請求日】2024-03-08
(73)【特許権者】
【識別番号】000003067
【氏名又は名称】TDK株式会社
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100163496
【氏名又は名称】荒 則彦
(74)【代理人】
【識別番号】100114937
【氏名又は名称】松本 裕幸
(72)【発明者】
【氏名】浅井 海図
(72)【発明者】
【氏名】鈴木 健司
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2021-002331(JP,A)
【文献】米国特許出願公開第2019/0087388(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06N 10/60
(57)【特許請求の範囲】
【請求項1】
イジングモデル又はQUBOに特化したイジングマシン又は汎用性のある汎用型情報処理装置によって実行される計算プログラムであって、
前記計算プログラムは、演算プログラムと検出プログラムとを有し、
前記演算プログラムは、前記イジングマシン又は前記汎用型情報処理装置に、計算モデルを用いた演算を行うように指示し、
前記計算モデルは、イジングモデル又はQUBOに適用可能な計算モデルであり、複数の表現ビットと第1余剰ビットとを有し、
前記複数の表現ビットのそれぞれは、2値の変数であり、
前記複数の表現ビットは、組み合わせ最適化問題における選択肢のそれぞれを表し、
前記第1余剰ビットは、前記複数の表現ビットのいずれかと結合
し、
前記検出プログラムは、前記イジングマシン又は前記汎用型情報処理装置に、前記第1余剰ビットと、前記第1余剰ビットと結合する表現ビットと、を比較し、エラーを検出するように指示する、
計算プログラム。
【請求項2】
前記第1余剰ビットを複数有し、
それぞれの前記第1余剰ビットは、前記複数の表現ビットのいずれかと結合している、請求項1に記載の
計算プログラム。
【請求項3】
前記第1余剰ビットが結合する表現ビット又は前記第1余剰ビットと結合する第2余剰ビットをさらに備える、請求項1又は2に記載の
計算プログラム。
【請求項4】
前記複数の表現ビットは、前記選択肢をワンホット表現している、請求項1~3のいずれか一項に記載の
計算プログラム。
【請求項5】
前記複数の表現ビットは、前記選択肢を2進数表現している、請求項1~4のいずれか一項に記載の
計算プログラム。
【請求項6】
前記第1余剰ビット、前記第2余剰ビット及び前記表現ビットの値に基づき、前記エラーを訂正する
ように、前記イジングマシン又は前記汎用型情報処理装置に、指示する訂正プログラムを
さらに有する、
請求項3に記載の計算プログラム。
【請求項7】
イジングモデル又はQUBOに特化したイジングマシン又は汎用性のある汎用型情報処理装置に請求項1~6のいずれか一項に記載の計算プログラムを実行させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算プログラム及び情報処理方法に関する。
【背景技術】
【0002】
量子アニーリングを用いて組み合わせ最適化問題の最適解を求める試みが行われている(例えば、特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
量子アニーリングマシンには、意図せぬ量子遷移やノイズ等によりエラーが生じる場合があり、最適解が適切に求められない場合がある。
【0005】
本発明は上記事情に鑑みてなされたものであり、ノイズ等により生じるエラーを検出できる、計算モデル、情報処理方法、計算プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上記課題を解決するため、以下の手段を提供する。
【0007】
(1)第1の態様にかかる計算モデルは、イジングモデル又はQUBOに適用可能な計算モデルであり、複数の表現ビットと第1余剰ビットとを有し、前記複数の表現ビットのそれぞれは、2値の変数であり、前記複数の表現ビットは、組み合わせ最適化問題における選択肢のそれぞれを表し、前記第1余剰ビットは、前記複数の表現ビットのいずれかと結合する。
【0008】
(2)上記計算モデルは、前記第1余剰ビットを複数有してもよい。それぞれの前記第1余剰ビットは、前記複数の表現ビットのいずれかと結合している。
【0009】
(3)上記計算モデルは、前記第1余剰ビットが結合する表現ビット又は前記第1余剰ビットと結合する第2余剰ビットをさらに備えてもよい。
【0010】
(4)上記計算モデルにおいて、前記複数の表現ビットは、前記選択肢をワンホット表現していてもよい。
【0011】
(5)上記計算モデルにおいて、前記複数の表現ビットは、前記選択肢を2進数表現していてもよい。
【0012】
(6)上記計算モデルにおいて、前記イジングモデル又は前記QUBOは量子アニーリングマシンによって最適化計算を実行されてもよい。
【0013】
(7)第2の態様にかかる情報処理方法は、上記計算モデルを用いた情報処理方法である。この情報処理方法は、前記第1余剰ビットと、前記第1余剰ビットと結合する表現ビットと、を比較し、エラーを検出する。
【0014】
(8)上記態様にかかる情報処理方法は、計算モデルを用いた情報処理方法であって、前記第1余剰ビットと、前記第1余剰ビットと結合する表現ビットと、を比較し、エラーを検出し、前記第1余剰ビット、前記第2余剰ビット及び前記表現ビットの値に基づき、前記エラーを訂正する。
【0015】
(9)第3の態様にかかる計算プログラムは、上記態様にかかる計算モデルを用いて演算を行う演算プログラムと、前記第1余剰ビットと、前記第1余剰ビットと結合する表現ビットと、を比較し、エラーを検出する検出プログラムと、を有する。
【0016】
(10)上記態様にかかる計算プログラムは、上記態様にかかる計算モデルを用いて演算を行う演算プログラムと、前記第1余剰ビットと、前記第1余剰ビットと結合する表現ビットと、を比較し、エラーを検出する検出プログラムと、前記第1余剰ビット、前記第2余剰ビット及び前記表現ビットの値に基づき、前記エラーを訂正する訂正プログラムと、を有する。
【0017】
(11)第4の態様にかかる情報処理装置は、上記態様にかかる計算プログラムを備える。
【発明の効果】
【0018】
本発明に係る計算モデル、情報処理方法、計算プログラム及び情報処理装置は、ノイズ等により生じたエラーを検出できる。
【図面の簡単な説明】
【0019】
【
図1】イジングモデル、QUBOのイメージ図である。
【
図2】本実施形態に係る計算モデルのイメージ図である。
【
図3】組み合わせ最適化問題における選択肢を複数の表現ビットを用いてワンホット表現した場合の一例である。
【
図4】組み合わせ最適化問題における選択肢を複数の表現ビットを用いて2進数表現した場合の一例である。
【
図5】
図3に示すワンホット表現の場合において、選択肢を第1余剰ビット及び第2余剰ビットまで含めて表示した場合の一例である。
【
図6】
図4に示す2進数表現の場合において、選択肢を第1余剰ビット及び第2余剰ビットまで含めて表示した場合の一例である。
【
図7】本実施形態に情報処理方法のプロセスフロー図である。
【
図8】
図4に示す2進数表現の場合において、第1余剰ビット及び第2余剰ビットまで含めて選択肢を表示した場合の別の例である。
【
図9】本実施形態に係る計算モデルの変形例である。
【
図10】本実施形態に係る計算モデルの変形例である。
【発明を実施するための形態】
【0020】
以下、本実施形態について、図面を適宜参照しながら詳細に説明する。以下の説明で用いる図面は、本実施形態の特徴をわかりやすくするために便宜上特徴となる部分を拡大して示している場合があり、各構成要素の寸法比率などは実際とは異なっていることがある。以下の説明において例示される材料、寸法等は一例であって、本発明はそれらに限定されるものではなく、その要旨を変更しない範囲で適宜変更して実施することが可能である。
【0021】
「第1実施形態」
第1実施形態に係る計算モデルは、量子アニーリングに用いられるイジングモデル又はQUBOに適用可能な計算モデルである。量子アニーリングは、計算モデルに従い、エネルギーが最小の状態(基底状態)を求めるアルゴリズムである。
【0022】
イジングモデルは、複数の要素が相互作用しあい、それぞれの要素に強制力が与えられた場合に、全体として安定となる状態を予想するモデルである。
【0023】
図1は、イジングモデルのイメージ図である。イジングモデルは、強制力Fによって互いに相互作用する複数のビットbを有する。それぞれのビットbはスピンsからなる。スピンsは、上向き又は下向きのいずれかの状態を示す。ビットbのそれぞれは、2値の状態を示す変数である。隣接するスピンsは、強制力Fの設定によって、平行な状態が安定状態となったり、反平行な状態が安定状態となったりする。強制力Fは、相互作用パラメータと言われる。
【0024】
イジングモデルは、以下のエネルギー関数(コスト関数)で表される。
【0025】
【0026】
ここでσ
i、σ
jは入力変数である。σ
i、σ
jは、+1又は-1の2値のいずれかを示す。σ
i、σ
jは、
図1におけるスピンsの状態に対応する。J
ijは、相互作用パラメータである。J
ijは、
図1における強制力Fに対応する。h
iは、外的な要因に伴うパラメータである。
【0027】
QUBO(Quadratic Unconstrained Binary Optimization)は、イジングモデルに等価に変換可能な計算モデルである。イジングモデルでは各ビットbは+1又は-1の2値の変数で表されるのに対し、QUBOでは各ビットbは0又は1の2値の変数で表される。QUBOは、イジングモデルと同様に計算モデルに適用できる。QUBOは以下のエネルギー関数(コスト関数)で表される。
【0028】
【0029】
ここでqi、qjは入力変数である。qi、qjは、1又は0の2値のいずれかを示す。qi、qjは、イジングモデルにおけるスピンsの状態に対応する。Qijは、QUBOにおける相互作用パラメータである。Qijは、イジングモデルにおける強制力Fに対応する。
【0030】
イジングモデル及びQUBOは、組み合わせ最適化問題に適用できる。
【0031】
図2は、本実施形態に係る計算モデルの一例のイメージ図である。本実施形態に係る計算モデル100は、複数の表現ビット10と、複数の第1余剰ビット21と、複数の第2余剰ビット22と、を有する。
【0032】
表現ビット10、第1余剰ビット21及び第2余剰ビット22は、それぞれ
図1におけるビットbのそれぞれに対応する。表現ビット10、第1余剰ビット21及び第2余剰ビット22は、それぞれエネルギー関数(コスト関数)における入力変数σ
i、σ
j又は入力変数q
i、q
jである。
【0033】
表現ビット10、第1余剰ビット21及び第2余剰ビット22はそれぞれ、2値の変数x1~x5、y11~y51、y12~y52である。変数x1~x5、y11~y51、y12~y52はそれぞれ、例えば、1又は0を示す。変数x1~x5、y11~y51、y12~y52はそれぞれ、例えば、+1又は-1を示してもよい。表現ビット10、第1余剰ビット21及び第2余剰ビット22の数は問わない。
【0034】
表現ビット10は、2以上のビットと結合している。表現ビット10は、他の表現ビット10と結合している。表現ビット10間の結合の強さは、強制力Fの大きさによって異なる。
【0035】
第1余剰ビット21は、表現ビット10と結合する。第1余剰ビット21は、例えば、それぞれの表現ビット10に一つずつ結合している。
図2に示す第1余剰ビット21は、表現ビット10のみと結合している。
【0036】
第2余剰ビット22は、例えば、表現ビット10と結合する。第2余剰ビット22は、例えば、それぞれの表現ビット10に一つずつ結合している。
図2に示す第2余剰ビット22は、表現ビット10のみと結合している。
【0037】
複数の表現ビット10は、それぞれの値の組み合わせで、組み合わせ最適化問題における選択肢のそれぞれを表す。それぞれの表現ビット10の値は、組み合わせ最適化問題における選択肢を表すパラメータである。組み合わせ最適化問題における選択肢は、例えば巡回セールスマン問題の場合、どの都市にどの順番で行くというルートである。
【0038】
複数の表現ビット10は、組み合わせ最適化問題における選択肢をワンホット表現する場合と、2進数表現する場合と、ワンホット表現と2進数表現とを組み合わせる場合と、がある。ワンホット表現と2進数表現とを組み合わせるとは、複数の選択肢のうちいくつかの選択肢をワンホット表現で表し、残りの選択肢を2進数表現で表すことをいう。
【0039】
図3は、ワンホット表現で選択肢を表示する場合の一例である。
図3におけるA、B、Cは、組み合わせ最適化問題における選択肢である。
図3では、それぞれの表現ビット10が「1」、「0」を示す。
【0040】
ワンホット表現は、N種の情報をN個の表現ビット10で表現する方法である。ワンホット表現の場合、N個の表現ビット10のうちのいずれか一つのみが「1」となり、他のビットはすべて「0」となる。
図3では、Aという選択肢を(1,0,0)に割り当て、Bという選択肢を(0,1,0)に割り当て、Cという選択肢を(0,0,1)に割り当てている。
【0041】
ここでは選択肢が3つの例を示したが、ワンホット表現の場合は表現ビット10の数を超える選択肢を表現することはできない。例えば、
図2に示す計算モデル100は、表現ビット10の数が5つなので、5つの選択肢しか表現できない。
【0042】
図4は、2進数表現で選択肢を表示する場合の一例である。
図4におけるA~Hは、組み合わせ最適化問題における選択肢である。
【0043】
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)に割り当てている。
【0044】
例えば、
図2に示す計算モデル100は、表現ビット10の数が5つなので、2進数表現であれば、2
5の選択肢を表現できる。
【0045】
2進数表現は、少ないビットで複数の状態を表現できると言う利点がある。他方で、2進数表現は、ビットの一つがノイズ等で書き換わると、他の状態を表してしまう。例えば、
図4の選択肢Aにおいて、x
1がノイズにより「1」ではなく「0」と誤認識された場合、選択肢Gを表現することになる。そのため2進数表現は、特にノイズへの対策が求められる。
【0046】
第1余剰ビット21は、表現ビット10と結合する。第1余剰ビット21の変数y11~y51は、結合する表現ビット10の変数x1~x5との間に一定のルールを有する。一定のルールは、表現ビット10と第1余剰ビット21との間の強制力Fを設定することで、エネルギー関数に組み込むことができる。例えば、第1余剰ビット21の変数y11~y51は、結合する表現ビット10の変数x1~x5と同じ値を示す。
【0047】
第2余剰ビット22は、例えば、表現ビット10と結合する。第2余剰ビット22の変数y12~y52は、結合する表現ビット10の変数x1~x5との間に一定のルールを有する。一定のルールは、表現ビット10と第2余剰ビット22との間の強制力Fを設定することで、エネルギー関数に組み込むことができる。例えば、第2余剰ビット22の変数y12~y52は、結合する表現ビット10の変数x1~x5と同じ値を示す。
【0048】
図5は、
図3に示すワンホット表現の場合において、第1余剰ビット21及び第2余剰ビット22まで含めて選択肢を表示した場合の一例である。また
図6は、
図4に示す2進数表現の場合において、第1余剰ビット21及び第2余剰ビット22まで含めて選択肢を表示した場合の一例である。
【0049】
本実施形態に係る計算モデル100は、第1余剰ビット21及び第2余剰ビット22を用いて、エラーの検出及びエラーの訂正をすることができる。例えば、「1」と認識すべきところを「0」とであると認識する等のビット反転は、エラーの一例である。エラーは、量子アニーリングマシンにおいて意図せぬ量子遷移やノイズ等が生じた場合に起きる。以下、本実施形態に係る計算モデルを用いた情報処理方法について説明する。
【0050】
図7は、本実施形態にかかる情報処理方法のプロセスフローである。本実施形態にかかる情報処理方法は、例えば、最適化工程S1とエラー検出工程S2と訂正工程S3とを有する。
【0051】
最適化工程S1では、上記の計算モデルを用いて最適化問題を解くための演算を行う。例えば、上述のエネルギー関数(コスト関数)に対して、最適化問題の選択肢を適用する。例えば、上述のエネルギー関数の入力変数qi、qjは、表現ビット10、第1余剰ビット21及び第2余剰ビット22の変数x1~x5、y11~y51、y12~y52に対応する。また表現ビット10と第1余剰ビット21の間の相互作用パラメータQijを設定することで、表現ビット10と第1余剰ビット21の間に一定のルールを付与できる。同様に、表現ビット10と第2余剰ビット22の間の相互作用パラメータQijを設定することで、表現ビット10と第2余剰ビット22の間に一定のルールを付与できる。
【0052】
エラー検出工程S2は、例えば、最適化工程S1の後に行われる。
【0053】
エラー検出工程S2では、表現ビット10の変数x1~x5の値と、その表現ビット10に結合する第1余剰ビット21の変数y11~y51の値と、を比較する。
【0054】
表現ビット10の変数x
1~x
5の値と、その表現ビット10に結合する第1余剰ビット21の変数y
11~y
51の値とは、エラーによるビット反転が生じていない限り、これらの間に付与された一定のルールに従った関係を有する。例えば、
図5及び
図6の場合は、第1余剰ビット21の変数y
11~y
51と、結合する表現ビット10の変数x
1~x
5とが同じ値を示すというルールが付与されている。そのため、表現ビット10の変数x
1が「1」であれば第1余剰ビット21の変数y
11は「1」であり、表現ビット10の変数x
1が「0」であれば、第1余剰ビット21の変数y
11は「0」である。
【0055】
これに対し、エラーによるビット反転が生じると、表現ビット10と、その表現ビット10に結合する第1余剰ビット21とが、付与された一定のルールを満たさなくなる。例えば、
図5及び
図6の場合、第1余剰ビット21の変数y
11~y
51と、結合する表現ビット10の変数x
1~x
5とが同じ値を示さなくなる。例えば、表現ビット10の変数x
1が「1」が「0」と誤認識された場合、表現ビット10の変数x
1が「0」であるのにも関わらず、第1余剰ビット21の変数y
11が「1」となる。
【0056】
つまり、表現ビット10とその表現ビット10に結合する第1余剰ビット21とが、一定のルールを満たす場合はエラーが生じていないと判断でき、一定のルールを満たさない場合はエラーが生じていると判断できる。
【0057】
次いで、訂正工程S3を行う。訂正工程S3は、エラー部分特定工程と、ビット反転工程と、を有する。
【0058】
エラー検出工程S2で判定されたエラーは、表現ビット10がビット反転することにより生じる場合と、第1余剰ビット21がビット反転することにより生じる場合と、がある。エラー部分特定工程では、いずれが原因であるかを特定する。
【0059】
エラー部分特定工程では、エラーが生じていると判定された表現ビット10の変数x1~x5の値と、その表現ビット10に結合する第1余剰ビット21の変数y11~y51の値と、その表現ビット10に結合する第2余剰ビット22の変数y12~y52の値と、を比較する。
【0060】
例えば、
図5及び
図6における選択肢Aのx
1がビット反転した場合、(x
1,y
11,y
12)=(0,1,1)となる。ビット反転は1ビット毎に生じるため、エラーが生じたビットのみが反転し、他のビットは反転しない。例えば、3つの値が一致するというルールがこれらの間に付与されている場合は、多数決により反転したビットを特定できる。
【0061】
ビット反転工程では、エラーの原因であると特定されたビットを反転させ、適切な値に戻す。例えば、上述の場合は(x1,y11,y12)=(0,1,1)のうちx1を反転させ、(x1,y11,y12)=(1,1,1)に戻す。
【0062】
上記最適化工程S1は、例えば、イジングモデルやQUBOの計算に特化した情報処理装置(イジングマシン)で実行される。例えば量子アニーリングマシン(D-wave、NEC)やコヒーレントイジングマシン(NTT)、シミュレーテッド分岐マシン(東芝)、デジタルアニーラ(富士通)、CMOSアニーラ(日立)等のマシンは、情報処理装置の一例である。
【0063】
上記エラー検出工程S2及び訂正工程S3は汎用性のある汎用型情報処理装置を用いて実行される。例えば、パーソナルコンピュータ、スーパーコンピュータ、マイクロコンピュータ等のマシンは汎用型情報処理装置の一例である。最適化工程S1とエラー検出工程S2の間において、イジングマシンは最適化工程S1で求めた表現ビットと余剰ビットの値を汎用型情報処理装置に送り、汎用型情報処理装置はイジングマシンより送られてきた表現ビットと余剰ビットの値を用いてエラー検出工程S2以降を実行する。
【0064】
また最適化工程S1は上記汎用型情報処理装置によって実行してもよい。
【0065】
情報処理装置(アニーリングマシン)は、量子ゲート型の計算機でもよい。例えばQAQA(Quantum Approximate Optimization Algorithm)を用いればイジングモデルやQUBOを量子ゲート型計算機で計算することができる。
【0066】
情報処理装置は、最適化プログラムに基づいて上記の情報処理を行う。
【0067】
最適化プログラムは、最適化工程S1を行う。検出プログラムは、エラー検出工程S2を行う。訂正プログラムは、訂正工程S3を行う。
【0068】
本実施形態の計算プログラム及び情報処理装置は、第1余剰ビット21を用いてエラーを検出でき、第2余剰ビット22を用いてエラーを訂正でき、適切な最適解を求めることができる。
【0069】
以上、本発明の実施形態について図面を参照して詳述したが、各実施形態における各構成及びそれらの組み合わせ等は一例であり、本発明の趣旨から逸脱しない範囲内で、構成の付加、省略、置換、及びその他の変更が可能である。
【0070】
例えば、上記の実施形態では、表現ビット10、第1余剰ビット21及び第2余剰ビット22の間に、それぞれの値が一致するというルールが付与されているが、これらの間に付与するルールは当該ルールに限られない。
【0071】
図8は、
図4に示す2進数表現の場合において、第1余剰ビット及び第2余剰ビットまで含めて選択肢を表示した場合の別の例である。
図8では、表現ビット10の値と、第1余剰ビット21及び第2余剰ビット22のそれぞれの値とが異なるというルールを付与している。
【0072】
この場合は、第1余剰ビット21の変数y11~y51と、結合する表現ビット10の変数x1~x5とが一致する場合にエラーが生じていると判断し、一致しない場合にエラーが生じていないと判断する。また第1余剰ビット21の変数y11~y51と第2余剰ビット22の変数y12~y52とが一致する場合は、表現ビット10にエラーが生じていると判断でき、エラーが生じている箇所を特定できる。
【0073】
この他、表現ビット10と第1余剰ビット21との間にこれらの値が一致するというルールを付与し、表現ビット10と第2余剰ビット22との間にこれらの値が不一致となるというルールを付与してもよい。またそれぞれの間に、これと逆のルールを付与してもよい。
【0074】
また
図2では、第1余剰ビット21と第2余剰ビット22のそれぞれが、表現ビット10と結合している場合を示したが、第2余剰ビット22は第1余剰ビット21と結合していてもよい。
図9に示す計算モデル101は、本実施形態に係る計算モデルの変形例である。
【0075】
図9に示す第2余剰ビット22は、例えば、第1余剰ビット21と結合する。第2余剰ビット22の変数y
12~y
52は、結合する第1余剰ビット21の変数y
11~y
51との間に一定のルールを有する。一定のルールは、第1余剰ビット21と第2余剰ビット22との間の強制力Fを設定することで、エネルギー関数に組み込むことができる。
【0076】
また
図10に示すように、計算モデル102は第2余剰ビット22を有さなくてもよい。
図10に示す計算モデル102は、本実施形態に係る計算モデルの変形例である。計算モデル102は、第1余剰ビット21を有するため、エラーの検出を行うことができる。計算モデル102は、エラーの訂正を行うことはできないが、エラーの訂正を別手段で行ったり、エラーが検出された場合に演算を初期化する等の規定をすれば、計算モデル102がエラーを訂正する機能を有さなくてもよい。
【0077】
上記実施形態及び変形例の特徴的な構成はそれぞれ適宜組み合わせることができる。
【符号の説明】
【0078】
10…表現ビット
21…第1余剰ビット
22…第2余剰ビット
100、101、102…計算モデル
S1…最適化工程
S2…エラー検出工程
S3…訂正工程
S4…再演算工程
x1~x5、y11~y51、y12~y52 変数