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

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

▶ 富士通株式会社の特許一覧

特開2023-165119解探索プログラム、解探索方法、および情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023165119
(43)【公開日】2023-11-15
(54)【発明の名称】解探索プログラム、解探索方法、および情報処理装置
(51)【国際特許分類】
   G06N 10/60 20220101AFI20231108BHJP
【FI】
G06N10/60
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022075774
(22)【出願日】2022-05-02
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】櫛部 大介
(57)【要約】
【課題】量子アニーリングにおける計算量を削減する。
【解決手段】情報処理装置10は、求解対象の問題を表すイジングモデルに印加される磁場を低減させたときのイジングモデルの状態変化を求めることでイジングモデルの基底状態を求解する。その際、情報処理装置10は、イジングモデルの初期状態から、第1のアニーリングスケジュールに従って磁場の強度を低減させる。そして情報処理装置10は、イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って磁場の強度を低減させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
求解対象の問題を表すイジングモデルに印加される磁場を低減させたときの前記イジングモデルの状態変化を求めることで前記イジングモデルの基底状態を求解するとき、前記イジングモデルの初期状態から、第1のアニーリングスケジュールに従って前記磁場の強度を低減させ、前記イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って前記磁場の強度を低減させる、
処理をコンピュータに実行させる解探索プログラム。
【請求項2】
前記第2のアニーリングスケジュールは、前記イジングモデルにおいて量子相転移が発生した後に前記第1のアニーリングスケジュールに従って前記磁場の強度を低減させた場合よりも、前記磁場の最小値に至るまでの前記磁場の更新回数が少ない、
請求項1記載の解探索プログラム。
【請求項3】
所定のパラメータの値が異なる複数の求解条件それぞれについて前記イジングモデルの基底状態を求解し、求解した結果に基づいて、前記量子相転移が発生するときの前記イジングモデルに印加される前記磁場の強さが所定の範囲内となる前記パラメータの値を決定する、
処理を前記コンピュータにさらに実行させる請求項1または2に記載の解探索プログラム。
【請求項4】
前記パラメータの値を決定する処理では、前記パラメータの値が異なる複数の求解条件それぞれについての、最も低いエネルギー状態のスピン配置が得られる頻度に基づいて、前記量子相転移が発生するときの前記イジングモデルに印加される前記磁場の強さが所定の範囲内となる前記パラメータの値を決定する、
請求項3記載の解探索プログラム。
【請求項5】
印加される前記磁場を低減させたときの前記イジングモデルの状態変化を求める過程における各状態でのエネルギーの変化に基づいて量子相転移の発生の有無を判断する、
処理を前記コンピュータにさらに実行させる請求項1記載の解探索プログラム。
【請求項6】
前記イジングモデルのハミルトニアンは、指定された次数の非線形の外部磁場を示す項を含んでいる、
請求項1記載の解探索プログラム。
【請求項7】
前記イジングモデルの基底状態を求解するとき、前記磁場の強度を低減させていく実数時間発展の第1処理と、前記第1処理で前記磁場の強度を更新するごとに、虚数時間発展法に基づき、前記イジングモデルのエネルギーを低減させる第2処理とを実行する、
請求項1または6記載の解探索プログラム。
【請求項8】
前記第2処理の実行後に、前記第1処理により前記磁場の強度を変更するとき、直前に実行した前記第2処理の終状態を、前記磁場の強度を更新後の前記第1処理の初期状態とし、前記終状態と前記初期状態とのエネルギー差が所定の閾値より小さくなる範囲で、前記磁場の強度を変更する、
請求項7記載の解探索プログラム。
【請求項9】
求解対象の問題を表すイジングモデルに印加される磁場を低減させたときの前記イジングモデルの状態変化を求めることで前記イジングモデルの基底状態を求解するとき、前記イジングモデルの初期状態から、第1のアニーリングスケジュールに従って前記磁場の強度を低減させ、前記イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って前記磁場の強度を低減させる、
処理をコンピュータに実行させる解探索方法。
【請求項10】
求解対象の問題を表すイジングモデルに印加される磁場を低減させたときの前記イジングモデルの状態変化を求めることで前記イジングモデルの基底状態を求解するとき、前記イジングモデルの初期状態から、第1のアニーリングスケジュールに従って前記磁場の強度を低減させ、前記イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って前記磁場の強度を低減させる処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、解探索プログラム、解探索方法、および情報処理装置に関する。
【背景技術】
【0002】
自然科学や社会科学において頻出する問題として、評価関数(エネルギー関数とも呼ばれる)の最小値(または最小値を与える評価関数の状態変数の値の組合せ)を求める最小値求解問題(または組合せ最適化問題と呼ばれる)がある。近年、このような問題を磁性体のスピンの振る舞いを表すモデルであるイジングモデルで定式化する動きが加速している。
【0003】
よく使用される解法は、マルコフ連鎖モンテカルロ(MCMC:Markov Chain Monte Carlo)法を用い確率過程を導入し、ボルツマン分布など特定の分布を定義した上で温度を導入し、温度をシミュレーション的に下げる方法である。この解法はシミュレーテッドアニーリング(SA:Simulated Annealing)法と呼ばれる。しかし、SA法で厳密解に到達するためには温度スケジュールを時間に関して対数の逆数でとることとなる。すなわち、高速に温度の冷却を行うと、必ずしも解が最適解に達しない。
【0004】
このような状況下で、近年量子力学に基づく計算技術および計算機の開発の動きが活発化している。この動きの技術的な基盤は量子アニーリング型量子コンピュータの実現である。量子アニーリング型の量子コンピュータは量子アニーリング(QA:Quantum Annealing)法が理論的な基盤になっている。量子コンピュータは普段使用している電子回路をベースにした古典的なコンピュータでは現実的な計算時間内で解くことが難しい問題を解くことができると期待されている。現段階ではすべての問題が量子コンピュータで高速化できるわけではないが、一部の問題が量子コンピュータで高速に解けると期待されている。代表的な問題がRSA暗号など暗号通信の基礎になっている素因数分解の問題である。このように、量子アニーリング型ではあるが量子コンピュータが実現されたため、量子コンピュータの応用範囲を探索する動きが加速している。
【0005】
QAにおいては、横磁場と呼ばれる磁場を加えた項が初期状態として用意される。なお外部磁場を加えることを掃引と呼ぶこともある。ここから励起状態に励起させないように磁場を弱めることで、求めたい最適化問題のハミルトニアンに十分ゆっくり遷移させることができる。このようにして求解対象の量子イジングハミルトニアンの基底状態を求めることができる。
【0006】
一方でQAには、系のハミルトニアンによっては基底状態と励起状態のエネルギーギャップが小さくなり、断熱遷移にかける時間が伸びてしまうという問題がある。具体的には断熱遷移をしていく過程で、中間のハミルトニアンにおける基底状態と第一励起状態のエネルギー差が小さくなってしまう問題である。この問題を解決するため、時間依存シュレーディンガー方程式を虚数時間で解くことにより、現象論的なエネルギー散逸効果を取り入れた計算法も提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2021-144622号公報
【特許文献2】特開2022-062760号公報
【非特許文献】
【0008】
【非特許文献1】Hidetoshi Nishimori and Kabuki Takada, “Exponential Enhancement of the Efficiency of Quantum Annealing by Non-Stoquastic Hamiltonians”, Frontiers in ICT, Volume 4, Article 2, February 2017
【非特許文献2】T. Albash and D. A. Lidar, “Demonstration of a scaling advantage for a quantum annealer over simulated annealing”, arXiv:1705.07452v3, 6 August 2018
【非特許文献3】S. Morita, and H. Nishimori, ”Mathematical foundation of quantum annealing”, J. Math. Phys. 49, 125210(2008), 15 December 2008
【発明の概要】
【発明が解決しようとする課題】
【0009】
量子アニーリングの過程で量子相転移が発生し、計算対象のイジングモデルが励起状態になる場合がある。励起状態になった後は、基底状態に落ちずに励起状態のまま収束する。そのため量子相転移の発生後は横磁場の強度をゆっくり弱めても、イジングモデルの基底状態を得ることはできない。しかし、従来は、量子相転移が発生した後も、発生前と同じアニーリングスケジュールに従って横磁場が弱められており、余分な処理が発生している。
【0010】
1つの側面では、本件は、量子アニーリングにおける計算量を削減することを目的とする。
【課題を解決するための手段】
【0011】
1つの案では、以下の処理をコンピュータに実行させる解探索プログラムが提供される。
コンピュータは、求解対象の問題を表すイジングモデルに印加される磁場を低減させたときのイジングモデルの状態変化を求めることでイジングモデルの基底状態を求解するとき、イジングモデルの初期状態から、第1のアニーリングスケジュールに従って磁場の強度を低減させ、イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って磁場の強度を低減させる。
【発明の効果】
【0012】
1態様によれば、量子アニーリングにおける計算量を削減することができる。
【図面の簡単な説明】
【0013】
図1】第1の実施の形態に係る解探索方法の一例を示す図である。
図2】第2の実施の形態のシステム構成の一例を示す図である。
図3】古典コンピュータのハードウェアの一例を示す図である。
図4】古典コンピュータが有する機能を示すブロック図である。
図5】虚数時間発展法を用いた熱的散逸の模式図である。
図6】4都市のTSPにおける都市の配置例を示す図である。
図7】初期状態にランダムに付加したノイズに応じた計算結果の違いを示す図である。
図8】8都市TSPの一例を示す図である。
図9】8都市TSPの解探索結果の一例を示す図である。
図10】G2の関数として得られた系の全エネルギー値を示す図である。
図11】外部磁場の時間変化の一例を示す図である。
図12】解析条件設定画面の一例を示す図である。
図13】スピンの磁気の強さ決定処理の手順の一例を示すフローチャートである。
図14】tqptの決定を伴うサンプリング処理の手順の一例を示すフローチャートの前半である。
図15】tqptの決定を伴うサンプリング処理の手順の一例を示すフローチャートの後半である。
図16】(1.1)式型の横磁場項と(2.1)式型の非線形横磁場を含んだ場合のG2に関する断熱ポテンシャルを示す図である。
図17】横磁場の強さG2に関するポテンシャルエネルギーの一例を示す図である。
図18】断熱ポテンシャルが交差する部分を拡大した図である。
図19】非線形項として2次の横磁場を入れたハミルトニアン(2.1)式を対角化した例を示す図である。
図20】4都市TSPの場合のエネルギー準位と第n励起状態のエネルギーEnと基底状態のエネルギーE0との差を示す図である。
図21】G2の弱め方の手順の一例を示すフローチャートである。
図22】4都市TSPのハミルトニアンを数値的に対角化したときの固有ベクトルの一例を示す図である。
図23】固有ベクトルのインデックスと固有状態との対応関係の一例を示す図である。
図24】量子相転移の検出を伴うアニーリング処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、量子アニーリングによるイジングモデルの基底状態の探索における計算量を削減する解探索方法である。
【0015】
図1は、第1の実施の形態に係る解探索方法の一例を示す図である。図1には、解探索方法を実施する情報処理装置10が示されている。情報処理装置10は、例えば解探索プログラムを実行することにより、解探索方法を実施することができる。
【0016】
情報処理装置10は、例えば量子アニーリング型量子コンピュータ1に接続されている。情報処理装置10は、量子アニーリング型量子コンピュータ1を制御し、量子アニーリングを用いて、求解対象の問題に応じたイジングモデルの基底状態を探索することで、例えば組合せ最適化問題の解を計算する。
【0017】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0018】
記憶部11には、例えば求解対象の問題を表すイジングモデルの情報が格納される。イジングモデルの情報には、そのイジングモデルに対応するハミルトニアンの式が含まれる。
【0019】
処理部12は、求解対象の問題を表すイジングモデルに印加される磁場を低減させたときのイジングモデルの状態変化を求めることでイジングモデルの基底状態を求解する。その際、処理部12は、イジングモデルの初期状態から、第1のアニーリングスケジュールに従って磁場の強度を低減させる。そして処理部12は、イジングモデルにおいて量子相転移が発生した後は、第2のアニーリングスケジュールに従って磁場の強度を低減させる。
【0020】
このように、量子相転移前後において、アニーリングのスケジュールを変更することで、量子相転移の発生前と発生後とのそれぞれに応じた適切なアニーリングスケジュールを適用することができる。その結果、計算量の削減が可能となる。
【0021】
すなわち量子相転移発生前と量子相転移発生後とでは、イジングモデルの量子状態の変わりやすさが異なるため、共通のアニーリングスケジュールを適用するのは不適切である。すなわち量子相転移発生後は、イジングモデルの量子状態が他の状態に遷移しない。そのため、量子相転移が発生した後は、磁場の低減速度を速めても、解の探索精度に影響がない。
【0022】
そこで処理部12は、例えば、第2のアニーリングスケジュールでは、イジングモデルにおいて量子相転移が発生した後に第1のアニーリングスケジュールに従って磁場の強度を低減させた場合よりも、磁場の最小値に至るまでの磁場の更新回数を少なくする。これにより、量子相転移が発生した後は、急速に磁場の強度が低減されることとなり、磁場が更新されるごとに実行される量子試行の回数が削減される。その結果、計算量も削減され、解探索時間も短縮される。
【0023】
また処理部12は、量子相転移が発生するときのイジングモデルに印加される磁場の強さが所定の範囲内の値となるように、イジングモデルに含まれる所定のパラメータの値を決定することもできる。例えば処理部12は、所定のパラメータの値が異なる複数の求解条件それぞれについてイジングモデルの基底状態を求解する。そして処理部12は、求解した結果に基づいて、量子相転移が発生するときのイジングモデルに印加される磁場の強さが所定の範囲内となるパラメータの値を決定する。例えば処理部12は、パラメータの値が異なる複数の求解条件それぞれについての、最も低いエネルギーの状態のスピン配置が得られる頻度に基づいて、パラメータの値を決定する。例えば最も低いエネルギーの状態のスピン配置が得られる頻度が最も高くなるパラメータの値が、量子相転移が発生するときのイジングモデルに印加される磁場の強さが所定の範囲内となるパラメータの値として決定される。
【0024】
処理部12は、決定したパラメータの値をイジングモデルに設定して、イジングモデルの基底状態の探索を行う。これにより、量子相転移が発生するときの磁場の強さを適切な範囲に制御することができる。例えば量子相転移が発生する磁場の強さが大きすぎると、解探索の精度が低下する。逆に、量子相転移が発生する磁場の強さが小さすぎると、計算時間が長期化する。量子相転移が発生する磁場の強さを適切な範囲に制御できることで、要求する解探索精度に応じた効率的な解探索が可能となる。
【0025】
なお、量子相転移が発生する磁場の強さに影響を与えるパラメータとしては、例えばスピンの磁気の強さがある。スピンの磁気の強さは、イジングモデルに印可する磁場を示す横磁場項に含まれるパラメータである。
【0026】
なお量子相転移が発生するときの磁場の強さ、または量子アニーリングにおける時刻が分かっていれば、処理部12にその値を設定しておくことで、計画的にアニーリングスケジュールの変更が可能である。量子相転移が発生するときの磁場の強さ、または量子アニーリングにおける時刻が不明であれば、量子アニーリングの過程で、量子相転移の発生の有無を検知することも可能である。
【0027】
例えば処理部12は、印加される磁場を低減させたときのイジングモデルの状態変化を求める過程の各状態で得られるエネルギーの変化に基づいて量子相転移の発生の有無を判断する。量子相転移の発生の有無は、例えばエネルギーを横磁場の強さなどによる2回微分を求め、その2回微分の符号の変化などから判断可能である。
【0028】
また処理部12は、イジングモデルのハミルトニアンに、指定された次数の非線形の外部磁場を示す項を含めることもできる。非線形の外部磁場を加えることにより、励起状態への遷移を抑制することができる。例えば処理部12は、非線形横磁場の強度を量子アニーリングスケジュールに応じて変更する。これにより、基底状態が得られる確率を向上させることができる。
【0029】
さらに処理部12は、イジングモデルの基底状態の求解において、磁場の強度を低減させていく実数時間発展の第1処理と、虚数時間発展法に基づき、イジングモデルのエネルギーを低減させる第2処理とを実行することができる。第2の処理は、例えば第1処理で磁場の強度を更新するごとに実行される。虚数時間発展法を用いることで熱散逸を発生させることができる。この熱散逸機構の導入により、断熱遷移条件を厳密に守らずとも基底状態へ緩和できるようになる。
【0030】
なお虚数時間発展法による熱散逸を発生させても、イジングモデルの状態が励起状態に遷移してしまう場合がある。励起状態に遷移してしまうと、その後、虚数時間発展を行っても基底状態に到達できない。そこで処理部12は、イジングモデルのハミルトニアンに非線形の外部磁場を加えた上で、虚数時間発展法による熱散逸を実施してもよい。これにより、基底状態に遷移する確率を向上させることができる。
【0031】
なお処理部12は、イジングモデルの初期状態として、異なるノイズを付加した複数の初期状態から解探索を実施することで、系の波動関数に多様性を持たせてもよい。これにより、イジングモデルの基底状態を確実に求解することが可能となる。
【0032】
虚数時間発展法に係る第2処理を適用する場合、処理部12は、外部磁場を更新する際、磁場の更新前後の状態間でのエネルギーの差が所定の閾値以下となるように、外部磁場の変化量を制御してもよい。例えば処理部12は、虚数時間発展法に係る第2処理の実行後に、第1処理により磁場の強度を変更するとき、直前に実行した第2処理の終状態と、磁場の強度を更新後の第1処理の初期状態とのエネルギーを計算する。そして処理部12は、それらの状態間のエネルギー差が所定の閾値より小さくなる範囲で、磁場の強度を変更する。これにより、イジングモデルの状態が励起状態に遷移することを抑止することができる。
【0033】
〔第2の実施の形態〕
第2の実施の形態は、2値N変数で定義された最小値求解問題について系の基底状態(最適値)および基底状態の波動関数(最適値における状態変数の組み合わせ)を求めるものである。
【0034】
図2は、第2の実施の形態のシステム構成の一例を示す図である。例えば古典コンピュータ100に量子アニーリング型量子コンピュータ200が接続されている。古典コンピュータ100は、ノイマン型コンピュータとも呼ばれる。古典コンピュータ100は、量子アニーリング型量子コンピュータ200を制御して、イジングモデルを用いた量子アニーリングによる最適値の探索を実行させる。量子アニーリング型量子コンピュータ200は、量子アニーリングによって組合せ最適化問題の解を探索する装置である。
【0035】
<古典コンピュータのハードウェア構成>
図3は、古典コンピュータのハードウェアの一例を示す図である。古典コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0036】
メモリ102は、古典コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0037】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0038】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0039】
GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0040】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0041】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0042】
機器接続インタフェース107は、古典コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0043】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0044】
古典コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示した古典コンピュータ100と同様のハードウェアにより実現することができる。
【0045】
古典コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。古典コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、古典コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また古典コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0046】
次に、古典コンピュータ100が有する機能について説明する。
図4は、古典コンピュータが有する機能を示すブロック図である。古典コンピュータ100は、記憶部110と処理部120とを有する。記憶部110は、例えばメモリ102またはストレージ装置103の記憶領域の一部によって実現される。処理部120は、例えばプロセッサ101に所定のプログラムを実行させることにより実現される。
【0047】
記憶部110は、エネルギー情報、スピン情報、横磁場情報、非線形磁場情報、問題設定情報、ハミルトニアン情報、量子相転移情報を記憶する。
エネルギー情報は、計算されたエネルギーの初期値や、これまで計算されたエネルギーの値のうち、最小値から小さい順に所定数のエネルギーの値を含む。また、エネルギー情報は、所定数のエネルギーの値に対応した各状態変数の値の組合せを含んでいてもよい。スピン情報は、各状態変数の値や、スピン初期化手法の指定情報を含む。横磁場情報は、系に作用する横磁場の強度の情報を含む。非線形磁場情報は、系に作用する非線形の横磁場の強度の情報を含む。問題設定情報は、例えば、求解対象の問題を示す情報、使用する最適化方法(SA法、QTSA(Quantum Thermal Simulated Annealing)法など)、最適化方法の実行に用いる各種パラメータ、計算終了条件などを含む。ハミルトニアン情報は、例えばエネルギー関数の重み係数(Wij)、バイアス係数(bi)、定数(C)などを含む。量子相転移情報は、量子相転移が発生する横磁場の強度などの量子相転移に関する情報を含む。
【0048】
処理部120は、記憶部110内のデータに基づいて、量子アニーリング型量子コンピュータ200を制御して最小値求解処理を行う。例えば処理部120は、記憶部110から上記の各種情報を、処理部120が理解可能な形式で読み込む。また処理部120は、問題設定情報に基づいて、求解対象の問題を求解するためのイジングモデルのハミルトニアンを示すハミルトニアン情報を生成する。生成されるハミルトニアンには、非線形の横磁場高が含まれる。処理部120は、生成したハミルトニアンを記憶部110に格納する。
【0049】
処理部120は、実数時間の発展に伴って更新される横磁場(後述のG2)を計算する。例えば処理部120は、予め定義されたアニーリングスケジュールに従って、外部磁場を減少させる。その際、処理部120は、量子相転移の発生前後で、異なるアニーリングスケジュールを適用する。処理部120は、例えば量子相転移が発生する横磁場の強度の設定入力を受け、指定された横磁場の強度を境にアニーリングスケジュールを変更する。また処理部120は、アニーリングの過程で量子相転移の発生を検知し、量子相転移の発生を検知した後は、それ以前と異なるアニーリングスケジュールを適用することもできる。
【0050】
また処理部120は、虚数時間の発展を制御する。例えば処理部120は、横磁場を固定した状態でスピンの状態が計算されるごとに、虚数時間の時間刻み幅Δτずつ虚数時間を進める。さらに処理部120は、初期化されたスピン状態にノイズを付加する。例えば処理部120は、複数のスピンのうちの所定数のスピンをランダムに選択する。処理部120は、選択したスピンの確率振幅に対してノイズを付加する。処理部120は、スピンごとのノイズの量を、例えば乱数を用いて個別に決定する。
【0051】
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0052】
このような古典コンピュータ100を用いて、2値N変数で定義された最小値求解問題について、量子力学に原理を置く計算を行い、系の基底状態および励起状態の波動関数を求めることができる。ただし、前述のように、QA法を用いた解探索の時間が長期化する原因の1つとして、1次の量子相転移と呼ばれる現象の発生がある。すなわち1次の量子相転移の発生を抑制しようとすると、解探索の時間が長期化してしまう。そこで、1次の量子相転移の発生を抑止しようとすると、最小値求解問題の解探索時間が長期化する理由について、詳細に説明する。
【0053】
なお、イジングモデルの基底状態とは、イジングモデルを表すハミルトニアンのエネルギーが最も低い状態である。以下、イジングモデルの基底状態を、ハミルトニアンの基底状態と呼ぶこともある。また、QA法においてイジングモデルに印加される磁場は横磁場と呼ばれる。
【0054】
<基底状態の算出手法の概要>
量子アニーリングにより、古典イジングモデルを解いた場合、既存のマルコフ連鎖モンテカルロ法による求解よりも指数関数的に高速に解けることが期待されている。ただし、これは多項式時間で解けることを直ちに意味しない。一般的に2Nの計算量が必要な問題を、指数関数的に高速化した結果N1<NなるN1を用いて2N1(「N1」の「1」は下付きの添字)の計算量になったとする。この場合において、計算速度は2N-N1(「N1」の「1」は下付きの添字)だけ加速し、確かに指数関数的な加速になるが、加速したとしても、これは多項式時間ではない。しかしながら、例え不幸にも多項式時間で解けなかったとしても、指数関数的な加速には意味がある。例えば、ある種の問題が138億年というふうに、宇宙開闢以来の時間を掛けても解けなかったとする。この場合に、我々はこの問題を解けないと表現する。しかし、これが不完全ながらも指数関数加速を行うことができ、138億倍だけ加速出来れば、計算時間は1年になる。この場合、一般には指数関数的な計算量を持つ問題を解いたことにはならないが、特定の問題を解くには十分な速度向上が得られる場合があり、実用性において技術を開発する具体的なメリットがある。
【0055】
さらに、量子コンピュータの社会応用の検討も始まっており、量子コンピュータそのものを作るだけではなく、量子コンピュータをどのような社会的な課題の解決に適用していくのかという応用適用の議論も盛んになりつつある。例えば、ヘルスケア領域における病院の予約の最適化などは一つの具体的なターゲットになりえる。なぜならば、病院の予約等のスケジュールを高速で最適化できれば、病院は限られた医師等の人的リソースを最適化でき、経営効率も上がる。同時に患者側も待ち時間が減るという具体的なメリットが双方に存在する。両者が利益を有する関係になるため、量子コンピュータの応用適用先としてスケジュール最適化などの技術を開発するための具体的な動機が存在する。
【0056】
イジングモデルの基底状態をQA法で求解する場合、横磁場を加えた項が初期状態として用意される。熱的散逸処理を行わない場合、ここから、求めたい2値N変数問題として定義された最適化問題のハミルトニアンの横磁場の強さを十分ゆっくり弱めていき、最終的に横磁場が0になるようにする。このとき、系の波動関数を初期状態から求解対象のイジングモデルの基底状態の波動関数に十分ゆっくり遷移させていき、励起状態に励起させないように磁場を弱めることとなる。これを断熱遷移と言う。断熱遷移の結果として、最終的に系は求解対象のハミルトニアンの基底状態に遷移する。このようにして求解対象の量子イジングハミルトニアンの基底状態を求めることができる。
【0057】
一方でQAにも欠点が存在する。系のハミルトニアンによっては基底状態と励起状態のエネルギーギャップが小さくなり、断熱遷移にかける時間が伸びてしまう問題がある。具体的には断熱遷移をしていく過程で、中間のハミルトニアンにおける基底状態と第一励起状態のエネルギー差が小さくなってしまう問題である。
【0058】
エネルギー差がスピンの数の関数として指数関数的に小さくなる場合を1次の量子相転移と呼ぶ。量子相転移が1次の場合、QAによる断熱遷移条件を守りながら時間発展するための時間刻み幅は基底状態と励起状態のエネルギーギャップに依存する。そのため、時間刻み幅を指数関数的に小さくすることが求められる。これは量子アニーリング法により終状態に到達するための時間発展回数が指数関数的に延びることを意味する。
【0059】
他方において、エネルギー差がスピンの数の関数としてべき乗で小さくなる場合も存在する。これを2次の量子相転移と呼ぶ。2次の量子相転移が起こる場合、QAの断熱遷移の速度はべき乗で小さくなる。この場合は終状態にたどり着くために必要な時間は多項式時間で増加する。
【0060】
しかし、応用上興味のある問題の多くが1次の量子相転移を伴うため、多くの実用上の問題において計算時間が指数関数的に増大する。そこで1次の量子相転移を2次の量子相転移に置き換えることが可能であるかを探る研究もなされている。Non-Stoquastic Hamiltonianと呼ばれる特殊なハミルトニアンの系において、横磁場項に工夫をすることで1次相転移を2次相転移にすることができたという報告もある(非特許文献1)。従って、通常のQA法の枠組みにおいては1次の量子相転移をいかにして回避するかが計算を実行する上での中心的な課題になる。
【0061】
さらにQAにおいては断熱遷移条件を守ることが求められている。しかし、QA法に基づく量子コンピュータを用いた計算では、この断熱条件が破られているにも拘らず、有限の確率で基底状態を計算できている可能性があることが報告されている(非特許文献2)。量子アニーリングの実機を用いた計算においては、最適なTTS(Time To Solution)が存在するという報告であるが、物理学的な見地において、なぜ最適なTTSが存在するかについては一考の余地がある。
【0062】
これらの状況を考えると、量子アニーリングにおいては、何らかの原因でエネルギー散逸(熱的散逸)が起こり、エネルギー散逸によって量子アニーリングの機構が機能している可能性があると考えられる。時間依存シュレーディンガー方程式を虚数時間で解くことにより、現象論的なエネルギー散逸効果を取り入れた計算法も提案されている(特許文献1)。
【0063】
しかしながら、エネルギー散逸効果を取り入れた計算法を用いても、基底状態を計算できない場合があり得る。それは、一度スピンが反転し、対応する古典的な状態に量子状態が陥ってしまうと、そのあとは、幾ら横磁場を弱めてもスピンは反転しないためである。つまり、巡回セールスマン問題などで、最適解以外の状態(励起状態)が虚数時間発展で得られてしまうと、励起状態から基底状態へ脱励起させるメカニズムが存在しない。
【0064】
この問題を簡単に説明する。まず、量子アニーリングハミルトニアンは通常次の(1.1)式で定義される。なお、スピン数をN(Nは自然数)とする。
【0065】
【数1】
【0066】
1,G2は定数である。量子アニーリングではG1=1-G2とする場合が多い。G1=1-G2とする場合は、0≦G1≦1、0≦G2≦1とするが、一般には任意でよい。G1=1-G2なる条件を課さない場合においても、境界条件としてG2=0の時に、G1=1が課される。HTHは最小値求解対象のハミルトニアンである。T(^付き)は横磁場演算子である。古典イジングモデルでは2値型の変数zi={0,1}に対して、H({z})を(1.2)式で定義する。
【0067】
【数2】
【0068】
この(1.2)式が求解対象ハミルトニアンである。ここで、Wij、biおよび、Cは実数であり、それぞれ、重み係数、バイアス係数、定数項と呼ばれる。(1.2)式はそのままでは量子力学で取り扱うことができない。そのため、(1.2)式において、2値変数ziについて、zi→σi z(σは^付き)の置き換えをして量子化された(1.3)式のハミルトニアンHTH(Hは^付き)が導入される。
【0069】
【数3】
【0070】
ただし、このままではスピンの運動を記載する項がない。通常のシュレーディンガー方程式における運動エネルギー項がないため、横磁場項と呼ばれるスピンの運動を記述する項T(^付き)を(1.4)式の形で導入する。
【0071】
【数4】
【0072】
つまり、(1.2)式の最小値求解をするため、ハミルトニアンを量子力学的なハミルトニアンの(1.1)式に拡張し、(1.1)式の最低エネルギー状態を求めることで、古典イジングモデルの(1.2)式の最小値求解を達成する戦略である。このような戦略を採るのは、量子論に拡張したほうが高速に最低エネルギー状態を求められると考えることができるためである。
【0073】
(1.1)式のハミルトニアンに対する、非相対論的なシュレーディンガー方程式は(1.5)式となる。
【0074】
【数5】
【0075】
量子アニーリングの理論の枠組みでは、初期状態として実験的に作成可能な状態を初期状態にすることになる。具体的には(1.6)式となる。
【0076】
【数6】
【0077】
ここで、|φi(t=0)>はi=1,2,・・・,Nに対して定義され、1スピンの波動関数である。量子アニーリングでは、(1.7)式が初期状態とされる。
【0078】
【数7】
【0079】
これは、(1.7)式がJi>0において、横磁場演算子T(^付き)の基底状態になっているからである。(1.7)式の初期状態から系の波動関数を(1.5)式に従い時間発展する処理が行われる。つまり、G2(t=0)=1、G1(t=0)=0と設定される。励起状態に励起させないように、G2を十分ゆっくり小さくし、G2(t≫1)=0となるようにする。このとき、G1(t≫1)=1となるので、励起状態に遷移しないのであれば、最終的には求解ハミルトニアンHTH(Hは^付き)の基底状態が得られる。このとき、励起状態に遷移しない条件を断熱遷移条件と呼ぶ。
【0080】
なお、演算子は以下のように定義される。
【0081】
【数8】
【0082】
【数9】
【0083】
【数10】
【0084】
【数11】
【0085】
(1.8)式は通常用いられるスピン演算子の定義と異なっているが、これはスピン演算子の固有値を1および-1ではなく、1および0にするためである。|αi>と|βi>には直交関係として(1.12)式が成立する。ここでδijはクロネッカーのデルタである。
【0086】
【数12】
【0087】
次に縦磁場項σi zについての固有方程式を以下に示す。
【0088】
【数13】
【0089】
【数14】
【0090】
横磁場項σi x(σは^付き)については以下のようになる。
【0091】
【数15】
【0092】
【数16】
【0093】
留意すべきはσi z(σは^付き)演算子の定義が(1.9)式であり、通常用いられるパウリのスピン行列と若干異なっていることである。
前述の特許文献1で導入したQTSA法は(1.5)式のシュレーディンガー方程式を数値的に解く場合に、時間を実数から虚数にして解く方法である。時刻tにおける波動関数は(1.17)で一般に与えられる。
【0094】
【数17】
【0095】
ここで、|ψn>はHTH(Hは^付き)の固有状態とする。すなわち、固有状態が(1.18)である。
【0096】
【数18】
【0097】
QTSA法では、ここで時間tが(1.19)式を用いて虚数に変換される。
【0098】
【数19】
【0099】
τは実数であるが、虚数時間と呼ばれる。(1.19)式を用いて(1.17)式を変形すると次の(1.20)式が得られる。
【0100】
【数20】
【0101】
(1.20)式において、虚数時間τ→∞の極限を取ると、基底状態のみの振幅が残り、(1.21)式のようになる。
【0102】
【数21】
【0103】
ここで、(1.21)式も最終的には0になってしまうが、これは時間を虚数にすることでユニタリ保存が破れるためである。しかし、(1.20)式において、強制的にユニタリ保存するように、波動関数の規格化条件を守るように再規格化しながら計算すると、励起状態の情報のみが消えて、最終的に基底状態の情報のみが残る。これが虚数時間発展法の概要である。具体的な手続きは特許文献1に記載された通りである。
【0104】
しかし、虚数時間発展の前提になる完全系展開では(1.17)式に「基底状態が含まれている」ことを前提とする。虚数時間発展の途中で基底状態の情報が失われてしまえば、励起状態に収束してしまう。そのため、一度励起状態に収束してしまうと、虚数時間発展を続けても基底状態に落ちることはない。これは、虚数時間発展の前提となる基底状態の情報が消えてしまうのが原因である。
【0105】
図5は、虚数時間発展法を用いた熱的散逸の模式図である。図5には、横軸にλ、縦軸にハミルトニアンによって求められる系のエネルギーをとったグラフ30が示されている。図5の例では、実数時間発展に伴い横磁場の強さに対応する定数λが0から1に遷移するときの、λに応じた基底状態におけるエネルギーを実線31で示している。また、λに応じた第1励起エネルギー状態を点線32で示している。λが0のときに横磁場の強さが最大であり、λが1のときに横磁場の強さが最小である。
【0106】
ここで図5中のλは1-G2であるとする。ある与えられたλに対して、虚数時間発展を行い、与えられたλにおける基底状態を求めるものとする。そして、λの値を少し増やしてλ+Δλとすることを想定する。このとき、λ+Δλにおける波動関数の初期値として、前段のλの値における虚数時間発展の結果得られた波動関数が用いられる。この手続きの繰り返しにより、最終的にλ=1における波動関数を求めることができる。
【0107】
しかし、1次の量子相転移が起こる状況では図5における点P付近のように、複数の量子状態がエネルギー的に近接している。そのため、Δλを十分小さく取らないと、励起状態に遷移してしまうのである。つまり、本来は点Qから点Rに虚数時間発展の結果遷移することを期待するが、一旦点Qに遷移してしまうと、これは励起状態である。そのため、遷移した時点で基底状態の情報が失われてしまう。結果として、虚数時間発展を続けても点Rに遷移しない。そして、λ=1まで虚数時間発展を続けても、もはや基底状態に到達することはない。
【0108】
実際には量子ビット数を増やすと、エネルギー的に近接した量子状態が非常に多くなる。そして、エネルギー差も非常に小さくなってしまう。そのため、系にほんの少しノイズが乗るだけで、最終的に得られるλ=1の状態は変わってしまう。このとき、スピン配列はかなり変わった状態が得られる。エネルギー差は問題によっては(1.22)式のように指数関数的に小さくなることが知られているが、中間状態のほんのわずかなエネルギー差により、結果として得られる終状態が大きく変わってしまう。
【0109】
【数22】
【0110】
計算や実験は必ず有限精度で行われることになるため、有限精度の測定では基底状態と励起状態が区別できなくなる。例えば、シミュレーションでは倍精度実数を使うことが多いが、倍精度実数は16桁しか扱うことができない。もし、基底状態と励起状態がほぼ縮退しており、そのエネルギー差が17桁目以降に出るような状態であれば、16桁の精度の計算ではもはや区別することができない。数値的には縮退した状態になってしまう。
【0111】
結果として、数値的に縮退した状態と見なされてしまうと、どの状態に遷移するかは完全にランダムに決まってしまう。波動関数の時間発展時に現れたわずかな誤差で遷移先が決定されてしまう。そして、問題はその遷移先をもはや制御できないことである。
【0112】
これは、自発的対称性の破れが起こっていると考えればよい。複数の実質的に縮退したエネルギー準位構造があり、量子アニーリング時には、どのエネルギー準位にも等確率に遷移できてしまう。行き先を決めるのは計算時に蓄積した誤差や外界からのノイズなどほんの少しの初期状態の違いによって、最終的に行き着く巨視的な量子状態が変わってしまう。偶発的な要因で系の運命は決まってしまう。
【0113】
では32桁や64桁の多倍精度を使えば解決するのだろうか。(1.22)式が正しいのであれば、つまり、基底状態と励起状態のエネルギー差がスピン数Nの関数として指数関数的に小さくなるのであれば、スピン数を増やしたときにはエネルギー差を区別するために必要な桁数はスピン数Nに比例して増えていくことになる。そのため、N≫1の場合、エネルギー差を記述するために用いられる桁数NdはNd∝Nであり、たとえ、32桁や64桁の多倍長演算を用いても、倍精度計算時と同じ問題が起こってしまう。
【0114】
加えて、もう一つ大きな問題がある。計算時間の問題である。量子アニーリング時の計算時間(虚数時間発展の計算回数)NIは、ある与えられたG2の値での虚数時間発展に要する計算回数nI(G2)の関数として、(1.23)式で与えられる。
【0115】
【数23】
【0116】
ここで、G20は1次の量子相転移が起こるG2の値である。虚数時間発展における計算時間の見積もりは、(1.20)式より、第一励起状態が十分小さくなる時間として与えられるため、(1.24)式で与えられる。
【0117】
【数24】
【0118】
このため、計算時間τ1は(1.25)式で見積もることができる。
【0119】
【数25】
【0120】
ΔE1は(1.26)式の通りである。
【0121】
【数26】
【0122】
ここで1次の量子相転移が起こるのであれば、(1.22)式でΔE1が与えられるため、(1.27)式に示す程度の計算時間がかかる。
【0123】
【数27】
【0124】
従って、全体の計算時間NIは(1.28)式で表される。
【0125】
【数28】
【0126】
これより、1次の量子相転移が起こると、計算時間はスピン数Nの関数として指数関数的に長くなってしまう。しかも、(1.25)式はエネルギーと時間の不確定性原理と呼ばれるものである。このため、(1.25)式は計算技術上の問題ではなく、物理学としての原理的な問題である。
【0127】
この問題の根源は、エネルギー差が(1.22)式のように指数関数的に小さくなるという所から来ており、実質上エネルギー準位が縮退してしまうことが問題の本質である。この場合、エネルギー準位が実質的に縮退してしまうため、ユーザが計算の最終状態を制御するのが困難になる。この問題は、1回の量子アニーリング計算で基底状態を得ようとする場合において発生する。
【0128】
このような状況にあっても、確率的に基底状態を求めることができればよいのであれば、短時間で基底状態を求めることは可能である。
そこで導入するのが量子試行の概念である。ここで、虚数時間発展で実際に4都市の巡回セールスマン問題(TSP:Traveling Salesman Problem)を解く場合を例にとり、量子試行の概念を簡単に説明する。
【0129】
図6は、4都市のTSPにおける都市の配置例を示す図である。図6の例では、1番目の都市の位置が(0,0)、2番目の都市の位置が(3,0)、3番目の都市の位置が(3,1)、4番目の都市の位置が(1,1)である。この問題では経路が3つしかなく、最小の経路から順に7.414、7.812、10.398であることが分かっている。
【0130】
初期状態として、(1.29)式のように波動関数の振幅にほんの少しだけノイズδiを入れる。ただし、ノイズを付加すると波動関数のノルムが1から変化するため、ノイズ付加後に、波動関数のノルムが1になるように再規格化する。
【0131】
【数29】
【0132】
(1.29)式のノイズはランダムな値が設定される。ただし、虚数時間発展時の収束判定は計算に用いる桁数よりも小さく取っておく。例えば、倍精度浮動小数点を使用する場合、エネルギーの収束判定はΔE≦10-10などとしておく。このようにすると、初期に与えたノイズの影響が残ったままになる。このようにして、系にわずかにランダムにノイズを与えておき、量子アニーリング計算を行う。計算結果として一つの量子状態が最終的に得られる。この一連の操作を量子試行と呼ぶことにする。
【0133】
量子試行を200回ほど実行して得られた結果を図7に示す。ここで、G2を離散的な点として与え、等間隔に分点を定義する。そして、計算に用いる分点の数は1024である。
【0134】
図7は、初期状態にランダムに付加したノイズに応じた計算結果の違いを示す図である。図7に示すグラフ33は横軸がG2であり、縦軸が全エネルギーである。グラフ33に示す3本の実線それぞれが、異なる分点数の量子試行によるG2の値ごとのエネルギー値を示している。グラフ33に示すように、分点の数によっては結果が7.414の基底状態が求まる場合もあれば、7.812や10.398の励起状態が求まる場合もある。
【0135】
図7に示すように、初期状態として与えたわずかなノイズにより最終的に得られるエネルギー状態も異なってしまうが、有限の確率で基底状態に到達する。これは、問題を一種の散乱過程として捉えなおして解いていると考えることができる。
【0136】
しかしながら、量子試行を用いた場合の課題も存在する。量子試行を用いた計算によって、量子アニーリングのためのアニーリングスケジュールは大幅に緩和可能であるし、量子試行によって有限の確率で基底状態も計算ができる。しかし、スピン数Nが増えると、基底状態が得られる確率が下がってしまい、基底状態に到達することが難しくなる。
【0137】
このような背景から、量子試行を実行するときに、基底状態に到達する確率を高めるための技術開発が望まれている。
そこで古典コンピュータ100では、量子試行を用いた場合における基底状態に到達する確率を高めるための技術が適用される。
【0138】
<基底状態に到達する確率を高めるための技術の概要>
古典コンピュータ100は、2値型N変数で定義されるイジングモデルの最適解を量子力学に基づく変分原理で求める。そして古典コンピュータ100は、提案の技術を適用することで、QTSA法で計算をした場合、必ずしも基底状態が求まらず、場合によっては基底状態にたどり着かず、励起状態に到達してしまう問題を解決し、高確率で基底状態にたどり着くようにする。
【0139】
古典コンピュータ100は、基底状態に到達する確率を高めるために行う処理は、例えば以下のような処理である。
1.古典コンピュータ100は、量子アニーリングハミルトニアンを量子力学の枠組みで解く。すなわち古典コンピュータ100は、熱散逸の効果を取り入れ、量子力学的な時間発展演算子における時間を複素数に拡張する。そして古典コンピュータ100は、虚数時間発展法に基づき、熱散逸を実現する。熱散逸機構の導入により、断熱遷移条件を厳密に守らずとも基底状態へ緩和できる。
【0140】
2.古典コンピュータ100は、QTSA法を虚数時間における散乱過程として捉えなおし、初期状態に多様性を与える。このことで、初期状態と終状態のペアができる。これを量子試行と定義し、古典コンピュータ100は、初期状態を変えた多数回の量子試行によって対象ハミルトニアンの基底状態を含む励起状態を求める。
【0141】
3.古典コンピュータ100は、波動関数の初期値に多様性を持たせるため、通常は邪魔者扱いされるノイズを積極的に利用し、ノイズにより系の波動関数に多様性を持たせる。その結果として、系の対称性が破壊され、量子アニーリングの計算における計算量の致命的な増大が緩和される。
【0142】
4.古典コンピュータ100は、スピン数Nが大きくなると、基底状態へ到達する確率が低くなるため、非線形の外部磁場を入れる。これにより、多スピン励起を誘発し、実質上のエネルギー縮退が起こっている量子状態の数を減らすことができる。そのため、終状態の候補数が少なくなる。結果として基底状態への遷移確率を高めることができる。
【0143】
以下、古典コンピュータ100が実行する処理について詳細に説明する。
<イジングモデル問題のハミルトニアンについて>
まず、最小値求解問題であるイジング型問題を説明する。イジング型問題は元々物理学領域において磁性体の研究に使われたモデルであり、N個のスピンがあるときの全エネルギーは(1.2)式で記述される。
【0144】
イジング型問題は、(1.2)式で与えられるハミルトニアンの最小値を求めるものである。しかし、最小値を求めるための計算量は一般に2N回程度になることが知られている。つまり、最適解を求めるための計算時間は多項式時間で抑えられず、指数関数的に増大する。そのため、(1.2)式を総当たりで解くようなことは通常せず、メトロポリス法に基礎を置く計算を実行して最小値を求めることが多い。SA法やレプリカ交換法などがよく使用されるが、メトロポリス法に基礎を置く計算法では、最小値にたどり着くまでの計算量が厳密に求められているわけではない。そしてメトロポリス法に基礎を置く計算法は、経験的にはスピンの数Nに対して計算量が指数関数的に増大することが知られている。
【0145】
古典的なハミルトニアンを確率過程に基礎を置く計算よりも高速化するため、量子論を用いて計算を行う枠組みを考える。ただし、ハミルトニアンの(1.1)式から少し変えて、(2.1)式で定義される量子力学的なハミルトニアンを用いる。
【0146】
【数30】
【0147】
(2.1)式の(1.1)式との違いは横磁場に加えて、付加的な外部磁場項が加えられていることである。ここでは、Vadd(Vは^付き)として非線形の外部磁場を想定する。具体的な例として(2.2)式を考える。
【0148】
【数31】
【0149】
ここで、G3については以下の境界条件(2.3)および(2.4)を満たすものとする。
【0150】
【数32】
【0151】
【数33】
【0152】
この条件を満たすものであれば、G3としてさまざまな取り方が考えられる。例えば、一つの取り方としてはn>0として(2.5)式のように取ることができる。
【0153】
【数34】
【0154】
この条件は、G2→1において、方程式が自明解を持つようにするためである。G2→0における条件は、G2→0でハミルトニアンが求めるべきポテンシャルと一致するようにするためである。なお、G1については、量子アニーリングでよく使用される型を用いることができ、(2.6)式で表される。
【0155】
【数35】
【0156】
TH(Hは^付き)および、T(^付き)の定義はそれぞれ(1.3)式、(1.4)式とする。演算子の定義は(1.8)~(1.9)とする。ブラとケットベクトルの定義と演算の定義は(1.10)~(1.16)とする。非相対論的なシュレーディンガー方程式は(1.5)とする。波動関数は1スピンの波動関数の直積形として(1.16)式とする。
【0157】
次にi番目の量子ビットを表す1粒子波動関数のケット表示を(2.7)式で定義する。
【0158】
【数36】
【0159】
(t)は、i番目のスピンの|αi〉の状態の確率振幅と位相を表す複素数である。C(t)は、i番目のスピンの|βi〉の状態の確率振幅と位相を表す複素数である。1粒子波動関数のブラ表示を次の(2.8)式で定義する。
【0160】
【数37】
【0161】
ここで、1粒子波動関数は規格化されているとして、(2.9)式が成り立つ。
【0162】
【数38】
【0163】
次によく使用する物理量を以下のように定義する。
【0164】
【数39】
【0165】
【数40】
【0166】
N粒子系の波動関数を以下の様に定義する。
【0167】
【数41】
【0168】
なお、m番目のスピンがαスピンとして観測される確率をPm,α、βスピンとして観測される確率をPm,βとすると、それぞれ以下の式で表される。
【0169】
【数42】
【0170】
【数43】
【0171】
以上がイジングモデル問題のハミルトニアンの説明である。
<虚数時間発展法による基礎方程式>
次に虚数時間発展法による基礎方程式について説明する。
【0172】
今、ハミルトニアン(2.1)式で定義される時間依存シュレーディンガー方程式(1.5)式を解くことを考える。
次に虚数時間発展法(ITP:Imaginary Time Propagation)を量子イジング系に適用した場合の支配方程式を導出する。時間発展演算子として1次のITPを用いる。1次のITPの演算子は(2.15)式で与えられる。
【0173】
【数44】
【0174】
(2.15)式をΔtに関して1次の項まで展開して整理すると(2.16)式となる。
【0175】
【数45】
【0176】
次に波動関数の時間発展を記述する方程式を導く。波動関数の時間発展は(2.17)式で与えられる。
【0177】
【数46】
【0178】
今、m番目の粒子の波動関数だけ除いたN-1スピン系の波動関数を|Ψm(τ)>(mはオーバーライン付き)と表記すると、この波動関数は次の(2.18)式のようになる。
【0179】
【数47】
【0180】
(2.18)式の両辺に<αm|×<Ψm(τ0)(×はテンソル積(丸の中に×)、Ψの添字mにはオーバーライン付き)を作用させる。その結果、左辺は(2.19)式、(2.20)式となる。
【0181】
【数48】
【0182】
【数49】
【0183】
ここで、Mi *はスピンの変化のしにくさを表す量であり、(2.21)式で表される。
【0184】
【数50】
【0185】
ここで(2.22)式を定義する。
【0186】
【数51】
【0187】
Ωm(τ)をΔτの項まで整理すると(2.23)式となる。
【0188】
【数52】
【0189】
次に(2.18)式の両辺に<αm|×<Ψm(τ0)(×はテンソル積(丸の中に×))、Ψの添字mにはオーバーライン付き)および<βm|×<Ψm(τ0)(×はテンソル積(丸の中に×))、Ψの添字mにはオーバーライン付き)を作用させた結果の右辺を求め、m番目(m=1,2,・・・,N)のスピンの従う支配方程式を求めると(2.24)式が求まる。
【0190】
【数53】
【0191】
ここで、行列要素は以下の(2.25)式~(2.27)式で与えられる。
【0192】
【数54】
【0193】
【数55】
【0194】
【数56】
【0195】
(2.25)式~(2.27)式中のパラメータを以下に与える。ETHは求解対象のハミルトニアンのエネルギー項であり、(2.28)式~(2.30)式で定義される。
【0196】
【数57】
【0197】
【数58】
【0198】
【数59】
【0199】
ここでhz,mは平均場に相当する量であり、(2.31)式および(2.32)式で与えられる。
【0200】
【数60】
【0201】
【数61】
【0202】
横磁場項T(^付き)起因のエネルギーは式(2.33)の通りである。
【0203】
【数62】
【0204】
外部磁場として与える高次の横磁場項の(2.2)式のハミルトニアンのエネルギーは次の(2.34)式で与えられる。
【0205】
【数63】
【0206】
m,ααは横磁場項の期待値であり、<αm|×<Ψm(τ0)|T|Ψ>(×はテンソル積(丸の中に×)、Ψmのmはオーバーライン付き、Tは^付き)からC(τ)の係数を抜き出したものである。Tm,αβは、<αm|×<Ψm(τ0)|T|Ψ>(×はテンソル積(丸の中に×)、Ψmのmはオーバーライン付き、Tは^付き)からC(τ)の係数を抜き出したものである。そして、Tm,ββは、<αm|×<Ψm(τ0)|T|Ψ>(×はテンソル積(丸の中に×)、Ψmのmはオーバーライン付き、Tは^付き)からC(τ)の係数を抜き出したものである。
【0207】
m,αα (2)、Tm,ββ (2)および、Tm,αβ (2)は次の(2.35)式、(2.36)式および、(2.37)式で与えられる。
【0208】
【数64】
【0209】
【数65】
【0210】
【数66】
【0211】
(2.24)式に従い、虚数時間発展を行うことになるが、このときユニタリティ(確率の保存)は破れる。そのため、時間発展計算後、波動関数を1にするように再規格化(Renormalization)が行われる。
【0212】
次にΩm(τ)について説明する。m番目のスピンに対してαスピンが観測される確率をPm,α、βスピンが観測される確率をPm,βとする。Pm,αとPm,βとは(2.38)式、(2.39)式で表される。
【0213】
【数67】
【0214】
【数68】
【0215】
時間発展毎に再規格化をするため、ユニタリティ(確率の保存)は強制的に保存されており、(2.40)が満たされる。
【0216】
【数69】
【0217】
従って、観測確率の和を虚数時間τについて微分すると(2.41)式となる。
【0218】
【数70】
【0219】
従って、Mm *は実数部を持たない純虚数である。ここで、Mm *はMmの複素共役とする。
ここで、時間発展の支配方程式(2.24)式において、波動関数の初期値としてC(τ=0)とC(τ=0)を共に実数に選んだ場合を考える。(2.24)式の右辺の行列要素はすべて実数である。従って、CとCが実数であればC(τ+Δτ) Ωm(τ)は実数である。一方で、Ωm(τ)はMm *から計算されるが、Mm *の定義式(2.21)式から時刻τにおけるMm *も実数になる。ところが、(2.41)式からMm *は純虚数になるため、この場合はMm *=0になる。従って、Ωm(τ)=1になる。C(τ+Δτ)も実数になる。C(τ+Δτ)もまったく同様の議論で実数になる。
【0220】
次に波動関数の初期値C(τ=0)、C(τ=0)を複素数として決めた場合を考察する。この場合、Mm *は複素数として与えられる。この場合、一般にはΩm(τ)≠1であり、複素数になる。そして、Mm *はm番目のスピンから決まる量である。従って、Ωm(τ)は着目するm番目以外のすべてのスピンの情報から決まる。従って、C(τ+Δτ)は直前のi≠mを満たす全ての他のスピンの波動関数C(τ)とC(τ)の影響を受ける。すなわち、時刻τ=0の波動関数の情報に位相情報を組み入れ、複素数にした場合、虚数部分を介して情報をやり取りする。絶対値の2乗で定義される観測確率には影響を与えない位相部分がスピン間の相互作用にも重要な役割を果たしている。そして、この相互作用は他の全てのスピンと結合し、位相部分を介して他のすべてのスピンともつれ合う。
【0221】
<虚数時間発展の物理的な意味と量子力学的なシミュレーテッドアニーリング>
虚数時間発展の枠組みにおいては、(1.19)式のように、実数で定義された時間を虚数に変換する。このとき、量子力学的な時間発展演算子を波動関数に作用させると、τ≫1の場合には(1.20)式のようになることは既に示した。(1.20)式とボルツマン分布である(2.42)式が対応すると考える。
【0222】
【数71】
【0223】
このときの対応関係から(2.43)式となる。
【0224】
【数72】
【0225】
ここから、τ→∞の場合、T→0に対応することがわかる。この意味で、虚数時間発展は、量子力学的に拡張された一種のシミュレーテッドアニーリングと見なすことができる。このような解探索手法がQTSA法である。
【0226】
<量子アニーリングスケジュールについて>
量子アニーリングをするときには、アニーリングスケジュールが重要と言われる。虚数時間発展法においては、G2を変える実時間発展をして、次に、エネルギー散逸を含めた虚数時間発展を行い、与えられたG2における最低エネルギー状態を求める過程を繰り返す。ここでG2を変える実時間発展のスケジュールは重要である。例えば時間発展のスケジュールはべき乗型にすることができる。すなわち、ここでは(2.44)とする。
【0227】
【数73】
【0228】
例えばc(cは実数)はN-1に比例した値とする。虚数時間発展法では断熱遷移を要求しないため、cがN-1と比例関係を有していなくてもよい。
<非線形の外部磁場の有用性>
次にQA法における非線形の外部磁場の有用性について説明する。まず、検証する課題として、Nスピン系のイジングモデルとして定義された巡回セールスマン問題(TSP)を考える。
【0229】
図8は、8都市TSPの一例を示す図である。図8には8都市TSPの問題を定義する問題データ41が示されている。問題データ41には、8つの都市それぞれの都市番号(city No.)に対応付けて、その都市の位置を示すx,yの座標が設定されている。このような8都市のTSPは、64量子ビットの系で表現される。この問題の最適解の一つの都市の訪問順序は都市1→2→3→4→5→6→7→8である。そのときの最適値は-2.5023である。
【0230】
図8のTSP問題を解く場合、例えば(1.1)式で定義される量子アニーリングハミルトニアンに対して、非線形の外部磁場を加えた量子アニーリングハミルトニアン(2.1)式を定義することができる。(1.1)式と(2.1)式に対して、それぞれ量子試行を400回ずつ行い、基底状態が得られる確率が向上するかどうか検証する。
【0231】
図9は、8都市TSPの解探索結果の一例を示す図である。グラフ42は、(1.1)式のように1次の横磁場項だけを含んだ量子アニーリングハミルトニアンに対して400回の量子試行を行った結果を示している。グラフ43は、(2.1)式のように2次の横磁場項を含んだ量子アニーリングハミルトニアンに対して400回の量子試行を行った結果を示している。グラフ42,43は、400回の量子試行の結果得られたエネルギーのヒストグラムを示している。グラフ42,43の横軸がエネルギーであり、縦軸がそのエネルギーが得られた量子試行の回数である。
【0232】
図9に示すように、非線形の横磁場項を含んだ(2.1)式を用いて量子アニーリングを行った方が、エネルギーが最小値となる割合が高い。すなわち非線形の横磁場項を含めることで基底状態が得られる確率が向上することが分かる。また、グラフ42では、終状態として49種の状態が得られている(得られたエネルギーが49パターン)。グラフ43では、終状態として26種の状態が得られている(得られたエネルギーが26パターン)。従って、非線形の横磁場項を含んだ(2.1)式による量子アニーリングの方が、終状態として得られる状態数が少ないことが分かる。
【0233】
<量子相転移の発生を伴う場合のエネルギーの推移について>
次に量子相転移の発生を伴う場合のエネルギーの推移について説明する。
図10は、G2の関数として得られた系の全エネルギー値を示す図である。グラフ44は、量子相転移が発生した場合のG2に応じたエネルギー値を示している。グラフ45は、グラフ44において、量子相転移が発生した後のG2についてエネルギーを示した図である。グラフ45はグラフ44の拡大図である。グラフ44,45の横軸がG2であり、縦軸がエネルギーである。
【0234】
2は一種の断熱変数となっている。量子試行を行うと、G2=0.744付近で「量子相転移」と呼ばれる現象が起こる。この値は一定ではないが、グラフ44ではG2=0.743±0.001程度の非常に狭い範囲で起こっていることが分かる。そして、量子相転移が起こった後、G2の値を減らしていくと、G2=0の極限で求解ハミルトニアンの固有状態(古典イジングモデルの状態に対応する)に収束するが、その値は基底状態と励起状態を含む状態に収束している。
【0235】
重要なことは、一旦量子相転移が起こると、もはや別の量子状態に遷移することはないことである。系の運命は量子相転移が起こるG2=0.743±0.001で決まってしまう。逆に、量子相転移が起こった後は、真面目にアニーリングをすることを要しない。すなわち量子相転移が起こった後はG2の値をかなり粗く取っても、最終結果はもはや変わらない。
【0236】
量子アニーリングのスケジュールは例えばべき乗で定義して減少させるが、このアニーリングスケジュールを厳密に守ることまでは求められない。量子相転移が起こるまでは慎重に計算すべきだが、量子相転移が起きた後は系の運命は既に決まっている。従って、量子相転移が起こった後の計算は、量子相転移が起こるG2の値をG20としたとき、例えば(3.1)式のように線形補完で決めることができる。
【0237】
【数74】
【0238】
ここで、mは分割数を示す自然数である。nは量子相転移後の何回目のG2の更新かを示す自然数であり、n=1,2,・・・,mとする。なお、極論すれば、1次量子相転移が起こった後は系の運命は決しているため、m=2にしてもよい。すなわち量子アニーリングのスケジュールを真面目に守れば、G2が小さいときほど大きい計算量が要求されることになるが、QTSA法の枠組みではそのような要求はない。そのため、量子相転移が発生した後は(3.1)式のようにして計算量を減らすことができる。
【0239】
この結果を量子アニーリング型量子コンピュータの実機について当てはめると、アニーリングスケジュールについては以下のパラメータを決めればよいことが分かる。横磁場である外部磁場の掃引開始時刻tstart、掃引終了時刻tend、そして、磁場のアニーリングスケジュールを変更する時刻tqpt、および、アニーリングスケジュール関数s(t)である。ただし、tstartにおいてG2=1.0、tendにおいてG2=0、tqptにおいてG2=G20とする。G20は解くべき問題に依存して変わり、量子相転移が起こり、スピンが一斉に反転する横磁場項の強さG2がG20である。グラフ44の例では、エネルギーが急激に下がる部分のG2の値がG20である。区間[tstart,tqpt]では、G2の値はG2(t)=s(t)に従い変化し、1.0=s(tstart)、G20=s(tend)を満たす。区間(tqpt,tend]では、別の高速なアニーリングスケジュールG2(t)=s1(t)を用いてよい。
【0240】
図11は、外部磁場の時間変化の一例を示す図である。グラフ46は、横軸にシミュレーション上の時刻と外部磁場G2との関係を示している。グラフ46の横軸が時刻であり、縦軸が外部磁場G2である。時刻は、例えば外部磁場G2を更新する単位時間だけ進行するものとする。グラフ46では、量子相転移が発生する時刻(図10にも示したグラフ44におけるエネルギーが急激に下がる時刻)を境に、外部磁場G2の下がり方が急激となっている。
【0241】
ユーザは磁場の掃引開始時刻と終了時刻、および量子相転移が起こる時刻とスケジューリング関数を指定すればよい。
図12は、解析条件設定画面の一例を示す図である。例えば古典コンピュータ100は、解析条件設定画面50をモニタ21に表示して、ユーザからの解析条件の設定入力を受け付ける。
【0242】
解析条件設定画面50には、解析条件入力用のテキストボックス51~58と、実行指示用のボタン59とが設けられている。テキストボックス51は、掃引開始時刻tstartを設定する領域である。テキストボックス52は、掃引終了時刻tendを設定する領域である。テキストボックス53は、磁場のアニーリングスケジュールを変更する時刻tqptを設定する領域である。
【0243】
テキストボックス54は、外部磁場G2の最大値G2,maxを設定する領域である。テキストボックス54には、例えば初期値として「1.0」が設定されている。テキストボックス55は、外部磁場G2の最小値G2,minを設定する領域である。テキストボックス55には、例えば初期値として「0.0」が設定されている。テキストボックス56は、磁場のアニーリングスケジュールを変更する時刻における外部磁場G2の値(G2,qpt)を設定する領域である。例えばテキストボックス53に設定された値に応じて古典コンピュータ100がG2,qptを計算し、計算結果をテキストボックス56の初期値として設定してもよい。
【0244】
テキストボックス57は、磁場のアニーリングスケジュールを変更する時刻以前に適用するアニーリングスケジュール関数の入力領域である。例えば使用可能な関数のリストがプルダウンメニュー57aに表示され、ユーザは、プルダウンメニュー57aから任意の関数を選択することができる。プルダウンメニュー57a上で選択された関数が、テキストボックス57に設定される。テキストボックス58は、量子試行回数を設定する領域である。
【0245】
ユーザは、テキストボックス51~58に解析の条件を指定する情報を設定後、ボタン59を押下することで、古典コンピュータ100に対して、イジングモデルの基底状態を求める問題の解探索の実行を指示することができる。
【0246】
ここで大切なことは、量子相転移が起こるまではアニーリングスケジュールが重要であるが、一旦量子相転移が起こり、スピンが一斉に反転すると、後のアニーリングは高速に実行してよい点である。量子相転移が起こった時点で系の運命は決まっているからである。
【0247】
このため、重要なのはG20(つまり、tqpt)の値である。G20の値はスピンの磁気の強さJに依存して決まる。スピンの磁気の強さJを変えることで量子相転移が起こるG20の値は変わる。G20の値が0に近いほど計算には時間がかかる。G20の値が1に近いほど、高速に計算可能であるが、精度は良くない。そのため最適なG20の値が存在する。そのため、計算に都合の良いG20の値となるようにスピンの磁気の強さJを設定することが求められる。
【0248】
適切なスピンの磁気の強さを求めるために、古典コンピュータ100は、例えばスピンの強さJを変えながら、一定回数、量子アニーリング型量子コンピュータ200を制御してサンプリングを行い、その結果を記録する。サンプリングの結果としてスピン配置が得られる。古典コンピュータ100は、サンプリング結果を用いてイジングモデルの全エネルギーが計算できる。そして、最低エネルギー状態が得られる頻度が得られる。その中で最低エネルギーが得られる頻度が最も高いJの値を決めればよい。
【0249】
図13は、スピンの磁気の強さ決定処理の手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS101]古典コンピュータ100の処理部120は、記憶部110からスピンの磁気の強さJの最小値Jminの値を読み込む。
【0250】
[ステップS102]処理部120は、記憶部110からスピンの磁気の強さJの最大値Jmaxの値を読み込む。
[ステップS103]処理部120は、記憶部110から横磁場強度を変えるサンプリング数Nesの値を読み込む。
【0251】
[ステップS104]処理部120は、ループ回数を示す変数kが0からNesになるまで、kの値をカウントアップしながらステップS105~S107の処理を繰り返す。
[ステップS105]処理部120は、スピンの磁気の強さを(3.2)式で求める。
【0252】
【数75】
【0253】
[ステップS106]処理部120は、量子アニーリング型量子コンピュータ200を用いたサンプリング処理を実行する。この際、処理部120は、サンプリング処理と同時に、最適なtqptを決定することもできる。この処理の詳細は後述する(図14図15参照)。
【0254】
[ステップS107]処理部120は、サンプリング処理によって得られた情報を、記憶部110に記録する。サンプリング処理で得られた情報は、スピン配列、最低エネルギー、および最低エネルギーに到達した頻度(確率)などである。
【0255】
[ステップS108]処理部120は、ループ回数kがNesに達したら、処理をステップS109に進める。
[ステップS109]処理部120は、得られた頻度データから、一番低いエネルギー状態のスピン配置が最も高い頻度で得られたスピンの磁気の強さJkの値を最適な横磁場強度として決定する。
【0256】
このようにして最適な横磁場強度が決定される。なお図13に示すステップS106の処理では、量子アニーリング型量子コンピュータ200を制御して、tqptも同時に決定することができる。例えば処理部120は、外部磁場(横磁場)の掃引開始時刻tstartと終了時刻tendを入力し、スケジュール関数s(t)を決めた上で、tqptを変えていく。そして処理部120は、最低エネルギー状態が得られる確率が最も高くなる磁場の掃引スケジュールにおけるtqptを決める。
【0257】
以下図14を参照して、tqptの決定を伴うサンプリング処理について詳細に説明する。
図14は、tqptの決定を伴うサンプリング処理の手順の一例を示すフローチャートの前半である。以下、図14に示す処理をステップ番号に沿って説明する。
【0258】
[ステップS121]処理部120は、記憶部110からスピンの磁気の強さJの最小値Jminの値を読み込む。
[ステップS122]処理部120は、記憶部110からスピンの磁気の強さJの最大値Jmaxの値を読み込む。
【0259】
[ステップS123]処理部120は、パラメータとして磁場掃引開始時刻tstartを設定する。例えば処理部120は、解析条件設定画面50において入力された磁場掃引開始時刻tstartを設定する。
【0260】
[ステップS124]処理部120は、パラメータとして磁場掃引終了時刻tendを設定する。例えば処理部120は、解析条件設定画面50において入力された磁場掃引終了時刻tendを設定する。
【0261】
[ステップS125]処理部120は、パラメータとして最大掃引回数NG2_loopを設定する。最大掃引回数NG2_loopは、例えば予めユーザによって指定されている。
[ステップS126]処理部120は、パラメータとして最大サンプリング回数Nsamplingを設定する。例えば処理部120は、解析条件設定画面50において入力された量子試行回数の値を、最大サンプリング回数Nsamplingとして設定する。その後、処理部120は処理をステップS131(図15参照)に進める。
【0262】
図15は、tqptの決定を伴うサンプリング処理の手順の一例を示すフローチャートの後半である。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS131]処理部120は、ループ回数を示す変数kが0からNG2_loopになるまで、kの値をカウントアップしながらステップS132~S137の処理を繰り返す。
【0263】
[ステップS132]処理部120は、量子相転移が起こる時刻tqptを(3.3)式によって設定する。
【0264】
【数76】
【0265】
[ステップS133]処理部120は、ループ回数を示す変数nが0からNsamplingになるまで、nの値をカウントアップしながらステップS134~S136の処理を繰り返す。
【0266】
[ステップS134]処理部120は、初期状態の量子ビットに対してランダムなノイズを加える。
[ステップS135]処理部120は、量子アニーリング型量子コンピュータ200に対して、ランダムなノイズが付加された量子ビットから、量子アニーリングによるイジングモデルの基底状態の探索処理を実行させる。処理部120は、探索処理の結果を、サンプリングデータとして量子アニーリング型量子コンピュータ200から取得する。
【0267】
[ステップS136]処理部120は、サンプリング結果に示されるスピン配列と、そのスピン配列におけるエネルギーとを記憶部110に記録する。
[ステップS137]処理部120は、ループ回数を示すnの値がNsamplingに達したら、処理をステップS138に進める。
【0268】
[ステップS138]処理部120は、ループ回数を示すkの値がNG2_loopに達したら、処理をステップS139に進める。
[ステップS130]処理部120は、サンプリングデータの中からエネルギー最小値を求める。
【0269】
[ステップS131]処理部120は、エネルギー最小値の観測頻度が最も高いtqptを、最低エネルギー状態が得られる確率が最も高くなる磁場の掃引スケジュールにおけるtqptに決定する。
【0270】
このようにして、tqptが決定される。なお、最低エネルギー状態が得られる確率は、スピン単独の磁気の強さJだけでなく、ノイズの与え方にも依存する。そのため最低エネルギー状態が得られる確率は、ユーザが明示的にノイズを与えた場合のノイズモデルにも依存し、量子アニーリング型量子コンピュータ200が使用している量子プロセッサ(QPU:Quantum Processing Unit)のノイズ特性にも依存する。従って、一般にはQPUを変えれば、アニーリングの仕方はその都度変更することが求められる。
【0271】
図16は、(1.1)式型の横磁場項と(2.1)式型の非線形横磁場を含んだ場合のG2に関する断熱ポテンシャルを示す図である。グラフ61は、(1.1)型の線形の横磁場項を含んだ場合(非線形の外部磁場なし)の断熱ポテンシャルを示す。グラフ62は(2.1)型の非線形の横磁場項を含んだ場合(非線形の外部磁場あり)の断熱ポテンシャルを示す。グラフ61,62の横軸はG2の値であり、縦軸はエネルギーである。グラフ61,62を比較すると、非線形磁場を含んだ場合の方が結果として得らえる量子状態の数が少ないことが分かる。
【0272】
ここで大切なことは量子相転移を起こすG2の値を制御することである。G20の値が1に近すぎればG2の値の変化量が大きい状況で量子相転移が起こる。この場合、最終的に得られるエネルギー値の分散は大きくなる。逆にG20の値が0に近すぎれば、今度は横磁場の効果が小さくなりすぎ、最終的に得られるエネルギー値の分散が大きくなる。このため、経験的にはG20の値が0.5≦G20≦0.8程度に収まるようにG20の値を調整するのが適切である。そのため処理部120は、横磁場の強さJ=Jiの値を変えながら、目標となるG20の値になるように調整する。
【0273】
<虚時間発展に伴うエネルギー差の最適化>
ここで、非線形の横磁場を導入した場合、なぜ、終状態として得られる量子状態の数が減るのかについて説明する。これは擬交差(avoided-crossing)の概念と、ゼーマン効果を理解することで簡単に説明がつく。
【0274】
図17は、横磁場の強さG2に関するポテンシャルエネルギーの一例を示す図である。グラフ63,64の横軸はG2であり、縦軸はポテンシャルエネルギーである。グラフ64は、グラフ63の一部を拡大したものである。
【0275】
図17の例では、簡単な例として3都市TSPが用いられている。3都市TSPの各都市の座標はそれぞれ(-1,0),(4,0),(0,2)である。このTSP問題をイジングモデルに直したとき、エネルギーの最小値が最小経路を与える。この問題の場合、最小エネルギーは5+3√5≒11.708である。この問題の解は11.709である。
【0276】
図17の例では、横磁場項を含めたハミルトニアンの行列形式に直して、対角化することでエネルギー固有値が求められている。具体的には基底関数(basis function)として、|000000000>から|111111111>で定義される2N個の基底関数を用いてハミルトニアン(1.1)式を直接対角化している。グラフ63より、G2=1からG2=0まで連続的にエネルギーが変化し、G2=0で問題の解である11.708になっていることがわかる。
【0277】
グラフ63,64に示される曲線を、G2を断熱変数としたときの断熱ポテンシャルと呼ぶ。また、特定の断熱ポテンシャルのことを指してチャネルと呼ぶこともある。例えば、基底状態の断熱ポテンシャルを基底チャネルと呼ぶ場合もある。ここではエネルギーEnに関連するチャネルをチャネル(n)と呼ぶことにする。n=0の場合が基底状態である。
【0278】
図17の例で用いた問題の場合、G2=1において、第一励起状態にあっても基底状態に到達することができる。ここで、グラフ64をよく見ると、断熱ポテンシャルが交差しているように見える部分がある。
【0279】
図18は、断熱ポテンシャルが交差する部分を拡大した図である。グラフ65は1段階拡大したものであり、グラフ66は、グラフ65よりもさらに大きく拡大したものである。
【0280】
グラフ65において、G2=0.967付近で断熱ポテンシャルが交差しているようにみえるが、拡大したグラフ66を見ると分かるように実は交差していない。このように断熱ポテンシャルが交差しているように見えて、実は交差してない現象のことを疑交差と呼ぶ。疑交差は量子アニーリングでは励起状態への遷移を誘発する。つまり、疑交差は実質的に有限精度の計算では縮退しているようになってしまう。従って、疑交差が起こる領域ではG2に関するアニーリングスケジュールを遅くし、疑交差のエネルギー差ΔE1=E1-E0よりも十分小さくなるようにG2を小さくすることが求められる。
【0281】
このエネルギー構造はハミルトニアン(1.1)式で決まってしまう。そのため、これを解消するために非線形の磁場項を導入するのである。
図19は、非線形項として2次の横磁場を入れたハミルトニアン(2.1)式を対角化した例を示す図である。グラフ67の横軸がG2であり、縦軸がエネルギーである。
【0282】
グラフ67を図17の例と比較すると断熱ポテンシャルの構造がかなり違っていることがわかる。特にG2=0.5付近では基底状態と第一励起状態のエネルギー差が大きくなっていることがわかる。G2=0.5付近でエネルギー差が最大化するのはG3を(5.1)式のようにとったからである。
【0283】
【数77】
【0284】
(5.1)式ではG2=0.5で非線形外部磁場が最大化するようになっているのだから、これは当然である。重要なことは外部磁場を導入することでエネルギー差を大きくすることが可能なことである。エネルギー差が大きくなれば、励起し辛くなる。これは量子アニーリング時に意図しない励起状態への励起が起こる確率を減らせることを意味する。TSP3の場合は偽交差が起きても、基底状態に収束するような問題になっている。つまり、G2=0で第一励起状態に属していたとしても、E=11.704の状態に収束することがわかる。しかし、4都市のTSPにすると状況が一変する。
【0285】
図20は、4都市TSPの場合のエネルギー準位と第n励起状態のエネルギーEnと基底状態のエネルギーE0との差を示す図である。G2=0で基底状態だったものが、G2=0.9付近で第一励起状態と疑交差することが分かる。グラフ68が4都市TSPの場合のエネルギー準位を示している。グラフ68の横軸がG2であり、縦軸がエネルギーである。グラフ69が4都市TSPの場合の第n励起状態のエネルギーEnと基底状態のエネルギーE0との差を示している。グラフ69の横軸がG2であり、縦軸がEn-E0である。
【0286】
量子アニーリングにおいてG2=0.9付近で虚数時間発展をしたときの収束解をG2=0.9-δにおける初期条件にすると、δの値が十分小さくないと、初期状態のエネルギーがこの二つの状態よりも高くなってしまう。この状態で虚数時間発展をすると、E=7.414の量子状態にたどり着くか、それとも、E=7.812の状態にたどり着くかはランダムになってしまう。
【0287】
この場合、E=7.414の量子状態と、E=7.812の量子状態のどちらにたどり着くかを決める分水嶺はグラフ69から分かる。疑交差が生じるG2の領域で、ΔE1とΔE2が2つに分岐している。一方はE=7.414に到達する。もう一方は、E=7.812に到達する。グラフ69は虚数時間発展により基底状態に到達することを保証するエネルギー差に関する条件を与える図になっている。あるG2に対して、虚数時間発展を行い、得られた終状態をG2-δにおける初期状態とする。このとき、この初期状態のエネルギーはわずかに上がることになるが、その値が、ΔE1が7.414に収束する領域内に入っていれば、計算は基底状態に収束する。つまり、G2を変える量子アニーリングスケジュールは、G2-δにおける初期状態のエネルギーが一定値以下になるように、エネルギー変化量から決めるべきものである。
【0288】
従って処理部120は、G2を変えるときに、図13に示したフローチャートのようにエネルギーを計算しながら、指定した閾値よりも小さくなるようにG2を決める。なお、グラフ69は点線が線形の横磁場の結果であり、実線が非線形磁場を含んだ結果である。非線形磁場を含んだ場合、エネルギー差は線形磁場より常に大きくなっているため、収束領域が増す効果がある。
【0289】
従って、G2を大きく変えすぎるとエネルギーが大きく変わってしまうため、容易にエネルギーが高いチャネルへ遷移してしまう。エネルギーが高いチャネルへ遷移してしまうと、G2を小さくしていったとき、量子相転移が起こったときに、最低エネルギー状態とは違うスピン配置になるようにスピンが反転してしまう。このため、G2の値の弱め方は予め閾値ε1を決め、G2-δにおける終状態のエネルギーE(G2-δ)と、G2における終状態のエネルギーE(G2)との差ΔE=|E(G2-δ)-E(G2)|≦ε1を満たすようにして計算をしていくことが求められる。
【0290】
図21は、G2の弱め方の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS201]処理部120は、ループ回数を示す変数nが1からNloopになるまで、nの値をカウントアップしながらステップS202~S216の処理を繰り返す。Nloopは予め与えられた自然数である。
【0291】
[ステップS202]処理部120は、G2,n(n回目の量子試行におけるG2)の値を読み込む。
[ステップS203]処理部120は、δの値の初期値を読み込む。
【0292】
[ステップS204]処理部120は、G'2,n=G2,n-δとして、G'2,nを初期化する。
[ステップS205]処理部120は、エネルギー差の閾値ε1を読み込む。閾値ε1は、予め設定された実数である。
【0293】
[ステップS206]処理部120は、ループ回数を示す変数kが1からNbisectionになるまで、kの値をカウントアップしながらステップS207~S215の処理を繰り返す。Nbisectionは予め与えられた自然数である。
【0294】
[ステップS207]処理部120は、G2,n-1の値での終状態En-1,finalの|Ψn-1,final>を|Ψn,initial>とする。
[ステップS208]処理部120は、|Ψn,initial>を用いて初期エネルギーEn,initial=|Ψn,initial|H|Ψn,initial>(Hは^付き)を計算する。
【0295】
[ステップS209]処理部120は、ΔE=|En-1,final-En,initial|を計算する。
[ステップS210]処理部120は、虚数時間を発展させ、G'2,nにおける最低エネルギー状態を求める。
【0296】
[ステップS211]処理部120は、G’2,nの値での終状態En,finalおよび|Ψn-1,final>を保存する。
[ステップS212]処理部120は、ΔE’=|<Ψn,final|Hn|Ψn,final>-En,initial|(Hは^付き)を計算する。
【0297】
[ステップS213]処理部120は、ΔE≦ε1かつΔE’≦ε1の条件が満たされるか否かを判断する。処理部120は、条件が満たされる場合、処理をステップS216に進める。また処理部120は、条件が満たされない場合、処理をステップS214に進める。
【0298】
[ステップS214]処理部120は、δの値をδ/2に更新する(δ=δ/2)。
[ステップS215]処理部120は、G’2,nをG2,n-δにする(G’2,n=G2,n-δ)。
【0299】
[ステップS216]処理部120は、変数kの値がNbisectionに達したら処理をステップS217に進める。
[ステップS217]処理部120は、変数nの値がNloopに達したら処理を終了する。
【0300】
このようにして、励起チャネルに量子状態が遷移しないようにG2を小さくすることができる。
なお図9に示したような結果から、非線形横磁場を加えることで、基底状態含め、低エネルギー状態が得られる確率が増えたことは分かる。ただし、基底状態のみが得られるわけではない。その原因は、横磁場項の次数に関連する。
【0301】
この原理を説明するために、4スピン系の例題を出して説明する。今、簡単のため、4スピン系の|0000>という状態を考える。この量子状態に虚数時間の時間発展演算子exp{-TΔt}(Tは^付き)を乗じると、(5.2)式となる。
【0302】
【数78】
【0303】
横磁場演算子を乗じることで、1スピンが反転した|1000>のような状態が得られる。2回目を乗じると(5.3)式となる。
【0304】
【数79】
【0305】
2粒子励起が出てくるように思えるが、実は出ない。支配項は相変わらず、|0000>であるし、Δtに比例する1粒子励起の項の係数が演算回数分だけ増幅されているだけである。つまり、「2粒子励起は実質上無視される」こととなる。
【0306】
次に、作用素をT+T2(Tは共に^付き)にしたらどうなるかを考察する。鈴木-トロッター分解は1次の範囲で(5.4)式となる。
【0307】
【数80】
【0308】
従って(5.5)式が得られる。
【0309】
【数81】
【0310】
そのため(5.6)式となる。
【0311】
【数82】
【0312】
ここからわかる通り、高次の磁場を導入することで2粒子励起以上の項をΔtの項に含めることができる。そのため、非線形磁場を加えたときの遷移確率は、非線形磁場が摂動的であれば、(5.7)式で与えられる。
【0313】
【数83】
【0314】
ここにρは終状態の状態密度である。これはフェルミの黄金律(Fermi’s golden rule)と呼ばれる。つまり、外部から非線形磁場を加えることで2スピン以上が関わった断熱チャネル間で結合が起こる。結合が起きれば、結合強度に応じて縮退が解ける。そのため、基底状態と結合したチャネルが観測されなくなっているのである。これは励起状態でも同じである。励起状態同士で結合した場合、結合したチャネルの中でエネルギーが一番低いモードが観測されることになる。
【0315】
図22は、4都市TSPのハミルトニアンを数値的に対角化したときの固有ベクトルの一例を示す図である。図22に示すグラフ71~74は、横軸が固有状態それぞれを区別するインデックスであり、縦軸が各固有状態に対応する固有ベクトルの要素値である。グラフ71は、G2=1.0の場合である。横磁場項の基底状態のため、全ての状態が等しい重さで入っている。グラフ72は、G2=0.99の場合である。縦磁場項(求解ハミルトニアン)の情報が入るため、ここで基底に重みが加わる。そして、G2の値を小さくしていくと、特定の基底の振幅が増幅していく(グラフ73,74)。
【0316】
グラフ74に示すように最終的にはこの場合2つの量子状態のみが残るが、これは両方ともE=7.414の状態である。基底状態が2つだけ求まっているように見えるのは、最初の2048次元分だけを取り出しているからである。
【0317】
図23は、固有ベクトルのインデックスと固有状態との対応関係の一例を示す図である。図23に示す対応表81は、図22のグラフ74において、固有ベクトルの振幅が大きいインデックスを幾つか抜粋し、対応するスピン状態、エネルギー固有値をまとめたものである。スピン状態を見れば一目瞭然であるが、ハミング距離(Hamming Distance)が1のものは有限の振幅を持っているが、2以上のものは急激に固有ベクトルの振幅が小さくなっていることが分かる。つまり、これは横磁場を1次にしているからである。基底状態に対してハミング距離2以上のモードは実質上無視されることになる。
【0318】
この事実は次のことを暗示する。2次の横磁場を入れた場合、ある量子状態|i>と結合する(遷移可能)であるのは、高々ハミング距離が2以下、つまり、スピン2個が反転したモードまでである。一般に、基底状態、第一励起状態のスピン状態のハミング距離は大きく違うため、2次の横磁場を入れれば、それぞれの状態からハミング距離2以下のモードが結合する。そして、一種のグループ化が起こる。結果として、観測される量子状態はグループ化が起こったため減る。
【0319】
非線形磁場を導入することで複数の系列の断熱ポテンシャルのエネルギー差が大きくなるが、互いに影響を及ぼさないチャネル同士のエネルギー差は非線形横磁場項の影響を受けない。それでも、部分的には影響を受けるため、最終的に観測される量子状態が減るのである。ただし、2次の非線形の横磁場は高々2スピンが関与した素過程しか記述しないため、必ずしもすべてのチャネルが結合に関与するわけではない。このため、基底状態のみが観測される状態にはできないのである。
【0320】
そして、この事実は次の事実も暗示する。一般にすべての状態を結合させるための横磁場の次数はNである。横磁場の次数は1次項からN次まですべて加えることが求められる。あるいは、exp(-βT)(Tは^付き)のように、級数展開がN次まで定義できるような非線形横磁場を加えるべきである。
【0321】
ただし、2次の横磁場を用いても、部分的には縮退が解けるのだから、基底状態が得られる確率が向上するため、非常に簡単な非線形磁場を用いても量子アニーリングの効率は向上する。
【0322】
また、2次の横磁場を用いた場合に、特定の構造を持つハミルトニアン系において、基底状態が得られる確率が劇的に向上する場合もありえる。これはハミルトニアンの構造に依存するが、2次の非線形横磁場で結合するモードが非常に多くなれば、それだけ効率は上がることになる。
【0323】
以上煩雑な説明をしたが、現象の本質は簡単である。初等的な量子力学の教科書に書いてある「ゼーマン効果」なのである。あるハミルトニアン系で固有値に縮退が起こっていた。磁場を加えてハミルトニアン行列の非対角項を導入することで縮退が解けるということである。縮退が解けるのは、非線形外部磁場によりハミルトニアン行列の非対角項が0でない者同士の組に限られる。そのため、互いに影響を及ぼさないグループが存在する。影響を及ぼしあう、つまり、結合するチャネル同士はグループ化される。結果として、終状態として観測される状態数は減少する。結果として基底状態が得られる確率が相対的に上がるのである。もし、縮退を完全に解きたいのであれば、Nスピンを反転させることが求められる。そのため、(5.8)式のような横磁場項を用いることとなる。
【0324】
【数84】
【0325】
そして、G2=0とG2=1における境界条件を満たすためには、G2=0とG2=1においてg(G2)=0を満たす関数g(G2)を用いて、ハミルトニアンを(5.9)式とすることとなる。
【0326】
【数85】
【0327】
以上のようにして、ノイズを付加した初期状態から、非線形横磁場を追加して、実数時間発展と虚数時間発展とを組合せて量子アニーリングを行い、アニーリングスケジュールを適切なG2を境に変更し、計算精度を落とさずに処理の効率化を図ることができる。
【0328】
<量子相転移の発生有無の検知>
図12に示す様な解析条件設定画面50で量子相転移が発生する時点をtqptまたはG2,qptで指定可能であるが、アニーリングの過程で量子相転移の発生の有無を検知し、量子相転移が発生した後、アニーリングのスケジュールを変更することもできる。例えば古典コンピュータ100においてSAを行えばアニーリングの過程でのエネルギーを計算できる。そこで虚数時間発展の過程でのエネルギー遷移に基づいて、量子相転移の発生を検知することができる。
【0329】
図24は、量子相転移の検出を伴うアニーリング処理の手順の一例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS301]処理部120は、スピンの磁気の強さJの値を読み込む。
【0330】
[ステップS302]処理部120は、G2,min=0,G2,max=1を設定する。
[ステップS303]処理部120は、ループ回数を示す変数nの値を1ずつ減算しながら、NG2_loopから0まで、ステップS304~S307の処理を繰り返す。
【0331】
[ステップS304]処理部120は、横磁場の強度をべき乗のアニーリングスケジュール「G2,k=(n/NG2_loop-c」を用いてG2,kを決定する。
[ステップS305]処理部120は、虚数時間発展の処理を実行する。
【0332】
[ステップS306]処理部120は、虚数時間発展中にエネルギーの2回微分「d2n/dG2,n 2」を計算する。
[ステップS307]処理部120は、「(d2k/dG2,k 2)(d2k-1/dG2,k-1 2)<0」の条件が満たされるか否かを判断する。処理部120は、条件が満たされる場合、処理をステップS309に進める。また処理部120は、条件が満たされない場合、処理をステップS308に進める。
【0333】
[ステップS308]処理部120は、変数nの値が0に達した場合、処理をステップS309に進める。
[ステップS309]処理部120は、量子相転移が起こったと判断し、この時点のG2,kの値を保存する。
【0334】
[ステップS310]処理部120は、G2,min=0,G2,max=G2,k,N’G2_loopを設定する。N’G2_loopは、例えば現在のnよりも小さい値とする(N’G2_loop<n)。
[ステップS311]処理部120は、、ループ回数を示す変数n’の値を1ずつカウントアップしながら、0からN’G2_loopまで、ステップS312~S313の処理を繰り返す。
【0335】
[ステップS312]処理部120は、横磁場の強度を「G2=G2,k-n’(G2,k/N’G2_loop-1)」に設定する。
[ステップS313]処理部120は、虚数時間発展の処理を実行する。
【0336】
[ステップS314]処理部120は、変数n’の値がN’G2_loopに達した場合、処理を終了する。
このように虚数時間発展のなかで量子相転移の発生を検知して、アニーリングスケジュールを変更することが可能となる。アニーリングスケジュールの変更後は、変更前に予定していた残りのサンプリング回数よりも少ないサンプリング回数で、イジングモデルの終状態が得られる。これにより、処理の効率化を図ることができる。
【0337】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0338】
1 量子アニーリング型量子コンピュータ
10 情報処理装置
11 記憶部
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24