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

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

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

特許7428932量子計算制御プログラム、量子計算制御方法及び情報処理装置
<>
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図1
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図2
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図3
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図4
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図5
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図6
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図7
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図8
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図9
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図10
  • 特許-量子計算制御プログラム、量子計算制御方法及び情報処理装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-30
(45)【発行日】2024-02-07
(54)【発明の名称】量子計算制御プログラム、量子計算制御方法及び情報処理装置
(51)【国際特許分類】
   G06N 10/00 20220101AFI20240131BHJP
【FI】
G06N10/00
【請求項の数】 6
(21)【出願番号】P 2022563515
(86)(22)【出願日】2020-11-20
(86)【国際出願番号】 JP2020043304
(87)【国際公開番号】W WO2022107298
(87)【国際公開日】2022-05-27
【審査請求日】2023-01-27
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】森田 幹雄
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2020/0057957(US,A1)
【文献】国際公開第2019/057317(WO,A1)
【文献】ZHOU, Leo et al.,Quantum Approximate Optimization Algorithm: Performance, Mechanism, and Implementation on Near-Term Devices,PHYSICAL REVIEW X [online],2020年06月24日,pp. 021067-1 - 021067-23,[検索日 2023.12.19], インターネット:<URL:https://journals.aps.org/prx/pdf/10.1103/PhysRevX.10.021067>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
(57)【特許請求の範囲】
【請求項1】
計算対象の系の量子状態を計算する複数の量子計算器のうち第1の量子計算器に、第1の計算条件による前記量子状態の計算を第1の回数繰り返させ、
前記第1の量子計算器の、前記第1の回数より少ない第2の回数の計算結果と前記系の情報に基づいて、前記系の第1のエネルギーを計算し、
前記第1の計算条件による計算途中に、前記複数の量子計算器のうち第2の量子計算器に、前記第1のエネルギーに基づいて決定した第2の計算条件による前記量子状態の計算を開始させる、
処理をコンピュータに実行させる量子計算制御プログラム。
【請求項2】
前記第1の量子計算器の前記第1の回数の計算結果と前記系の情報に基づいて、前記系の第2のエネルギーを計算し、
前記第1のエネルギーと前記第2のエネルギーとの差分が所定値以下である場合、前記第2の量子計算器に、前記第2の計算条件による計算を計算回数が前記第1の回数に達するまで継続させる、
処理を前記コンピュータに実行させる請求項1に記載の量子計算制御プログラム。
【請求項3】
前記差分が前記所定値より大きい場合、前記第2の量子計算器に、前記第2の計算条件による計算を中断させ、前記第2のエネルギーに基づいて決定した第3の計算条件による計算を開始させる、
処理を前記コンピュータに実行させる請求項2に記載の量子計算制御プログラム。
【請求項4】
前記所定値は入力された計算精度である、請求項2または3に記載の量子計算制御プログラム。
【請求項5】
コンピュータが、
計算対象の系の量子状態を計算する複数の量子計算器のうち第1の量子計算器に、第1の計算条件による前記量子状態の計算を第1の回数繰り返させ、
前記第1の量子計算器の、前記第1の回数より少ない第2の回数の計算結果と前記系の情報に基づいて、前記系の第1のエネルギーを計算し、
前記第1の計算条件による計算途中に、前記複数の量子計算器のうち第2の量子計算器に、前記第1のエネルギーに基づいて決定した第2の計算条件による前記量子状態の計算を開始させる、
量子計算制御方法。
【請求項6】
計算対象の系の情報を記憶する記憶部と、
前記系の量子状態を計算する複数の量子計算器のうち第1の量子計算器に、第1の計算条件による前記量子状態の計算を第1の回数繰り返させ、前記第1の量子計算器の、前記第1の回数より少ない第2の回数の計算結果と前記情報に基づいて、前記系の第1のエネルギーを計算し、前記第1の計算条件による計算途中に、前記複数の量子計算器のうち第2の量子計算器に、前記第1のエネルギーに基づいて決定した第2の計算条件による前記量子状態の計算を開始させる処理部を、
有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子計算制御プログラム、量子計算制御方法及び情報処理装置に関する。
【背景技術】
【0002】
実用化まで時間がかかると考えられている誤り訂正機能をもつ量子コンピュータの代わりに、エラー訂正機能のない中規模(量子ビット数が数百個程度)の量子コンピュータとしてNISQ(Noisy Intermediate-Scale Quantum computer)が提案されている。NISQは、数年から十数年以内に実現可能と考えられている。
【0003】
NISQの使用用途の1つとして量子化学計算がある(たとえば、特許文献1参照)。量子化学計算は、シュレディンガー方程式、H|ψ〉=E|ψ〉を解くことにより、系の分子や物質の性質に関する情報を得る計算である。Hはハミルトニアンであり原子間距離や分子間の距離などによって決まる。|ψ〉は系の量子状態であり、状態ベクトル(または単に状態)と呼ばれる場合もある。Eは系のエネルギーである。
【0004】
上記シュレディンガー方程式の計算は、固有値問題の計算と考えることが可能である。すなわち、固有値(エネルギー)と対応する固有ベクトル(状態ベクトル)を求めることが、シュレディンガー方程式を解くことに相当する。系はエネルギーが一番低い状態となっていることがほとんどであるため、量子化学計算では最低のエネルギー(基底エネルギー)や、それと対応する量子状態(基底状態)の探索が行われることが多い。
【0005】
このような基底エネルギーや基底状態を、量子コンピュータと古典コンピュータの両方を用いて探索するアルゴリズムとして、VQE(Variational Quantum Eigensolver)が知られている。VQEでは、量子コンピュータに設定する最適化変数であるθ(量子ゲート操作に用いられる変数)を変動させ、各θについて得られた量子状態に基づいて古典コンピュータがエネルギーを計算し、基底エネルギーや基底状態が探索される。
【先行技術文献】
【特許文献】
【0006】
【文献】国際公開第2012/023563号
【文献】特開2010-271755号公報
【文献】特表2013-513875号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のような量子化学計算などの量子計算において、要求される計算精度の計算結果を得るためには各計算条件(上記の例の場合θ)について多くの繰り返し計算が行われる。このため、計算時間がかかるという問題がある。
【0008】
1つの側面では、本発明は、量子計算における計算時間を短縮することを目的とする。
【課題を解決するための手段】
【0009】
1つの実施態様では、量子計算制御プログラムが提供される。量子計算制御プログラムは、計算対象の系の量子状態を計算する複数の量子計算器のうち第1の量子計算器に、第1の計算条件による量子状態の計算を第1の回数繰り返させる処理をコンピュータに実行させる。また、量子計算制御プログラムは、第1の量子計算器の、第1の回数より少ない第2の回数の計算結果と系の情報に基づいて、系の第1のエネルギーを計算する処理をコンピュータに実行させる。そして、量子計算制御プログラムは、第1の計算条件による計算途中に、複数の量子計算器のうち第2の量子計算器に、第1のエネルギーに基づいて決定した第2の計算条件による量子状態の計算を開始させる処理をコンピュータに実行させる。
【0010】
また、1つの実施態様では量子計算制御方法が提供される。
また、1つの実施態様では情報処理装置が提供される。
【発明の効果】
【0011】
1つの側面では、本発明は、量子計算における計算時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態の量子計算制御方法及び情報処理装置の一例を示す図である。
図2】情報処理装置のハードウェア例を示すブロック図である。
図3】情報処理装置の機能例を示すブロック図である。
図4】量子計算制御方法の処理手順の一例を示すフローチャートである(その1)。
図5】量子計算制御方法の処理手順の一例を示すフローチャートである(その2)。
図6】量子計算制御方法の処理手順の一例を示すフローチャートである(その3)。
図7】比較例の量子計算制御方法の処理手順を示すフローチャートである。
図8】計算の繰り返し回数とエネルギーの計算精度との一例の関係を示す図である(その1)。
図9】計算の繰り返し回数とエネルギーの計算精度との一例の関係を示す図である(その2)。
図10】第2の実施の形態と比較例の量子計算制御方法の処理時間の差異を示す図である。
図11】シミュレーション結果の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の量子計算制御方法及び情報処理装置の一例を示す図である。
【0014】
第1の実施の形態の情報処理装置10は、複数の量子計算器12a1,12a2,…,12aQを制御して系の基底エネルギーや基底状態を計算(探索)する。
量子計算器12a1~12aQは、たとえば、超電導量子ビットによるものや、ダイヤモンドの色中心を量子ビットとして用いるものなど種々の量子計算器が適用可能である。
【0015】
量子計算器12a1~12aQのそれぞれは、情報処理装置10によって設定された計算条件により計算対象の系の量子状態を計算する。たとえば、量子計算器12a1~12aQのそれぞれは複数の量子ビットに対して、設定された計算条件により所定の量子計算(量子操作)を行う。量子計算後に測定される複数の量子ビットの値が、計算結果である系の量子状態となる。計算対象の系は、量子計算として量子化学計算が行われる場合、複数の原子または分子を含む系である。
【0016】
VQEによる量子計算が行われる場合、系のエネルギーは、以下の式(1)により表される。
【0017】
【数1】
【0018】
式(1)においてθ(ベクトル表記されている)は最適化変数であり、量子計算器12a1~12aQにおける計算条件を表す。θは、たとえば、量子ビットに対する量子操作(スピンの回転操作)の角度を決めるパラメータである。ψ(θ)は、量子操作によって得られる系の量子状態を示す。Hはハミルトニアンであり、量子化学計算では電子原子間のクーロン相互作用、及び電子同士のクーロン相互作用の大きさを反映するものであり、原子間距離や分子間の距離(以下Rという)などによって決まる。θやRを変動させていったときにエネルギーが最小となる量子状態が、求めたい基底状態(またはそれに近い状態)となり、そのときのエネルギーが基底エネルギー(またはそれに近いエネルギー)となる。
【0019】
情報処理装置10は、記憶部11及び処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置である。
【0020】
記憶部11は、量子計算に用いる計算対象の系の情報を記憶する。たとえば、系のハミルトニアンを表すためのパラメータや、要求される計算精度の情報などが、記憶部11に記憶される。
【0021】
処理部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのハードウェアであるプロセッサにより実現される。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。たとえば、量子計算制御プログラムが実行される。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
【0022】
処理部12は、以下のような処理を行う。
処理部12は、計算対象の系の量子状態を計算する量子計算器12a1~12aQのうち第1の量子計算器に、第1の計算条件で量子状態の計算を第1の回数(以下N回)繰り返させる。たとえば、処理部12は、量子計算器12a1に、第1の計算条件の一例として図1のようにθ=θを設定し、量子状態の計算(量子計算)をN回行わせる。
【0023】
また、処理部12は、第1の量子計算器の、N回より少ない第2の回数(以下sN回)の計算結果と系の情報(ハミルトニアンの情報)に基づいて、系の第1のエネルギーを計算する。sは投機実行比率であり、1より小さい値である。たとえば、処理部12は、θ=θによる量子計算をsN回、量子計算器12a1に行わせたときに各量子計算によって得られる量子状態(sN回分の量子状態)に基づいて、以下のようにエネルギーを計算する。
【0024】
式(1)において、Hは、以下の式(2)のように表せる。
【0025】
【数2】
【0026】
式(2)において、Oは量子操作を行うパウリ行列のテンソル積である。パウリ行列はパウリ演算子とも呼ばれ、X、Y、Z、I(単位行列)の4つの行列がある。実数の係数であるhは、各Rについて予め記憶部11に記憶されている。iは1からLの整数である。つまり、HはL個のhの和で表せる。Lは、たとえば、分子の種類、計算に使用する基底関数に依存して決定される。
【0027】
あるθについてのエネルギーは、以下の式(3)のように表せる。
【0028】
【数3】
【0029】
ここで、1回当たりの量子計算において状態|1〉である量子ビットの数が、偶数である確率をp、奇数である確率をpとすると、p,pはそれぞれ以下の式(4)のように表せる。
【0030】
【数4】
【0031】
つまり、〈ψ(θ)|O|ψ(θ)〉は、たとえば、以下の式(5)のように表せる。
【0032】
【数5】
【0033】
テンソル積Oの測定に対してのpをpi0と置き換えると、式(3)は、以下の式(6)のように表せる。
【0034】
【数6】
【0035】
つまり、Eはpi0を求めることで算出できる。なお、状態|1〉である量子ビットの数が奇数であるpを求めて、Eを計算することもできる。
処理部12は、計算回数がsN回(n=sN)の計算結果に基づいてpi0を計算し、pi0を用いて式(6)からEとして、第1のエネルギーの一例であるE0sを計算する。
【0036】
さらにまた、処理部12は、第1の量子計算器による量子計算途中に、量子計算器12a1~12aQのうち第2の量子計算器に、第1のエネルギーに基づいて決定した第2の計算条件による量子計算を開始させる。たとえば、処理部12は、量子計算器12a1による量子計算途中に、量子計算器12a2に、計算したE0sに基づいて決定した第2の計算条件の一例であるθ=θ1sによる量子計算を開始させる。
【0037】
処理部12は、E0sに基づいて、たとえば、同時摂動確率近似や逐次2次計画法などを用いて、エネルギーが小さくなるようにθ1sを決定する。
また、処理部12は、第1の量子計算器のN回の計算結果と系の情報(ハミルトニアンの情報)に基づいて、系の第2のエネルギーを計算する。たとえば、処理部12は、量子計算器12a1によるN回の計算結果(N回分の量子状態)に基づいて上記のpi0を計算し、pi0を用いて式(6)からEとして、第2のエネルギーの一例であるEを計算する。Eは、E0sより多くの量子計算の結果に基づいて得られたエネルギーであるため、E0sよりも計算精度が高い。
【0038】
そして、処理部12は、第1のエネルギーと第2のエネルギーとの差分が所定値(p)以下であるか否かに応じて、第2の量子計算器に、第2の計算条件とは異なる第3の計算条件により量子計算を実行させるか否かを決定する。
【0039】
たとえば、処理部12は、E0s,Eの差分である|E0s-E|がp以下である場合、すなわち、|E0s-E|≦pの場合(図1のケース1)、量子計算器12a2に第2の計算条件(θ=θ1s)による量子計算を継続させる。pは、たとえば、ユーザによって入力される最終的に要求される計算精度である。量子化学計算が行われる場合、たとえば、pとして、1.6×10-3hartreeが用いられる。
【0040】
一方、|E0s-E|がpより大きい場合、すなわち、|E0s-E|>pの場合(図1のケース2)、処理部12は、量子計算器12a2に第3の計算条件により量子計算を実行させる。この場合、量子計算器12a2では第2の計算条件での量子計算が中断され、第3の計算条件(θ=θ)による量子計算が開始する。第3の計算条件は、第2のエネルギーに基づいて、上記の第2の計算条件と同様の方法で決定される。
【0041】
処理部12は、上記のような処理を、他の計算条件についても繰り返す。このような処理により得られるエネルギーは、基底エネルギーに向けて収束していく。処理部12は、たとえば、所定種類の計算条件についての量子計算を実行させた後に得られる系のエネルギー、適用した計算条件(θ)を計算結果(探索結果)として出力する。図1の例では、θ=θが、適用される最後の計算条件となっている。なお、量子化学計算が行われる場合、各Rについて、上記のような処理が行われる。
【0042】
処理部12は、計算結果を図示しない表示装置に出力して表示させてもよいし、情報処理装置10の外部の装置に出力してもよい。また、処理部12は、計算結果を記憶部11に記憶してもよい。
【0043】
なお処理部12は、所定の収束条件(たとえば、エネルギーの変動量が所定の範囲内)が満たされた場合に、新たな計算条件による量子計算を実行させずに、処理を終了してもよい。
【0044】
上記のような第1の実施の形態の量子計算制御方法では、情報処理装置10は、第1の計算条件で第1の量子計算器に系の量子状態を繰り返し計算させ、その計算途中に得られる第1のエネルギーに基づく第2の計算条件で第2の量子計算器に計算を開始させる。これにより、複数の計算条件による量子計算が並列に行われるため、計算時間が短縮する。
【0045】
また、情報処理装置10は、第1の量子計算器によるN回の計算によって得られる量子状態と系の情報に基づいて、系の第2のエネルギーを計算する。そして、情報処理装置10は、第1のエネルギーと第2のエネルギーとの差分がpより大きい場合、第2の量子計算器に、第2の計算条件による量子計算を中断させ、第2のエネルギーに基づいて決定した第3の計算条件による量子計算を開始させる。前述のように、第2のエネルギーの一例であるEは、第1のエネルギーの一例であるE0sより多くの量子計算の結果に基づいて得られたエネルギーであるため、E0sよりも計算精度が高い。このため、第2のエネルギーに基づいて決定した第3の計算条件により量子計算を行うことで、計算精度の低下を抑えられる。
【0046】
上記の処理は、一種の投機的な処理(以下投機処理という)であるが、従来の投機処理とは以下の点で異なる。
従来の投機処理では、投機処理の判断材料として、前段階の処理の結果がインプットとして参照される。たとえば、ある分岐処理(if文)が、これまでtrueと判定されたことが多い場合、今回もtrueであると仮定して投機的に処理が行われる。
【0047】
これに対して、上記の第1の実施の形態の量子計算制御方法では、ある計算条件による繰り返し計算の途中に得られる結果から、次の段階の繰り返し計算のインプット(計算条件)が得られる。VQEでは、繰り返し計算の計算回数を示す変数nに対して、計算精度は、1/√nのオーダーとなり、繰り返し計算の途中に得られる結果についても、ある程度、正しい結果が得られることが多い。このため、このような投機処理が可能となる。
【0048】
なお、投機実行比率sが小さいほど多くの量子計算器が用いられるが、その分、並列数が多くなり、計算時間がより短縮することが期待される。
(第2の実施の形態)
次に、第2の実施の形態を説明する。
【0049】
図2は、情報処理装置のハードウェア例を示すブロック図である。
情報処理装置20は、CPU21、RAM22、HDD23、画像信号処理部24、入力信号処理部25、媒体リーダ26、通信インタフェース27及びインタフェース28を有する。上記ユニットは、バスに接続されている。
【0050】
CPU21は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU21は、HDD23に記憶されたプログラムやデータの少なくとも一部をRAM22にロードし、プログラムを実行する。なお、CPU21は複数のプロセッサコアを備えてもよく、情報処理装置20は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
【0051】
RAM22は、CPU21が実行するプログラムやCPU21が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置20は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0052】
HDD23は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、量子計算を制御する量子計算制御プログラムが含まれる。なお、情報処理装置20は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0053】
画像信号処理部24は、CPU21からの命令にしたがって、情報処理装置20に接続されたディスプレイ24aに画像を出力する。ディスプレイ24aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0054】
入力信号処理部25は、情報処理装置20に接続された入力デバイス25aから入力信号を取得し、CPU21に出力する。入力デバイス25aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置20に、複数の種類の入力デバイスが接続されていてもよい。
【0055】
媒体リーダ26は、記録媒体26aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体26aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0056】
媒体リーダ26は、たとえば、記録媒体26aから読み取ったプログラムやデータを、RAM22やHDD23などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU21によって実行される。なお、記録媒体26aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体26aやHDD23を、コンピュータ読み取り可能な記録媒体ということがある。
【0057】
通信インタフェース27は、ネットワーク27aに接続され、ネットワーク27aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース27は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0058】
インタフェース28は、量子計算器28a1,28a2,…,28aQと通信を行う。インタフェース28は、たとえば、各種の計算条件や制御信号の量子計算器28a1~28aQへの送信や、量子計算器28a1~28aQによる量子計算結果(量子状態)の受信を行う。
【0059】
次に、情報処理装置20の機能及び処理手順を説明する。
図3は、情報処理装置の機能例を示すブロック図である。
情報処理装置20は、情報取得部30、ハミルトニアン情報記憶部31、エネルギー計算部32、投機判定部33、計算条件決定部34、計算条件設定部35、計算実行指示部36、計算結果出力部37を有する。ハミルトニアン情報記憶部31は、たとえば、RAM22またはHDD23に確保した記憶領域を用いて実装できる。情報取得部30、エネルギー計算部32、投機判定部33、計算条件決定部34、計算条件設定部35、計算実行指示部36、計算結果出力部37は、たとえば、CPU21が実行するプログラムモジュールを用いて実装できる。
【0060】
情報取得部30は、ユーザによる入力デバイス25aの操作などによって入力される計算精度(前述のp)や、計算対象の系の情報であるハミルトニアンの情報(前述の式(2)に示したh)を取得する。
【0061】
ハミルトニアン情報記憶部31は、情報取得部30が取得したハミルトニアンの情報を記憶する。
エネルギー計算部32は、量子計算器28a1~28aQが計算する系の量子状態と、ハミルトニアンの情報に基づいて、前述の式(6)により系のエネルギーを計算する。エネルギー計算部32は、ある計算条件によるsN(s<1)回分の量子計算結果、またはN回分の量子計算結果に基づいてエネルギーを計算する。現在の計算回数については、計算実行指示部36から通知される。なお、エネルギー計算部32は、n=sNまたはn=N以外の計算回数のときに、それまでの量子計算結果に基づいてエネルギーを計算してもよい。
【0062】
投機判定部33は、sN回分の量子計算結果に基づいて計算されたエネルギーとN回分の量子計算結果に基づいて計算されたエネルギーとの差分が、p以下であるか否かを判定する。pは、たとえば、情報取得部30が取得した計算精度である。
【0063】
計算条件決定部34は、エネルギー計算部32が計算したエネルギーと、投機判定部33による判定結果に基づいて、量子計算器28a1~28aQにおける計算条件を表すθを決定する。計算条件決定部34は、たとえば、同時摂動確率近似や逐次2次計画法などを用いて、エネルギーが小さくなるようにθを決定する。
【0064】
計算条件設定部35は、計算条件決定部34が決定したθを、量子計算器28a1~28aQのうち、現在計算を実行していない量子計算器に設定する。
計算実行指示部36は、計算条件設定部35がθを設定した量子計算器に計算の実行を指示する。
【0065】
計算結果出力部37は、たとえば、所定種類の計算条件についての量子計算を実行させた後に得られる系のエネルギーと、適用した計算条件(θ)を計算結果(探索結果)として出力する。計算結果出力部37は、計算結果をディスプレイ24aに出力して表示させてもよいし、ネットワーク27aを介して他の情報処理装置に送信してもよい。また、計算結果出力部37は、計算結果を、HDD23などの記憶装置に記憶してもよい。
【0066】
図4図5及び図6は、量子計算制御方法の処理手順の一例を示すフローチャートである。図4には、量子計算器に第1計算条件により量子計算をさせる際の制御例が示されている。
【0067】
まず、情報取得部30は、ユーザによる入力デバイス25aの操作などによって入力される計算精度(p)、ハミルトニアンの情報を取得する(ステップS10)。
計算条件設定部35は、量子計算器28a1~28aQのうちの1つに、第1計算条件として、θの初期値であるθを設定する(ステップS11)。
【0068】
計算実行指示部36は、第1計算条件の量子計算の繰り返し回数を示す変数nを1に初期化し(ステップS12)、θが設定された量子計算器に量子計算の実行を指示する(ステップS13)。これによって、θによる1回の量子計算が実行される。
【0069】
計算実行指示部36は、n=sNであるか否かを判定する(ステップS14)。n=sNではないと判定した場合、計算実行指示部36は、n=Nであるか否かを判定する(ステップS15)。
【0070】
計算実行指示部36は、n=Nではないと判定した場合、n=n+1とし(ステップS16)、ステップS13からの処理を繰り返す。
ステップS14の処理において計算実行指示部36が、n=sNであると判定した場合、エネルギー計算部32は、前述の式(6)により、E0sを計算する(ステップS17)。エネルギー計算部32は、たとえば、n=sN回の量子計算結果に基づいて、前述の1回当たりの量子計算において状態|1〉である量子ビットの数が偶数である確率(pi0)を計算し、pi0を用いて式(6)のEとして、E0sを計算する。
【0071】
ステップS17の処理後、計算条件決定部34は、E0sに基づいて、第2計算条件としてθ1sを決定する(ステップS18)。そして、計算条件設定部35は、θ1sを、量子計算器28a1~28aQのうち、現在計算を実行していない量子計算器に設定する(ステップS19)。その後、図5に示される第2計算条件の処理が開始されるが(ステップS20)、第1計算条件の処理は継続され、ステップS15からの処理が繰り返される。
【0072】
ステップS15の処理において計算実行指示部36が、n=Nであると判定した場合、エネルギー計算部32は、前述の式(6)により、Eを計算する(ステップS21)。エネルギー計算部32は、n=N回の量子計算結果に基づいて、pi0を計算し、pi0を用いて式(6)のEとして、Eを計算する。
【0073】
ステップS21の処理後、投機判定部33は、E0s,Eの差分である|E0s-E|が、p以下であるか否かを判定する(ステップS22)。
投機判定部33が|E0s-E|はp以下ではないと判定した場合、計算条件決定部34は、前述のθ1sの代わりに第2計算条件として用いるθを、Eに基づいて決定する(ステップS23)。そして、計算条件設定部35は、θ1sが設定されていた量子計算器に、θ1sの代わりにθを設定する(ステップS24)。その後、第2計算条件の処理が開始される(ステップS25)。
【0074】
ステップS22の処理において投機判定部33が|E0s-E|はp以下であると判定した場合、またはステップS25の処理後、第1計算条件の処理が終了する。
図5には、量子計算器に第2計算条件により計算をさせる際の制御例が示されている。
【0075】
計算実行指示部36は、第2計算条件の量子計算の繰り返し回数を示す変数nを1に初期化し(ステップS30)、θまたはθ1sが設定された量子計算器に量子計算の実行を指示する(ステップS31)。これによって、θまたはθ1sによる1回の量子計算が実行される。
【0076】
計算実行指示部36は、n=sNであるか否かを判定する(ステップS32)。n=sNではないと判定した場合、計算実行指示部36は、n=Nであるか否かを判定する(ステップS33)。
【0077】
計算実行指示部36は、n=Nではないと判定した場合、n=n+1とし(ステップS34)、ステップS31からの処理を繰り返す。
ステップS32の処理において計算実行指示部36が、n=sNであると判定した場合、エネルギー計算部32は、前述の式(6)により、E1sを計算する(ステップS35)。エネルギー計算部32は、θまたはθ1sによるn=sN回の量子計算結果に基づいて、前述のpi0を計算し、pi0を用いて式(6)のEとして、E1sを計算する。
【0078】
ステップS35の処理後、計算条件決定部34は、E1sに基づいて、第3計算条件としてθ2sを決定する(ステップS36)。そして、計算条件設定部35は、θ2sを、量子計算器28a1~28aQのうち、現在計算を実行していない量子計算器に設定する(ステップS37)。その後、第3計算条件の処理が開始されるが(ステップS38)、第2計算条件の処理は継続され、ステップS33からの処理が繰り返される。
【0079】
ステップS33の処理において計算実行指示部36が、n=Nであると判定した場合、エネルギー計算部32は、前述の式(6)により、Eを計算する(ステップS39)。エネルギー計算部32は、n=N回の量子計算結果に基づいてpi0を計算し、pi0を用いて式(6)のEとして、Eを計算する。
【0080】
ステップS39の処理後、投機判定部33は、E1s,Eの差分である|E1s-E|が、p以下であるか否かを判定する(ステップS40)。
投機判定部33が|E1s-E|はp以下ではないと判定した場合、計算条件決定部34は、前述のθ2sの代わりに第3計算条件として用いるθを、Eに基づいて、決定する(ステップS41)。そして、計算条件設定部35は、θ2sが設定されていた量子計算器に、θ2sの代わりにθを設定する(ステップS42)。その後、第3計算条件の処理が開始される(ステップS43)。
【0081】
ステップS40の処理において投機判定部33が|E1s-E|はp以下であると判定した場合、またはステップS43の処理後、第2計算条件の処理が終了する。
第3計算条件以降の処理も、図5の処理と同様に行われる。ただし、最終の計算条件に関しては、たとえば、図6に示すような処理が行われる。
【0082】
図6には、量子計算器に最終計算条件により計算をさせる際の制御例が示されている。M+1種類の計算条件(θ~θ)が用いられる場合、最終計算条件は、θである。
計算実行指示部36は、最終計算条件の量子計算の繰り返し回数を示す変数nM+1を1に初期化し(ステップS50)、θまたはθMsが設定された量子計算器に量子計算の実行を指示する(ステップS51)。これによって、θまたはθMsによる1回の量子計算が実行される。
【0083】
計算実行指示部36は、nM+1=Nであるか否かを判定する(ステップS52)。計算実行指示部36は、nM+1=Nではないと判定した場合、nM+1=nM+1+1とし(ステップS53)、ステップS51からの処理を繰り返す。
【0084】
ステップS52の処理において計算実行指示部36が、nM+1=Nであると判定した場合、エネルギー計算部32は、前述の式(6)により、Eを計算する(ステップS54)。エネルギー計算部32は、θまたはθMsによるnM+1=N回の量子計算結果に基づいて、pi0を計算し、pi0を用いて式(6)のEとして、Eを計算する。
【0085】
ステップS54の処理後、計算結果出力部37は、計算結果を出力する(ステップS55)。これにより、最終計算条件の処理が終了する。計算結果出力部37は、たとえば、ステップS54の処理で計算されたEの他、適用した計算条件(θまたはθMs)を計算結果として出力する。
【0086】
なお、量子化学計算が行われる場合、原子間距離や分子間の距離である前述のRのそれぞれについて、上記のような処理が行われる。
図4図6の処理の順序は一例であり、適宜処理の順序を入れ替えてもよい。
【0087】
上記の量子計算制御方法による効果を説明する前に、各計算条件の処理を投機的ではなく、直列に行う以下の比較例を説明する。
(比較例)
図7は、比較例の量子計算制御方法の処理手順を示すフローチャートである。
【0088】
比較例の量子計算制御処理では、まず、計算条件であるθの初期値であるθが量子計算器に設定され(ステップS60)、量子計算の繰り返し回数を示す変数nが1に初期化され(ステップS61)、量子計算器に量子計算の実行が指示される(ステップS62)。これによって、1回の量子計算が実行される。
【0089】
その後、n=Nであるか否かが判定され(ステップS63)、n=Nではないと判定された場合、n=n+1とされ(ステップS64)、ステップS62からの処理が繰り返される。
【0090】
n=Nであると判定された場合、n=N回の量子計算結果に基づいて、式(6)で表されるEが計算される(ステップS65)。その後、計算条件が最終計算条件(図7の例ではθ=θ)であるか否かが判定される(ステップS66)。
【0091】
最終計算条件ではないと判定された場合には、ステップS65の処理で計算されたEに基づいてθが更新され(ステップS67)、ステップS61からの処理が繰り返され、新たな計算条件の処理が行われる。
【0092】
ステップS66の処理において、計算条件が最終計算条件であると判定された場合、計算結果が出力され(ステップS68)、量子計算制御処理が終了する。
図8及び図9は、計算の繰り返し回数とエネルギーの計算精度との一例の関係を示す図である。図8及び図9では、シミュレーションにより、計算条件としてθ=π/10を用い、分子間距離であるRを1としたときの水素分子のエネルギーを計算した例が示されている。図8では、繰り返し回数であるNを100、図9では、Nを1000としている。横軸はエネルギー(単位はハートリー)、縦軸は計算された各エネルギーの出現回数を示している。
【0093】
図8のように、N=100の場合、上記計算条件における既知の正解(エネルギー=-0.99ハートリー)に対して大きな誤差が生じる。図9のように、N=1000とした場合、誤差は小さくなる。
【0094】
量子化学計算において要求される精度の例である、エネルギーの標準偏差が1.6×10-3ハートリーとなる計算結果を得るためには、N=20000程度とすることが知られている。
【0095】
各計算条件の処理は上記のように多数回繰り返されるため、複数の計算条件による処理が直列に行われる前述の比較例の量子計算制御方法を適用する場合、計算時間が長くなってしまう。
【0096】
図10は、第2の実施の形態と比較例の量子計算制御方法の処理時間の差異を示す図である。図10の例では、何れもM+1種類の計算条件による量子計算を行わせる制御の例が示されている。
【0097】
比較例の量子計算制御方法では、M+1種類の計算条件であるθ=θ~θによる量子計算がそれぞれN回、直列に行われる。
これに対して、第2の実施の形態の量子計算制御方法では、投機処理が行われる。図10の例では、θ=θによるN回の量子計算の途中(n=sNのとき)で、θ=θ1sによる量子計算が開始されている。また、n=Nのときに|E0s-E|がp以下であるため、θ=θ1sによる量子計算が継続されている。
【0098】
さらに、θ=θ1sによるN回の量子計算の途中(n=sNのとき)で、θ=θ2sによる量子計算が開始されている。図10の例では、n=Nのときに|E1s-E|がpより大きいため、θ=θ2sによる量子計算が中断され、θ=θによる量子計算が開始されている。
【0099】
第2の実施の形態の量子計算制御方法では、|Eis-E|≦p(iは0からMの整数)となる場合(投機成功の場合)が1回でも生じれば、最終計算条件(θ=θ)による量子計算を終えるまでの処理時間を、比較例の量子計算制御方法よりも短縮できる。
【0100】
(シミュレーション結果の例)
図11は、シミュレーション結果の一例を示す図である。横軸は投機実行比率sを表し、左の縦軸は投機実行比率s=1のときを100%とした場合の処理時間及び使用リソース(量子計算器の数×量子計算実行時間)、右の縦軸は投機成功率を表す。
【0101】
なお、図11では、計算の簡略化のため、N=100、p=0.1とし、θをエネルギーから決定するのではなく、θ=0×π/10、θ=1×π/10、…、θ=9×π/10と予め決めておいた場合の計算例が示されている。
【0102】
シミュレーション結果70は、投機実行比率sに対する投機成功率(|Eis-E|≦pと判定される割合)を示し、シミュレーション結果71は、投機実行比率sに対する使用リソースを示す。シミュレーション結果72は、投機実行比率sに対する処理時間を示す。
【0103】
投機実行比率sを小さくすると、シミュレーション結果70によって示される投機成功率の減少から、シミュレーション結果71に示される使用リソースが増大する。ただ、シミュレーション結果72のように、投機実行比率sを小さくすると処理時間が短くなる傾向にあることがわかる。
【0104】
なお、前述のように、上記の処理内容は、情報処理装置20にプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体26a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD23)にプログラムをコピーして実行してもよい。
【0105】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0106】
10 情報処理装置
11 記憶部
12 処理部
12a1~12aQ 量子計算器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11