(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-18
(45)【発行日】2023-01-26
(54)【発明の名称】量子演算装置及び方法
(51)【国際特許分類】
G06N 10/70 20220101AFI20230119BHJP
G06F 7/38 20060101ALI20230119BHJP
【FI】
G06N10/70
G06F7/38 510
(21)【出願番号】P 2019142066
(22)【出願日】2019-08-01
【審査請求日】2021-08-31
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成30年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業、研究題目「中村巨視的量子機械」、産業技術力強化法第17条の適用を受ける特許出願。 平成30年度、文部科学省、科学技術試験研究委託事業、委託業務の題目「量子情報処理に関するネットワーク研究拠点」、産業技術力強化法第17条の適用を受ける特許出願。
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100121706
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】鈴木 泰成
(72)【発明者】
【氏名】杉山 太香典
(72)【発明者】
【氏名】部谷 謙太郎
【審査官】金田 孝之
(56)【参考文献】
【文献】特表2019-502216(JP,A)
【文献】特表2019-520645(JP,A)
【文献】特開2018-022446(JP,A)
【文献】特開2006-048441(JP,A)
【文献】米国特許出願公開第2018/0232652(US,A1)
【文献】HEYA, K et al.,"Variational Quantum Gate Optimization",arXiv.org [online],2018年,pp. 1-10,[retrieved on 2022.07.27], Retrieved from the Internet: <URL: https://arxiv.org/abs/1810.12745v1>,<DOI: 10.48550/arXiv.1810.12745>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
G06F 7/38
(57)【特許請求の範囲】
【請求項1】
kは1以上の所定の整数であり、
変分アルゴリズムを実行するための量子回路である試行量子回路の構成要素となる量子演算を特徴付ける制御可能なk個のパラメータを初期化する初期化部と、
前記初期化されたk個のパラメータに対応する前記試行量子回路に対応する損失を計算するための損失量子回路と、前記初期化されたk個のパラメータをそれぞれ更新するために必要なk個の更新パラメータを計算するためのk個の更新パラメータ量子回路とを生成する量子回路生成部と、
前記損失量子回路及び前記k個の更新パラメータ量子回路のそれぞれを符号化する符号化部と、
前記符号化された損失量子回路及び前記k個の更新パラメータ量子回路のそれぞれの実行を行い、実行結果の測定値を得る量子計算部と、
前記実行結果の測定値を復号する復号部と、
前記復号された計算結果を用いて、前記損失及び前記k個の更新パラメータのそれぞれを計算する損失更新パラメータ計算部と、
前記k個の更新パラメータに基づいて、前記初期化されたk個のパラメータを更新する更新部と、
前記初期化されたk個のパラメータに代えて前記更新されたk個のパラメータを用いた、前記量子回路生成部、前記符号化部、前記量子計算部、前記復号部、前記損失更新パラメータ計算部及び前記更新部の処理を所定の終了条件を満たすまで繰り返し行うように制御する制御部と、
を含む量子演算装置。
【請求項2】
請求項1の量子演算装置であって、
前記更新部は、更に、所定の量子演算を、所定の数よりも少ない数の
、誤り耐性を持たせることができない量子演算で構成される量子ゲートの系列に分解する関数を用いて、二分探索法により、前記初期化されたk個のパラメータ又は前記更新されたk個のパラメータにより特徴付けられる各量子演算を近似する、誤り耐性を持たせることができない量子演算の数を抑えた量子回路を探索し、
前記試行量子回路が、前記更新されたk個のパラメータにより特徴付けられる前記試行量子回路内の各パラメータに対応する量子演算を、その各パラメータに対応する前記探索された量子回路で置き換えた試行量子回路であるとして、2回目以降の前記量子回路生成部、前記符号化部、前記量子計算部、前記復号部及び前記損失更新パラメータ計算部の処理が行われる、
量子演算装置。
【請求項3】
初期化部が、kは1以上の所定の整数であり、
変分アルゴリズムを実行するための量子回路である試行量子回路の構成要素となる量子演算を特徴付ける制御可能なk個のパラメータを初期化する初期化ステップと、
量子回路生成部が、前記初期化されたk個のパラメータに対応する前記試行量子回路に対応する損失を計算するための損失量子回路と、前記初期化されたk個のパラメータをそれぞれ更新するために必要なk個の更新パラメータを計算するためのk個の更新パラメータ量子回路とを生成する量子回路生成ステップと、
符号化部が、前記損失量子回路及び前記k個の更新パラメータ量子回路のそれぞれを符号化する符号化ステップと、
量子計算部が、前記符号化された損失量子回路及び前記k個の更新パラメータ量子回路のそれぞれの実行を行い、実行結果の測定値を得る量子計算ステップと、
復号部が、前記実行結果の測定値を復号する復号ステップと、
損失更新パラメータ計算部が、前記復号された計算結果を用いて、前記損失及び前記k個の更新パラメータのそれぞれを計算する損失更新パラメータ計算ステップと、
更新部が、前記k個の更新パラメータに基づいて、前記初期化されたk個のパラメータを更新する更新ステップと、
制御部が、前記初期化されたk個のパラメータに代えて前記更新されたk個のパラメータを用いた、前記量子回路生成部、前記符号化部、前記量子計算部、前記復号部、前記損失更新パラメータ計算部及び前記更新部の処理を所定の終了条件を満たすまで繰り返し行うように制御する制御ステップと、
を含む量子演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子計算技術に関する。
【背景技術】
【0002】
量子計算機は、量子論に基づく量子ビットと呼ばれる基本要素からなる計算機である。量子ビットは有限の誤り率を持つため、計算タスクにおける量子ビットの数を増やしたり量子計算の時間を長くしたりしていくと、いずれは誤りの影響で量子計算の結果が意味のないものになってしまう。このため、量子計算機で有用な計算を行うためには、誤りが計算結果を無意味にしないよう適切に計算タスクを設計する必要がある。
【0003】
量子古典ハイブリッドアルゴリズムは、量子計算機を小さな計算のタスクの繰り返しにのみ用いることで、長時間の計算に耐えない誤り率を持つ量子計算機でも有用なアプリケーションを実現しようというアイデアである。量子古典ハイブリッドアルゴリズムの枠組みの中で特に注目を集めているのが、量子状態から損失と呼ばれる実数を計算する関数の最小化に用いることができる量子変分アルゴリズムである。以下、量子変分アルゴリズムの仕組みを説明する。
【0004】
量子計算のタスクは、量子演算と呼ばれる(i)量子状態の初期化、(ii)量子ゲート、(iii)量子状態の測定、という3種類の操作の系列を論理回路のように記述した量子回路と呼ばれる方法で表現される。特に単一の量子ビットのみに作用する量子ゲートは単一量子ビット回転ゲートと呼ばれ、その操作は回転角という実数パラメータで特徴づけることができる。量子計算のタスクに要する計算時間は、量子回路の長さに相当する。
【0005】
量子変分アルゴリズムでは、まず許容できる計算時間の回路長の量子回路を試行回路として定義する。試行回路中の単一量子ビット回転ゲートの回転角を、試行回路を特徴づけるパラメータセットとみなす。試行回路を用いた量子計算の結果として、パラメータセットに依存した量子状態が得られる。この量子状態から計算される損失を最小化するように、試行回路の回転角パラメータを変分法により最適化する。最適化が十分に行われれば、損失を最小化するような入出力を行う試行回路のパラメータセットや最適化された損失の値が手に入ると期待できる。
【0006】
上記のような量子変分アルゴリズムは、特に入出力の対象が量子力学を用いて自然に記述される場合に、古典計算機を用いた変分アルゴリズムに比べ良い性能を示すと期待されている。例えば、化学物質は、量子力学を用いて自然に記述される対象の例である。これは、複雑な化学物質の最低エネルギー状態は、量子力学的にしか表現できないためである。このことから、量子変分アルゴリズムの具体的な応用が期待される例としては、損失を興味のある化学物質のエネルギーとして定義し、物質の最低エネルギーや対応する量子状態を求める変分量子固有値法などがある(例えば、非特許文献1参照。)。
【先行技術文献】
【非特許文献】
【0007】
【文献】Alberto Peruzzo, Jarrod McClean, Peter Shadbolt, Man-Hong Yung, Xiao-Qi Zhou, Peter J. Love, Alan Aspuru-Guzik, Jeremy L. O’Brien, "A variational eigenvalue solver on a photonic quantum processor", Nature communications 5, 4213 (2014)
【発明の概要】
【発明が解決しようとする課題】
【0008】
量子変分アルゴリズムを実用的な規模の問題まで適用するためには、問題のサイズに合わせ個々の量子ビットの誤り率を十分小さい値にしなければならない。ところが、物理的な誤り率には技術的な限界があるため、素朴な手法では量子変分アルゴリズムは規模の大きい問題に適用することができない。
【0009】
本発明は、量子演算装置の誤り率が十分小さい値でなくても、量子変分アルゴリズムを実行することができる量子演算装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
この発明の一態様による量子演算装置は、kは1以上の所定の整数であり、変分アルゴリズムを実行するための量子回路である試行量子回路の構成要素となる量子演算を特徴付ける制御可能なk個のパラメータを初期化する初期化部と、初期化されたk個のパラメータに対応する試行量子回路に対応する損失を計算するための損失量子回路と、初期化されたk個のパラメータをそれぞれ更新するために必要なk個の更新パラメータを計算するためのk個の更新パラメータ量子回路とを生成する量子回路生成部と、損失量子回路及びk個の更新パラメータ量子回路のそれぞれを符号化する符号化部と、符号化された損失量子回路及びk個の更新パラメータ量子回路のそれぞれの実行を行い、実行結果の測定値を得る量子計算部と、実行結果の測定値を復号する復号部と、復号された計算結果を用いて、損失及びk個の更新パラメータのそれぞれを計算する損失更新パラメータ計算部と、k個の更新パラメータに基づいて、初期化されたk個のパラメータを更新する更新部と、初期化されたk個のパラメータに代えて更新されたk個のパラメータを用いた、量子回路生成部、符号化部、量子計算部、復号部、損失更新パラメータ計算部及び更新部の処理を所定の終了条件を満たすまで繰り返し行うように制御する制御部と、を備えている。
【発明の効果】
【0011】
量子演算装置の誤り率が十分小さい値でなくても、量子変分アルゴリズムを実行することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、量子演算装置の機能構成の例を示す図である。
【
図2】
図2は、量子演算方法の処理手続きの例を示す図である。
【
図3】
図3は、更新部7の処理の例を説明するための図である。
【
図4】
図4は、コンピュータの機能構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0014】
[量子演算装置及び方法]
本発明では、量子演算装置の誤り率が十分小さい値でなくても、量子変分アルゴリズムを実行するために、量子誤り訂正という技術を用いる(例えば、参考文献1参照。)。量子誤り訂正では、単一の量子ビットを複数の量子ビットを用いて冗長に表現することで、実効的な誤り率を小さくすることができる。この時、冗長に表現された量子ビットのことを論理量子ビットと呼び、論理量子ビットを構成する個々の量子ビットを物理量子ビットと呼ぶ。また、単一の量子ビットを冗長に表現した空間に埋め込むことを符号化、この逆操作を復号化と呼ぶ。
【0015】
〔参考文献1〕Michael A. Nielsen, Isaac L. Chuang, “Quantum computation and quantum information”, pp.425-499 (2002)
【0016】
量子誤り訂正によって実効的な誤り率を低くできる量子演算を「誤り耐性を持った量子演算(fault-tolerant quantum operations)」と呼ぶ。
【0017】
量子演算装置は、
図1に示すように、初期化部1、量子回路生成部2、符号化部3、量子計算部4、復号部5、損失更新パラメータ計算部6、更新部7及び制御部8を例えば備えている。
【0018】
量子演算方法は、量子演算装置の各構成部が、以下に説明する及び
図2に示すステップS1からステップS8の処理を行うことにより例えば実現される。
【0019】
以下、量子演算装置の各構成部について説明する。
【0020】
最適化のプロセス全体を特徴づけるパラメータとして、学習率λ、繰り返し数L'、許容探索ステップ数P、許容する誤り耐性を持たせられない量子演算の数mが指定されているとする。また、探索ステップ数pが0に初期化されていすとする。
【0021】
<初期化部1>
初期化部1は、所定の試行量子回路の構成要素となる量子演算を特徴付ける制御可能なk個のパラメータを初期化する(ステップS1)。初期化されたk個のパラメータについての情報は、量子回路生成部2に出力される。kは、1以上の所定の整数である。
【0022】
例えば、初期化部1は、試行量子回路中の全ての回転角パラメータを0に初期化する。
【0023】
以下では、試行量子回路の構成要素となる量子演算を特徴付ける制御可能なパラメータが、試行量子回路を構成する単一量子ビット回転ゲートの回転角である場合を例に挙げて説明する。
【0024】
試行量子回路の構成要素となる量子演算を特徴付ける制御可能なパラメータは、単一量子ビット回転ゲートの回転角に限られず、デコヒーレンスの強さなどの回転角に対応しないパラメータであってもよい。また、試行量子回路の構成要素となる量子演算は、1量子ゲート演算に限らず、2量子ゲート演算や状態の初期化、測定も含んでいてもよい。
【0025】
<量子回路生成部2>
量子回路生成部2には、初期化部1により初期化されたk個のパラメータについての情報が入力される。なお、量子回路生成部2の2回目以降の処理では、量子回路生成部2には、更新部7で更新されたk個のパラメータについての情報が入力される。
【0026】
量子回路生成部2は、入力されたk個のパラメータについての情報により特徴付けられる試行量子回路に対し、損失を計算するための損失量子回路を生成する。また、量子回路生成部2は、パラメータごとに、損失に対し更新に必要な値である更新パラメータ(例えば勾配)を計算する更新パラメータ量子回路を生成する。
【0027】
すなわち、量子回路生成部2は、初期化部1により初期化されたk個のパラメータに対応する前記試行量子回路に対応する損失を計算するための損失量子回路と、前記初期化されたk個のパラメータをそれぞれ更新するために必要なk個の更新パラメータを計算するためのk個の更新パラメータ量子回路とを生成する(ステップS2)。
【0028】
パラメータの更新方法としてはパラメータの損失に対する勾配を用いる方法(例えば、参考文献2参照。)が代表的であるため、以下では、更新パラメータが勾配である場合を例に挙げて説明する。もちろん、更新パラメータは、勾配以外の更新パラメータであってもよい(例えば、参考文献3参照。)。
【0029】
〔参考文献2〕K. Mitarai, M. Negoro, M. Kitagawa, K. Fujii, "Quantum circuit learning", Phys. Rev. A 98, 032309 (2018)
〔参考文献3〕Ken M. Nakanishi, Keisuke Fujii, Synge Todo, "Sequential minimal optimization for quantum-classical hybrid algorithms", arXiv:1903.12166 (2019)
【0030】
損失量子回路は、損失を計算するために、試行量子回路の末端に複数の測定回路を付け加えたものである。
【0031】
より詳細には、Mを所定の1以上の数として、損失量子回路は、例えばM個の量子回路から構成される。
【0032】
各更新パラメータ量子回路も、複数の量子回路から構成される。各更新パラメータ量子回路を構成する量子回路の数は、更新に必要な情報をどのように生成するのかに依存する。各更新パラメータ量子回路は、例えば、参考文献2の方法を用いた場合には2M個の量子回路から構成され、参考文献3の方法を用いた場合には3M個の量子回路から構成される。
【0033】
以下では、k個の更新パラメータ量子回路のそれぞれが2M個の量子回路から構成される場合を例に挙げて説明する。
【0034】
<符号化部3>
符号化部3は、損失量子回路及びk個の更新パラメータ量子回路のそれぞれを符号化する(ステップS3)。
【0035】
符号化部3は、この際、符号化する量子回路の構成に応じ、最終的に実現される量子回路全体の誤り率を十分小さくするよう量子符号の符号長を選ぶ。
【0036】
損失量子回路がM個の量子回路から構成され、k個の更新パラメータ量子回路のそれぞれが2M個の量子回路から構成されている例では、符号化部3は、ステップS3の処理により、合計M+2kM個の量子回路のそれぞれを符号化する。
【0037】
なお、試行量子回路の量子ビット数がqである場合には、符号化された各量子回路の量子ビット数はpである。ここで、q,pは正の整数であり、p>qである。
【0038】
量子回路の符号化は、例えば参考文献1に記載された手法により行うことができる。
【0039】
なお、符号化部3のある第一段階目の符号化では、誤り耐性を持たせられない量子演算もある。この誤り耐性を持たせられない量子演算は、例えば参考文献6に記載されているいわゆる魔法状態注入及び魔法状態蒸留により間接的かつ近似的に論理量子ビット上で実現することができる。言い換えれば、符号化部3は、第一段階目の符号化により得られた符号Aの上でそのある符号化とは異なる第二段階目の符号化を行い符号Bを構成することで、第一段階目の符号化では誤り耐性を持たせられなかった量子演算を、符号Aの上で誤り耐性があるように実現することができる。このように、符号化部3は、必要に応じて、第一段階目の符号化では誤り耐性を持たせられない量子演算に誤り耐性を持たせられるようにするために第二段階目の符号化を行ってもよい。
【0040】
<量子計算部4>
量子計算部4は、符号化された損失量子回路及びk個の更新パラメータ量子回路のそれぞれの実行を行い、実行結果の測定値を得る(ステップS4)。
【0041】
なお、量子回路ごとに、N回実行が行われ、N個の実行結果の測定値が得られる。Nは2以上の所定の整数である。量子回路の個数はk+1個であるため、(k+1)×N個の実行結果の測定値が得られる。
【0042】
得られた実行結果の測定値は、復号部5に出力される。
【0043】
なお、量子ビットがpの量子回路を実行すると、p'ビットの値が得られる。ここで、p'はpより大きい整数である。これは、同じ量子ビットを何回か測定することがあるからである。量子計算は実行するたびにこのp'ビットの値が確率的に変化する。この変化の統計を取るため、損失量子回路がM個の量子回路から構成され、k個の更新パラメータ量子回路のそれぞれが2M個の量子回路から構成されている例では、M+2kM個の量子回路のそれぞれがN回実行される。これにより、各量子回路について、N×p'ビットの値が得られる。別の言い方をすると、得られる全部の値は(M+2kM)種類の量子の回路それぞれについて、N回実行して得られた、p'ビット列である。量子計算部4により得られる全部のビット数は(M+2kM)*N*p'である。
【0044】
なお、量子計算部4の処理のみが量子計算機により行われ、その他の各部の処理は古典計算機により行われる。古典計算機の例は、
図4に例示されているコンピュータ2000である。コンピュータ2000は、制御部2010、記録部2020、入力部2030、出力部2040を備えている。必要に応じて、コンピュータ2000は、表示部2050を備えていてもよい。
【0045】
コンピュータの記録部2020に、実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで古典計算機による処理は実現できる。
【0046】
<復号部5>
復号部5には、量子計算部4で得られた実行結果の測定値が入力される。
【0047】
復号部5は、実行結果の測定値を復号する(ステップS5)。これにより、符号化前の量子回路での計算結果を得ることができる。
【0048】
復号は、(k+1)×N個の実行結果の測定値のそれぞれについて行われる。このため、復号部5により、(k+1)×N個の復号された計算結果が得られる。
【0049】
より詳細には、損失量子回路がM個の量子回路から構成され、k個の更新パラメータ量子回路のそれぞれが2M個の量子回路から構成されている例では、(M+2kM)*N個の「p'ビット列」のそれぞれについて、復号が行われる。この復号の結果、q個のビット列が得られる。このq個のビット列は「エラーが小さな量子計算機が仮想的に存在していたとした場合に、符号化部3に入力されたq個の量子ビットの量子回路を、符号化を行わずにこのエラーの小さな量子計算機で実行していた場合に得られる、q個のビット列」である。このため、この例では、ステップS5の処理により、(M+2kM)種類の量子回路のそれぞれに対する、N個の、qビット列が得られる。
【0050】
各実行結果の測定値の符号化は、例えば参考文献1に記載された手法により行うことができる。
【0051】
復号部5により復号された計算結果は、損失更新パラメータ計算部6に出力される。
【0052】
<損失更新パラメータ計算部6>
損失更新パラメータ計算部6は、復号された計算結果を用いて、損失及びk個の更新パラメータのそれぞれを計算する(ステップS6)。計算された損失は、制御部8に出力される。計算されたk個の更新パラメータは、更新部7に出力される。
【0053】
まず、損失更新パラメータ計算部6は、復号された計算結果に対して統計処理を行い、量子回路ごとに統計処理後計算結果を求める。
【0054】
損失量子回路がM個の量子回路から構成され、k個の更新パラメータ量子回路のそれぞれが2M個の量子回路から構成されている例では、復号部5の処理により、(M+2kM)種類の量子回路のそれぞれについて、N個の「qビット列」が得られている。損失更新パラメータ計算部6は、各量子回路に割り当てられたN*qビットに対して統計的な処理を行うことで、1個の実数を得る。
【0055】
損失量子回路はM個の量子回路から構成されているため、損失に対してはM個の実数が得られる。このM個の実数に対してさらに処理を行うことで、「損失」という1個の実数が得られる。
【0056】
この例では、各更新パラメータ量子回路のそれぞれが2M個の量子回路から構成されているため、各更新パラメータに対しては2M個の実数が得られる。2M個の実数に対してさらに処理を行うことで、更新パラメータごとに1個の実数が得られる。更新パラメータの個数はkであるため、k個の更新パラメータが得られる。
【0057】
例えば、損失及び例えば勾配である更新パラメータの計算は、非特許文献1に記載された手法により行うことができる。
【0058】
損失更新パラメータ計算部6は、探索ステップ数p=0ではなく、かつ、損失が前回の計算された損失から改善されていない場合、pをp←p+1とする。すなわち、pを1だけインクリメントする。
【0059】
<更新部7>
更新部7には、損失更新パラメータ計算部6で計算されたk個の更新パラメータが入力される。
【0060】
更新部7は、k個の更新パラメータに基づいて、初期化部1で初期化されたk個のパラメータを更新する(ステップS7)。
【0061】
更新されたk個のパラメータは、量子回路生成部2及び制御部8に入力される。
【0062】
例えばパラメータが損失に対する勾配である場合には、更新前のパラメータをθ0として、勾配をδとすると、更新後のパラメータをθ0-λδとすることができる。更新部7は、この処理を、k個の更新パラメータのそれぞれについて行うことで、k個のパラメータを更新することができる。
【0063】
<制御部8>
制御部8は、初期化部1で初期化されたk個のパラメータに代えて、更新部7で更新されたk個のパラメータを用いた、量子回路生成部2、符号化部3、量子計算部4、復号部5、損失更新パラメータ計算部6及び更新部7の処理を所定の終了条件を満たすまで繰り返し行うように制御する(ステップS8)。
【0064】
所定の終了条件は、例えば探索ステップ数p=許容探索ステップ数Pである。探索ステップ数p=許容探索ステップ数Pである場合には、所定の終了条件が満たされる。
【0065】
制御部8は、探索ステップ数p=許容探索ステップ数Pである場合には、これまで損失更新パラメータ計算部6で計算された損失の中で最も値が小さい損失と、その最も値が小さい損失に対応するk個のパラメータとの少なくとも一方を出力して、処理を終了する。損失に対応するk個のパラメータとは、その損失を計算するために用いた損失量子回路に対応する試行量子回路の構成要素となる量子演算を特徴付ける制御可能なk個のパラメータのことである。
【0066】
例えば、損失をある化学物質のエネルギーと定義した場合には、この量子変分アルゴリズムにより得られる最も値が小さい損失はそのある化学物質の最低エネルギーとなる。また、この量子変分アルゴリズムにより得られる最も値が小さい損失に対応するk個のパラメータにより特徴付けられる試行量子回路により、そのある化学物質の量子状態を近似することができる。
【0067】
なお、この例では、制御部8の処理は更新部7の処理の直後に行われているが、制御部8の処理は更新部7の処理の直前に行われてもよい。
【0068】
このように、量子誤り訂正を用いることで、量子演算装置の誤り率が十分小さい値でなくても、量子変分アルゴリズムを実行することができる。
【0069】
量子誤り訂正では適切な冗長化のもとで実効的な誤り率を任意の値まで減らすことができる。このため、誤り率の小さい十分な数の量子ビットが与えられれば、任意の規模の問題にまで量子変分アルゴリズムを適用することができるようになる。
【0070】
[変形例]
量子誤り訂正による符号化を行った量子回路で変分的に回転角を更新すると、先に述べたように、第一段階目の符号化では誤り耐性を持たせられない量子演算が生成されてしまうことがありうる。この誤り耐性を持たせられない量子演算は、魔法状態注入及び魔法状態蒸留の手法を用いた第二段階目の符号化により、誤り耐性があるように実現することができるが、この処理には時間がかかることがある。
【0071】
このため、更新部7は、量子変分アルゴリズムの実行中にパラメータを更新する際、誤り耐性を持たせることのできない量子演算の数を許容できる数m以下に抑えながら、更新を行ってもよい。これにより、より短い時間で量子変分アルゴリズムの計算を行うことができる。
【0072】
以下では、試行量子回路の構成要素となる量子演算は、単一量子ビットに対する回転操作であり、その量子演算を特徴付ける制御可能なパラメータが回転角であり、更新パラメータが損失に対する勾配である場合を例に挙げて説明する。
【0073】
例えば、更新部7は、パラメータを更新する際に、
図3に記載された方法により、そのパラメータに対応する、試行量子回路内の量子演算を、誤り耐性を持たせることができない量子演算の数を抑えた近似量子回路で暫定的に置き換えることを決定する。更新部7は、この処理を、各パラメータに対して行う。
【0074】
まず、以下の説明及び
図3で現れる記号について説明する。
【0075】
Uは、単一量子ビット回転ゲートである。U(θ)のように回転角θを引数とする表現は、回転角θに応じて量子ビットを操作する量子ゲートを意味する。
【0076】
U0は、更新前の単一量子ビット回転ゲートの、少数の「誤り耐性を持たせられない量子演算」を用いた記述である。言い換えれば、更新部7の処理が2回目以降である場合には、U0は、更新部7の前回の処理で最終的に得られたUoutである。
【0077】
θ0は、更新前の単一量子ビット回転ゲートで分解を試みたゲートの回転角である。
【0078】
δは、勾配であり、単一量子ビット回転ゲートの、回転角の損失に対する実数の微分値である。
【0079】
λは、学習率であり、勾配δに従い回転角をどの程度更新するかを表す実数係数である。
【0080】
U'は、勾配を考慮した更新後の単一量子ビット回転ゲートである。
【0081】
USKは、Gate decompositionの結果として得られる、高々mSK個の「誤り耐性を持たせられない量子演算」で構成された量子ゲートの記述である。
【0082】
mSKは、Gate decompositionの結果として得られるUSKの記述に必要な「誤り耐性を持たせられない量子演算」の数である。
【0083】
L’は、繰り返し数であり、更新部7のループをトータルで何回使用するかを表す整数である。
【0084】
Lは、繰り返しのカウンタであり、更新部7のループを今まで何回使用したかを記憶する変数である。
【0085】
Uoutは、現在までのループで最も性能の良い単一量子ビット回転ゲートの分解を保持する変数である。
【0086】
εminは、二分法を用いてm個以下の「誤り耐性を持たせられない演算」で表現される最良の単一量子ビット回転ゲートを探索する際の、実現可能なゲート演算誤差の下限である。
【0087】
εmaxは、二分法を用いてm個以下の「誤り耐性を持たせられない演算」で表現される最良の単一量子ビット回転ゲートを探索する際の、実現可能なゲート演算誤差の上限である。
【0088】
更新部7には、処理の対象となる量子演算についての情報、勾配δ、学習率λ、繰り返し数L'、更新前に探索された量子回路U0、更新前の回転角θ0、誤り耐性を持たせることができない量子演算の数mについての情報が入力される。
【0089】
まず、更新部7は、U'←U(θ0-λδ)とする。すなわち、更新部7は、勾配δ及び学習率λにより更新前の回転角θ0を更新した回転角θ0-λδの回転ゲートをU’とする(ステップS71)。
【0090】
また、更新部7は、(εmin,εmax)←(0,1),L←0とする(ステップS71)。すなわち、更新部7は、εminを0に、εmaxを1に、Lを0に初期化する。
【0091】
また、更新部7はUout←U0とする。すなわち、更新部7は、U0をUoutとする(ステップS71)。
【0092】
更新部7は、(Usk,Msk)←GateDecompose(U’,(εmin+εmax)/2)とする(ステップS72)。
【0093】
GateDecomposeは、与えられた単一量子ビット回転ゲートを、与えられた許容エラーの精度のもとで、所定の数よりも少ない数の誤り耐性を持たせられない量子演算で構成される量子ゲートの系列に分解する関数である。
【0094】
例えば、Solovay-Kitaev法(例えば、参考文献4参照。)やSolovay-Kitaev法を改良した手法(例えば、参考文献5参照。)などをGateDecomposeとして用いることができる。
【0095】
〔参考文献4〕Christopher M. Dawson, Michael A. Nielsen, "The Solovay-Kitaev algorithm", arXiv:quant-ph/0505030 (2005)
〔参考文献5〕Neil J. Ross, Peter Selinger, "Optimal ancilla-free Clifford+T approximation of z-rotations", Quantum Information and Computation 16 (11-12):901-953, (2016)
【0096】
すなわち、更新部7は、与えられた単一量子ビット回転ゲートU’を、与えられた許容エラー(εmin+εmax)/2の精度のもとで、所定の数よりも少ない数の誤り耐性を持たせられない量子演算で構成される量子ゲートの系列USKに分解する。また、この分解により、USKの記述に必要な「誤り耐性を持たせられない量子演算」の数mSKが得られる。
【0097】
更新部7は、mSK>mであるか判定する(ステップS73)。
【0098】
mSK>mである場合には、更新部7は、εmin←(εmin+εmax)/2とする(ステップS74)。すなわち、この場合、更新部7は、(εmin+εmax)/2を計算し、その計算結果をεminとする。
【0099】
mSK>mでない場合には、更新部7は、εmax←(εmin+εmax)/2とし、Uout←USKとする(ステップS75)。すなわち、この場合、更新部7は、(εmin+εmax)/2を計算し、その計算結果をεmaxとし、USKをUoutとする。
【0100】
更新部7は、L=L’であるか判定する(ステップS76)。
【0101】
L=L’でない場合には、更新部7は、L←L+1とする(ステップS77)。すなわち、更新部7は、Lを1だけインクリメントする。その後、更新部7は、ステップS72に戻る。
【0102】
L=L’である場合には、更新部7は、各パラメータに対応するUoutについての情報を量子回路生成部2及び制御部8に出力する(ステップS78)。このUoutは、高々m個の誤り耐性を持たせられない量子演算で構成される、更新後のパラメータ(例えば、回転角θ0-λδ)に対応する近似量子回路である。
【0103】
このようにして、更新部7は、パラメータを更新する際に、所定の量子演算を、所定の数よりも少ない数の誤り耐性を持たせることができない量子演算で構成される量子ゲートの系列に分解する関数を用いて、二分探索法により、初期化されたk個のパラメータ又は更新されたk個のパラメータにより特徴付けられる各量子演算を近似する、誤り耐性を持たせることができない量子演算の数を抑えた近似量子回路を探索してもよい。
【0104】
なお、Uoutについての情報を受け取った量子回路生成部2は、更新後のk個のパラメータにより特徴付けられる試行量子回路内の各パラメータに対応する量子演算を、その各パラメータに対応するUoutで置き換えた試行量子回路に対して、損失量子回路及び更新パラメータ量子回路を生成する。
【0105】
その後の処理は、上記と同様である。すなわち、試行量子回路が、更新されたk個のパラメータにより特徴付けられる試行量子回路内の各パラメータに対応する量子演算を、その各パラメータに対応する更新部7により探索された量子回路で置き換えた試行量子回路であるとして、2回目以降の量子回路生成部2、符号化部3、量子計算部4、復号部5及び損失更新パラメータ計算部6の処理が行われる。
【0106】
この置き換えた試行量子回路及びこの生成された損失量子回路は、誤り耐性を持たせることができない量子演算の数がm以下となっているので、符号化部3、量子計算部4及び復号部5の処理に要する時間が短くなる。
【0107】
このように、誤り耐性を持たせることのできない量子演算の数を許容できる数m以下に抑えながら更新を行った場合には、制御部8は、所定の終了条件が満たされたときには、(i)これまで損失更新パラメータ計算部6で計算された損失の中で最も値が小さい損失と、(ii)その最も値が小さい損失に対応するk個のパラメータ及び各パラメータに対応するUoutとの少なくとも一方を出力して、処理を終了する。
【0108】
例えば、損失をある化学物質のエネルギーと定義した場合には、この量子変分アルゴリズムにより得られる最も値が小さい損失はそのある化学物質の最低エネルギーとなる。また、この量子変分アルゴリズムにより得られる最も値が小さい損失に対応するk個のパラメータにより特徴付けられる試行量子回路内の各パラメータに対応する量子演算を、その各パラメータに対応するUoutで置き換えた試行量子回路により、そのある化学物質の量子状態を近似することができる。
【0109】
以上、本発明の実施形態及び変形例について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
【0110】
実施の形態において説明した各種の処理は、記載の順にしたがって、時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0111】
例えば、量子演算装置の構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
【符号の説明】
【0112】
1 初期化部
2 量子回路生成部
3 符号化部
4 量子計算部
5 復号部
6 損失更新パラメータ計算部
7 更新部
8 制御部