(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】複数量子ビットオブザーバブルのパーティショニング方法、複数量子ビットオブザーバブルのパーティショニングプログラム、および情報処理装置
(51)【国際特許分類】
G06N 10/00 20220101AFI20240807BHJP
G06N 99/00 20190101ALI20240807BHJP
【FI】
G06N10/00
G06N99/00 180
(21)【出願番号】P 2023529238
(86)(22)【出願日】2021-06-21
(86)【国際出願番号】 JP2021023462
(87)【国際公開番号】W WO2022269712
(87)【国際公開日】2022-12-29
【審査請求日】2023-09-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】栗田 知周
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2020/0342343(US,A1)
【文献】YEN, Tzu-Ching et al.,Cartan sub-algebra approach to efficient measurements of quantum observables,[オンライン],2020年09月30日,[検索日 2021.08.25],インターネット:<URL: https://arxiv.org/pdf/2007.01234.pdf>
【文献】森田 幹雄 ほか,低回路深さ同時測定型VQEの計算コスト検証,情報処理学会 研究報告 量子ソフトウェア(QS),日本,情報処理学会,2021年03月,Vol. 2021-QS-2 No. 11,pp. 1-7,ISSN: 2435-6492
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
複数の量子ビットの状態を表す複数のオブザーバブルのうちの2つのオブザーバブルの対ごとに、期待値の同時測定が可能か否かを判定し、
前記複数のオブザーバブルの部分集合である第1のパーティションに前記複数のオブザーバブルそれぞれを含めるか否かを示す変数を含み、同時測定できないオブザーバブルの対が前記第1のパーティションに含まれるとハミルトニアンの値が大きくなり、前記第1のパーティションに含めるオブザーバブル数が多いほど前記ハミルトニアンの値が小さくなるイジングモデルを生成し、
前記イジングモデルの基底状態の探索により得られた前記複数のオブザーバブルそれぞれに対応する変数の値に基づいて、1以上のオブザーバブルを含む前記第1のパーティションを生成する、
複数量子ビットオブザーバブルのパーティショニング方法。
【請求項2】
前記コンピュータが、さらに、
前記イジングモデルの変数を、生成した前記第1のパーティションに含まれない残存のオブザーバブルに対応する変数に限定して、前記イジングモデルの基底状態を探索することで得られた前記残存のオブザーバブルそれぞれの変数の値に基づいて、1以上の前記残存のオブザーバブルを含む第2のパーティションを生成する、
請求項1記載の複数量子ビットオブザーバブルのパーティショニング方法。
【請求項3】
前記第2のパーティションの生成を、前記第1のパーティションまたは生成済みの前記第2のパーティションのいずれにも含まれないオブザーバブルがなくなるまで繰り返す、
請求項2記載の複数量子ビットオブザーバブルのパーティショニング方法。
【請求項4】
前記第1のパーティションの生成では、前記イジングモデルの基底状態の探索をアニーリング型コンピュータに指示し、前記アニーリング型コンピュータから前記イジングモデルの基底状態の探索結果として前記複数のオブザーバブルそれぞれの変数の値を取得する、
請求項1から3までのいずれかに記載の複数量子ビットオブザーバブルのパーティショニング方法。
【請求項5】
前記コンピュータが、さらに、
前記第1のパーティションから所定数の対象オブザーバブルを選択し、
選択した前記対象オブザーバブルの期待値を同時測定する量子回路を生成し、
ゲート型量子コンピュータに、生成した前記量子回路に基づく前記対象オブザーバブルの期待値の同時測定を指示する、
請求項1から4までのいずれかに記載の複数量子ビットオブザーバブルのパーティショニング方法。
【請求項6】
コンピュータに、
複数の量子ビットの状態を表す複数のオブザーバブルのうちの2つのオブザーバブルの対ごとに、期待値の同時測定が可能か否かを判定し、
前記複数のオブザーバブルの部分集合である第1のパーティションに前記複数のオブザーバブルそれぞれを含めるか否かを示す変数を含み、同時測定できないオブザーバブルの対が前記第1のパーティションに含まれるとハミルトニアンの値が大きくなり、前記第1のパーティションに含めるオブザーバブル数が多いほど前記ハミルトニアンの値が小さくなるイジングモデルを生成し、
前記イジングモデルの基底状態の探索により得られた前記複数のオブザーバブルそれぞれに対応する変数の値に基づいて、1以上のオブザーバブルを含む前記第1のパーティションを生成する、
処理を実行させる複数量子ビットオブザーバブルのパーティショニングプログラム。
【請求項7】
複数の量子ビットの状態を表す複数のオブザーバブルのうちの2つのオブザーバブルの対ごとに、期待値の同時測定が可能か否かを判定し、前記複数のオブザーバブルの部分集合である第1のパーティションに前記複数のオブザーバブルそれぞれを含めるか否かを示す変数を含み、同時測定できないオブザーバブルの対が前記第1のパーティションに含まれるとハミルトニアンの値が大きくなり、前記第1のパーティションに含めるオブザーバブル数が多いほど前記ハミルトニアンの値が小さくなるイジングモデルを生成し、前記イジングモデルの基底状態の探索により得られた前記複数のオブザーバブルそれぞれに対応する変数の値に基づいて、1以上のオブザーバブルを含む前記第1のパーティションを生成する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数量子ビットオブザーバブルのパーティショニング方法、複数量子ビットオブザーバブルのパーティショニングプログラム、および情報処理装置に関する。
【背景技術】
【0002】
量子コンピュータでは、量子ビットと呼ばれる電子情報が用いられる。量子ビットは、「0」と「1」の重ね合わせ状態をとることができる。また複数の量子ビットで量子もつれ状態を作ることもできる。量子コンピュータは、これらの重ね合わせ状態と量子もつれ状態を利用して、あらゆる可能性を同時並行的に計算することで、複雑な問題の解を短時間で求めることができる。
【0003】
量子コンピュータを用いれば、古典コンピュータに比べて非常に高速に解ける問題が存在する。なお量子コンピュータで問題を解くためのアルゴリズムを量子アルゴリズムと呼び、古典コンピュータで問題を解くためのアルゴリズムを古典アルゴリズムと呼ぶ。例えば古典アルゴリズムでは解を求めるのにNN回程度のステップ(指数時間)の計算となるのに対し、量子アルゴリズムではN2回程度のステップ(多項式時間)の計算ですむ問題が存在する(Nは問題の大きさを示す自然数)。量子コンピュータにより短時間で計算が可能となる問題として、例えばDeutsch-Jozsaのアルゴリズム、Shorのアルゴリズムなどがある。
【0004】
量子コンピュータにおいて量子ビットから読み出すことができるのは、ブロッホ球におけるz軸方向の値である。しかも量子ビットからは「0」または「1」の読み出ししか行えない。例えば、量子状態1/√2(|0>+|1>)を測定すると、「0」と「1」とが各50%の確率で現れる。これは、測定により量子ビットの重ね合わせ状態が破壊され、古典ビットになるためである。
【0005】
量子状態を完全に知るには、ブロッホ球のz軸だけでなく、x軸とy軸との値についても読み出すことが求められる。x軸またはy軸の値は、それらの値をz軸に変換する操作を測定前に行い、変換操作後の値を読み出すことで測定可能である。なお、量子ビットの測定を行うと量子ビットの重ね合わせ状態が破壊される。そのため、量子状態を完全に知るには、x軸、y軸、z軸それぞれの測定のための量子計算を繰り返し実行することとなる。
【0006】
1または複数の量子ビットの状態は複数のオブザーバブルを用いて表される。n量子ビットの状態を完全に知るには、4n-1個のオブザーバブルの期待値を測定すればよい(nは自然数)。オブザーバブルごとの期待値を求めることで、量子ビットの状態を完全に知ることができる。オブザーバブルごとの期待値を求める場合、基本的には、オブザーバブルにつき一つの量子回路が作成される。量子コンピュータでは、統計エラーを抑えるため、1オブザーバブルにつき104-105回の測定が行われる。
【0007】
量子コンピュータに関する技術としては、例えば量子コンピューティングを可能にする量子回路を設計するための、エンタングル測定を用いたパウリ文字列のグループ化に関する技術が提案されている。また、古典的なプロセッサで量子類似計算をエミュレートするためのQUANTON表現に関する技術も提案されている。
【0008】
さらに、複数のオブザーバブルの同時測定に関する技術も提案されている。この技術では、1つの量子回路で複数のオブザーバブルを測定することが可能である。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2020-144400号公報
【文献】特表2018-521382号公報
【非特許文献】
【0010】
【文献】Pranav Gokhale, Olivia Angiuli, Yongshan Ding, Kaiwen Gui, Teague Tomesh, Martin Suchara, Margaret Martonosi, Frederic T. Chong, "Minimizing State Preparations in Variational Quantum Eigensolver by Partitioning into Commuting Families" arXiv:1907.13623 [quant-ph], 31 Jul 2019
【発明の概要】
【発明が解決しようとする課題】
【0011】
複数のオブザーバブルの期待値の同時測定では、同時測定可能なオブザーバブルの集合(パーティション)が生成される。各オブザーバブルはいずれかのパーティションに含まれる。同一のパーティションに含まれる所定数のオブザーバブルごとに、量子コンピュータによる期待値の同時測定が行われる。この場合、パーティション数が少ないほど量子ビットの状態の測定が効率的となる。しかし、測定対象のオブザーバブル数が多くなると、より多くのオブザーバブルを含むパーティションを生成するための計算量が膨大となり、パーティション数の低減が困難となっている。
【0012】
1つの側面では、本件は、同時測定可能なオブザーバブルを集めたパーティションの数を低減することを目的とする。
【課題を解決するための手段】
【0013】
1つの案では、コンピュータが以下の処理を実行する複数量子ビットオブザーバブルのパーティショニング方法が提供される。
コンピュータは、複数の量子ビットの状態を表す複数のオブザーバブルのうちの2つのオブザーバブルの対ごとに、期待値の同時測定が可能か否かを判定する。次にコンピュータは、複数のオブザーバブルの部分集合である第1のパーティションに複数のオブザーバブルそれぞれを含めるか否かを示す変数を含み、同時測定できないオブザーバブルの対が第1のパーティションに含まれるとハミルトニアンの値が大きくなり、第1のパーティションに含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなるイジングモデルを生成する。そしてコンピュータは、イジングモデルの基底状態の探索により得られた複数のオブザーバブルそれぞれに対応する変数の値に基づいて、1以上のオブザーバブルを含む第1のパーティションを生成する。
【発明の効果】
【0014】
1態様によれば、同時測定可能なオブザーバブルを集めたパーティションの数を低減することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】第1の実施の形態に係る複数量子ビットオブザーバブルのパーティショニング方法の一例を示す図である。
【
図3】古典コンピュータのハードウェアの一例を示す図である。
【
図4】オブザーバブルの同時測定方法を説明する図である。
【
図8】古典コンピュータの機能の一例を示すブロック図である。
【
図9】交換関係判定部が行う処理の一例を示す図である。
【
図10】パーティション生成処理の一例を示す図である。
【
図11】パーティション生成の繰り返し処理の一例を示す図である。
【
図12】同時測定用の量子回路を用いたオブザーバブルの期待値測定の一例を示す図である。
【
図13】オブザーバブル測定手順の一例を示すフローチャートである。
【
図14】パーティショニング処理の手順の一例を示すフローチャート(1/2)である。
【
図15】パーティショニング処理の手順の一例を示すフローチャート(2/2)である。
【
図16】パーティショニングの方式ごとのパーティション数の比較結果を示す図である。
【
図17】パーティショニングの方式ごとの計算時間の比較結果を示す図である。
【発明を実施するための形態】
【0016】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、イジングモデルを利用して同時測定可能なオブザーバブルを集めたパーティションの数を低減する複数量子ビットオブザーバブルのパーティショニング方法である。
【0017】
図1は、第1の実施の形態に係る複数量子ビットオブザーバブルのパーティショニング方法の一例を示す図である。
図1には、複数量子ビットオブザーバブルのパーティショニング方法の処理を情報処理装置10により実施した場合の例を示している。情報処理装置10は、例えば複数量子ビットオブザーバブルのパーティショニングプログラムを実行することにより、複数量子ビットオブザーバブルのパーティショニング方法を実施することができる。
【0018】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0019】
情報処理装置10は、量子ビットの状態を表す複数のオブザーバブルのパーティショニングを行う。情報処理装置10はアニーリング型コンピュータ1に接続されており、パーティショニングの際にはアニーリング型コンピュータ1を利用してパーティションに含めるオブザーバブルを決定する。
【0020】
記憶部11は、オブザーバブル群2を記憶する。オブザーバブル群2には、測定対象とする複数のオブザーバブルが含まれる。
図1の例では、オブザーバブル群2内の円形がオブザーバブルを表している。測定対象とするオブザーバブルは、量子コンピュータを用いて求解する問題に応じて決定される。例えばn量子ビットの状態を完全に知りたい場合には、4
n-1個のオブザーバブルがオブザーバブル群2に含まれる。
【0021】
処理部12は、オブザーバブル群2を複数のパーティションに分割するパーティショニングを行う。処理部12は、パーティションを1つずつ生成する。
図1の例では、処理部12は、最初に第1のパーティション4を生成し、パーティション4に含まれないオブザーバブルに基づいて第2のパーティション5を生成する。具体的には、処理部12は、以下の処理を行う。
【0022】
処理部12は、オブザーバブル群2に含まれる複数のオブザーバブルのうちの2つのオブザーバブルの対ごとに同時測定が可能か否かを判定する。例えば処理部12は、オブザーバブル同士のテンソル積の順番の交換が可能であれば同時測定可能と判定する。
図1の例では、同時測定可能なオブザーバブルの対を線で接続している。
【0023】
また処理部12は、イジングモデル3を生成する。イジングモデル3は、複数のオブザーバブルの部分集合である第1のパーティション4に複数のオブザーバブルそれぞれを含めるか否かを示す変数を含む。またイジングモデル3は、テンソル積の順番を交換できないオブザーバブルの対が第1のパーティション4に含まれるとハミルトニアンの値が大きくなる。さらにイジングモデル3は、第1のパーティション4に含めるオブザーバブル数が多いほどハミルトニアンの値が小さくなる。
【0024】
処理部12は、イジングモデル3が基底状態の探索で得られた複数のオブザーバブルそれぞれの変数の値に基づいて、1以上のオブザーバブルを含む第1のパーティション4を生成する。ハミルトニアンが最小値となる状態が、イジングモデル3の基底状態である。例えば処理部12は、イジングモデル3が基底状態となるときに、第1のパーティション4に含めることを示している変数に対応するオブザーバブルを含む第1のパーティション4を生成する。
【0025】
イジングモデル3は、期待値の同時測定ができないオブザーバブルの対については第1のパーティション4に含まれない場合に基底状態となる。従って、生成された第1のパーティション4に含まれるオブザーバブルの対は、いずれも期待値の同時測定が可能である。またイジングモデル3のハミルトニアンは、第1のパーティション4に含まれるオブザーバブル数が多いほど値が小さくなる。そのためイジングモデル3が基底状態となったとき、第1のパーティション4に含めるとされている変数の数が最大となる。すなわち基底状態のイジングモデル3に基づいて第1のパーティション4を生成することで、より多くのオブザーバブルを第1のパーティション4に含めることができる。
【0026】
また処理部12は、すべてのオブザーバブルがいずれかのパーティションに含まれるまで、パーティション生成処理を何度も繰り返す。例えば処理部12は、第1のパーティション4を生成後、イジングモデル3の変数を、生成済みの第1のパーティション4に含まれない残存のオブザーバブルに対応する変数に限定する。そして処理部12は、残存のオブザーバブルに対応する変数を含むイジングモデル3の基底状態の探索により得られた残存のオブザーバブルそれぞれの変数の値に基づいて、1以上の残存のオブザーバブルを含む第2のパーティション5を生成する。処理部12は、すべてのオブザーバブルがいずれかのパーティションに含まれるまで、このような第2のパーティション生成処理を繰り返す。
【0027】
処理部12は、イジングモデル3の基底状態の探索をアニーリング型コンピュータ1に実行させてもよい。例えば処理部12は、イジングモデル3の基底状態の探索をアニーリング型コンピュータ1に指示し、アニーリング型コンピュータ1からイジングモデル3が基底状態となるときの複数のオブザーバブルそれぞれの変数の値を取得する。
【0028】
このようにイジングモデル3を用いたパーティショニングを行うことで、より多くのオブザーバブルを1つのパーティションに含めることができる。その結果、最終的なパーティション数が削減される。しかもイジングモデル3の基底状態の探索にアニーリング型コンピュータ1を利用することで、少ないパーティション数となるようなパーティショニングを短時間で実行することが可能である。
【0029】
生成されたパーティション4,5は、ゲート型量子コンピュータ(図示せず)による量子ビットの状態測定の効率化に利用することができる。例えば処理部12は、生成したパーティション4,5のうちの同一のパーティションから所定数の対象オブザーバブルを選択する。処理部12は、選択した対象オブザーバブルの期待値を同時測定する量子回路を生成する。そして処理部12は、ゲート型量子コンピュータに、生成した量子回路に基づく対象オブザーバブルの期待値の同時測定を指示する。
【0030】
イジングモデル3を用いてパーティショニングを行っていることで、パーティション数が少なく抑えられている。そのため、多くのオブザーバブルについて、他のオブザーバブルとの同時測定が可能となる。その結果、ゲート型量子コンピュータによるオブザーバブルの期待値の測定を効率的に行うことが可能となる。
【0031】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、量子ビットの完全な状態の測定を効率的に行うコンピュータシステムである。
【0032】
図2は、システム構成の一例を示す図である。古典コンピュータ100は、アニーリング型コンピュータ200とゲート型量子コンピュータ300とに接続されている。古典コンピュータ100は、例えばノイマン型コンピュータである。アニーリング型コンピュータ200は、イジングモデルの基底状態を計算するための非ノイマン型コンピュータである。アニーリング型コンピュータ200は、超伝導量子回路を用いたものと、量子現象を半導体回路で再現したものとのいずれであってもよい。ゲート型量子コンピュータ300は、量子ゲートを操作して汎用的な問題を解くことができる非ノイマン型のコンピュータである。
【0033】
古典コンピュータ100は、アニーリング型コンピュータ200とゲート型量子コンピュータ300とを制御して量子計算を行う。その際、古典コンピュータ100は、計算対象の問題の複数のオブザーバブルを複数のパーティションのいずれかに分類する。パーティションへの分類処理をパーティショニングと呼ぶ。例えば古典コンピュータ100は、同時測定可能なオブザーバブルの組の情報からパーティションを生成するためのイジングモデルを生成し、そのイジングモデルの基底状態をアニーリング型コンピュータ200に計算させる。そして古典コンピュータ100は、ゲート型量子コンピュータ300を制御して、同じパーティションに含まれる2以上のオブザーバブルの期待値を同時に測定する。
【0034】
図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)などの電子回路で実現してもよい。
【0035】
メモリ102は、古典コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0036】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0037】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0038】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0039】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0040】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0041】
機器接続インタフェース107は、古典コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0042】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、アニーリング型コンピュータ200またはゲート型量子コンピュータ300との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0043】
古典コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、
図3に示した古典コンピュータ100と同様のハードウェアにより実現することができる。
【0044】
古典コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。古典コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、古典コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また古典コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0045】
次にオブザーバブルの同時測定方法について具体的に説明する。量子ビットの重ね合わせや量子もつれ(エンタングル)、さらに確率的混合を考慮に入れると、量子状態は、密度演算子ρを用いて表すことができる。ρは2n×2nの行列として表すことができる(nは量子ビット数)。密度演算子ρは、複数のオブザーバブルを用いて表すことができる(3量子ビットの場合、64個)。各オブザーバブルは、量子状態を示すρを構成する線形独立基底となる。すなわち、3量子ビットの場合のρは、以下の式で表される。
ρ=λ0I0I1I2+λ1X0I1I2+λ2Y0I1I2+λ3Z0I1I2+λ4 I0X1I2+λ5X0X1I2+・・・+λ62y0Z1Z2+λ63Z0Z1Z2
λ0,・・・,λ63は実数の係数である。添字付きのX,Y,Zはパウリ演算子であり、2×2のパウリ行列(σx,σy,σz)である。添字の数値は、測定対象の量子ビットの番号である。添字付きのIは恒等演算子であり、2×2の単位行列である。恒等演算子もパウリ演算子の一種である。
【0046】
オブザーバブルは、パウリ演算子の配列で表される。このパウリ演算子の配列はパウリ文字列と呼ばれる。パウリ文字列は、そのパウリ文字列で表されているパウリ演算子のテンソル積を示している。k(自然数)番目の項のオブザーバブルの期待値がλkである。例えばX0X1I2の期待値はλ5である。
【0047】
λ0は常に1になるので期待値を測定せずに済む。その結果、前述のように、n量子ビットの状態を完全に知るために測定するオブザーバブルの数は、4n-1個となる。例えばn=1の場合、3個:{X,Y,Z}のオブザーバブルの測定により、量子ビットの状態を完全に知ることができる。n=2の場合、期待値を測定するオブザーバブルは15個:{I0X1,I0Y1,I0Z1,X0I1,X0X1,X0Y1,X0Z1,Y0I1,Y0X1,Y0Y1,Y0Z1,・・・}となる。
【0048】
多数のオブザーバブルの期待値の測定において、測定前のゲート操作により、複数のオブザーバブルを同時に測定可能となる場合がある。
図4は、オブザーバブルの同時測定方法を説明する図である。
図4の例では、3量子ビットの量子状態|ψ>を求める場合を想定している。解くべき問題に対応する量子回路30の3つのオブザーバブル「I
0Y
1X
2、Z
0Z
1Z
2、X
0I
1X
2」を測定するものとする。量子回路30の横線が、量子ビットに対応する。
【0049】
個別測定を行う場合、3つのオブザーバブルそれぞれに対応する量子回路31~33が生成される。量子回路31~33の横線上に示された矩形の記号が、各量子ビットへ作用させる量子ゲートである。「S」の矩形はSゲートを示している。「X」の矩形は、Xゲートを示している。「H」の矩形は、Hゲート(アダマールゲート)を示している。各量子ビットの測定記号が示されている位置において、該当量子ビットの状態が測定される。
【0050】
例えば量子回路31では、オブザーバブル「I0Y1X2」の期待値を計算するために、3つの量子ビットを用いて「I0」、「Y1」、「X2」の期待値を測定する。0番目の量子ビットに対応する「I0」は恒等演算子であり、期待値の測定は不要である。1番目の量子ビットに対しては、Sゲート、Hゲート、Xゲートの操作を行う。これにより1番目の量子ビットからY1の期待値を測定することができる。2番目の量子ビットに対しては、Hゲートの操作を行う。これにより1番目の量子ビットからX2の期待値を測定することができる。これらの測定結果に基づいて、オブザーバブル「I0Y1X2」の期待値を得ることができる。
【0051】
量子回路32では、オブザーバブル「X0I1X2」の期待値を計算するために、3つの量子ビットを用いて「X0」、「I1」、「X2」の期待値を測定する。1番目の量子ビットに対応する「I1」は恒等演算子であり、測定は不要である。0番目の量子ビットに対しては、Hゲートの操作を行う。これにより0番目の量子ビットからX0の期待値を測定することができる。2番目の量子ビットに対しては、Hゲートの操作を行う。これにより2番目の量子ビットからX2の期待値を測定することができる。これらの測定結果に基づいて、オブザーバブル「X0I1X2」の期待値を得ることができる。
【0052】
量子回路33では、オブザーバブル「Z0Z1Z2」の期待値を計算するために、3つの量子ビットを用いて「Z0」、「Z1」、「Z2」の期待値を測定する。量子回路33では、元の量子回路30の出力側での量子ゲートによる操作は行われず、0番目~2番目の各量子ビットを測定することで、「Z0」、「Z1」、「Z2」の期待値を測定することができる。これらの測定結果に基づいてオブザーバブル「Z0Z1Z2」の期待値を得ることができる。
【0053】
量子回路31~33では、3つの量子ビットの測定結果に基づいて、1つのオブザーバブルの期待値を得る。そのため、3つのオブザーバブルの期待値を得るには、3つの量子回路31~33により、各量子ビットの状態を測定することとなる。
【0054】
同時測定用の量子回路34では、量子回路30の出力側で、まず0番目の量子ビットにHゲートが設けられ、1番目の量子ビットを制御ビット、2番目の量子ビットを標的ビットとするCNOTゲートが設けられている。次に0番目の量子ビットと1番目の量子ビットとのSWAPゲートが設けられている。次に0番目の量子ビットにSゲートと、1番目の量子ビットを制御ビット、2番目の量子ビットを標的ビットとするCZゲートとが設けられている。最後に、各量子ビットにHゲートが設けられている。
【0055】
量子回路34の0番目の量子ビットを測定すると、オブザーバブル「I0Y1X2」の期待値が得られる。量子回路34の1番目の量子ビットを測定すると、オブザーバブル「Z0Z1Z2」の期待値が得られる。量子回路34の2番目の量子ビットを測定すると、オブザーバブル「X0I1X2」の期待値が得られる。
【0056】
量子回路34では、1つの量子ビットから1つのオブザーバブルの期待値を測定することができ、3つのオブザーバブルの期待値の同時測定が可能である。このように、量子回路31~33を用いて個別測定する3つのオブザーバブルは、1つの量子回路34で同時測定が可能となる。
【0057】
同時測定可能なオブザーバブルには条件がある。すなわちオブザーバブルA,Bにおいて、「AB=BA」(可換)である場合に、2つのオブザーバブルA,Bは同時測定可能である。例えば2つのオブザーバブルが可換かどうかを判定する場合、同じ量子ビットに対応する演算子同士で可換か反可換か(交換関係)の判定が行われる。
【0058】
図5は、交換関係の判定例を示す図である。可換・反可換対応表35には、演算子の組み合わせごとに可換か反可換かが示されている。行と列との交差する位置に、行に示される演算子と列に示される演算子とが可換か反可換かを示す記号が示されている。「+」の記号は可換を示し、「-」の記号は反可換を示す。可換の場合、積の順番を入れ替えても値が変わらないが、反可換の場合、積の順番を入れ替えると符号が逆になる。
【0059】
例えばI0Y1X2とZ0Z1Z2の場合、I0とZ0、Y1とZ1、X2とZ2の各組について、可換か反可換かが判断される。この場合、「I0=Z0」(可換)、「Y1=-Z1」(反可換)、「X2=-Z2」(反可換)である。反可換の組の数が偶数(0を含む)であれば、全体として可換「(I0Y1X2)=(Z0Z1Z2)」となる。
【0060】
オブザーバブルのパーティショニングでは、同じパーティションに属するオブザーバブル間のすべての組み合わせにおいて可換となるようにパーティションが生成される。
図6は、パーティショニングの一例を示す図である。例えば14個のオブザーバブル41~54について、他のオブザーバブルとの間の交換関係が判断される。
図6の例では、可換の交換関係を有するオブザーバブルの組が線で接続されている。そしてオブザーバブル間の交換関係に基づいてパーティション61,62が生成される。パーティション61に属するオブザーバブルのすべての組み合わせにおいて交換関係は可換となる。同様にパーティション62に属するオブザーバブルのすべての組み合わせにおいて交換関係は可換となる。
【0061】
図6の例では2つのパーティション61,62が生成されているが、生成されるパーティション数は、パーティショニングのアルゴリズムによって変わってくる。
図7は、パーティショニングの例を示す図である。オブザーバブル群71の各パーティションを複数のパーティションのいずれかに分類するとき、パーティションの分け方は複数通り存在する。例えば3個のパーティション72a~72cに分けることができる。また6個のパーティション73a~73fに分けることも可能である。
【0062】
パーティション数が少ないほどオブザーバブルの測定を効率的に行うことができる。すなわちパーティション数が少ないということは、1つのパーティションに属するオブザーバブルの数が多くなる。1つのパーティションに属するオブザーバブルの数が多いほど、同時測定をするオブザーバブルの組み合わせを作りやすくなり、すべてのオブザーバブルを測定するための処理が効率的となる。
【0063】
そこで第2の実施の形態では、古典コンピュータ100において、より少ないパーティション数となるように、オブザーバブル群のパーティショニングを行う。この際、古典コンピュータ100は、アニーリング型コンピュータ200を利用することにより、短時間でのパーティショニングを実現する。
【0064】
図8は、古典コンピュータの機能の一例を示すブロック図である。古典コンピュータ100は、交換関係判定部110、パーティショニング部120、量子回路生成部130、および期待値取得部140を有する。
【0065】
交換関係判定部110は、測定するオブザーバブルのすべての組み合わせについて交換関係を判定する。
パーティショニング部120は、オブザーバブル間の交換関係に基づいて、オブザーバブル群のパーティショニングを行う。パーティショニング部120は、例えばアニーリング型コンピュータ200を利用してパーティショニングを実施する。アニーリング型コンピュータ200を利用する場合、パーティショニング部120は、パーティションに含まれるオブザーバブル数が多いほどエネルギーが低くなるようなイジングモデルを作成する。そしてパーティショニング部120は、作成したイジングモデルの基底状態の探索をアニーリング型コンピュータ200に指示する。するとアニーリング型コンピュータ200からは、パーティションに属するオブザーバブルの情報が応答される。
【0066】
量子回路生成部130は、オブザーバブルを測定するための量子回路を生成する。例えば量子回路生成部130は、同時測定を行う所定数のオブザーバブルを同一のパーティションから選択し、選択したオブザーバブルの組み合わせに対応する量子回路を生成する。
【0067】
期待値取得部140は、ゲート型量子コンピュータ300を制御して、生成された量子回路を用いてオブザーバブルを測定する。
なお、
図8に示した古典コンピュータ100内の各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0068】
次に
図9~
図12を参照しオブザーバブルの期待値の測定手順について説明する。
図9は、交換関係判定部が行う処理の一例を示す図である。交換関係判定部110は、測定するオブザーバブル群40の要素となるオブザーバブルを列挙する。オブザーバブルは、パウリ文字列(パウリ演算子のテンソル積)で表される。交換関係判定部110は、オブザーバブル群40から2つのオブザーバブルを選択するすべての対について、交換関係を判定する。交換関係判定部110は、可換と判定したオブザーバブルの対を関連付ける情報を記憶する。
図9の例では、可換と判定されたオブザーバブルの対が線で接続されている。線で接続されていないオブザーバブル間の交換関係は反可換である。
【0069】
交換関係判定部110による交換関係の判定が終了すると、パーティショニング部120によるパーティショニングが行われる。パーティショニング部120は、例えば可能な限り多くのオブザーバブルを含むパーティションの生成処理を繰り返す。
【0070】
図10は、パーティション生成処理の一例を示す図である。パーティショニング部120は、オブザーバブル群40における14個のオブザーバブルそれぞれに変数{χ
i}={χ
1,・・・,χ
14}を割り当てる。{χ
i}はバイナリ変数である。「χ
i=1」はパーティションの要素になることを示す。「χ
i=0」はパーティションの要素にならないことを示す。
【0071】
パーティショニング部120は、{χi}を用いてイジングモデル81を生成する。イジングモデル81は、以下の式で表される。
【0072】
【0073】
式(1)のf({χi})はハミルトニアンに相当する。右辺の第1項は、χi=1となるiの数が多いほど値が小さくなる。右辺の第2項における{cij}は、交換関係を表す非負の定数である。i番目のオブザーバブルとj番目のオブザーバブルが交換関係にある場合、cij=0である。i番目のオブザーバブルとj番目のオブザーバブルとが反交換関係にある場合、cij=m(mは正の実数)である。
【0074】
mの値が小さすぎるとパーティションに反交換関係のオブザーバブルの対が含まれる可能性が上がる。mの下限は対象のオブザーバブル数によって変わる。例えばオブザーバブル数が10程度の場合は、mの下限は「0.25」程度となる。オブザーバブル数が「5000」程度であれば、mは「0.05」程度まで下げることができる。mの値を大きくすれば解探索において解の収束が早くなるが、mを大きくしすぎるとイジングモデル81の解探索において局所解から抜け出せなくなるおそれがある。そのため、計算精度を優先する場合、mの値は下限値に近い値にするのが適切である。
【0075】
これにより右辺の第2項は、パーティションの要素に含まれる反交換関係のオブザーバブルの対が多いほど高い値となる。イジングモデル81の式(1)においてf({χi})が最小値を取るときには、右辺第2項がゼロであることが求められる。
【0076】
パーティショニング部120は、f({χi})が最小になる{χi}を、アニーリング型コンピュータ200に計算させる。式(1)は、f({χi})を最小にする{χi}の値の組み合わせを求める組み合わせ最適化問題であり、アニーリング型コンピュータ200を用いることで高速に計算することができる。
【0077】
なおパーティショニング部120は、イジングモデル81の解として得られたχi=1の組み合わせに反交換関係が含まれていた場合にはmの値を増加させて、アニーリング型コンピュータ200に再計算をさせてもよい。
【0078】
パーティショニング部120は、オブザーバブル群A0からパーティション1つを作成したら、作成したパーティションを構成する部分群をB0とする。パーティショニング部120は、A0からB0の要素を取り除いたオブザーバブル群A1=A0\B0(\は差集合を示す)から、別のパーティションを1つ作成し、生成したパーティションを構成する部分群をB1とする。パーティショニング部120は、A1からB1の要素を取り除いたオブザーバブル群A2=A1\B1から、別のパーティションを1つ作成し、パーティションを構成する部分群をB2とする。パーティショニング部120は、このようにいずれのパーティションにも含まれないオブザーバブルを要素とする部分群に対して、繰り返しパーティション作成処理を実行する。パーティショニング部120は、AnからBnの要素を取り除いたオブザーバブル群An+1=An\Bnがゼロ集合になると、パーティショニングを終了する。
【0079】
図11は、パーティション生成の繰り返し処理の一例を示す図である。最初に、オブザーバブル群40のすべてのオブザーバブルを要素として、イジングモデル81に基づいて、要素数が最大となるパーティション61をアニーリング型コンピュータ200に生成させる。アニーリング型コンピュータ200からは、例えばイジングモデル81のf({x
i})を最小化する{χ
1,・・・,χ
14}が応答される。応答された{χ
1,・・・,χ
14}において値が1の要素に対応するオブザーバブルが、パーティション61に含まれるオブザーバブルである。
【0080】
パーティショニング部120は、パーティション61に含まれないオブザーバブルを要素とする部分群に基づくパーティションの生成をアニーリング型コンピュータ200に指示する。アニーリング型コンピュータ200は、パーティショニング部120からの指示に従って、要素数が最大となるパーティション62を生成する。
【0081】
図11の例では、2つのパーティション61,62のいずれかにすべてのオブザーバブルが含まれているため、パーティション62を生成した後にパーティショニングは終了する。
【0082】
パーティショニングが終了すると、量子回路生成部130が、量子ビットの完全な状態を測定するための量子回路を生成する。そして期待値取得部140が、ゲート型量子コンピュータ300を制御して、生成された量子回路に基づくオブザーバブルの期待値を取得する。
【0083】
図12は、同時測定用の量子回路を用いたオブザーバブルの期待値測定の一例を示す図である。量子回路生成部130は、複数のパーティション82a,82b,・・・の1つのパーティションから同時測定をするオブザーバブルに対応する要素を抽出する。
図12の例では、ゲート型量子コンピュータ300は、4量子ビットで同時測定を行うことができる。この場合、量子回路生成部130は、各パーティションから4つずつの要素の組を抽出する。そして量子回路生成部130は、抽出した要素の組み合わせごとの量子回路を生成する。例えば、「YYXX,YXXY,XYYX,XXYY」を抽出した場合、量子回路83が生成される。
【0084】
生成される量子回路83は、求解対象の問題に応じた操作を行うユニタリゲート83aの出力側に、複数のオブザーバブルの同時測定のための操作を行う測定用量子回路83bを追加した構成となっている。測定用量子回路83bは、例えば測定対象のオブザーバブルの組み合わせに対応付けて量子回路生成部130に予め登録されている。すなわち量子回路生成部130は、オブザーバブルの組み合わせパターンに対応付けて、組み合わせパターンに示されるオブザーバブルの期待値を同時測定するための量子回路を記憶している。そして量子回路生成部130は、パーティションから抽出した要素で示されるオブザーバブルの組み合わせに対応する量子回路を、予め登録された量子回路群の中から抽出する。量子回路生成部130は、求解対象の問題に対応するユニタリゲート83aの出力側に、オブザーバブルの組み合わせに対応する測定用量子回路83bを接続して、ゲート型量子コンピュータ300に入力する量子回路83を生成する。
【0085】
期待値取得部140は、オブザーバブルの組み合わせごとに生成された量子回路をゲート型量子コンピュータ300に送信する。ゲート型量子コンピュータ300は、受信した量子回路に従ってオブザーバブルの期待値を測定する。例えばゲート型量子コンピュータ300は、受信した量子回路を用いた各量子ビットの状態の測定を複数回繰り返す。そしてゲート型量子コンピュータ300は、各量子ビットの状態の複数回分の測定結果に基づいて、対応するオブザーバブルの期待値を算出する。
【0086】
ゲート型量子コンピュータ300は、入力された量子回路ごとの測定結果84a,84b,・・・を古典コンピュータ100に送信する。測定結果84a,84b,・・・には、対応する量子回路の各量子ビットの状態の期待値(該当量子ビットに対応するオブザーバブルの期待値)が示されている。期待値取得部140は、測定結果84a,84b,・・・に示される量子ビットの期待値を、計算に用いた量子回路の該当量子ビットに対応するオブザーバブルの期待値とする。すべてのオブザーバブルの期待値が得られることで、求解対象の問題に対応するユニタリゲート83aの出力の完全な状態(X軸、Y軸、Z軸の状態)を示す密度演算子ρが得られる。そして期待値取得部140は、密度演算子ρに基づいて得られる求解対象の問題の解を、計算結果として出力する。
【0087】
次にオブザーバブル測定の手順について、
図13~
図15を参照して詳細に説明する。
図13は、オブザーバブル測定手順の一例を示すフローチャートである。以下、
図13に示す処理をステップ番号に沿って説明する。
【0088】
[ステップS101]交換関係判定部110は、求解対象の問題に応じて、オブザーバブル群の要素となるオブザーバブルを列挙する。
[ステップS102]交換関係判定部110は、オブザーバブル群に要素として含まれるオブザーバブル間の交換関係を判定する。例えば交換関係判定部110は、オブザーバブル群の要素として含まれるオブザーバブルを2つ選択するすべての組み合わせ(オブザーバブルの対)を生成する。そして交換関係判定部110は、オブザーバブルの対ごとに、各オブザーバブルに含まれるパウリ演算子間の可換・反可換の関係に基づいて、オブザーバブルの対が可換か反可換かを判定する。
【0089】
[ステップS103]交換関係判定部110は、パーティションに含まれるオブザーバブルの数が多いほどハミルトニアンの値が小さくなるイジングモデルを作成する。
[ステップS104]パーティショニング部120は、オブザーバブル群のパーティショニングを行う。パーティショニングにより、1以上のパーティションが生成される。パーティショニング処理の詳細は後述する(
図14参照)。
【0090】
[ステップS105]量子回路生成部130は、同一のパーティションから、期待値を未計算の所定数のオブザーバブルを選択する。
[ステップS106]量子回路生成部130は、選択した複数のオブザーバブルを同時測定するための量子回路を生成する。
【0091】
[ステップS107]期待値取得部140は、量子回路をゲート型量子コンピュータ300に送信し、量子回路に従った計算を指示する。ゲート型量子コンピュータ300は、量子回路に従った計算を所定回数繰り返し、選択したオブザーバブルそれぞれに対応する量子ビットの値の期待値を計算する。ゲート型量子コンピュータ300は、得られた期待値を期待値取得部140に送信する。
【0092】
[ステップS108]期待値取得部140は、ゲート型量子コンピュータ300からオブザーバブルの期待値を取得する。
[ステップS109]量子回路生成部130は、未選択のオブザーバブルがあるか否かを判断する。量子回路生成部130は、未選択のオブザーバブルがあれば処理をステップS105に進める。また量子回路生成部130は、すべてのオブザーバブルが選択済みとなった場合、処理をステップS109に進める。
【0093】
[ステップS110]期待値取得部140は、測定対象のオブザーバブルの期待値に基づいて、求解対象の問題の解を求め、求めた解を出力する。
このようにして、パーティショニングを行うことで同時測定可能なオブザーバブルを集めたパーティションが生成され、同一のパーティションに含まれるオブザーバブルの期待値が同時測定される。
【0094】
次に、パーティショニング処理について詳細に説明する。
図14は、パーティショニング処理の手順の一例を示すフローチャート(1/2)である。以下、
図14に示す処理をステップ番号に沿って説明する。
【0095】
[ステップS201]パーティショニング部120は、オブザーバブルの数をN(Nは自然数)とし、各オブザーバブルを{P1,P2,・・・,PN}とする。各オブザーバブルは、パウリ文字列で表される。
【0096】
[ステップS202]パーティショニング部120は、すべての要素の値が「0」のN×Nの正方行列Cを生成する。
[ステップS203]パーティショニング部120は、ループ変数n1を1から1ずつカウントアップし、NになるまでステップS204~S207の処理を繰り返す。
【0097】
[ステップS204]パーティショニング部120は、ループ変数n2をn1から1ずつカウントアップし、NになるまでステップS205~S206の処理を繰り返す。
[ステップS205]パーティショニング部120は、n1番目のオブザーバブルPn1とn2番目のオブザーバブルPn2との対が可換(Pn1Pn2=Pn2Pn1)か反可換(Pn1Pn2=-Pn2Pn1)かを判断する。パーティショニング部120は、可換であれば処理をステップS207に進める。またパーティショニング部120は、反可換であれば処理をステップS206に進める。
【0098】
[ステップS206]パーティショニング部120は、正方行列Cのn1行n2列の要素Cn1,n2の値を「1」に変更する(Cn1,n2=1)。このように反可換のオブザーバブルの対に対応する要素の値は「1」に変更され、可換のオブザーバブルの対に対応する要素の値は「0」が維持される。
【0099】
[ステップS207]パーティショニング部120は、n1からNまでのすべてのn2についてステップS205~S206の処理が終了した場合、処理をステップS208に進める。
【0100】
[ステップS208]パーティショニング部120は、1からNまでのすべてのn1についてステップS204~S207の処理が終了した場合、処理をステップS211(
図15参照)に進める。
【0101】
図15は、パーティショニング処理の手順の一例を示すフローチャート(2/2)である。以下、
図15に示す処理をステップ番号に沿って説明する。
[ステップS211]パーティショニング部120は、バイナリ変数群χ
(1)={χ
1,χ
2,・・・,χ
N}を定義する。
【0102】
[ステップS212]パーティショニング部120は、ループ変数nを初期値「1」に設定する(n=1)。
[ステップS213]パーティショニング部120は、イジングモデルを生成する。イジングモデルは以下の式で表される。
【0103】
【0104】
数(2)におけるmは正の実数である。
[ステップS214]パーティショニング部120は、アニーリング型コンピュータ200にイジングモデルを送信し、イジングモデルの基底状態の探索を指示する。アニーリング型コンピュータ200は、指示に従って、イジングモデルにおけるf(χ(n))が最小となるバイナリ変数群χ(n)を生成する。
【0105】
[ステップS215]パーティショニング部120は、アニーリング型コンピュータ200から、f(χ(n))が最小となるバイナリ変数群χ(n)を取得する。
[ステップS216]パーティショニング部120は、パーティションに含まれるオブザーバブルの集合P(n)を以下のように定義する。
【0106】
【0107】
集合P(n)には、f(χ(n))が最小となるバイナリ変数群χ(n)のうちの値が「1」の変数に対応するオブザーバブルが含まれる。
[ステップS217]パーティショニング部120は、χ(n+1)を以下の式(4)に示すように定義する。
【0108】
【0109】
χ(n+1)には、f(χ(n))が最小となるバイナリ変数群χ(n)のうちの値が「0」の変数が含まれる。
[ステップS218]パーティショニング部120は、χ(n+1)が空集合か否かを判断する。パーティショニング部120は、χ(n+1)が空集合であればパーティショニング処理を終了する。またパーティショニング部120は、χ(n+1)が空集合でなければ処理をステップS217に進める。
【0110】
[ステップS219]パーティショニング部120は、nの値をカウントアップし(n=n+1)、処理をステップS213に進める。
このようにして、いずれのパーティションにも含まれていないオブザーバブルに基づいて、可能な限り多くのオブザーバブルを含むパーティションが繰り返し生成される。その結果、生成されるパーティション数の削減が可能となる。しかもアニーリング型コンピュータ200を利用して高速にパーティションを作成することができる。
【0111】
図16は、パーティショニングの方式ごとのパーティション数の比較結果を示す図である。
図16のグラフ91は、パーティショニングの方式ごとのオブザーバブル数とパーティション数との関係を表している。グラフ91は、横軸がオブザーバブル数であり、縦軸がパーティション数である。
【0112】
「BronK QWC」、「BoppanaH QWC」、「BoppanaH GC」、および「OpenF QWC」は、イジングモデルを用いずにパーティショニングを行う計算方式である。「BronK」と「BoppanaH」とはそれぞれ、Bron-Kerboschアルゴリズム、Boppana-Halldorssonアルゴリズムの略称である。「OpenF」は、PYTHON(登録商標)のパッケージであるOpen Fermionを用いた方式の略称である。QWC(Qubit-Wise Commutation)は、オブザーバブルが可換であるために、要素の組の比較(例えば
図5のI
0Z
0、Y
1Z
1、X
2Z
2)においてすべてが可換であることを条件とするものである。GC(General Commutation)は、
図5に示すように反可換の要素の組が偶数であれば、オブザーバブルは可換となるものである。なお「Native」は、1つのオブザーバブルを1つのパーティションとした場合(パーティション数が最大となる場合)のパーティション数を表す線である。
【0113】
「イジングモデル利用 GC(Full-tomography)」と「イジングモデル利用 GC(VQE-observable)」とは、第2の実施の形態に示すパーティショニング部120によるパーティショニング方式である。「イジングモデル利用 GC」における「Full-tomography」は、量子状態を完全に知るためのすべてのオブザーバブルの測定を行った場合の例である。「VQE-observable」は、変分量子固有値ソルバー(VQE:Variational Quantum Eigensolver)の計算に利用するオブザーバブルを対象としてパーティショニングを行った場合の例である。
【0114】
図16に示されるように、イジングモデルを利用しない方法では「BoppanaH GC」が最もパーティション数を少なくすることができる。それに対して、イジングモデルを利用した場合、同じオブザーバブル数で比較すると「BoppanaH GC」の半分程度のパーティション数にすることができる。
【0115】
図17は、パーティショニングの方式ごとの計算時間の比較結果を示す図である。
図17のグラフ92は、パーティショニングの方式ごとのオブザーバブル数と計算時間との関係を表している。グラフ92は、横軸がオブザーバブル数であり、縦軸がパーティショニングに要した計算時間である。
【0116】
図17を参照すると、「BoppanaH GC」では、オブザーバブル数が5000程度の場合、パーティショニングに5000秒程度の時間を要している。すなわち「BoppanaH GC」では、200程度のパーティションに分けるのに5000秒の時間を要する。それに対して、イジングモデルを利用したパーティショニングでは、アニーリング型コンピュータ200を用いてイジングモデルの基底状態を探索することで、計算時間が大幅(1/10以下)に短縮されている。
【0117】
〔その他の実施の形態〕
第2の実施の形態では、イジングモデルの基底状態の探索にアニーリング型コンピュータ200を利用しているが、古典コンピュータ100がイジングモデルの基底状態の探索を行うことも可能である。例えば古典コンピュータ100は、ソフトウェアによるシミュレーテッドアニーリングを実行することでイジングモデルの基底状態を探索可能である。ソフトウェアによるシミュレーテッドアニーリングでイジングモデルの基底状態を探索するとアニーリング型コンピュータ200を利用した場合よりも処理時間はかかるが、パーティション数を低減することは可能である。
【0118】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0119】
1 アニーリング型コンピュータ
2 オブザーバブル群
3 イジングモデル
4 第1のパーティション
5 第2のパーティション
10 情報処理装置
11 記憶部
12 処理部