(57)【要約】      （修正有）【課題】コンピュータにより実行される、Ｖａｒｉａｔｉｏｎａｌ  Ｑｕａｎｔｕｍ  Ｅｉｇｅｎｓｏｌｖｅｒを効率化するコンピュータにより実装される方法及び当該方法を実装する装置及びコンピュータプログラム製品を提供する。【解決手段】コンピュータにより実装される方法において、量子ハミルトニアンに含まれる複数のパウリ文字列を取得する段階と、複数のパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に少なくとも部分的に基づいて、複数のパウリ文字列の少なくとも一部をグループ化する段階と、グループ化する段階から得られる結果に基づいて量子回路を設計する段階と、を備える。【選択図】図５
2020144400.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実装される方法であって、
量子ハミルトニアンに含まれる複数のパウリ文字列を取得する段階と、
複数のパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に少なくとも部分的に基づいて、前記複数のパウリ文字列の少なくとも一部をグループ化する段階と、
前記グループ化する段階から得られた結果に基づいて量子回路を設計する段階と、
を備える方法。
【請求項２】
前記複数のパウリ文字列はＫ文字のパウリ文字列を含み、
前記方法は、
ｋ文字（ｋはＫ以下の自然数）のパウリ文字列を要素とし、要素数が２ｋのセットを複数生成する段階と、
生成した複数の前記セットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する段階と、
を更に備え、
前記グループ化する段階は、前記特定する段階において特定されたセットに従って行う、
請求項１に記載の方法。
【請求項３】
前記セットを複数生成する段階は、
ｋ文字のパウリ文字列を要素とし、要素数が２ｋのセットを全て生成する段階である、
請求項２に記載の方法。
【請求項４】
前記グループ化する段階は、
前記複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する段階と、
前記複数のパウリ文字列のうち少なくとも一部のノードに対応するパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、前記パウリグラフにおける前記少なくとも一部のノードを統合して、統合パウリグラフを生成する段階と、
を有する請求項１に記載の方法。
【請求項５】
前記パウリグラフを生成する段階は、
前記複数のパウリ文字列に含まれる第１のパウリ文字列と第２のパウリ文字列が、少なくとも一つの演算子において、テンソル積基底で一緒に測定可能な観測可能量でない場合に、前記第１のパウリ文字列と前記第２のパウリ文字列とをエッジで接続することにより行う、
請求項４に記載の方法。
【請求項６】
前記グループ化する段階は、
前記統合パウリグラフに、カラーリングアルゴリズムを適用して、前記統合パウリグラフに含まれるノードをグループ分けする段階を更に有する、
請求項４に記載の方法。
【請求項７】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量である場合に、前記一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項４に記載の方法。
【請求項８】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であり、かつ
前記少なくとも一部のパウリ文字列が、残りの演算子において、テンソル積基底で一緒に測定可能な観測可能量である場合に、
前記少なくとも一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項４に記載の方法。
【請求項９】
前記量子回路を設計する段階は、前記グループ化により生成された同一グループにおけるパウリ文字列の計算が、量子回路において共有されるように行われる、
請求項１に記載の方法。
【請求項１０】
プロセッサ又はプログラム可能回路と、
命令を集合的に格納する１又は複数のコンピュータ可読媒体と、
を備える装置であって、
前記命令は、前記プロセッサ又は前記プログラム可能回路に実行されると、前記プロセッサ又は前記プログラム可能回路に、
量子ハミルトニアンに含まれる複数のパウリ文字列を取得する段階と、
複数のパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、前記複数のパウリ文字列の少なくとも一部をグループ化する段階と、
前記グループ化する段階から得られた結果に基づいて量子回路を設計ｄｓする段階と、
を含む動作を実行させる装置。
【請求項１１】
前記複数のパウリ文字列はＫ文字のパウリ文字列を含み、
前記命令は、前記プロセッサ又は前記プログラム可能回路に、
ｋ文字（ｋはＫ以下の自然数）のパウリ文字列を要素とし、要素数が２ｋのセットを複数生成する段階と、
生成した複数の前記セットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する段階と、
を含む動作を更に実行させ、
前記グループ化する段階は、前記特定する段階において特定されたセットにより行う、
請求項１０に記載の装置。
【請求項１２】
前記セットを複数生成する段階は、
ｋ文字のパウリ文字列を要素とし、要素数が２ｋのセットを全て生成する段階である、
請求項１１に記載の装置。
【請求項１３】
前記グループ化する段階は、
前記複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する段階と、
前記複数のパウリ文字列のうち少なくとも一部のノードに対応するパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、前記パウリグラフにおける前記少なくとも一部のノードを統合して、統合パウリグラフを生成する段階と、
を有する請求項１０に記載の装置。
【請求項１４】
前記パウリグラフを生成する段階は、
前記複数のパウリ文字列に含まれる第１のパウリ文字列と第２のパウリ文字列が、少なくとも一つの演算子において、テンソル積基底で一緒に測定可能な観測可能量でない場合に、前記第１のパウリ文字列と前記第２のパウリ文字列とをエッジで接続することにより行う、
請求項１３に記載の装置。
【請求項１５】
前記グループ化する段階は、
前記統合パウリグラフに、カラーリングアルゴリズムを適用して、前記統合パウリグラフに含まれるノードをグループ分けする段階を更に有する、
請求項１３に記載の装置。
【請求項１６】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量である場合に、前記一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項１３に記載の装置。
【請求項１７】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であり、かつ
前記少なくとも一部のパウリ文字列が、残りの演算子において、テンソル積基底で一緒に測定可能な観測可能量である場合に、
前記少なくとも一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項１３に記載の装置。
【請求項１８】
命令を内部に有するコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、
前記命令は、プロセッサ又はプログラム可能回路に実行されると、前記プロセッサ又は前記プログラム可能回路に、
量子ハミルトニアンに含まれる複数のパウリ文字列を取得する段階と、
複数のパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、前記複数のパウリ文字列の少なくとも一部をグループ化する段階と、
前記グループ化する段階から得られた結果に基づいて量子回路を設計する段階と、
を含む動作を実行させる、
コンピュータプログラム製品。
【請求項１９】
前記複数のパウリ文字列はＫ文字のパウリ文字列を含み、
前記命令は、前記プロセッサ又は前記プログラム可能回路に、
ｋ文字（ｋはＫ以下の自然数）のパウリ文字列を要素とし、要素数が２ｋのセットを複数生成する段階と、
生成した複数の前記セットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する段階と、
を含む動作を更に実行させ、
前記グループ化する段階は、前記特定する段階において特定されたセットにより行う、
請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記セットを複数生成する段階は、
ｋ文字のパウリ文字列を要素とし、要素数が２ｋのセットを全て生成する段階である、
請求項１９に記載のコンピュータプログラム製品。
【請求項２１】
前記グループ化する段階は、
前記複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する段階と、
前記複数のパウリ文字列のうち少なくとも一部のノードに対応するパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、前記パウリグラフにおける前記少なくとも一部のノードを統合して、統合パウリグラフを生成する段階と、
を有する請求項１８に記載のコンピュータプログラム製品。
【請求項２２】
前記パウリグラフを生成する段階は、
前記複数のパウリ文字列に含まれる第１のパウリ文字列と第２のパウリ文字列が、少なくとも一つの演算子において、テンソル積基底で一緒に測定可能な観測可能量でない場合に、前記第１のパウリ文字列と前記第２のパウリ文字列とをエッジで接続することにより行う、
請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
前記グループ化する段階は、
前記統合パウリグラフに、カラーリングアルゴリズムを適用して、前記統合パウリグラフに含まれるノードをグループ分けする段階を更に有する、
請求項２１に記載のコンピュータプログラム製品。
【請求項２４】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量である場合に、前記一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項２１に記載のコンピュータプログラム製品。
【請求項２５】
前記統合パウリグラフを生成する段階は、
前記少なくとも一部のパウリ文字列が、対応する位置にある少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であり、かつ
前記少なくとも一部のパウリ文字列が、残りの演算子において、テンソル積基底で一緒に測定可能な観測可能量である場合に、
前記少なくとも一部のパウリ文字列に対応するノードを統合する段階を有する、
請求項２１に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量子コンピューティングを可能にする量子回路を設計するための、エンタングルした測定を用いたパウリ文字列のグループ化に関する。
【背景技術】
【０００２】
計算量を飛躍的に増加させる計算装置として、量子コンピュータが注目されている。例えば、量子化学における固有値を計算する量子・古典コンピュータのハイブリッドアルゴリズムとして、ＶＱＥ（Ｖａｒｉａｔｉｏｎａｌ  Ｑｕａｎｔｕｍ  Ｅｉｇｅｎｓｏｌｖｅｒ）が知られている（非特許文献１〜２）。
【０００３】
ＶＱＥでは、量子ハミルトニアンを構成するパウリ文字列（Ｐａｕｌｉ  Ｓｔｒｉｎｇ）のそれぞれの期待値を計算している。ＶＱＥの効率化のために、テンソル積基底（Ｔｅｎｓｏｒ  Ｐｒｏｄｕｃｔ  Ｂａｓｉｓ：ＴＰＢ）に基づいて、複数種類のパウリ行列の処理をまとめる手法等が知られている（非特許文献３〜６）。また、パウリ行列をまとめた結果に基づいて、量子回路を設計する手法等が知られている（非特許文献７〜８）。
［非特許文献１］Alberto Peruzzo, et al., A variational eigenvalue solver on a photonic quantum processor, Nat. Commun. 5 (2014), 4213
［非特許文献２］Nikolaj Moll, et al., Quantum optimization using variational algorithms on near-term quantum devices, Quantum Sci. Technol. 3 (2018), 030503
［非特許文献３］J. R. McClean, et al., New J. Phys. 18 023023 (2016)
［非特許文献４］S. Bravyi, et al., Tapering off Qubits to Simulate Fermionic Hamiltonians, arXiv:1701.08213
［非特許文献５］Abhinav Kandala, et al., Hardware-efficient variational quantum eigensolver for small molecules and quantum magnets, Nature 549 (2017), 242-246
［非特許文献６］Daochen Wang, et al., A Generalised Variational Quantum Eigensolver, arXiv:1802.00171
［非特許文献７］Cardoso, J. F., & Souloumiac, A. Jacobi angles for simultaneous diagonalization. SIAM J. Matrix Anal. & Appl., 17(1), 161-164 (1996)
［非特許文献８］V. V. Shende, S. S. Bullock and I. L. Markov, Synthesis of quantum-logic circuits, in IEEE TCAD, vol. 25, no. 6, pp. 1000-1010 (2006)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＶＱＥを更に効率化する、コンピュータにより実装される方法、装置、コンピュータプログラム製品を提供することが望まれる。
【課題を解決するための手段】
【０００５】
本発明の第１の態様においては、コンピュータにより実装される方法であって、量子ハミルトニアンに含まれる複数のパウリ文字列を取得する段階と、複数のパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に少なくとも部分的に基づいて、複数のパウリ文字列の少なくとも一部をグループ化する段階と、グループ化する段階から得られた結果に基づいて量子回路を設計する段階と、を備える方法を提供する。本態様によれば、複数のパウリ文字列をグループ化することにより、ＶＱＥの処理を効率化することができる。
【０００６】
本発明の第２の態様においては、第１の態様において、複数のパウリ文字列はＫ文字のパウリ文字列を含み、方法は、ｋ文字（ｋはＫ以下の自然数）のパウリ文字列を要素とし、要素数が２ｋのセットを複数生成する段階と、生成した複数のセットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する段階と、を更に備え、グループ化する段階は、特定する段階において特定されたセットにより行う。本態様によれば、事前にグループ化可能なパウリ文字列の候補を網羅的に準備しておくことができる。
【０００７】
本発明の第３の態様においては、第１又は第２の態様において、グループ化する段階は、複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する段階と、複数のパウリ文字列の少なくとも一部のノードに対応するパウリ文字列が、少なくとも一部の演算子において、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、パウリグラフにおける前記少なくとも一部のノードを統合して、統合パウリグラフを生成する段階と、を有する。本態様によれば、パウリグラフを利用することにより、ＶＱＥの処理を更に効率化することができる。
【０００８】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００９】
【図１】ＶＱＥの処理の一例を示す。
【図２】ＶＱＥの処理フローの一例を示す。
【図３】本実施形態において効率化されたＶＱＥの処理の一例を示す。
【図４】本実施形態における装置１０の一例を示す。
【図５】本実施形態の装置１０の処理フローの一例を示す。
【図６】量子ハミルトニアンに含まれる複数のパウリ文字列の一例を示す。
【図７】パウリグラフの一例を示す。
【図８】統合パウリグラフの一例を示す。
【図９】グループ分けされた統合パウリグラフの一例を示す。
【図１０】パウリグラフのみに基づいて行ったグループ分けの結果の例を示す。
【図１１】パウリ文字列ＸＸに対応する量子回路の一例を示す。
【図１２】パウリ文字列ＹＹに対応する量子回路の一例を示す。
【図１３】パウリ文字列ＺＺに対応する量子回路の一例を示す。
【図１４】ＸＸ、ＹＹおよびＺＺに対応する量子回路の一例を示す。
【図１５】コンピュータ１２００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、ＶＱＥ（Ｖａｒｉａｔｉｏｎａｌ  Ｑｕａｎｔｕｍ  Ｅｉｇｅｎｓｏｌｖｅｒ）における計算処理の一例を示す。ＶＱＥは、シュレディンガー方程式における量子ハミルトニアンの固有値及び／又は固有ベクトルを計算することを目的とする。このために、ＶＱＥでは、量子ハミルトニアンＨｑの期待値＜ψ（θ）｜Ｈｑ｜ψ（θ）＞を最小化するθを特定する。なお、以下で「量子コンピュータ」を言うときは、量子回路を古典コンピュータに組み込んだ量子古典ハイブリッド型コンピュータも含むものとする。
【００１２】
例えば、ＶＱＥでは、まず最初のθであるθ１に対し、期待値＜ψ（θ）｜Ｈｑ｜ψ（θ）＞が計算される。量子ハミルトニアンＨｑは、恒等演算子Ｉとパウリ演算子（σｘ、σｙ及びσｚ）のテンソル積の線形結合として表記される。このようなテンソル積はパウリ文字列（Ｐａｕｌｉ  Ｓｔｒｉｎｇ）とも呼ばれる。
【００１３】
ここで、パウリ文字列ＩＺＸＺ、パウリ文字列ＺＸＺＩ、パウリ文字列ＸＸＸＸ、パウリ文字列ＺＩＺＸ、及び、パウリ文字列ＩＺＸＺを含む量子ハミルトニアンＨｑを例にする。本例では、量子ハミルトニアンＨｑは、
Ｈｑ＝ａＩＺＸＺ＋ｂＺＸＺＩ＋ｃＸＸＸＸ＋ｄＺＩＺＸ＋ｅＩＺＸＺ  …数式１
と表記される。ここで、Ｘ、Ｙ及びＺは、それぞれパウリ演算子σｘ、σｙ及びσｚを表し、ａ〜ｅは係数を示す。
【００１４】
ＶＱＥでは、期待値＜ψ（θ１）｜Ｈｑ｜ψ（θ１）＞を、パウリ文字列ごとに分けて計算する。例えば、θ１から得られる期待値を計算するために、図１に示すように、＜ψ（θ１）｜ＩＺＸＺ｜ψ（θ１）＞、＜ψ（θ１）｜ＺＸＺＩ｜ψ（θ１）＞、＜ψ（θ１）｜ＸＸＸＸ｜ψ（θ１）＞、＜ψ（θ１）｜ＺＩＺＸ｜ψ（θ１）＞、及び、＜ψ（θ１）｜ＸＺＩＺ｜ψ（θ１）＞をそれぞれ計算する。
【００１５】
＜ψ（θ１）｜ＩＺＸＺ｜ψ（θ１）＞の計算は、θ１に対して、多数回（例えば１００回）行う。＜ψ（θ１）｜ＩＺＸＺ｜ψ（θ１）＞の計算は、量子コンピュータが量子計算により実行するが、各試行の結果は確率的に得られる。このため、パウリ文字列ＩＺＸＺに対する多数回の計算により、＜ψ（θ１）｜ＩＺＸＺ｜ψ（θ１）＞の結果が統計的に得られる。
【００１６】
図１の例では、量子コンピュータが、θ１に対して、５種類のパウリ文字列の計算をそれぞれ１００回実行する（すなわち、計５００回）。次に、θを更新して得られたθ２に対しても同様に多数回の量子計算が実行され、期待値が算出される。更に、θを逐次更新して、対応する期待値が算出される。このようにＶＱＥでは、θを更新しながら、期待値＜ψ（θ）｜Ｈｑ｜ψ（θ）＞の最小値を探索する。
【００１７】
すなわち、ＶＱＥにおいては、３層構造のループを実行しているものとみなすことができる。３層構造において、最外層の第１ループはθの更新を実行し、中層の第２ループはパウリ文字列ごとの期待値を統計的に算出し、内層の第３ループは１回ごとのパウリ文字列の量子計算を行う。
【００１８】
図２にＶＱＥの処理フローの一例を示す。量子コンピュータは、図２に示すＳ２１０〜Ｓ２７０の処理を行うことにより、ＶＱＥを実行してよい。ここで、Ｓ２１０〜Ｓ２６０は最外層の第１ループに対応し、Ｓ２３０〜Ｓ２５０は中層の第２ループに対応し、Ｓ２３０は内層の第３ループに対応する。
【００１９】
まず、Ｓ２１０において、量子コンピュータはθを更新する。θは、波動関数ψを特定するパラメータであってよい。例えば、θは、ψに含まれる１又は複数の関数の種類、及び、各関数の係数、及び、調整項などを指定する数値を含む。例えば、θは、整数及び／又は実数を含むベクトルであってよい。
【００２０】
初回のＳ２１０において、量子コンピュータは指定されたθを設定するか、又は、ランダムにθを決定してよい。２回目以降のＳ２１０において、量子コンピュータは、導関数を用いない最適化手法等の既知のアルゴリズムに基づいて、期待値の減少が予想されるθを設定してよい。
【００２１】
Ｓ２２０において、量子コンピュータはαを初期化する。ここで、αはパウリ文字列Ｐαを指定する変数であってよい。例えば、α＝１のときに対応するパウリ文字列Ｐ１はＩＺＸＺであってよく、α＝２〜５のときに対応するパウリ文字列Ｐ２〜５はそれぞれＺＸＺＩ、ＸＸＸＸ、ＺＩＺＸ、及びＸＺＩＺであってよい。
【００２２】
次にＳ２３０において、量子コンピュータはαに対応するパウリ文字列の量子計算を実行する。例えば、量子コンピュータは、期待値＜Ｐα＞＝＜ψ（θ）｜Ｐα｜ψ（θ）＞の量子計算を１回実行する。例えば、α＝１の時にＳ２３０で、量子コンピュータは、＜ψ（θ）｜ＩＺＸＺ｜ψ（θ）＞の計算を１回実行する。量子コンピュータは、第３ループにおいて、Ｓ２３０の量子計算を予め定められたＮ回（例えば１００回）実行する。
【００２３】
第３ループの処理の後、Ｓ２４０において、量子コンピュータはαに対応するパウリ文字列の期待値を統計的に決定する。例えば、α＝１のときに、量子コンピュータは、Ｎ回の＜ψ（θ）｜ＩＺＸＺ｜ψ（θ）＞の計算結果の統計量（例えば、平均値、中央値、又は、最多数値）を計算し、これを期待値＜Ｐα＞の計算結果として出力する。
【００２４】
次にＳ２５０において、量子コンピュータはαを更新する。例えば、量子コンピュータはαに１を加える。その後、量子コンピュータは、αが予め定められた数（例えば５）以下である場合、第３ループの処理を再度実行し、そうでない場合は、第２ループの処理を終え、Ｓ２６０の処理を実行してよい。
【００２５】
Ｓ２６０において、量子コンピュータは、現在のθに対する量子ハミルトニアンの期待値を算出する。例えば、量子コンピュータは、期待値＜Ｈｑ＞をΣ（ｈα＜Ｐα＞）により算出する。ここで、ｈαは各パウリ文字列に対する係数であってよく、例えば、数式１のａ〜ｅに対応する。その後、量子コンピュータは、終了条件（例えば、所定回数のθの更新を終えた、又は、期待値＜Ｈｑ＞の改善がなくなった等）を満たしていれば、Ｓ２７０の処理を実行し、そうでなければＳ２１０の処理に戻る。
【００２６】
Ｓ２７０において、量子コンピュータは最小の期待値＜Ｈｑ＞と、当該最小の期待値＜Ｈｑ＞を与えるθを決定し、これらを出力する。
【００２７】
このように、ＶＱＥにおいては、第１ループ〜第３ループの３階層の処理を行うことにより、最小の期待値＜Ｈｑ＞とθを決定する。ここで、複数のパウリ文字列をまとめて処理することができれば、第２ループの処理を効率化することができる。
【００２８】
そこで、本実施形態における装置は、エンタングルした測定により一緒に測定可能な観測可能量を利用して、ＶＱＥの第２ループの計算を更に効率化する。
【００２９】
図３は、本実施形態において効率化されたＶＱＥの処理の一例を示す。図３の例では、量子コンピュータが、θ１に対して、２種類のパウリ文字列の計算をそれぞれ１００回実行する（すなわち、計２００回）。ここで、本例では、ＩＺＸＺの量子計算とＸＺＩＺの量子計算とを一緒に取得している。また、ＺＸＺＩの量子計算、ＸＸＸＸの量子計算及びＺＩＺＸの量子計算を一緒に取得している。
【００３０】
これにより、本例によれば、図１に示される例と比較して、θあたりの量子計算の回数を２／５に削減でき、必要な量子回路の数も縮小できる。具体的な実現方法について、以下で説明する。
【００３１】
図４は、本実施形態に係る装置１０のブロック図を示す。装置１０は、一緒に処理可能なパウリ文字列をグループ化することにより、効率化されたＶＱＥを実現する情報処理装置（例えば、コンピュータ）である。具体的には、装置１０は、エンタングルした測定により一緒に測定可能な観測可能量を利用して、パウリ文字列をグループ化する。装置１０は、記憶部１０５、取得部１１０、セット生成部１２０、特定部１３０、グループ化部１４０、及び、設計部１５０を備える。
【００３２】
記憶部１０５は、装置１０の処理に用いられる情報を記憶する。例えば、記憶部１０５は、装置１０の動作に用いられる種々のデータ／命令を記憶する。装置１０の他の１又は複数の要素（例えば、取得部１１０、セット生成部１２０、特定部１３０、グループ化部１４０、及び、設計部１５０）は、必要に応じて、直接または記憶部１０５を介して、データを通信してよい。
【００３３】
取得部１１０は、量子ハミルトニアンＨｑに含まれる複数のパウリ文字列を取得する。例えば、取得部１１０は、数式１に示される量子ハミルトニアンＨｑに含まれるパウリ文字列ＩＺＸＺ、ＺＸＺＩ、ＸＸＸＸ、ＺＩＺＸ、及び、ＸＺＩＺを取得する。
【００３４】
セット生成部１２０は、複数のパウリ文字列を含むセットを、複数生成する。例えば、取得部１１０が取得したパウリ文字列の文字数がＫ文字（例えば、Ｋ＝４）であるときに、セット生成部１２０は、ｋ文字（ｋはＫ以下の自然数）のパウリ文字列を要素とするセットを複数生成する。セット生成部１２０によるセット生成の詳細は後述する。
【００３５】
特定部１３０は、セット生成部１２０が生成した複数のセットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する。エンタングルした測定は、例えば、ベル測定（Ｂｅｌｌ  Ｍｅａｓｕｒｅｍｅｎｔ）であってよい。特定部１３０による特定の詳細は後述する。
【００３６】
グループ化部１４０は、量子ハミルトニアンに含まれる複数のパウリ文字列の少なくとも一部をグループ化する。例えば、グループ化部１４０は、特定部１３０に特定されたセットにより、グループ化を行う。これにより、グループ化部１４０は、複数のパウリ文字列がエンタングルした測定により一緒に測定可能な観測可能量であるか、の判断に少なくとも部分的に基づいて、グループ化を実行する。グループ化部１４０は、グラフ生成部１４２、統合部１４４、及び、カラーリング部１４６を有する。
【００３７】
グラフ生成部１４２は、取得部１１０が取得した量子ハミルトニアンに含まれる複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する。パウリグラフは、量子ハミルトニアン中のパウリ文字列のそれぞれをノードとするグラフである。パウリグラフ生成の詳細は後述する。
【００３８】
統合部１４４は、パウリグラフにおいて、少なくとも一部のノードを統合して、統合パウリグラフを生成する。例えば、統合部１４４は、複数のパウリ文字列のうち統合されるノードに対応するパウリ文字列が、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、ノードの統合を実行してよい。統合部１４４は、特定部１３０に特定されたセットにより、パウリ文字列がエンタングルした測定により一緒に測定可能な観測可能量であるかの判断を行ってよい。
【００３９】
カラーリング部１４６は、エッジで接続されないノード同士が同じグループに属するように、統合パウリグラフに含まれるノードをグループ分けする。例えば、カラーリング部１４６は、統合パウリグラフに、カラーリングアルゴリズムを適用して、グループ分けを実行する。この結果、カラーリング部１４６は、２以上のパウリ文字列を含むグループを生成する。これにより、カラーリング部１４６は、量子ハミルトニアンに含まれる複数のパウリ文字列の少なくとも一部をグループ化する。
【００４０】
設計部１５０は、グループ化部１４０によりグループ化された結果に基づいて、量子回路を設計する。例えば、設計部１５０は、グループ化部１４０により生成された同一グループにおけるパウリ文字列の計算が、量子回路において共有されるように、量子回路を設計する。これにより、ＶＱＥにおいて、同一グループのパウリ文字列に対する期待値＜Ｐα＞の算出が一緒にできる。量子回路の設計の詳細は後述する。
【００４１】
このように、装置１０によれば、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に少なくとも部分的に基づいて、複数のパウリ文字列をグループ化する。このグループ化より、装置１０によれば、ＶＱＥにおける第２ループの処理を効率化することができる。
【００４２】
なお、装置１０は、プロセッサ又はプログラム可能回路を有してよい。例えば、記憶部１０５は、命令を含むコンピュータプログラム、又は、命令を集合的に格納する１又は複数のコンピュータ可読媒体であってよい。当該命令は、プロセッサ又はプログラム可能回路に実行されると、プロセッサ又はプログラム可能回路に、取得部１１０、セット生成部１２０、特定部１３０、グループ化部１４０、及び、設計部１５０の少なくとも一部の動作を実行させてよい。
【００４３】
図５は、本実施形態の装置１０の処理フローの一例を示す。本実施形態において、装置１０は、Ｓ７１０〜Ｓ７９０の処理を実行することにより、量子ハミルトニアンに含まれるパウリ文字列をグループ化し、これによりＶＱＥを効率化する。
【００４４】
Ｓ７１０において、セット生成部１２０は、複数のパウリ文字列を含むセットを生成する。例えば、Ｓ７２５において取得される量子ハミルトニアンがＫ文字のパウリ文字列を含む場合、セット生成部１２０はＫ以下となるｋ文字のパウリ文字列のセットを複数生成する。セット生成部１２０は、要素数が２ｋとなるようにセットを生成する。ここで、セット生成部１２０は、恒等演算子Ｉのみのパウリ文字列（例えば、ＩＩ、ＩＩＩ、ＩＩＩＩ）を要素に含むようにセットを生成する。
【００４５】
セット生成部１２０は、上記条件を満たすセット（すなわち、ｋ文字のパウリ文字列を要素とし、要素数が２ｋで、Ｉのみのパウリ文字列を要素の１つとして含むセット）を全て生成してよい。これに代えて、セット生成部１２０は、上記条件を満たすセットの一部のみを生成してよい。セット生成部１２０は、１＜ｋ≦Ｋを満たす全てのｋ又は一部のｋについて、セットを生成してよい。
【００４６】
具体的には、セット生成部１２０は、まず、Ａ種類のパウリ演算子をｋ個並べたパウリ文字列を全通り（すなわちＡｋ通り）列挙する。一例として、ｋ＝２でパウリ演算子がＩ、Ｘ、Ｙ及びＺの場合（すなわちＡ＝４）、セット生成部１２０は、ＩＩ、ＩＸ、ＩＹ、ＩＺ、ＸＩ、ＸＸ、ＸＹ、ＸＺ、ＹＩ、ＹＸ、ＹＹ、ＹＺ、ＺＩ、ＺＸ、ＺＹ、ＺＺを列挙できる。
【００４７】
その後、セット生成部１２０は、これら列挙したパウリ文字列を２ｋ個含むセットを生成する。ただし、セット生成部１２０は、各セットに、恒等演算子のみがｋ個含まれるパウリ文字列（例えばＩＩ）を含むようにする。一例として、セット生成部１２０は、ｋ＝２に対して、４個の要素を含むセット（ＩＩ、ＩＸ、ＩＹ、ＩＺ）、セット（ＩＩ、ＩＸ、ＩＹ、ＸＩ）、セット（ＩＩ、ＩＸ、ＩＹ、ＸＸ）・・・セット（ＩＩ、ＺＸ、ＺＹ、ＺＺ）を生成する。
【００４８】
次にＳ７２０において、特定部１３０は、Ｓ７１０でセット生成部１２０が生成した複数のセットから、エンタングルした測定により一緒に測定可能な観測可能量であるものを特定する。例えば、特定部１３０は、パウリ文字列Ｐ１とパウリ文字列Ｐ２とが可換（Ｃｏｍｍｕｔａｔｉｖｅ）である場合に、Ｐ１とＰ２とを、エンタングルした測定により一緒に測定可能な観測可能量であるとしてよい。なお、パウリ文字列Ｐ１とパウリ文字列Ｐ２とがＰ１Ｐ２−Ｐ２Ｐ１＝０を満たす場合に、パウリ文字列Ｐ１とパウリ文字列Ｐ２とが可換となる。
【００４９】
エンタングルした測定の具体例として、ベル測定（Ｂｅｌｌ  Ｍｅａｓｕｒｅｍｅｎｔ）、オメガ測定（Ｏｍｅｇａ  Ｍｅａｓｕｒｅｍｅｎｔ）、シグマ測定（Ｓｉｇｍａ  Ｍｅａｓｕｒｅｍｅｎｔ）、及び、クサイ測定（Ｘｉ  Ｍｅａｓｕｒｅｍｅｎｔ）が挙げられる。ここで、オメガ測定は以下の数式４に示されるオメガ状態を利用した測定であり、シグマ測定は以下の数式６に示されるシグマ状態を利用した測定であり、クサイ測定は以下の数式８に示されるクサイ状態を利用した測定である。
【００５０】
例えば、ベル測定において、パウリ文字列ＸＸは、パウリ文字列ＩＩ、パウリ文字列ＹＹ及びパウリ文字列ＺＺのいずれとも可換である。このため、例えば、特定部１３０は、Ｓ７１０で列挙したｋ＝２のセットのうち（ＩＩ、ＸＸ、ＹＹ、ＺＺ）をベル測定により一緒に測定可能な観測可能量であるものとして特定する。同様に、特定部１３０は、ベル測定に加え、（ＩＩ、ＺＺ、ＸＹ、ＹＸ）、（ＩＩ、ＸＸ、ＹＺ、ＺＹ）、（ＩＩ、ＹＹ、ＸＺ、ＺＸ）、（ＩＩ、ＸＸ、ＹＺ、ＺＹ）等を、オメガ測定、シグマ測定、クサイ測定等のエンタングルした測定により一緒に測定可能な観測可能量であるものとして特定してよい。
【００５１】
特定部１３０は、１＜ｋ≦Ｋを満たす全てのｋ又は一部のｋについて、セットを特定してよい。例えば、特定部１３０は、ｋ＝２と同様に、ｋ＝３について（ＩＩＩ、ＸＸＸ、ＩＺＺ、ＺＩＺ、ＺＺＩ、ＸＹＹ、ＹＸＹ、ＹＹＸ）等を特定し、ｋ＝４について（ＩＩＩＩ、ＸＸＸＸ、ＩＸＸＺ、ＺＸＺＩ、ＺＩＺＸ、ＸＺＩＺ、ＸＹＩＹ、ＹＩＹＸ、ＹＸＹＩ、ＩＹＸＹ、ＺＹＹＺ、ＺＺＹＹ、ＸＩＸＩ、ＸＩＸＩ、ＹＹＺＺ、ＹＺＺＹ）等を特定してよい。
【００５２】
Ｓ７２５において、取得部１１０が量子ハミルトニアンＨｑを取得する。例えば、取得部１１０は、量子ハミルトニアンＨｑに含まれる複数のパウリ文字列を取得する。複数のパウリ文字列の各々は、１又は複数の演算子（例えば、Ｉ、Ｘ、Ｙ又はＺ）を含んでよい。
【００５３】
図６は、量子ハミルトニアンに含まれる複数のパウリ文字列の一例を示す。例えば、取得部１１０は、図示するように、ＺＸＺＩ、ＩＺＸＺ、ＸＸＸＸ、ＸＺＩＺ及びＺＩＺＸを、量子ハミルトニアンに含まれる複数のパウリ文字列として取得してよい。
【００５４】
Ｓ７３０において、グラフ生成部１４２は、パウリグラフを生成する。例えば、グラフ生成部１４２は、Ｓ７２５で取得された量子ハミルトニアンに含まれる複数のパウリ文字列のそれぞれをノードとして含むパウリグラフを生成する。
【００５５】
図７は、パウリグラフの一例を示す。グラフ生成部１４２は、図６に示される複数のパウリ文字列から、図７に示されるパウリグラフを生成してよい。グラフ生成部１４２は、対応する位置にある演算子が同一である（例えば、２つのパウリ文字列における１つ目の演算子におけるＸとＸ、２つのパウリ文字列における２つ目の演算子におけるＹとＹ、又は、２つのパウリ文字列における３つ目の演算子におけるＺとＺ）、または、対比する演算子の少なくとも一方がＩである場合（例えば、ＩとＸ）に、当該対比される演算子において、テンソル積基底で一緒に測定可能な観測可能量であると判断してよい。一実施形態において、グラフ生成部１４２は、パウリ文字列の全ての演算子がそれぞれの対応する位置において一緒に測定可能な観測可能量であるときに、当該パウリ文字列がテンソル積基底で一緒に測定可能であると決定してよい。
【００５６】
例えば、ＺＸＺＩ及びＩＺＸＺは、第１演算子（Ｚ、Ｉ）及び第４演算子（Ｉ、Ｚ）においてテンソル積基底で一緒に測定可能な観測可能量であるが、第２演算子（Ｘ、Ｚ）及び第３演算子（Ｚ、Ｘ）においてテンソル積基底で一緒に測定可能な観測可能量でない。ＴＰＢによりパウリ文字列が一緒に測定可能でないときに、グラフ生成部１４２は、当該パウリ文字列を接続してよい。従って、グラフ生成部１４２は、ＺＸＺＩ及びＩＺＸＺをエッジで接続してよい。
【００５７】
一方で、例えば、ＺＸＺＩ及びＺＩＺＸは、第１演算子（Ｚ、Ｚ）、第２演算子（Ｘ、Ｉ）、第３演算子（Ｚ、Ｚ）及び第４演算子（Ｉ、Ｘ）の全てにおいて、テンソル積基底で一緒に測定可能な観測可能量である。ＴＰＢによりパウリ文字列が一緒に測定可能であるときに、グラフ生成部１４２は、当該パウリ文字列を接続しなくてよい。従って、グラフ生成部１４２は、ＺＸＺＩ及びＺＩＺＸをエッジで接続しなくてよい。
【００５８】
このように、グラフ生成部１４２は、複数のパウリ文字列に含まれる第１のパウリ文字列と第２のパウリ文字列が、少なくとも一部の演算子において、テンソル積基底で一緒に測定可能な観測可能量でない場合に、第１のパウリ文字列と第２のパウリ文字列とをエッジで接続することにより、パウリグラフの生成を行う。グラフ生成部１４２は、複数のパウリ文字列に含まれる全ての演算子に基づいて、パウリグラフを生成してよい。
【００５９】
次にＳ７４０で、統合部１４４は、Ｓ７３０で生成したパウリグラフにおいて、少なくとも一部のノードを統合して、統合パウリグラフを生成する。例えば、統合部１４４は、少なくとも一部の演算子において、統合されるノードに対応するパウリ文字列が、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいて、ノードを統合してよい。
【００６０】
一例として、統合部１４４は、少なくとも一部のパウリ文字列が、一部の演算子においてエンタングルした測定により一緒に測定可能な観測可能量であり、かつ、残りの演算子において、テンソル積基底で一緒に測定可能な観測可能量である場合に、当該少なくとも一部のパウリ文字列に対応するノードを統合してよい。ここで、当該一部の演算子と他の演算子は、連続する演算子か、又は、離れた演算子であってよい。例えば、４文字のパウリ文字列において、当該一部の演算子は、第１演算子及び第３演算子であってよく、他の演算子は第２演算子と第４演算子であってよい。
【００６１】
図８は、統合パウリグラフの一例を示す。統合部１４４は、図７に示すパウリグラフから図８に示す統合パウリグラフを生成してよい。統合部１４４は、対比される演算子の一部が、Ｓ７２０で生成した複数のセットの同じ１つに含まれる場合に、対比される演算子がエンタングルした測定で一緒に測定可能な観測可能量であると判断してよい。パウリ文字列の任意の位置における一部の演算子を統合することにより、対比される演算子がそれぞれ準備されることに留意されたい。以下、当該演算子の一部を含む複数のセットの同じ一つを「ターゲットセット」ともいう。また、統合部１４４は、残りの演算子が、Ｓ７３０のパウリグラフ生成時に用いたのと同様の方法によりテンソル積基底で一緒に測定可能な観測可能量であるか、の判断を行ってよい。
【００６２】
例えば、ＺＸＺＩ、ＸＸＸＸ、ＺＩＺＸの第１演算子及び第３演算子の結合がＺＺ、ＸＸ、ＺＺであり、これらの結合はＳ７２０で生成したセットの１つ（ＩＩ、ＸＸ、ＹＹ、ＺＺ）に一緒に含まれる。また、ＺＸＺＩ、ＸＸＸＸ、ＺＩＺＸは、２文字目及び４文字目（ＸＩ、ＸＸ、ＩＸ）において、テンソル積基底で一緒に測定可能な観測可能量である。
【００６３】
従って、統合部１４４は、ＺＸＺＩ、ＸＸＸＸ、ＺＩＺＸに対応する３つのノードを統合してよい。その結果、統合パウリグラフは、ＸＺＩＺに対応するノードと、ＺＸＺＩ、ＸＸＸＸ及びＺＩＺＸに対応する統合ノードと、ＩＺＸＺに対応するノードと、を含むものとなる。
【００６４】
なお、パウリグラフの統合対象となる複数のノードで、他のノードとのエッジ接続状態が異なる場合も想定される（例えば、ＺＸＺＩはＩＺＸＺと接続されるが、ＸＸＸＸとＩＺＸＺとは接続されない場合等）。このような場合は、統合部１４４は、統合ノードと他のノードとの間を接続してよい。
【００６５】
次にＳ７６０で、カラーリング部１４６は、エッジで互いに接続されるノードが異なるグループに属し、かつ、エッジで接続されないノード同士が同じグループに属してよいように、統合パウリグラフに含まれるノードをグループ分けする。また、カラーリング部１４６は、統合されたノードに含まれる複数のパウリ文字列を同一のグループに属させてよい。
【００６６】
カラーリング部１４６は、生成されるグループ数が最小となるように、グループ分けを実行してよい。例えば、カラーリング部１４６は、グラフ彩色問題を厳密又は近似的に、解くカラーリングアルゴリズムを実装してよい。これにより、カラーリング部１４６は、統合パウリグラフに、カラーリングアルゴリズムを適用して、グループ分けを実行する。
【００６７】
図９は、グループ分けされた統合パウリグラフの一例を示す。カラーリング部１４６は、図８に示す統合パウリグラフから図９に示すグループ分けを実行してよい。例えば、統合パウリグラフにおいて、ＩＺＸＺとＸＺＩＺとはエッジで接続されていない。また、ＺＸＺＩ、ＸＸＸＸ及びＺＩＺＸは単一ノードに含まれる。これにより、カラーリング部１４６は、ＩＺＸＺ及びＸＺＩＺを含む第１グループ９１０と、ＺＸＺＩ、ＸＸＸＸ及びＺＩＺＸを含む第２グループ９２０とを生成してよい。
【００６８】
図１０に、パウリグラフのみに基づいて行ったグループ分けの結果の例を示す。パウリグラフのノードを統合せずに、パウリグラフのみに基づいて、複数のパウリ文字列をグループ化する場合、生成されるグループの数が多くなってしまう場合がある。
【００６９】
例えば、図７に示すパウリグラフをカラーリングアルゴリズムでグループ分けした場合、図１０に示すように、カラーリング部１４６は、ＩＺＸＺ及びＸＺＩＺを含む第１グループ１０１０と、ＺＸＺＩ及びＺＩＺＸを含む第２グループ１０２０と、ＸＸＸＸを含む第３グループ１０３０とを生成することになる。
【００７０】
この結果、グループ分けする前と比べてＶＱＥの第２ループの処理量は３／５となり、一定程度の効率化は可能になる。しかし、この場合、図９に示したグループ分けを行った場合と比較して、第２ループの処理量は３／２となる。従って、本実施形態よれば、パウリ文字列がエンタングルした測定で一緒に測定可能な観測可能量であるかの判断を用いることにより、ＶＱＥを更に効率化することができる。
【００７１】
次に、Ｓ７７０において、設計部１５０が、Ｓ７４０のノードの統合に使用されたターゲットセットを一緒に対角化する。例えば、Ｓ７４０でターゲットセット（ＩＩ、ＸＸ、ＹＹ、ＺＺ）が使用された場合、設計部１５０は、ターゲットセット（ＩＩ、ＸＸ、ＹＹ、ＺＺ）のパウリ文字列を一緒に対角化する。
【００７２】
ここで、ターゲットセット（ＩＩ、ＸＸ、ＹＹ、ＺＺ）はベル測定により一緒に測定可能な観測可能量であるので、設計部１５０は、下記のベル状態に基づいて当該セットのパウリ文字列を対角化する。
【数１】
2020144400.tif 000003
・・（数式２）
【００７３】
対角化の結果は、以下の通りとなる。
【数２】
2020144400.tif 000004
・・（数式３）
【００７４】
ここで、ターゲットセットがオメガ測定により一緒に測定可能な観測可能量であるとき、設計部１５０は、ベル状態に代えて、オメガ状態に基づいて当該セットのパウリ文字列を対角化してもよい。例えば、設計部１５０は、セット（ＩＩ、ＹＹ、ＸＺ、ＺＸ）のパウリ文字列を以下のオメガ状態に基づいて、対角化してよい。
【数３】
2020144400.tif 000005
・・（数式４）
【００７５】
対角化の結果は、以下の通りとなる。
【数４】
2020144400.tif 000006
・・（数式５）
【００７６】
更に設計部１５０は、ベル状態に代えてシグマ状態に基づいて、セットのパウリ文字列を対角化してもよい。ターゲットセットがシグマ測定により一緒に測定可能な観測可能量であるとき、設計部１５０は、ベル状態に代えて、シグマ状態に基づいて当該セットのパウリ文字列を対角化してもよい。例えば、設計部１５０は、セット（ＩＩ、ＺＺ、ＸＹ、ＹＸ）のパウリ文字列を以下のシグマ状態に基づいて、対角化してよい。
【数５】
2020144400.tif 000007
・・（数式６）
【００７７】
対角化の結果は、以下の通りとなる。
【数６】
2020144400.tif 000008
・・（数式７）
【００７８】
更に設計部１５０は、ベル状態に代えてクサイ状態に基づいて、セットのパウリ文字列を対角化してもよい。ターゲットセットがクサイ測定により一緒に測定可能な観測可能量であるとき、設計部１５０は、ベル状態に代えて、クサイ状態に基づいて当該セットのパウリ文字列を対角化してもよい。例えば、設計部１５０は、セット（ＩＩ、ＺＺ、ＸＹ、ＹＸ）のパウリ文字列を以下のクサイ状態に基づいて、対角化してよい。
【数７】
2020144400.tif 000009
・・（数式８）
【００７９】
対角化の結果は、以下の通りとなる。
【数８】
2020144400.tif 000010
・・（数式９）
【００８０】
次に、Ｓ７８０において、設計部１５０は、Ｓ７７０において得られた対角化の基底からユニタリ行列を生成する。例えば、数式３から得られるユニタリ行列は、以下のように示される。
【数９】
2020144400.tif 000011
・・（数式６）
【００８１】
次に、Ｓ７９０において、設計部１５０は、Ｓ７６０のグループ分けの結果と、Ｓ７８０において得られたユニタリ行列とから量子回路を設計する。ここで、図１１〜図１４を用いて、設計部１５０が生成する量子回路の例を説明する。
【００８２】
図１１は、パウリ文字列ＸＸ、ＩＸ、ＸＩに対応する量子回路１１１０の一例を示す。図中において｜０＞は量子状態を示し、Ｈはアダマール（Ｈａｄａｍａｒｄ）ゲートと呼ばれる量子ゲートを示し、１１１２で示される記号は測定を示し、ｑ０は１ビット目の量子ビットを示し、ｑ１は２ビット目の量子ビットを示し、ｃはサイズ２の出力の古典ビットを示す。同様に図１２は、パウリ文字列ＹＹ、ＩＹ、ＹＩに対応する量子回路１１２０の一例を示し、図１３は、パウリ文字列ＺＺ、ＩＺ、ＺＩに対応する量子回路１１３０の一例を示す。図１２において、Ｓダガー（Ｓの右上の十字様記号）は、入力量子ビットをＺ軸周りに−π／２回転させる量子ゲートを示す。
【００８３】
図１４は、ＸＸ、ＹＹおよびＺＺに対応する量子回路１４００の一例を示す。図１４において１４０２に示される演算子は制御ＮＯＴゲートを示す。例えば、設計部１５０は、数式６のユニタリ行列から、量子回路１４００を設計する。ユニタリ行列によれば、量子回路１４００の１ビット目の出力をｘ０とし、２ビット目の出力をｘ１とすると、ｘ０ｘ１＝００は｜Φ＋＞に対応し、ｘ０ｘ１＝１０は｜Φ−＞に対応し、ｘ０ｘ１＝０１は｜Ψ＋＞に対応し、ｘ０ｘ１＝１１は｜Ψ−＞に対応する。
【００８４】
従って、ｐｘ０ｘ１をｘ０ｘ１の結果の確率とすると、パウリ文字列ＸＸ，ＹＹ、ＺＺ及びＩＩのそれぞれの期待値＜ＸＸ＞、＜ＹＹ＞、＜ＺＺ＞及び＜ＩＩ＞について、下記数式が成立する。
【数１０】
2020144400.tif 000012
・・数式（７）
【００８５】
従って、量子回路１４００の出力ｘ０及びｘ１を得てｐｘ０ｘ１を集計し、これを操作することにより、ＸＸ、ＹＹおよびＺＺからの出力の期待値を全て取得することができる。すなわち、単一の量子回路１４００により、パウリ文字列ＸＸ、ＹＹ、ＺＺ及びＩＩの出力を全て取得することができる。
【００８６】
設計部１５０は、Ｓ７６０で生成されたグループごとに、図１４に示す量子回路１４００のような共用される量子回路を設計してよい。更に設計部１５０は、グループ内の各パウリ文字列に対応する結果が得られるように、量子回路の出力を集計、操作する古典回路を設計してよい。
【００８７】
なお、上記では、特定のターゲットセット（ＩＩ、ＸＸ、ＹＹ、ＺＺ）に対応する回路を生成する方法を説明した。しかし、どのようなセットに対しても、設計部１５０はＳ７７０で対角化を行い、Ｓ７８０でユニタリ行列を生成し、そしてＳ７９０で量子回路を設計し得る。また上記説明では、エンタングルした測定により一緒に測定可能な観測可能量であるかの判断に基づいてグループ化されるパウリ文字列の部分（すなわち、ＩＩ、ＸＸ、ＹＹ、ＺＺ等）に対応する回路を生成する方法について説明したが、テンソル積基底で一緒に測定可能な観測可能量に基づいてグループ化されるパウリ文字列の部分（例えば、ＩＩ、ＩＸ、ＸＩ、ＸＸ等）に対応する回路については、共用される量子回路を生成する必要はなく、出力を操作すれば所望の結果が得られることは明らかである。
【００８８】
図５〜１４に示すように、本実施形態の装置１０は、パウリ文字列がエンタングルした測定により一緒に測定可能な観測可能量であるかの判断を利用する。これにより、装置１０は、量子ハミルトニアンに含まれるパウリ文字列をグループにまとめ、ＶＱＥの処理を効率化する。
【００８９】
上記では、一般的な処理の流れについて説明したが、具体例としてＨ２分子に本実施形態を適用した例を説明する。例えば、Ｊｏｒｄａｎ−Ｗｉｇｎｅｒ変換を利用して、第２量子化されたＨ２分子のフェルミハミルトニアンを量子ハミルトニアンに変換する。Ｈ２分子の量子ハミルトニアンに含まれるパウリ文字列は、ＩＩＩＩ、ＺＩＩＩ、ＩＺＩＩ、ＩＩＺＩ、ＩＩＩＺ、ＺＺＩＩ、ＺＩＺＩ、ＹＹＸＸ、ＹＹＹＹ、ＸＸＸＸ、ＸＸＹＹ、ＺＩＩＺ、ＩＺＺＩ、ＩＺＩＺ及びＩＩＺＺである。
【００９０】
ここで、この１５個のパウリ文字列からパウリグラフを生成して、これにカラーリングアルゴリズムを適用した場合は、５個のグループを生成することができる。一方で、本実施形態のようにエンタングルした測定を利用して、パウリグラフから統合パウリグラフを生成して、これにカラーリングアルゴリズムを適用した場合は、２個のグループを生成することができる。従って、本実施形態によれば、エンタングルした測定を利用しない場合と比較して、処理を５／２倍に早めることができる。これにより、本実施形態によれば、必要な量子回路の数も縮小することができる。
【００９１】
このように、本実施形態の方法によれば、エンタングルした測定により一緒に測定可能な観測可能量を利用して、精度を落とすことなく、ＶＱＥの第２ループの処理の一部を省略することができる。これにより、本実施形態によれば、効率化されたＶＱＥを実行可能な量子回路を提供することができる。
【００９２】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令が供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令が供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【００９３】
実施形態に係る発明は、任意の可能な統合された技術詳細レベルにおけるシステム、方法、及び／又は、コンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに実施形態に係る発明の各側面を実行させるためのコンピュータ可読プログラム命令を包含する、１又は複数のコンピュータ可読記録媒体を有してよい。
【００９４】
コンピュータ可読記録媒体は、命令実行装置による使用のための命令を保持し、格納する有体の装置であってよい。コンピュータ可読記録媒体は、これらに限定されないが、例えば、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体、又はこれらの適切な組み合わせが含まれてよい。コンピュータ可読記録媒体のより具体的な例の非限定的なリストは、下記のものを含んでよい：ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、イレーサブルプログラマブルリードオンリーメモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、パンチカード又は命令がその上に記録された溝における隆起構造等の機械的エンコード装置、及び、これらの任意の適切な組み合わせ。ここで使用されるコンピュータ可読記録媒体は、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通じて伝搬する電磁波（例えば、ファイバ光ケーブルを通る光パルス）、又は、配線を通じて伝送される電子信号のように、それ自体が一時的な信号であると解釈されるものではない。
【００９５】
ここに記述されるコンピュータ可読プログラム命令は、外部のコンピュータ、又は、外部の記憶装置のコンピュータ可読記憶媒体から、計算／処理装置の各々に、ネットワーク（例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び／又は、ワイヤレスネットワーク）を通じてダウンロードされてよい。ネットワークは、銅伝送ケーブル、光学伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び／又は、エッジサーバを有してよい。各計算／処理装置のネットワークアダプタカード又はネットワークインタフェースは、コンピュータ可読プログラム命令をネットワークから受信し、当該コンピュータ可読プログラム命令を、各計算／処理装置内のコンピュータ可読記録媒体のストレージに転送する。
【００９６】
実施形態の発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のためのコンフィギュレーションデータ、又は、オブジェクト指向プログラミング言語（例えば、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等）、及び、手続き型プログラミング言語（例えば、"Ｃ"プログラミング言語または類似のプログラミング言語）を含む、１又は複数のプログラミング言語の任意の組み合わせにより記述されたオブジェクトコード若しくはソースコードであってよい。コンピュータ可読プログラム命令は、スタンドアローンソフトウェアパッケージとして、部分的にユーザのコンピュータで実行されてよく、又は完全にユーザのコンピュータで実行されてよい。また、コンピュータ可読プログラム命令は、部分的にユーザのコンピュータで実行されかつ部分的に遠隔コンピュータで実行されてよく、又は完全に遠隔コンピュータまたはサーバに実行されてよい。
【００９７】
後者の場合においては、遠隔コンピュータは、ユーザのコンピュータと、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）を含む任意の種類のネットワークで接続されていてよい。または、当該接続は、（例えば、インターネットサービスプロバイダを用いたインターネットを介して）外部のコンピュータとされていてもよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は、プログラマブルロジックアレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を活用してコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズし、これにより実施形態に係る発明の各側面を実行してよい。
【００９８】
本発明の各側面は、発明の実施形態における方法、装置（システム）、及び、コンピュータプログラム製品に係る、フローチャート図および／またはブロック図への参照と共にここに記述される。フローチャート図および／またはブロック図の各ブロック、及び、フローチャート図および／またはブロック図の複数のブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることが理解されるだろう。
【００９９】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、又は、他のプログラム可能なデータ処理装置のプロセッサに提供されて機械を形成してよく、これにより、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャート又はブロック図の一又は複数のブロックに特定される機能／動作を実装するための手段を形成する。
【０１００】
同様にこれらのコンピュータ可読プログラム命令は、コンピュータ、プログラム可能なデータ処理装置、及び／又は、他の装置に特定の態様で機能するように指示することができるコンピュータ可読記録媒体に格納されてよく、これにより、命令を内部に格納するコンピュータ可読記録媒体は、フローチャート又はブロック図の一又は複数のブロックに特定される機能／動作の各側面を実装する命令を含む製造物品を有する。
【０１０１】
コンピュータ、他のプログラム可能な装置、又は他の装置で実行された命令がフローチャート又はブロック図の一又は複数のブロックに特定される機能／動作を実現するように、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、又は他の装置に読みだされ、一連の動作ステップがコンピュータ、他のプログラム可能な装置、又は他の装置において実行されて、コンピュータに実現されるプロセスが形成されてよい。
【０１０２】
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態におけるシステム、方法、及び、コンピュータプログラム製品の可能な実装におけるアーキテクチャ、機能、及び、動作を記述する。この点について、フローチャート及びブロック図における各ブロックは、特定された一又は複数のロジック機能を実装するための１又は複数の実行可能命令を有する、命令のモジュール、セグメント、又は部分を表すものであってよい。
【０１０３】
他のいくつかの代替的な実装においては、ブロックにおいて記述される機能は、図面に記載された順番とは異なって生じてよい。例えば、連続で表された２つのブロックは、実際には、実質的に同時に実行されてよく、または、これらのブロックは、内包する機能に応じて、ある場合に逆の順番で実行されてよい。ブロック図および／またはフローチャート図の各ブロック、及び、ブロック図および／またはフローチャート図の複数ブロックの組み合わせは、特定の機能又は動作を実行する専用ハードウェアに基づくシステム、又は、専用ハードウェア及びコンピュータ命令の組み合わせにより実装されてよいことに同様に留意されたい。
【０１０４】
図１５は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ１２００の例を示す。コンピュータ１２００にインストールされたプログラムは、コンピュータ１２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、および／またはコンピュータ１２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ１２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ１２１２によって実行されてよい。
【０１０５】
本実施形態によるコンピュータ１２００は、ＣＰＵ１２１２、ＲＡＭ１２１４、グラフィックコントローラ１２１６、およびディスプレイデバイス１２１８を含み、それらはホストコントローラ１２１０によって相互に接続されている。コンピュータ１２００はまた、通信インタフェース１２２２、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭドライブ１２２６、およびＩＣカードドライブのような入／出力ユニットを含み、それらは入／出力コントローラ１２２０を介してホストコントローラ１２１０に接続されている。コンピュータはまた、ＲＯＭ１２３０およびキーボード１２４２のようなレガシの入／出力ユニットを含み、それらは入／出力チップ１２４０を介して入／出力コントローラ１２２０に接続されている。
【０１０６】
ＣＰＵ１２１２は、ＲＯＭ１２３０およびＲＡＭ１２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ１２１６は、ＲＡＭ１２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ１２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス１２１８上に表示されるようにする。
【０１０７】
通信インタフェース１２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ１２２４は、コンピュータ１２００内のＣＰＵ１２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ１２２６は、プログラムまたはデータをＤＶＤ−ＲＯＭ１２０１から読み取り、ハードディスクドライブ１２２４にＲＡＭ１２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、および／またはプログラムおよびデータをＩＣカードに書き込む。
【０１０８】
ＲＯＭ１２３０はその中に、アクティブ化時にコンピュータ１２００によって実行されるブートプログラム等、および／またはコンピュータ１２００のハードウェアに依存するプログラムを格納する。入／出力チップ１２４０はまた、様々な入／出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入／出力コントローラ１２２０に接続してよい。
【０１０９】
プログラムが、ＤＶＤ−ＲＯＭ１２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ１２２４、ＲＡＭ１２１４、またはＲＯＭ１２３０にインストールされ、ＣＰＵ１２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ１２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ１２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【０１１０】
例えば、通信がコンピュータ１２００および外部デバイス間で実行される場合、ＣＰＵ１２１２は、ＲＡＭ１２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース１２２２に対し、通信処理を命令してよい。通信インタフェース１２２２は、ＣＰＵ１２１２の制御下、ＲＡＭ１２１４、ハードディスクドライブ１２２４、ＤＶＤ−ＲＯＭ１２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【０１１１】
また、ＣＰＵ１２１２は、ハードディスクドライブ１２２４、ＤＶＤ‐ＲＯＭドライブ１２２６（ＤＶＤ−ＲＯＭ１２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ１２１４に読み取られるようにし、ＲＡＭ１２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ１２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【０１１２】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ１２１２は、ＲＡＭ１２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ１２１４に対しライトバックする。また、ＣＰＵ１２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ１２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【０１１３】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ１２００上またはコンピュータ１２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ１２００に提供する。
【０１１４】
本発明の実施形態が記述されたが、発明の技術的範囲は、上記記述された実施形態に限定されるものではない。当業者にとって、様々な代替及び改良が上記された実施形態に対してなされることが明らかである。そのような代替及び改良がなされた実施形態が本発明の技術的範囲に含まれることも、特許請求の範囲から明らかである。
【０１１５】
特許請求の範囲、実施形態、又は、図面に示される装置、システム、プログラム、及び、方法により実行される各プロセスにおける動作、手続き、ステップ、及び、段階は、「先だって」、「前に」等により順番が示されず、前のプロセスの出力が後のプロセスで使用されない限り、任意の順番で実行され得る。特許請求の範囲、実施形態、又は、図面において、プロセスのフローが「最初に」または「次に」等の語句を用いて記述されていた場合であっても、必ずしも当該プロセスがこの順番で実行されなければならないことを意味しない。
【符号の説明】
【０１１６】
１０  装置
１０５  記憶部
１１０  取得部
１２０  セット生成部
１３０  特定部
１４０  グループ化部
１４２  グラフ生成部
１４４  統合部
１４６  カラーリング部
１５０  設計部
９１０  第１グループ
９２０  第２グループ
１０１０  第１グループ
１０２０  第２グループ
１０３０  第３グループ
１１１０  量子回路
１１２０  量子回路
１１３０  量子回路
１２００  コンピュータ
１２０１  ＤＶＤ−ＲＯＭ
１２１０  ホストコントローラ
１２１２  ＣＰＵ
１２１４  ＲＡＭ
１２１６  グラフィックコントローラ
１２２０  入／出力コントローラ
１２２２  通信インタフェース
１２２４  ハードディスクドライブ
１２２６  ＤＶＤ−ＲＯＭドライブ
１２３０  ＲＯＭ
１２４０  入／出力チップ
１２４２  キーボード
１４００  量子回路
【図１】
2020144400.tif 000013
【図２】
2020144400.tif 000014
【図３】
2020144400.tif 000015
【図４】
2020144400.tif 000016
【図５】
2020144400.tif 000017
【図６】
2020144400.tif 000018
【図７】
2020144400.tif 000019
【図８】
2020144400.tif 000020
【図９】
2020144400.tif 000021
【図１０】
2020144400.tif 000022
【図１１】
2020144400.tif 000023
【図１２】
2020144400.tif 000024
【図１３】
2020144400.tif 000025
【図１４】
2020144400.tif 000026
【図１５】
2020144400.tif 000027
【外国語明細書】
2020144400000001.pdf