(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-19
(54)【発明の名称】データ処理装置及びデータ処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20220112BHJP
G06N 10/00 20220101ALI20220112BHJP
G06J 3/00 20060101ALI20220112BHJP
【FI】
G06N99/00 180
G06N10/00
G06J3/00
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021505389
(86)(22)【出願日】2019-07-31
(85)【翻訳文提出日】2021-01-29
(86)【国際出願番号】 US2019044266
(87)【国際公開番号】W WO2020028453
(87)【国際公開日】2020-02-06
(31)【優先権主張番号】PCT/US2018/044469
(32)【優先日】2018-07-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(71)【出願人】
【識別番号】503360115
【氏名又は名称】国立研究開発法人科学技術振興機構
(71)【出願人】
【識別番号】516231051
【氏名又は名称】ザ ボード オブ トラスティーズ オブ ザ レランド スタンフォード ジュニア ユニバーシティー
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】ルル,ティモシー ギヨーム
(72)【発明者】
【氏名】合原 一幸
(72)【発明者】
【氏名】山本 喜久
(72)【発明者】
【氏名】ピーター マクマホン
(57)【要約】
所与の問題を解くよう構成された、簡易なハードウエアを用いたデータ処理装置であって、所定の時間発展的処理によって状態データの更新を繰り返す状態データ処理部と、現在の状態データのコスト関数の値を演算するコスト評価部と、現在の状態データの振幅の均一性に関するエラー値を演算するエラー演算部と、を有し、状態データ処理部は、状態データについて時間発展的処理を行い、コスト関数とエラー演算部によって演算された、現在の状態データの振幅の均一性に関するエラー値とに基づいて、現在の状態データを更新する、データ処理装置である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
所与の問題を解くよう構成されたデータ処理装置であって、
所定の時間発展的処理によって状態データの更新を繰り返す状態データ処理部と、
現在の状態データのコスト関数の値を演算するコスト評価部と、
現在の状態データの振幅の均一性に関するエラー値を演算するエラー演算部と、を有し、
前記状態データは、変数の集合であり、前記状態データ処理部は、状態データについて時間発展的処理を行い、前記コスト関数と前記エラー演算部によって演算された、現在の状態データの振幅の均一性に関する前記エラー値とに基づいて、現在の状態データを更新する、データ処理装置。
【請求項2】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部は、状態データについて時間発展的処理を行い、前記コスト関数の勾配と、前記エラー値とに基づいて現在の状態データを更新するデータ処理装置。
【請求項3】
請求項2に記載のデータ処理装置であって、
前記時間発展的処理は、現在の状態データに基づくゲイン値によって単安定から双安定へ変化するアーキタイプポテンシャルに基づいて現在の状態データを更新するデータ処理装置。
【請求項4】
請求項1に記載のデータ処理装置であって、
前記エラー演算部は、少なくとも一つの、解決するべき問題の制約に関わるエラー値をさらに演算するデータ処理装置。
【請求項5】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部は、さらに、前記状態データを所定の部分空間に射影する処理を行うデータ処理装置。
【請求項6】
請求項1に記載のデータ処理装置であって、さらに、
前記現在の状態データに基づいてターゲット振幅を演算する変調部を有し、
前記エラー演算部が、当該ターゲット振幅を利用して、現在の状態データの振幅の均一性に関する前記エラー値を演算するデータ処理装置。
【請求項7】
請求項6に記載のデータ処理装置であって、
前記状態データ処理部は、さらに、前記状態データを、前記ターゲット振幅で規定された所定の部分空間に射影する処理を行うデータ処理装置。
【請求項8】
請求項1に記載のデータ処理装置であって、さらに、
前記現在の状態データに基づいて、ゲイン値を演算する変調部を有し、
前記状態データ処理部は、前記現在の状態データに基づいて演算されたゲイン値を利用してアーキタイプ単安定/双安定ポテンシャルも更新するデータ処理装置。
【請求項9】
請求項1に記載のデータ処理装置であって、さらに、
エラー値の変化率を動的に定める変調部を有し、
前記エラー演算部は、エラー値についての時間発展的処理を行い、前記エラー値の変化率と、前記エラー値と、前記状態データと、前記コスト関数とに基づいて現在のエラー値を更新するデータ処理装置。
【請求項10】
請求項8に記載のデータ処理装置であって、
前記ゲイン値は、前記時間発展的処理の開始前に、前記コスト関数のパラメータを用いて演算された定数に依存するデータ処理装置。
【請求項11】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部が、イジングモデル量子計算デバイスを用いて、コスト関数に基づき、現在の状態データを更新して、状態データの時間発展的処理を実行し、
前記イジングモデル量子計算デバイスは、複数のイジングモデルスピンを模した複数の擬スピンパルスであって、相互に同じ発振周波数を有する擬スピンパルスをパラメトリックに発振するパラメトリック発振器と、
前記複数の擬スピンパルスを、その内部で周回させて伝播するリング共振器と、
前記複数の擬スピンパルスが前記リング共振器内を周回して到来する度に、前記複数の擬スピンパルスの位相と振幅とを仮に計測し、前記複数の擬スピンパルスの擬スピンを仮計測する仮スピン計測手段と、
前記コスト評価部の出力と前記エラー値とに従い、状態データの時間発展を得るべく前記計測された擬スピンパルスに合成されるべきデータを演算して、当該状態データの時間発展の結果を出力するFPGAデバイスと、を有するデータ処理装置。
【請求項12】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部は、状態データとエラー値の演算を行うGPUまたはFPGA、あるいは、アナログ電子コンピューティングデバイスを用いて、前記状態データの時間発展的処理を実行し、前記コスト関数に基づいてデータを更新するデータ処理装置。
【請求項13】
状態データ処理部と、コスト評価部と、エラー演算部とを備えて、所与の問題を解くデータ処理装置を用いたデータ処理方法であって、
前記状態データ処理部が、所定の時間発展的処理によって状態データの更新を繰り返し、
前記コスト評価部が、現在の状態データのコスト関数の値を演算し、
前記エラー演算部が、現在の状態データの振幅の均一性に関するエラー値を演算し、
前記状態データは、変数の集合であり、前記状態データ処理部が、状態データについて時間発展的処理を行い、前記コスト関数と前記エラー演算部によって演算された、現在の状態データの振幅の均一性に関する前記エラー値とに基づいて、現在の状態データを更新する、データ処理方法。
【請求項14】
請求項13に記載のデータ処理方法であって、
前記データ処理装置は、さらに、変調部を備え、
当該変調部が、振幅の均一性と制約とに係るエラー変数を更新し、前記制約と前記現在の状態データとの間のカップリング項を演算し、ゲインと飽和とを演算し、
前記状態データ処理部が、状態データの更新のためのインジェクション項を演算し、当該状態データ処理部が所定の時間発展的処理により状態データを繰り返し更新している間に、当該状態データを有効な部分空間に射影し、
エラー演算部が、前記現在の状態データの振幅の均一性と制約とに関わるエラー値を演算し、
前記繰り返し処理が所定の条件が満足されるまで繰り返されるデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、組み合わせ最適化問題の解を求めるデータ処理装置に関する。
【背景技術】
【0002】
組み合わせ最適化問題を解決するために、古典的なデジタルコンピュータでは、汎用中央処理装置(CPU)で動くようにコンパイルされたアルゴリズムが用いられてきた。長年にわたり、デジタルハードウエアの急速な小型化(例えば、CPU中のトランジスタの数に対する規模の小型化)は可能であり続けた。しかし、デジタル部品の小型化は限界に近づいてきており、詰め込まれたトランジスタが、十分なエネルギー効率を保ちつつ、安定して機能するのは難しくなってきている。理論上は、このような古典的なコンピュータで用いられるコンピュータ処理は、一般にノイマン型の構成として知られている。
【0003】
このような古典的なコンピュータによる計算がチューリングマシンを使って行われるものとすると、これらの古典的なコンピュータは、リソースの限界を無視さえすれば、チャーチ=チューリングの定理として証明されるように、「あらゆるものに使える」計算能力を有する。上述のようにCPUが実行できる論理演算の数にも限界があるが、それに加えて、CPU装置とメモリとの間の帯域幅が有限であることも、古典的なコンピュータにおける情報の流れを制限する障害となっていることは良く知られている。
【0004】
古典的なコンピュータにおける制限を回避するため、「非古典的な」データプロセッサが考えられてきている。このような新しいコンピュータは必ずしも何にでも使える計算能力は有さないが、特定の計算タスクに最適化されている。情報の処理を、抽象化の高いレベルではなく、物理層に近い、抽象化の低いレベルで直接実行することで、パフォーマンスを向上できる。「ソフト」データプロセッサを使えば、特定の目的に合うように動的に内部構造を再構成できるので、抽象化のレベルが最も低いレベルでの計算処理も可能となる。これによって、メモリと処理動作とが協働し、大量に並列的な計算処理が可能となる。
【0005】
さらに、古典的なコンピュータで使われているバイナリ状態の信号ではなく、データプロセッサのアナログ信号を直接使用することも提案されてきている。アナログ状態の信号は、例えば閾値未満の領域(subthreshold regime)で動作する電子部品を使用するか、あるいは非線形光学現象を利用することで、電子工学領域において物理的に実装できる。このようなアナログコンピュータは、理論的にはデジタルコンピュータでシミュレートでき、またこのアナログコンピュータならば、ある種の特定の問題、例えば微分方程式のシミュレーションに係る問題に対しては、十分高速に処理することができる。このような装置を開発することへの潜在的な動機の一つは、計算に使用するハードウエアの物理的な装置で、0と1だけではなく、もっと多くの情報を符号化したいという点にある。このように、高い論理レベルではなく、より低い物理レベルで直接計算処理をすることによって、リソースを増やすことが可能となる。
【0006】
具体的に、アナログ・ホップフィールド・ニューラル・ネットワーク(米国特許第4660166号)のような近年提案されたアナログコンピュータや、コヒーレント・イジングマシン(例えば、米国特許第9411026号)のような光学アナログコンピュータにより、組み合わせ最適化問題に対する近似的な解を求めることができる。
【0007】
現在、高速で計算処理を行うため、このようなマシンはアナログハードウエアよって実現された並列計算を利用している(米国特許第4660166号)。このような装置とニューラルネットワークとの概念的な近似に注目するのも興味深い。計算論的神経科学の分野での最近の進歩は、脳内で起きているアナログ処理に触発された、新規なアナログ計算スキームの開発に応用することができる。
【0008】
GPU(画像処理装置)、TPU(テンソル処理装置)、FPGA等の、非従来型の神経系を模した(neuro-inspired)データプロセッサは、分類の分野で成功裏に応用されており、ディープラーニングネットワークにおける最近のトレンドに例示されるように、従来のハードウエアを使用した最先端の手法をしのぐことも可能である。
【0009】
しかし、上述したアナログ・ニューラルネットワークには2つの制限がある。1つは、コスト関数(又は、目的関数)をシステムのエネルギー関数(又は、通常、接続が対称的であるときに定義されるリアプノフ関数)に写像することで、組み合わせ最適化問題に対する合理的な近似解を得ることは可能だが、どのような組み合わせ最適化問題に対しても最適解を得られる保証はない。当然ながら、非凸問題の場合には、このようなシステムはエネルギー関数の局所的最小値(local minima)に捕捉されることがある。アナログ・ニューラルネットワークは一般に散逸系であり、コヒーレント・イジングマシンの構造においては、最小損失となる解のみが安定的であり、そうでない場合は不安定であるというケースで、システムのゲインを最小値に設定することで、解の質を向上する方法などが提案されてきている。しかし、アナログ変数の振幅が一般的にヘテロ(つまりすべてが等しくない)ので、エネルギー関数による目的関数のマッピングが誤った状態となり、最小損失となる領域で操作しても最適解への収束を保証できない。
【0010】
2つ目の制限として、制約つき最適化問題において、通常、ペナルティ項をコスト関数に加えることでソフト制約(soft constraints)に変換される制約が、適切に考慮されないということがある。ソフト制約(つまりペナルティ項)を用いることで、収束問題に帰することは知られているが、ペナルティ項はグローバルなコスト関数の和を求める際に、互いに干渉してしまうことも知られている。さらに、ペナルティ項は一般に大きく異なったスケールを持つため、注意深く選んだ定数係数を使って訂正する必要がある。
【0011】
これらの問題を解決するために種々の方法が提案されている。離散状態の確率論的探索である、一般的なシミュレーテッドアニーリング法では、最適解への収束は、システムの「温度」を、適切な割合で徐々に低下させることで保証される。この収束は解析的に証明されたものであり、現実には、与えられた組み合わせ最適化問題を効率的に解くための最適なスケジューリングを見いだすことは困難である(L. Ingber, Mathematical and computer modelling, 18, (29), 1993)。
【0012】
ハードウェアの量子動力学的性質を利用することを目的とした量子アナログデバイスまで拡大された物理層に近いコンピュータ概念もある。初期の強い横磁場(transverse field)を徐々に減衰させる量子アニーリングデバイスを構成する試みもある。断熱的方法の限界として、このようなシステムは、基底状態にとどまり横磁場が消失したときに組み合わせ最適化問題の最適解の状態に到達する。例えばD-ウェーブ社による(米国特許第6803599号のような)、このような装置の現実的な実装は、装置内の量子状態を破壊する環境との相互作用を受け得るほか、コンポーネントを特殊な接続トポロジ(キメラグラフ)で接続する必要があり、組み合わせ最適化問題を、このトポロジに埋め込むことが要求され、リソースのコストが増大する。このような限界のため、一般的な種類の問題の解を得るためには、シミュレート・アニーリングのような従来の方法の類いに比べ、上記量子デバイスは十分な計算機的優位性を確立しているとは広く認められていないのが現状である。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第4660166号明細書
【特許文献2】米国特許第9411026号明細書
【特許文献3】米国特許第4660166号明細書
【特許文献4】米国特許第6803599号明細書
【発明の概要】
【発明が解決しようとする課題】
【0014】
上述のように、関連技術においては、デジタル及びアナログコンピュータデバイスの双方で、簡易なハードウェア構成で、特定の問題を解決する際の速度の改善が困難になっている。そこで、簡易なハードウェア構成で、迅速に特定の問題を解決するコンピュータ装置が要望されている。
【課題を解決するための手段】
【0015】
上記従来例の問題点を解決するための本発明の一態様は、所与の課題を解決するためのデータ処理装置であって、所定の時間発展的処理によって状態データの更新を繰り返す状態データ処理部と、現在の状態データに対するコスト関数の値を求めるコスト評価部と、現在の状態データの振幅の均一性に関するエラー値を計算するエラー演算部、とを有し、前記状態データ処理部が、前記状態データについて所定の時間発展的処理を行い、コスト関数と、エラー演算部によって計算されたエラー値と、に基づいて現在の状態データを更新する、データ処理装置。
【発明の効果】
【0016】
本発明によると、簡易なハードウェア構成で、迅速に特定の問題を解決できるコンピュータ装置が提供される。もっとも、各請求項記載の発明が有利な作用効果をすべて奏するものとして限定的に解釈されるべきではない。
【0017】
また、ここでは以下の説明の理解のため、構成や効果の概要を簡潔に示した。追加的な構成及び効果が以下に、各請求項記載の構成に関連して説明される。
【図面の簡単な説明】
【0018】
実施形態と効果の理解のため、以下の図面を参照しつつ説明する。
【0019】
【
図1】本発明の実施の形態に係るデータ処理装置の構成例を表す概略図である。
【
図2】本発明の実施の形態に係るデータ処理装置の機能的構成の例を表す概略図である。
【
図3】本発明の実施の形態に係るデータ処理装置のエラー演算部の構成例を表す概略図である。
【
図4】本発明の実施の形態に係るデータ処理装置の状態データ処理部の例を表す説明図である。
【
図5】本発明の実施の形態に係るデータ処理装置の機能的構成を表す概略図である。
【
図6】本発明の実施の形態に係るデータ処理装置における処理の例を表す概略フローチャート図である。
【発明を実施するための形態】
【0020】
本発明の好ましい実施態様に係るデータ処理装置1は、
図1に示すように、プロセッサ11、及び、入出力装置13を含む。
【0021】
本実施の形態のデータ処理装置1は、イジングマシンやホップフィールドニューラルネットワークと同様に、後に説明するように、組み合わせ最適化問題の二値変数をアナログ変数に変換する状態エンコード部を備える。それに加え、データ処理装置1は、もう一つのサブシステムであるエラーエンコード部を有し、このエラーエンコード部は、データ処理装置1の定常状態(steady-states)と、組み合わせ最適化問題のより低いコスト値の構成との間の変換(マッピング)を補正する。状態エンコード部は、エラーエンコード部に対して非対称に接続される。
【0022】
プロセッサ11はロジックゲートやメモリブロックを備えたFPGAでもよい。本実施態様によれば、プロセッサ11は所定の時間発展的処理によって状態データの更新を繰り返し、状態データに対するコスト関数の値を求め、状態データの振幅の均一性に関するエラー値を計算する。状態データの更新の際には、プロセッサ11はエラー値及びコスト関数の値も利用する。プロセッサ11の詳細な処理については後述する。
【0023】
プロセッサ11のメモリブロックは、プロセッサ11のロジックゲートの処理で利用される、状態データなどのデータを保持する。
【0024】
入出力(I/O)装置13は、キーボード、マウス等の入力装置を含む。また、この入出力(I/O)装置13は、プロセッサ11からの指示に応じて、状態データや、コスト関数の値などの情報を出力するディスプレイも含んでもよい。
【0025】
以下に、プロセッサ11での処理を記載する。以下の例では、本発明の一実施態様に係るデータ処理装置1によって解決される課題は、組み合わせ最適化問題であるものとする。組み合わせ最適化問題においては、コスト関数が規定され、組み合わせ最適化問題のコスト関数が極小化されることが、組み合わせ最適化問題が解かれたことを意味する。
【0026】
ここではコスト関数はV(0)(σ)で表されるとし、このうち、V(0)(σ)の値はどのベクトルσに対しても実数となり、ベクトルσはσ={σi}i (i = 1,2,…,N)、σi =±1であるとする。コスト関数V(0)(σ)は、パラメータ集合{M0k}k (k = 1,2,…)で規定され、M0kはベクトルまたは行列であり、より一般的にはテンソルである。ブーリアン型変数の数(問題の大きさ)はNで表される。
【0027】
制約つき最適化問題の場合には、許容される解は、すべての配置からなる空間に対して、Sで表される部分集合を構成する。所与の組み合わせ最適化問題の制約に対して、部分集合Sは下記のような等式制約及び/又は不等式制約によって規定される。
(1)式で、k, k’ = 1,2,…,Kである。
【0028】
行列及びベクトルAk、Ck,、bk、及びdk’は、{Nki}i又は{Mki}iで表される別のパラメータ集合で規定される。ここで、kは制約のインデックスであり、k =1,2,…,K, i=1,2,…である。
【0029】
制約は2つのカテゴリーに分けられる。制約の第一の集合は、タイプIのソフト制約と呼ばれるもので、ペナルティ項をコスト関数に加算し、その制約によって規定される有効な部分空間にシステムを射影することによって充足される制約である。全コスト関数V
*は、これらの制約を考慮したものであり、下記のようになる。
(2)式において、U
(K)は、制約kによって与えられるペナルティ項である。q
kは正定数パラメータであり、k=1, 2, …, K
Iであり、K
Iは当該部分集合内の制約の総数を表す。ベクトルσが制約kを充足すると、ペナルティ項U
(K)(σ)は極小となる。ペナルティ項U
(K)(σ)は、パラメータ{M
ki}
iと、有効部分空間への射影Pとに依存する関数であり、ここでは、提案されたシステムに対して入力されるものである。
【0030】
制約の第二の集合は、タイプIIのソフト制約と呼ばれるもので、エラー検出訂正フィードバックループを使って導入される制約である。パラメータ{Nki}i(k=1,…, KII,ただしKI + KII = K)に依存するペナルティ項V(K)も規定される必要がある。このペナルティ項V(K)はエラー訂正に使用される。更に、gkは制約が充足されないときに正の値をとる関数であり、エラー検出に使用される関数であるとする。制約が充足される場合、この関数gkの値は負となるものとする。
【0031】
これらのU(k), V(k), P, 及び gkは、解かれるべき組み合わせ問題とその制約に合わせて選択される。言い換えれば、U(k), V(k), P, 及び gkはデータ処理装置1のユーザによって決定される。
【0032】
図2は、プロセッサ11の機能的な構造の一例を示す。
図2にあるように、一つの実施例では、プロセッサ11は、機能的に、状態データプロセッサ21、コスト評価部22、エラー演算部23、変調部24、及び出力部25を含む。
【0033】
状態データプロセッサ21は、所定の時間発展的処理によって状態データの更新を繰り返す。ここで状態データは固定小数点変数xi(i=1,2,…N)の集合であり、例えばアナログ状態を符号化して得られるものである。
【0034】
本実施形態において、この状態データプロセッサ21は所定の時間発展的処理によって状態データの更新を繰り返し、更新した状態データを有効な部分空間に射影し、射影した更新済状態データを新しい状態データとしてメモリブロックに保持する。
【0035】
具体的には、状態データプロセッサ21は処理部210と、ゲイン消失シミュレータ211と、射影部212とを有する。各処理部210は、対応する状態データxi(i=1,2,…N)をそれぞれ処理する。ゲイン消失シミュレータ211は孤立した(非結合な)ユニットである。このゲイン消失シミュレータ計算部211は状態データxiと、線形ゲインpとの入力を受けて、ポテンシャルVbを最急降下法により演算する。この演算は、次の常微分方程式で簡単に示すことができ、この常微分方程式は、Ii=0のときに最急降下法に相当するものとなる。
∂txi = f(xi) + Ii (3)
式(3)において、f(xi)=-∂Vb/∂xi であり、Vbは孤立した(非結合な)ユニットのエネルギー関数またはリアプノフ関数であり、例えば、次のようなポテンシャル関数である:
Vb =-(-1+p)xi
2/2+xi
4/4
なお、Iiについては後述する。
【0036】
エネルギー関数Vbは、典型的には双安定ポテンシャル(単安定または双安定ポテンシャルの典型(archetype))であり、線形ゲインpの値によって単安定(p<1のとき)と双安定(p>1のとき)とのいずれにもなり得る。Vbが双安定の場合、状態データxiはIi=0のとき、ポテンシャルVbが最小となるところでバイナリー状態に収束する。なお、ここでIiは、i番目の処理部210に外部から入力されるアナログ信号を表す。外部から入力されるアナログ信号の例については、後に述べる。
【0037】
これらより(3)式は下記のように書き換えられる。
∂txi = (-1+p)xi-xi
3 + Ii (4)
(4)式において、-xi,pxi及び-xi
3は、それぞれ、状態xの損失、線形ゲイン、及び飽和に対応する項である。
【0038】
この力学系は、常微分方程式(ODE)を使用する連続時間ドメインにおけるものとなっているが、本実施の形態のシステムは、離散時間ドメインで運用することも可能である。連続時間から離散時間への変換は、上述の常微分方程式(ODE)を単にオイラー近似することなどによって行うことができる。
【0039】
状態データプロセッサ21の各処理部210間の結合は、下記で表されるインジェクション項I
iを使って実装される。
ここで、
ここで、k=1,2,…K
II。
【0040】
式(6)及び(7)において、ベクトルe(k)(要素ei
(k),i=1,2,…)はエラー信号であり、V*はタイプIのソフト制約を考慮したペナルティ項を含むコスト関数であり、V(k)はタイプIIのk番目のソフト制約に関するペナルティ項である。
【0041】
さらに、εkは、正の実数パラメータ値である。制約の種類については、後に説明する。
【0042】
Iiを入力すると、ポテンシャルV(k)(x)の最急降下が行われる。しかし、勾配∂V(k)(x)/∂xiはei
(k)によって変調(modulate)される、すなわち、勾配ベクトルは状態空間を用いて規定され、エラー信号によってそのスケールが変更される。各エラー信号ei
(k)は、加えられる制約に応じて、空間ベクトルxを異なるスケールに変更する。
【0043】
そして、全インデックスkについて、タイプIIのソフト制約を考慮した、勾配の総和を求める。これにより、複数の制約が総和の中で競合することになる。ある制約に関して、スケールが変更された勾配ベクトルの振幅が、他のものよりかなり大きい場合、その制約が最終的に勝ち残る。
【0044】
射影部212は、状態データを、所定の部分空間に射影する。具体的に本実施の形態では、状態データベクトルxが、タイプIの制約に対応して予め定められた射影演算子Pを用いて、状態データベクトルxを更新する繰り返し処理ごとに、有効な部分空間に射影される。
【0045】
この射影は、ホップフィールドネットワークにおけるアイヤー(Aiyer)の方法と同様のものである。
【0046】
射影演算子の効果は、次のように、ベクトルxの時間発展のオイラーステップを考慮して説明される:
ここで、x′
i(t)は、射影演算子Pを用いた、x
i(t)の有効な部分空間への射影を表す:
【0047】
仮に、タイプIのソフト制約が存在しない場合、射影Pは恒等演算子であり、ベクトルx′はベクトルxに等しくなる。
【0048】
本実施の形態のシステムにおいて、時間発展は、射影Pを考慮に入れるため、連続時間ドメインにおいて代数的な微分方程式系によっても表現される。
【0049】
コスト評価部22は、現在の状態データに対するコスト関数の値を求める。
【0050】
エラー演算部23は、少なくとも現在の状態データの振幅の均一性(homogeneity)に関するエラー値を演算する。本実施の形態においては、このエラー信号は、
(1)状態エンコードユニットにおける振幅の非均一性を補正し、
(2)適切な制約のマッピングを許容する。
【0051】
各エラーエンコードユニットは、通常、状態エンコードユニットのサブセットにのみ接続される。振幅の非均一性の補正は、アナログ空間に関する最適化問題の等式制約として解釈可能であることに注意されたい。
【0052】
換言すれば、バイナリー変数の組み合わせ最適化は、すべてのアナログ状態の振幅が等しいという制約を含めた、アナログ変数の最適化問題の一種であると言える。
【0053】
図3に示すように、エラー演算部23は、エラー演算サブユニット231と、複数のサブユニット232とを含む。
【0054】
エラー演算サブユニット231は、振幅の非均一性に係るエラーe(0)を演算する。このエラー演算サブユニット231は、時間発展プロセッサ2311とアップデータ2312とを含む。時間発展プロセッサ2311は、a>0なるターゲット振幅と、エラー信号の変化率β0との入力を得て、エラー信号e(0)を演算する。ここで、ターゲット振幅とエラー信号の変化率β0とは初期化の際に、ユーザが指定する。またエラー信号e(0)は、e(k)の一つであり、k=0の場合に相当し、コスト関数V*の最小化に関わる。これらのエラー信号は、状態データベクトルxの振幅の非均一性を補正する。
【0055】
具体的に、時間発展プロセッサ2311は、エラー信号e
(0)を:
のように演算する。
【0056】
アップデータ2312は、現在のei
(0)に、∂tei
(0)dtを加えて、更新後のei
(0)を求めることで更新し、この更新後のei
(0)を、メモリブロックに、次の繰り返し処理のエラー信号として保持する。
【0057】
制約のエラーを演算するサブユニット232のそれぞれもまた、時間発展プロセッサ2321と、アップデータ2322とを備える。時間発展プロセッサ2321は、ターゲット関数giと、このエラー信号の変化率βiとの入力を受けて、エラー信号e(i)を出力する。ここでターゲット関数giと、エラー信号の変化率βiとは、初期化の際に、ユーザが指定する。また、エラー信号e(i)は、e(k)の一つで、k=iの場合に相当しており、コスト関数V*の最小化に関わる。これらのエラー信号は、状態データベクトルxに対して問題の制約を与える。
【0058】
具体的に、時間発展プロセッサ2321は、エラー信号e
(i)を:
として演算する。ここで、xは、状態データのベクトルであり、g
(k)(e
i
(k),x)は、解こうとする問題の制約に関係して定められる。
【0059】
仮に、解こうとする問題に制約が存在しない場合、サブユニット232は必ずしも必要ではない。
【0060】
アップデータ2322は、現在のe
i
(k)に、∂
te
i
(k)dtを加えて、更新後のe
i
(k):
を求め、この更新後のe
i
(k)を、メモリブロックに、次の繰り返し処理のエラー信号として保持する。
【0061】
エラー演算部23は、現在のエラーの値ei
(k)(i=0,1,2,…)を、状態データプロセッサ21に対して出力する。
【0062】
変調部24は、線形ゲインp、ターゲット振幅a、エラー値の変化率βkなどのパラメータ値を、現在の状態データに基づいて演算する。この変調部24がエラー演算部23に対してターゲット振幅等のパラメータを出力することとすれば、エラー演算部23は、変調部24から得られる当該パラメータを、ユーザが指定した値に代えて利用できる。
【0063】
この例では、変調部24は、アナログ状態xを、演算の各ステップにおいて、コンピュータで演算可能なブーリアン変数σの構成に、σ=C[x]というように変換する。また、変調部24は、この変数を、コスト関数V(0)の現在の値を演算するために利用する。
【0064】
本実施の形態のある例では、変調部24は、コスト関数V
(0)の現在の値を:
として求める。ここでhは、行列M
0iを、σの左から乗じる(いわゆるカップリング演算)などして得られる内部場演算(internal field calculation)を表すものであり、h=M
0iσと表される。なお、ドットは、ドット積を表す。
【0065】
また変調部24は、線形ゲインpやターゲット振幅aを:
と変調する。ここで、
である。また、V
(0)(t)は、状態x(t)に関連するコスト関数の値であり、Vopt
(0)は、ターゲットエネルギーである、この例では、Vopt
(0)は、繰り返し演算の間に見いだされたエネルギーの最低値に設定すればよい。つまり、
としてよい。あるいは、このVopt
(0)は、知られているのであれば、コスト関数V
(0)の最低値に設定されてもよい。
【0066】
関数φは、シグモイド(例えばハイパボリック・タンジェント)関数であり、
δ>0,ρ1,ρ2
は、予め定められた定数パラメータであり、ρ1,ρ2はいずれも、正の値でも、負の値であってもよい。
【0067】
仮に、ターゲット振幅aや線形ゲインpが
に従って変調されるのであれば、ρ
1>0または、ρ
2>0である。
【0068】
一方、仮にターゲット振幅aや線形ゲインpが
に反して変調されるのであれば、ρ
1<0または、ρ
2<0である。
【0069】
他のパラメータ、例えば変化率βkも変調され得ることに注意されたい。
【0070】
ここで説明した処理手順の効率は、α,πなどのパラメータの選択に依存するものである。
【0071】
カップリング行列のスペクトル分解(最大の固有値)を用いるなどして事前の調整なしに、パラメータを選択できることが理解される。
【0072】
出力部25は、現在の状態データxを出力する。この出力部25は、状態データとともに、現在の状態データに対するコスト関数を併せて出力してもよい。
【0073】
本実施の形態のある例では、データプロセッサは、上述のエラー補正処理を含む。エラー検出は、例えば、エラー信号などの外部アナログ動的変数を考慮して行われる。エラー補正変数は、システムによる目的関数のマッピングの誤りによって生じる振幅の非均一性を補正するために用いられる。
【0074】
さらに、もう一組の変数と有効な部分空間への射影が、最適化問題に与えられる制約のために考慮される。エラー制御は、非対称なエラー補正とエラー検出のフィードバックループを用いる。
【0075】
さらに、エラー信号の変動は、一般に、アナログ状態を順次エンコードして得られる現在のブーリアン変数に依存し、論理レベルでエラーを検出するために用いられる。しかしながら、エラー信号それ自体は、アナログ値であり、現在の状態エンコード変数をアナログ的に変調する。
【0076】
本実施の形態のデータ処理装置1は、上述の構成を備えており、次のように動作する。
【0077】
なお、本実施の形態のデータ処理装置1は、
図6に例示するように、状態データx
i(i=1,2,…N)を所定の方法で初期化する(S1)。一例として、データ処理装置1は、状態データを、ランダムなブーリアン値を生成することによって初期化する。
【0078】
データ処理装置1は、状態データxiとコスト関数のパラメータのセット{M0k}k(k=1,2,…)とに基づいてパラメータの変調を演算する(S2)。
【0079】
このステップS2では、データ処理装置1は、タイプIの制約が存在する場合、変調された線形ゲインp、変調されたターゲット振幅a、コスト関数V
(0)の現在の値:
または
を求める。
【0080】
ある例では、M01やM02は行列であり、M03はベクトルである。M01,M02,及びM03はコスト関数V(0)を規定する。同様に、仮にタイプIの制約が存在するのであれば、M11やM12は行列であり、M13はベクトルである。ここでkは、U(k)で定義される制約k(またはk=0のときには、目的関数V(0)に対応する)を表す。M11,M12,M13は、U(1)で定義される第一の制約(k=1)を表す。βkは、エラー信号の変化率を表す。
【0081】
データ処理装置1は、ステップS2において、状態データxiに係る所定のブーリアン変数σを演算する。このステップS2における詳細な演算の内容は、変調部24の処理として既に説明した通りである。
【0082】
データ処理装置1は、振幅の非均一性、及び制約に係るエラー変数を更新する(S3)。このエラー変数は、変調されたターゲット振幅、ステップS1で取得したエラー変数の変化率、及び、目的関数gを用いて:
及び、
として演算する。
【0083】
ここで、関数gは、解こうとする問題の制約により規定される。
【0084】
既に説明したように、状態データxiのプライムサイン(′)は、それが状態データxiの有効な部分空間への射影であることを示す。
【0085】
データ処理装置1は、また、タイプIの制約が存在する場合には、カップリング項、すなわち、例えば、
や、
を演算する。また、データ処理装置1は、
を演算する。ここで、N
kiは、タイプIIの制約により規定される。さらに、データ処理装置1は、ゲイン及び飽和:
を求める(S4)。
【0086】
ステップS3,S4の処理は、並列して行われてもよいし、いずれかを先にした順序で順番に行われてもよい。
【0087】
そしてデータ処理装置1は、インジェクション項を演算する(S5)。この演算は、インジェクションを総和する:
すなわち、
として、
を求めることで行われる。そしてデータ処理装置1は、状態データを更新する(S6):
【0088】
データ処理装置1は、状態データxiに対する射影を求め(S7)、現在のエラー(現在の損失)を求める(S8)。
【0089】
データ処理装置1は、そして、予め定めた条件が満足されるか否かを調べて、繰り返し処理を終了するか否かを判断する(S9)。ここで、上記予め定めた条件の一例は、時間の制限であり得る。この例では、繰り返し処理により消費した時間が、予め定められた制限時間を経過したか否かを判断することとなる。データ処理装置1は、繰り返し処理により消費した時間が予め定めた制限時間を経過していなければ(S9:No)、ステップS1に戻って処理を続ける。一方、データ処理装置1は、繰り返し処理により消費した時間が予め定めた制限時間を経過していれば(S9:Yes)、演算の結果(状態データxiや、それに対応する所定のブーリアン変数σ)を、見いだされた最適な結果として出力して(S10)、処理を終了する。
【0090】
本実施の形態のデータプロセッサの処理を示すため、以下に、具体的な問題の例を挙げて説明する。
【0091】
[(1)最大カット問題の例]
本実施の形態のデータ処理装置1を最大カット問題に適用した例を示す。この例の最大カット問題のためのデータ処理装置1は、重み{wij}ijが規定されたグラフのカットであって、重みの総和が最大となるような切断(カット)を見いだすよう設定される。ここでi,jは、それぞれN以下の自然数:1,2,…Nの一つであるとする。
【0092】
最大カット問題の与えられる解は、カットの後に得られる2つの集合に対応する頂点iの分割として表され得る。頂点iが一方の集合または他方の集合のいずれに属するかがブーリアン値σ
iとしてエンコードされる。この問題の最適解、すなわち最大カットは、コスト関数
を最小化するものとなる。ここで、
であり、
は、イジング・ハミルトニアン:
であり、σは、要素がσi(i=1,2,…)であるようなベクトルである。
【0093】
最大カット問題は、二次の非制約二値組み合わせ最適化問題(quadratic unconstrained binary combinatorial optimization problem)、あるいはイジング問題と呼ばれる問題である。コスト関数のパラメータが行列で構成されること、そしてコスト関数の総和V
*が単一の行列:
で表されることに注意すると、目的関数は、簡潔に、
として与えられる。
【0094】
この最大カット問題の例では、制約は存在しない。つまり、この例におけるデータ処理装置1は、それぞれ状態データxi(i=1,2,…N)に対応するN個の状態データプロセッサ21のみを備える。この例のデータ処理装置1は、また、サイズNの問題を解く際の振幅の非均一性を補正するためのエラーデータei
(0)に対応するN個のエラー演算部23のみを要する。
【0095】
この例では、有効な部分空間は、すべての構成となるので、射影演算子Pによる射影は、恒等的なもの:
となる。
【0096】
さらに、妥当な解への変換は、
として定義する。ここで、sign(x)は、x>0のときsign(x)=1、そうでないときにはsign(x)=-1となるものとする。
【0097】
そしてこの実施の形態の例の制御部11では、状態データプロセッサ21が所定の方法、例えばランダムなブーリアン値をxiに設定するなどの方法で状態データxi(i=1,2,…N)を初期化する。
【0098】
状態データが設定されると、コスト評価部22が現在の状態データのコスト関数を評価する。この例では、コスト関数は、
と設定される。ここでハミルトニアンは、イジングハミルトニアン:
であり、ここで{w
ij}
ijは、繰り返し処理の開始時にランダムに初期化される重みである。
【0099】
一方で、エラー演算部23は、現在の状態データの振幅の均一性に係るエラー値を演算する。
【0100】
エラー演算部23の時間発展プロセッサ2311は、ターゲット振幅a(a>0)と、エラー値の変化率βとの入力を受け入れる。これらのターゲット振幅a及びエラー値の変化率βは、当初(t=0の時点)では、予め定めた値、例えばa=1.0,β(t=0)=0.0などといった値に初期化される。
【0101】
時間発展プロセッサ2311は、これらの値を用いて、エラー値e
i
(0)の時間発展
を演算する。ここで繰り返し処理の初回においては、エラー値e
i
(0)は、ランダムな値に設定される。
【0102】
アップデータ2312は、現在のエラー値ei
(0)を、∂tei
(0)dtを加算することにより更新して、更新後のエラー値ei
(0)を求め、この更新後のエラー値ei
(0)を、状態データプロセッサ21に出力する。
【0103】
そして状態データプロセッサ21のゲイン消失シミュレータ211が、状態データx
i、線形ゲインp、及びエラー値e
i
(0)を得て、状態の時間発展:
を求める。
【0104】
この式において、時間依存性は陽に示されていないが、状態データxiやエラー値ei
(0)などの値が、時間に依存して変化する。
【0105】
状態データプロセッサ21は、対応する状態データx
iと、状態データの時間発展:
とを加算して、状態データを更新する。
【0106】
状態データプロセッサ21は、更新された状態データx
i(t+dt)を、現在の状態データとして記憶する。この問題においては、タイプIのソフト制約は存在しないので、射影Pは恒等演算子であり、従ってベクトルx′は、ベクトルxに等しくなり:
更新された状態データは、次の繰り返し処理における現在の状態データとしてそのまま保持される。
【0107】
状態データを更新した次の繰り返し処理の前に、変調部24は、線形ゲインp、ターゲット振幅a、及びエラー値の変化率βなどのパラメータ値を、現在の状態データに基づいて演算する。
【0108】
変調部24は、状態データxを、可能なブーリアン変数σに変換する。この例では、状態データxは既にブーリアン値であるので、変調部24は、コスト関数V
(0)の現在の値を演算し、線形ゲインpと、ターゲット振幅aとを、式(12)、(13)によって表されるように変調する:
また、変化率β
0も、同様に変調される。
【0109】
上記の式において、
であり、関数φは、シグモイド関数である。また、
は、予め定められた定数パラメータである。
【0110】
パラメータ値α,πは、ユーザによって予め設定される。
【0111】
ここで、V
(0)(t)は、コスト評価部22によって評価された状態データx(t)に係るコスト関数の値であり、V
opt
(0)は、ターゲットエネルギーである。この例では、V
opt
(0)は、繰り返し処理の間に見いだされたエネルギーの最低値に設定される。すなわち:
【0112】
このVopt
(0)を得るため、変調部24は、現在のVopt
(0)を記憶し、現在のVopt
(0)が記憶しているVopt
(0)よりも低い値であるときに、Vopt
(0)を更新して記憶する。初期状態では、変調部24は、Vopt
(0)を記憶していないので、変調部24は、演算されたV(0)(t=0)を記憶する。
【0113】
変調部24は、更新された線形ゲインp、ターゲット振幅a、及び変化率β0を得て、これらを出力する。
【0114】
制御部11は、現在の更新された状態データxと、コスト関数とを出力し、次の繰り返し処理に移行して処理を続ける。
【0115】
コスト評価部22は、現在の(更新された)状態データに係るコスト関数を評価し、エラー演算部23は、現在の状態データに係る振幅の均一性に関するエラー値を演算する。
【0116】
制御部11は、繰り返し処理を行い、エラー値の時間発展:
と、状態データの時間発展:
と、を演算し、エラー値を:
として更新し、また、状態データを:
と、更新する。
【0117】
制御部11は、更新された状態データxi(t+dt)を、現在の状態データとして記憶する。
【0118】
そして制御部11は、線形ゲインp、ターゲット振幅a、エラー値の変化率βkなどのパラメータ値を、現在の状態データに基づいて演算する。
【0119】
制御部11は、現在の状態データxと、コスト関数とを出力し、このコスト関数が、所定の条件、例えばコスト関数が予め定めたしきい値を下回るなどの条件を満足するか、ユーザが処理を停止するまで繰り返し処理を行う。
【0120】
最大カット問題の場合、データ処理装置1の動作は、次のように要約できる:
【0121】
【0122】
さらに、ターゲット振幅aは、最適解:
への収束を保証するため、次のようにして選択される。ただし、上述の式で、
またここで、
は、現在の状態(現在の状態データ)のエネルギーであり、
は、ターゲットエネルギーである。実際には、ターゲットエネルギーは、それまでに見いだされたエネルギーの最低値:
に設定されるか、または、既知であれば基底エネルギーの値に設定される。
【0123】
さらに、関数fは、シグモイド関数であり、ρ,δの双方は正の0でない定数パラメータであって、ユーザによって予め定められる。
【0124】
解を得るまでの時間をさらに短縮するため、パラメータβが時間依存であることを考慮する。パラメータβは処理中、変化率λで線形的に増加し、正の値τで表される時間の間、エネルギーが減少しないのであれば、0にリセットされる。
である場合、ただし、t
cは、
が最低値である時点または、βがリセットされた時点を表すものとするとき、ならば、β(t)の変化は、
ただし、
とする。一方で、
ならば、βは0に設定され、t
cはtに設定される。
【0125】
また、線形ゲインであるパラメータpは、状態に依存して:
として定められる。
【0126】
[(2)二次割当問題(Quadratic Assignment Problem;QAP)]
二次割当問題(QAP)は、生産品を輸送するトータルのコストが最小となるように、n個の工場をn箇所の異なる場所に割り当てる問題である。ここでコストは、工場間の距離とフローとの積の総和に依存するものとする。この問題を目的関数としてエンコードするため、ブーリアン値s
iuが次のように設定される。すなわち、工場uが場所iに配置されるときs
iu=1とし、そうでなければs
iu=0とする。次に、この問題を、コスト関数V
(0):
を、最小化する割り当てを見いだす問題として定式化する。ここで行列{b
uv}
uv((u,v)番目の要素が、b
uvとなる)は、工場u,v間のフローを表し、行列{a
ij}
ij((i,j)番目の要素が、a
ijとなる)が、場所i,j間の距離を表す。
【0127】
なお、巡回セールスマン問題は、このQAPの特別な場合に相当する。
【0128】
変数の変化σ
i=2(s
i-0.5)を考慮すると、この目的関数は、次のコスト関数にマッピングできる:
ここでV
(0)は、最小とするべきコスト関数であり、U
(1),U
(2)は、それぞれ第一の制約(一つの場所あたり工場一つとの制約)と、第二の制約(一つの工場あたり一つの場所)とに係るタイプIのソフト制約を表す。さらにqは、ユーザによって定められる正のパラメータである。k=1,2,3…に対応する各コスト関数は:
と表すことができる。イジングカップリング及びゼーマン項は、
である。
【0129】
ここで
は、N×Nの行列であり、その要素がすべて「1」であるような行列である。また、太字の
は、要素数Nのベクトルであり、その要素がすべて「1」であるようなベクトルを表す。
【0130】
A,Bは、それぞれの要素がaij,bijであるような行列であり、IはN×Nの単位行列(identity matrix)である。
【0131】
イジング・カップリングが本実施の形態のこの問題におけるコスト関数であり、コスト関数のパラメータは、行列のテンソル積に依存することに注意されたい。
【0132】
コスト関数を特徴づけるパラメータは:
と表される。
【0133】
さらに、第一、第二の制約を特徴づけるパラメータは:
及び、
となる。
【0134】
QAPでは、すべての制約がタイプIとなる。従って制御部11は、サイズNの問題の解を求める場合、状態データx
iに対応するN個の状態データプロセッサ21と、振幅の非均一性を補正するためのe
(0)
iに対応するN個のエラー演算部23とを含んで構成される。そして、コスト関数V
*は、式(21)で与えられたものとなる。この問題に関する有効な部分空間は:
と定義される。
【0135】
ここで、X
aは、N次元の実空間であり、C
aは、
となるように定義された定数である。
【0136】
有効な部分空間は、従って、確率行列{xiu}iuの集合となる。
【0137】
有効な部分空間への射影演算子Pは、この行列の固有値分解
を考慮して定義される。
【0138】
可能な解(acceptable solution)への変換は、置換行列を、各状態データ行列{xiu}iuに関連付けることで得られる。
【0139】
ここでの例では、本実施の形態の制御部11において、状態データプロセッサ21は、状態データxi(i=1,2,…N)を、所定の方法、例えば状態データを、許される状態の一つとして(すなわち状態データが有効な部分空間にあるように)生成することによって、状態データxiを初期化する。
【0140】
ここで状態データxiは、ブーリアン変数spqであって、工場qが場所pに配されるときにspq=1となり、そうでないときにはspq=0となるようなブーリアン変数spqである。ここでi=Nsite(p-1)+qであり、Nsiteは、場所の数を表す。
【0141】
状態データプロセッサ21の射影部212は、現在の状態データを、有効な部分空間に射影する。具体的に、本実施の形態のここでの例では、状態データベクトルxは、タイプIの制約に従い、予め定められた射影演算子Pを用いて、有効な部分空間に射影され、x′となる。射影演算子Pは、行列の固有値分解
を考慮して定義される。ここで、
は、式(22)において定義されたものである。
【0142】
状態データが設定されると、コスト評価部22は、現在の状態データのコスト関数を演算する。この例では、コスト関数V*は式(21)により評価される。
【0143】
一方で、エラー演算部23は、現在の状態データの振幅の均一性に関するエラー値を演算する。
【0144】
エラー演算部23の時間発展プロセッサ2311は、当初(t=0)所定の値、例えばa=1.0、β(t=0)=0.0に初期化されるターゲット振幅a(a>0)と、エラー値の変化量βとを用いた演算を行う。
【0145】
これらの値を利用して、時間発展プロセッサ2311は、エラー値の勾配e
i
(0)を
と求める。ここで、初回の繰り返し演算におけるエラー値e
i
(0)(t=0)は、所定の値に設定される。
【0146】
アップデータ2312は、現在のエラー値e
i
(0)(t)を、∂
te
i
(0)(t)dtを加算して更新し、次の繰り返し処理で利用するエラー値である、更新されたエラー値e
i
(0)(t+dt)を得るとともに、当該更新されたエラー値e
i
(0)(t+dt)を、状態データプロセッサ21に出力する。すなわちアップデータ2312は、:
を演算して出力する。
【0147】
次に、状態データプロセッサ21のゲイン消失シミュレータ211が、状態データx′
i(状態データを有効な部分空間に射影したもの)、線形ゲインp、及びエラー値e
i
(0)を得て、状態の時間発展:
を演算する。
【0148】
ここでh
(0)
i(t)は、ベクトルh
(0)(t)のi番目の要素であり、
と定められる。ただし、
であり、qとηとはいずれも正の定数パラメータ:q>0,η>0である。h
(0)
i(t)の値は、M
0i,M
1i,M
2i及び状態データx′
i(有効な部分空間に射影された状態データ)を用いて演算される。
【0149】
項
は、簡単な場合、x′
iの平均絶対振幅
つまり、
に等しく、簡単な場合でなければ、項
は、
に等しいものとされる。ここで、ζは、ζ>1を満足する値として経験的に設定されるパラメータである。
【0150】
状態データプロセッサ21は、状態データに、対応する状態データx
iと最急降下勾配とを加算して更新する:
【0151】
状態データプロセッサ21は、更新した状態データx
i(t+dt)を、現在の状態データとして記憶する。ここでの問題を解くに際しては、タイプIのソフト制約が存在し、状態データプロセッサ21の射影部212は更新された状態データxを、射影演算子Pを用いて射影する:
【0152】
この射影された状態データx′i(t+dt)は、次の繰り返し処理で利用される、現在の状態データx(t)として記憶される。
【0153】
更新された状態データを用いた次の繰り返し処理の前に、変調部24は、線形ゲインpや、ターゲット振幅a、エラー値の変化率β0などのパラメータ値を現在の状態データに基づいて演算する。
【0154】
変調部24は、状態データxを、σ
pq=2(s
pq-0.5)というような式によって、可能なブーリアン値σ、及び、二次割り当て問題の制約において可能な設定、例えば
といったものに変換する。
【0155】
変調部24は、コスト関数V
(0)の項の一つの現在の値を演算して、線形ゲインpや、ターゲット振幅aを、式(12),(13)により表されるように変調する:
そして、変化率β
0についても、同様に変調を行う。
【0156】
これらの式において、
であり、関数φはシグモイド関数であり、
は、予め定められた定数パラメータである。
【0157】
パラメータ値α,πは、予めユーザによって定められる。
【0158】
ここで、V
(0)(t)は、状態データx(t)に関連するコスト関数の項の一つの値であり、コスト評価部22によって演算される。また、V
opt
(0)は、ターゲットエネルギーである。ここでの例では、V
opt
(0)は、繰り返し演算中に見いだされたエネルギーの最低値に設定される:
【0159】
Vopt
(0)を求めるために、変調部24は、現在のVopt
(0)を記憶しており、現在のV(0)(t)が記憶しているVopt
(0)よりも小さい値であるときに、Vopt
(0)を更新する。初期の状態では、変調部24は、Vopt
(0)を記憶していないので、変調部24は、演算されたV(0)(t=0)をそのままVopt
(0)として記憶する。
【0160】
変調部24は、更新された線形ゲインpとターゲット振幅a、及び、変化率β0を求めて、これらを出力する。
【0161】
制御部11は、現在の更新された状態データxと、コスト関数とを出力する。そして次の繰り返し処理を実行する。
【0162】
QAPの場合、上述のように、データ処理装置1の動作は、
and
と、まとめられる。
【0163】
この式において、i,aは、i番目の工場、a番目の場所に対応する。そしてここでh(0)
iaは、(24)式で定義される。
【0164】
h
(0)の演算は、行列とベクトルとの乗算、例えば
を含むが、行列のサイズがN
2×N
2であるので、これらを直接演算することは現実的でない。さらに、この積の演算は、行列自体がテンソル積の演算の結果であることを考慮して行われるのである。
【0165】
例えば、
なので、積の演算は:
のように行われる。ここで[Q]は、要素がQのそれぞれであるようなベクトルを意味する。
【0166】
[(3)リード最適化(lead optimization)問題を用いた構造設計]
リード最適化問題は、元素の配置(geometry)と構成元素が既知である場合に、化合物候補の構造を見いだす問題である。つまり、この組み合わせ最適化問題の目的は、所与のたんぱく質に関して、相互作用エネルギーを最小化するよう、元素を既知の位置に配置することである。
【0167】
仮に、空間的な構造が、例えば、-X1-X2-X3-X4-X5-X6-という形式であり、σinが、=CH-, =CH2, =O, -NH2, -OH, -CH3のうちから選択されたもの(ここで、記号「=」または「-」は、それぞれ化学結合(chemical bond)を表す)であるとするとき、可能な解の一つは、 -CH=CH-CH=CH-CH=CH- という鎖状の構造となる。
【0168】
候補となる構造は、次の2つの条件を満足しなければならない:
(1)隣接する元素との間の化学結合の整合性は満足されなければならない、また、
(2)一つの位置あたり、元素が一つだけ割り当てられる必要がある。
【0169】
以下では、簡単にするため、この問題の対象が、対象となるたんぱく質の相互作用エネルギー(interaction energy)を考慮することなく、これらの2つの条件を満足する候補を見いだすことであると限定する。
【0170】
提案される構造は、制約付き組み合わせ最適化問題を解くために使われる。第一に、状態エンコード変数σ
in=±1は、次のことを考慮してエンコードされたものとする。すなわち、元素nが位置iに配置される場合にσ
in=1、そうでない場合、σ
in=-1とする。既に述べた2つの制約が次の式:
で与えられるコスト関数Vを用いたイジング問題に変換される(H. Sakaguchi, et. al.,"Boltzmann Sampling by Degenerate Optical Parametric Oscillator Network for Structure-Based Virtual Screening", Entropy, 18, 365(2016)による)。ここで、V
(1)及びV
(2)は、それぞれ、化学結合の整合性に係る第一の制約と、単一性(unicity)に係る第二の制約とに関連するソフト制約のコスト関数である。
【0171】
【0172】
これらの式において、
は、変数
の変化を考慮して、ユーザにより定義されたパラメータである。なお、s
iは、0または1であり得る。
【0173】
条件を満足する構造を見つける問題は、上記のコスト関数V*を最小化することに帰着される。
【0174】
現実的には、ソフト制約を表すコスト関数V
(1)及びV
(2)は、
というようにも表記できる。
【0175】
ここで、位置i,jが隣り合っており、かつ、位置iに配された元素nの化学結合が、位置jに配された元素mの化学結合と互換性がないならば、Jinjm=1とする。
【0176】
一方で、位置i,jが隣り合っていないか、または、位置iに配された元素nの化学結合が、位置jに配された元素mの化学結合と互換性があるならば、Jinjm=0とする。
【0177】
C1及びC2は、sinとは独立した定数値であり、組み合わせ最適化問題に関わらない。
【0178】
データ処理装置1の動作は、既に述べた最大カット問題やQAPの例におけるのと同等であるので、冗長な説明は省略する。
【0179】
本実施形態のこの例では、データ処理装置1は、次の式で表現される動作を行うように設定される:
【0180】
(34)式は、化学結合の整合性を表す。また(35)式は単一性を表している。
【0181】
ここで、
であり、位置iに配された元素nが整合しないならば、Ein>0とする。
【0182】
β1及びβ2は、それぞれ、ein
(1)とei
(2)とのエラー値の変化率である。
【0183】
β1とβ2とは、互いに異なる値となり得る。
【0184】
本実施の形態のもう一つの例を以下に説明する。
【0185】
状態データプロセッサ21の状態データは、量子動力学(quantum dynamics)を用いて表現できる。この態様では、各状態データxiに対応する状態データプロセッサ21の各部は、状態データを密度行列ρiとして保持し、独立した各部の動きは、量子マスター方程式(quantum master equation)によって規定される。最も一般的な場合では、この密度行列はより小さい密度行列のテンソル積として表現することはできない場合、一つの密度行列ρi1i2…は、複数のユニットi1,i2…の状態で記述できる。
【0186】
状態データは、3つの異なる方法:
(1)量子レベルにある密度行列によって
(2)古典的レベルにあるアナログ変数によって、
(3)論理レベルにあるブーリアン状態によって、
エンコードされ得る。
【0187】
量子的表現から古典的表現への変換は、量子測定(quantum measurement)によって行われる。アナログからブーリアン値への変換は、アナログ-デジタル変換器によって行われる。
【0188】
具体的に、ここでの状態データプロセッサ21は、例えばUS2017/0024658の公開公報に開示されたDOPO(Degenerate Optical Parametric Oscillator)などのイジングモデル量子計算デバイスを用いて実現される。
【0189】
図4には、P. L. McMahon et al., “A fully-programmable 100-spin coherent Ising machine with all-to-all connections”, Science 354, 614 (2016)による、縮退型光パラメトリック発振器に基づくコヒーレントイジングマシン(CIM)が示される。
【0190】
上述のように、DOPOシステムの詳細は、US2017/0024658の公開公報に示されているので、ここではDOPOの概括的な構成のみを示す。本実施の形態のここでの例では、状態データプロセッサ21は、
図4に例示するようなDOPOシステムを用いて実現される。この例に係る状態データプロセッサ21は、ポンプパルス発生器(pump pulse generator:PPG)41と、第二高調波発生デバイス(SHG)42と、周期的極性導波デバイス(Periodically-poled Wave Guide Device:PPWG)43と、方向性結合器(Directional Coupler)44と、ADコンバータ45と、FPGAデバイス46と、DAコンバータ47と、変調器48と、リング・キャビティ49とを含んで構成される。
【0191】
このシステムにおいて、複数のポンプパルス光波(擬スピンパルス)が、PPG41とSHG42とにより生成され、PPWG43を介して、リング・キャビティ49に時分割的に導入される。
【0192】
ここで、複数のポンプパルス光波は、それぞれが疑似的に、複数のイジングモデルスピンに対応しており、相互に同じ発振周波数(identical oscillation frequency)を有している。
【0193】
また、隣接する光波間の時間間隔Tは、Lをリング・キャビティ49の長さ、cをリング・キャビティ49内での光速、Nを、N>0なる自然数としてL/c/Nに設定される。
【0194】
リング・キャビティ(リング共振器)49を伝播する光波の一部は、第1の方向性結合器44-1を介して、ADコンバータ45に導かれる。この後、第2の方向性結合器44-2までリング・キャビティ49を伝播し続ける光波の他の部分は、「ターゲット波」と呼ばれる。
【0195】
ADコンバータ45は、光波の強度をデジタル値に変換し、当該デジタル値を、FPGAデバイス46に出力する。
【0196】
換言すれば、第1の方向性結合器44-1とADコンバータ45とはリング・キャビティ49内の複数の擬スピンパルスが周回して伝播するごとに、当該複数の擬スピンパルスの位相及び振幅を仮計測する。
【0197】
DOPOシステムにおけるFPGAデバイス46は、ADコンバータ45の出力(前回の状態データx
i(t)を表す)を、コスト評価部22と、エラー演算部23と、変調部24との出力を用いて演算した、
に加算するように構成されてもよい。
【0198】
FPGAデバイス46は、この加算の結果をDAコンバータ47に出力する。このDAコンバータ47の出力は、入力パルスの変調に利用される。
【0199】
変調器48は、他のポンプパルス光波を生成し、当該光波の振幅と位相とを、DAコンバータ47の出力に基づいて変調する。DAコンバータ47の出力は、FPGAデバイス46の出力に対応するアナログ値である。一例では、この変調器48は、
が正であれば位相をπ/2だけ遅延させ、
の絶対値に比例した振幅変調を行う。またこの変換器48は、
が負であれば、位相をπ/2だけ進めて、
の絶対値に比例した振幅変調を行う。
【0200】
変調器48により変調された光波は、第2の方向性結合器44-2を介してリング・キャビティ49内に導入される。第2の方向性結合器44-2は、ターゲット波が第2の方向性結合器44-2に到達したタイミングで、当該変調された光波をリング・キャビティ49に導入する点に注意されたい。変調された光波とターゲット波から光波が合成され、更新された擬スピンパルスとなる。
【0201】
上述のように、本実施の形態のこの例では、FPGAデバイス46が
で表される値を出力している。
【0202】
合成された光波は、リング・キャビティ49に沿って導かれており、FPGAデバイス46は状態データxi(t)の時間発展を表す値を繰り返し出力する。
【0203】
つまり、この例のDOPOシステムは、ゲイン消失シミュレータ211として機能しているものである。DOPOシステムのFPGAデバイス46の出力は、DAコンバータ47に出力されるだけでなく、状態データプロセッサ21の他の部分、例えば射影部212などにも出力される。
【0204】
DOPOの動作は広く知られているため、ここでのさらなる詳しい説明は省略する。
【0205】
本発明の実施の形態のさらに他の態様では、データ処理装置1は、CPU等のデジタルプロセッサを用いて構成される。この態様では、状態データプロセッサ21と、コスト評価部22と、エラー演算部23と、変調部24は、CPUによって実行されるソフトウエアプログラムとして実装される。このプログラムは、CPUに接続されたメモリデバイス等の記憶手段にインストールされ得る。このメモリデバイス等の記憶手段はCPUが利用する状態データや、エラー値等のデータを保持する。この実施態様は、ディスプレイデバイスや、キーボードなどの入力デバイスをさらに含む一般的なコンピュータデバイスによって実現されてもよい。
【0206】
本発明の実施の形態のさらに別の態様では、データ処理装置1は、FPGA、GPU等のデジタルプロセッサを用いて構成され得る。この態様では、状態データプロセッサ21、コスト評価部22、エラー演算部23、及び変調部24は、統合プロセスの後で得られる論理ゲートの態様で実装設計されて実現される。この実施形態は、ディスプレイデバイスや、キーボードなどの入力デバイスなどを備えた一般的なコンピュータデバイスに接続され得る。
【0207】
図5は、本発明の実施形態の一態様に係る機能的構成を表す概略図である。
図5に示されるように、本発明のある実施態様によれば、データ処理装置1は、状態データノード31と、一次エラーノード32と、高次エラーノード33とを含む。
【0208】
状態データノード31は、ブーリアン値σi、アナログ値xi、及び量子的表現(密度行列)ρiのうちから選択されたもので表される状態データを保持する。
【0209】
状態データノードは、互いに接続され、ある状態データノードが保持する値は、コスト関数V*を介して他の状態データノードが保持する値に影響を与える。
【0210】
一次エラーノード32の各々は、対応する状態データノード31に接続されている。一次エラーノード32は、対応する状態データノード31が保持する状態データを、当該状態データの振幅の不均一性を減少させるように補正する。
【0211】
高次エラーノード33は、少なくとも一つの状態データノード31に接続される。すべての状態データノード31が高次エラーノード33に接続されている必要はない。換言すると、高次エラーノード33と状態エラーノードとの接続関係は「非対称」である。高次エラーノード33と状態データノード31との間の接続は、解かれるべき問題によって規定される。高次エラーノード33は、接続されている一つまたは複数の状態データノード31が保持する状態データを、解かれるべき問題に関する整合性を維持させるために変化させる。
【0212】
上述の例は、例示に過ぎず、当業者はこれらの例示した実施形態に基づいて、新規事項や効果を追加することなく種々の変形例があることを容易に理解できるものである。すなわち、それらの変形例は本発明の実施の形態として実質的に開示されている。
【手続補正書】
【提出日】2021-01-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
所与の問題を解くよう構成されたデータ処理装置であって、
所定の時間発展的処理によって状態データの更新を繰り返す状態データ処理部と、
現在の状態データのコスト関数の値を演算するコスト評価部と、
現在の状態データの振幅の均一性に関するエラー値を演算するエラー演算部と、を有し、
前記状態データは、変数の集合であり、前記状態データ処理部は、状態データについて時間発展的処理を行い、前記コスト関数と前記エラー演算部によって演算された、現在の状態データの振幅の均一性に関する前記エラー値とに基づいて、現在の状態データを更新する、データ処理装置。
【請求項2】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部は、状態データについて時間発展的処理を行い、前記コスト関数の勾配と、前記エラー値とに基づいて現在の状態データを更新するデータ処理装置。
【請求項3】
請求項
1または2に記載のデータ処理装置であって、
前記時間発展的処理は、現在の状態データに基づくゲイン値によって単安定から双安定へ変化するアーキタイプポテンシャルに基づいて現在の状態データを更新するデータ処理装置。
【請求項4】
請求項1
から3のいずれか一項に記載のデータ処理装置であって、
前記エラー演算部は、少なくとも一つの、解決するべき問題の制約に関わるエラー値をさらに演算するデータ処理装置。
【請求項5】
請求項1
から4のいずれか一項に記載のデータ処理装置であって、
前記状態データ処理部は、さらに、前記状態データを所定の部分空間に射影する処理を行うデータ処理装置。
【請求項6】
請求項1
から5のいずれか一項に記載のデータ処理装置であって、さらに、
前記現在の状態データに基づいてターゲット振幅を演算する変調部を有し、
前記エラー演算部が、当該ターゲット振幅を利用して、現在の状態データの振幅の均一性に関する前記エラー値を演算するデータ処理装置。
【請求項7】
請求項6に記載のデータ処理装置であって、
前記状態データ処理部は、さらに、前記状態データを、前記ターゲット振幅で規定された所定の部分空間に射影する処理を行うデータ処理装置。
【請求項8】
請求項1
から5のいずれか一項に記載のデータ処理装置であって、さらに、
前記現在の状態データに基づいて、ゲイン値を演算する変調部を有し、
前記状態データ処理部は、前記現在の状態データに基づいて演算されたゲイン値を利用してアーキタイプ単安定/双安定ポテンシャルも更新するデータ処理装置。
【請求項9】
請求項1
から5のいずれか一項に記載のデータ処理装置であって、さらに、
エラー値の変化率を動的に定める変調部を有し、
前記エラー演算部は、エラー値についての時間発展的処理を行い、前記エラー値の変化率と、前記エラー値と、前記状態データと、前記コスト関数とに基づいて現在のエラー値を更新するデータ処理装置。
【請求項10】
請求項8に記載のデータ処理装置であって、
前記ゲイン値は、前記時間発展的処理の開始前に、前記コスト関数のパラメータを用いて演算された定数に依存するデータ処理装置。
【請求項11】
請求項1に記載のデータ処理装置であって、
前記状態データ処理部が、イジングモデル量子計算デバイスを用いて、コスト関数に基づき、現在の状態データを更新して、状態データの時間発展的処理を実行し、
前記イジングモデル量子計算デバイスは、複数のイジングモデルスピンを模した複数の擬スピンパルスであって、相互に同じ発振周波数を有する擬スピンパルスをパラメトリックに発振するパラメトリック発振器と、
前記複数の擬スピンパルスを、その内部で周回させて伝播するリング共振器と、
前記複数の擬スピンパルスが前記リング共振器内を周回して到来する度に、前記複数の擬スピンパルスの位相と振幅とを仮に計測し、前記複数の擬スピンパルスの擬スピンを仮計測する仮スピン計測手段と、
前記コスト評価部の出力と前記エラー値とに従い、状態データの時間発展を得るべく前記計測された擬スピンパルスに合成されるべきデータを演算して、当該状態データの時間発展の結果を出力するFPGAデバイスと、を有するデータ処理装置。
【請求項12】
請求項1
から11のいずれか一項に記載のデータ処理装置であって、
前記状態データ処理部は、状態データとエラー値の演算を行うGPUまたはFPGA、あるいは、アナログ電子コンピューティングデバイスを用いて、前記状態データの時間発展的処理を実行し、前記コスト関数に基づいてデータを更新するデータ処理装置。
【請求項13】
状態データ処理部と、コスト評価部と、エラー演算部とを備えて、所与の問題を解くデータ処理装置を用いたデータ処理方法であって、
前記状態データ処理部が、所定の時間発展的処理によって状態データの更新を繰り返し、
前記コスト評価部が、現在の状態データのコスト関数の値を演算し、
前記エラー演算部が、現在の状態データの振幅の均一性に関するエラー値を演算し、
前記状態データは、変数の集合であり、前記状態データ処理部が、状態データについて時間発展的処理を行い、前記コスト関数と前記エラー演算部によって演算された、現在の状態データの振幅の均一性に関する前記エラー値とに基づいて、現在の状態データを更新する、データ処理方法。
【請求項14】
請求項13に記載のデータ処理方法であって、
前記データ処理装置は、さらに、変調部を備え、
当該変調部が、振幅の均一性と制約とに係るエラー変数を更新し、前記制約と前記現在の状態データとの間のカップリング項を演算し、ゲインと飽和とを演算し、
前記状態データ処理部が、状態データの更新のためのインジェクション項を演算し、当該状態データ処理部が所定の時間発展的処理により状態データを繰り返し更新している間に、当該状態データを有効な部分空間に射影し、
エラー演算部が、前記現在の状態データの振幅の均一性と制約とに関わるエラー値を演算し、
前記繰り返し処理が所定の条件が満足されるまで繰り返されるデータ処理方法。
【国際調査報告】