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

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

▶ 国立大学法人東京工業大学の特許一覧 ▶ 株式会社Quemixの特許一覧

特許7576804量子計算機、量子計算方法及びプログラム
<>
  • 特許-量子計算機、量子計算方法及びプログラム 図1
  • 特許-量子計算機、量子計算方法及びプログラム 図2
  • 特許-量子計算機、量子計算方法及びプログラム 図3
  • 特許-量子計算機、量子計算方法及びプログラム 図4
  • 特許-量子計算機、量子計算方法及びプログラム 図5
  • 特許-量子計算機、量子計算方法及びプログラム 図6
  • 特許-量子計算機、量子計算方法及びプログラム 図7
  • 特許-量子計算機、量子計算方法及びプログラム 図8
  • 特許-量子計算機、量子計算方法及びプログラム 図9
  • 特許-量子計算機、量子計算方法及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-24
(45)【発行日】2024-11-01
(54)【発明の名称】量子計算機、量子計算方法及びプログラム
(51)【国際特許分類】
   G06N 10/60 20220101AFI20241025BHJP
【FI】
G06N10/60
【請求項の数】 19
(21)【出願番号】P 2022505105
(86)(22)【出願日】2021-02-17
(86)【国際出願番号】 JP2021005889
(87)【国際公開番号】W WO2021177031
(87)【国際公開日】2021-09-10
【審査請求日】2023-12-20
(31)【優先権主張番号】P 2020038500
(32)【優先日】2020-03-06
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】304021417
【氏名又は名称】国立大学法人東京科学大学
(73)【特許権者】
【識別番号】519307850
【氏名又は名称】株式会社Quemix
(74)【代理人】
【識別番号】110002789
【氏名又は名称】弁理士法人IPX
(72)【発明者】
【氏名】松下 雄一郎
(72)【発明者】
【氏名】小杉 太一
(72)【発明者】
【氏名】西 紘史
【審査官】大倉 崚吾
(56)【参考文献】
【文献】BAUER, Bela et al.,"Quantum algorithms for quantum chemistry and quantum materials science",arXiv [online],2020年01月10日,p. 1-30,[2024年09月30日検索],インターネット<URL:https://arxiv.org/abs/2001.03685v1>,2001.03685v1
【文献】YETER-AYDENIZ, Kubra et al.,"Practical Quantum Computation of Chemical and Nuclear Energy Levels Using Quantum Imaginary Time Evolution and Lanczos Algorithms",arXiv [online],2019年12月12日,p. 1-10,[2024年09月30日検索],インターネット<URL:https://arxiv.org/abs/1912.06226v1>,1912.06226v1
【文献】BRIDGEMAN, Jacob C. et al.,"Hand-waving and interpretive dance: an introductory course on tensor networks",Journal of Physics A: Mathematical and Theoretical [online],IOP Publishing Ltd,2017年05月10日,Vol. 50,223001,p. 1-61,[2021年04月15日検索],インターネット<URL:https://iopscience.iop.org/article/10.1088/1751-8121/aa6dc3/meta>,DOI: 10.1088/1751-8121/aa6dc3
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
(57)【特許請求の範囲】
【請求項1】
虚時間発展法を用いて最適化問題を処理可能な量子計算機であって、
量子プロセッサと、記憶部とを備え、
前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、次の各ステップを実行するように構成され、
コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、
演算ステップでは、前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行し、ここで、前記虚時間発展演算子がユニタリ化されるにあたり、前記第1の演算子は、少数量子ビット操作のみからなる第2の演算子の級数和として表される、もの。
【請求項2】
請求項1に記載の量子計算機において、
前記第1の演算子は、互い独立した第1の添字組を含み、
前記第2の演算子は、前記第1の添字組とは独立した第2の添字組を含む、もの。
【請求項3】
請求項1又は請求項2に記載の量子計算機において、
前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、特定ステップをさらに実行するように構成され、
前記特定ステップでは、前記量子ゲートによって前記虚時間発展された前記コスト関数の、前記所望の準位を特定する、もの。
【請求項4】
請求項1~請求項3の何れか1つに記載の量子計算機において、
1つの前記量子ゲートは、前記最適化問題を解くにあたり前記コスト関数に含まれる量子ビット数のオーダのゲート数を有する、もの。
【請求項5】
請求項4に記載の量子計算機において、
前記最適化問題は、古典コンピュータにおいて指数関数的に計算数が増大する問題、電子状態計算において現れる問題、又は機械学習において現れる最適化問題を含む、もの。
【請求項6】
虚時間発展法を用いて最適化問題を処理可能な量子計算機であって、
量子プロセッサと、記憶部とを備え、
前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、次の各ステップを実行するように構成され、
コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、
演算ステップでは、
前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行し、
前記虚時間発展演算子がユニタリ化されるにあたり、虚時間ステップ単位で本来実施される第1のゲート操作を、臨界回数まとめて1つの新たな第2のゲート操作として扱って、演算を実行する、もの。
【請求項7】
請求項6に記載の量子計算機において、
前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、回数決定ステップをさらに実行するように構成され、
前記回数決定ステップでは、前記第1のゲート操作を実施した場合と前記第2のゲート操作を実施した場合との虚時間発展の誤差が所定範囲内になるように、前記臨界回数を決定する、もの。
【請求項8】
請求項7に記載の量子計算機において、
前記回数決定ステップでは、前記第2のゲート操作ごとに前記臨界回数をそれぞれ決定する、もの。
【請求項9】
請求項8に記載の量子計算機において、
前記回数決定ステップでは、
前記臨界回数を1ずつ増加させる増加処理を繰り返し実行し、
所定回次における前記増加処理において、系のエネルギーが上昇した場合に、前記増加処理を中断し、この所定回次又はこれより1小さい値を前記臨界回数に設定する、もの。
【請求項10】
虚時間発展法を用いて最適化問題を処理可能な量子計算方法であって、
コスト関数設定ステップと、演算ステップとを備え、
前記コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、
前記演算ステップでは、前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行し、ここで、前記虚時間発展演算子がユニタリ化されるにあたり、前記第1の演算子は、少数量子ビット操作のみからなる第2の演算子の級数和として表される、方法。
【請求項11】
請求項10に記載の量子計算方法において、
前記第1の演算子は、互い独立した第1の添字組を含み、
前記第2の演算子は、前記第1の添字組とは独立した第2の添字組を含む、方法。
【請求項12】
請求項10又は請求項11に記載の量子計算方法において、
特定ステップをさらに備え、
前記特定ステップでは、前記量子ゲートによって前記虚時間発展された前記コスト関数の、前記所望の準位を特定する、方法。
【請求項13】
請求項10~請求項12の何れか1つに記載の量子計算方法において、
1つの前記量子ゲートは、前記最適化問題を解くにあたり前記コスト関数に含まれる量子ビット数のオーダのゲート数を有する、もの。
【請求項14】
請求項13に記載の量子計算方法において、
前記最適化問題は、古典コンピュータにおいて指数関数的に計算数が増大する問題、電子状態計算において現れる問題、又は機械学習において現れる最適化問題を含む、方法。
【請求項15】
虚時間発展法を用いて最適化問題を処理可能な量子計算方法であって、
コスト関数設定ステップと、演算ステップとを備え、
前記コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、
前記演算ステップでは、
前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展を実施し、
前記虚時間発展演算子がユニタリ化されるにあたり、虚時間ステップ単位で本来実施される第1のゲート操作を、臨界回数まとめて1つの新たな第2のゲート操作として扱って、演算を実行する、方法。
【請求項16】
請求項15に記載の量子計算方法において、
回数決定ステップをさらに備え、
前記回数決定ステップでは、前記第1のゲート操作を実施した場合と前記第2のゲート操作を実施した場合との虚時間発展の誤差が所定範囲内になるように、前記臨界回数を決定する、方法。
【請求項17】
請求項16に記載の量子計算方法において、
前記回数決定ステップでは、前記第2のゲート操作ごとに前記臨界回数をそれぞれ決定する、方法。
【請求項18】
請求項17に記載の量子計算方法において、
前記回数決定ステップでは、
前記臨界回数を1ずつ増加させる増加処理を繰り返し実行し、
所定回次における前記増加処理において、系のエネルギーが上昇した場合に、前記増加処理を中断し、この所定回次又はこれより1小さい値を前記臨界回数に設定する、方法。
【請求項19】
プログラムであって、
コンピュータに、請求項10~請求項18の何れか1つに記載の量子計算方法の各ステップを実行させる、もの。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子計算機、量子計算方法及びプログラムに関する。
【背景技術】
【0002】
量子力学を情報処理に用いた量子情報処理が提案されている。また、このような量子情報処理に基づく量子計算機が、多く研究されている。
【0003】
例えば、非特許文献1には、虚時間発展法を用いた量子計算アルゴリズムが開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Mario Motta,Chong Sun,Adrian T.K.Tan,Matthew J.O’Rourke,Erika Ye,Austin J.Minnich,Fernando G.S.L.Brandao and Garnet Kin-Lic Chan “Determining eigenstates and thermal states on a quantum computer using quantum imaginary time evolution”,Nature Physics 16,205-210(2020)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、NISQにおけるゲート操作数には、大きくとる事ができないという厳しい上限値がある。ゲート操作数が膨大となると量子計算機として実現することがそもそも困難となるだけではなく、ゲート操作時に発生するエラーの影響を大きく受けることにもなる。そのため、ゲート操作数を可能な限り削減した量子計算機、量子計算手法及びプログラムが重要になっている。
【0006】
本発明では上記事情を鑑み、全体のゲート操作数を削減した量子計算機に関する技術を提供することとした。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、虚時間発展法を用いて最適化問題を処理可能な量子計算機が提供される。この量子計算機は、量子プロセッサと、記憶部とを備える。量子プロセッサは、記憶部に記憶されたプログラムを読み出すことで、次の各ステップを実行するように構成される。コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定する。コスト関数は、複数の準位を確率的に有する。演算ステップでは、第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行する。虚時間発展演算子がユニタリ化されるにあたり、第1の演算子は、少数量子ビット操作のみからなる第2の演算子の級数和として表される。
【0008】
このような量子計算機では、虚時間発展法を用いた際の通常のゲート操作数よりも合計のゲート操作数が小さくなるので、現実的なNISQのハードウェアとして実現されうる。
【図面の簡単な説明】
【0009】
図1】量子計算機1のハードウェア構成を示すブロック図である。
図2】量子計算機1(制御部5)の機能構成を示すブロック図である。
図3】所定の量子ビット数で打ち切った場合の虚時間発展演算子U(Δτ)を実行するために必要ゲート操作数と、問題のサイズとの関係を示している。
図4】要素数がN=10のMax-cut問題の概要図の1つの例である。
図5】虚時間発展させた場合の、従来(比較例)と本実施形態に係る所望の準位Eへの収束の態様を示している。
図6】要素数がN=10のMax-cut問題の概要図のもう1つの例である。
図7】虚時間発展させた場合の、従来(比較例)と本実施形態に係る所望の準位Eへの収束の態様を示している。
図8】本実施形態に係るゲート操作を示すブロック図である。
図9図4で表されるMax-cut問題へと、新しい量子計算方法(D=2)で虚時間発展させた場合と、新しい量子計算方法(D=2)に加えてゲート操作の束化を行った虚時間発展をさせた場合の、所望の準位Eへの収束の態様を示している。
図10】量子計算方法の一例を示すアクティビティ図である。
【発明を実施するための形態】
【0010】
以下、図面を用いて本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。
【0011】
ところで、本実施形態に登場するソフトウェアを実現するためのプログラムは、コンピュータが読み取り可能な非一時的な記録媒体(Non-Transitory Computer-Readable Medium)として提供されてもよいし、外部のサーバからダウンロード可能に提供されてもよいし、外部のコンピュータで当該プログラムを起動させてクライアント端末でその機能を実現(いわゆるクラウドコンピューティング)するように提供されてもよい。
【0012】
また、本実施形態において「部」とは、例えば、広義の回路によって実施されるハードウェア資源と、これらのハードウェア資源によって具体的に実現されうるソフトウェアの情報処理とを合わせたものも含みうる。また、本実施形態においては様々な情報を取り扱うが、これら情報は、例えば電圧・電流を表す信号値の物理的な値、0または1で構成される2進数のビット集合体としての信号値の高低、または量子的な重ね合わせ(いわゆる量子ビット)によって表され、広義の回路上で通信・演算が実行されうる。
【0013】
また、広義の回路とは、回路(Circuit)、回路類(Circuitry)、プロセッサ(Processor)、およびメモリ(Memory)等を少なくとも適当に組み合わせることによって実現される回路である。すなわち、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、およびフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等を含むものである。
【0014】
1.ハードウェア構成
本節では、虚時間発展法を用いて最適化問題を処理可能に構成された量子計算機1のハードウェア構成について説明する。
【0015】
図1は、量子計算機1のハードウェア構成を示すブロック図である。図1に示されるように、量子計算機1は、通信部3と、記憶部4と、制御部5と、表示部6と、入力部7とを有し、これらの構成要素が量子計算機1の内部において通信バス2を介して接続されている。以下、各構成要素についてさらに説明する。
【0016】
(通信部3)
通信部3は、量子計算機1が他の情報処理装置(古典計算機、量子計算機又はそれらを組み合わせた計算機を含む)又は周辺機器と情報通信をするために使用される。通信部3は、量子メモリ、USB、IEEE1394、Thunderbolt、有線LANネットワーク通信等といった有線型の通信手段が好ましいものの、無線LANネットワーク通信、3G/LTE/5G等のモバイル通信、Bluetooth(登録商標)通信等を必要に応じて含めてもよい。すなわち、これら複数の通信手段の集合として実施することがより好ましい。
【0017】
(記憶部4)
記憶部4は、前述の記載により定義される様々な情報を記憶する。これは、例えば量子メモリ、ソリッドステートドライブ(Solid State Drive:SSD)等のストレージデバイスとして、あるいは、プログラムの演算に係る一時的に必要な情報(引数、配列等)を記憶する量子メモリ、ランダムアクセスメモリ(Random Access Memory:RAM)等のメモリとして実施されうる。また、これらの組合せであってもよい。
【0018】
特に、記憶部4は、次に説明する制御部5が読み出し可能な、コスト関数設定部プログラムと、初期化プログラムと、量子ゲートプログラムと、回数決定プログラムと、特定プログラムとを記憶している。また、記憶部4は、量子計算機1によって処理可能な最適化問題を必要に応じて記憶する。
【0019】
(制御部5)
制御部5は、量子計算機1に関連する全体動作の処理・制御を行う。制御部5は、例えば不図示の中央処理装置(Central Processing Unit:CPU)である。より好ましくは、制御部5は、量子プロセッサである。制御部5は、記憶部4に記憶された、又は通信部3を介して入力される所定のプログラムを読み出すことによって、量子計算機1に係る種々の機能を実現する。具体的にはコスト関数設定機能と、初期化機能と、量子ゲート機能と、回数決定機能と、特定機能とが該当する。すなわち、ソフトウェア(記憶部4に記憶されている、又は通信部3を介して他の情報処理装置から入力されている)による情報処理がハードウェア(制御部5)によって具体的に実現されることで、図2に示されるような、コスト関数設定部51、初期化部52、量子ゲート53、回数決定部54及び特定部55として実行されうる。これらについては、第2節において詳述する。
【0020】
なお、図1においては、単一の制御部5として表記されているが、実際はこれに限るものではなく、機能ごとに複数の制御部5を有するように実施してもよい。またそれらの組合せであってもよい。
【0021】
(表示部6)
表示部6は、例えば、量子計算機1の筐体に含まれるものであってもよいし、外付けされるものであってもよい。表示部6は、ユーザが操作可能なグラフィカルユーザインターフェース(Graphical User Interface:GUI)の画面を表示する。これは例えば、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ及びプラズマディスプレイ等の表示デバイスを適宜実施することが好ましい。
【0022】
(入力部7)
入力部7は、量子計算機1の筐体に含まれるものであってもよいし、外付けされるものであってもよい。例えば、入力部7は、表示部6と一体となってタッチパネルとして実施されてもよい。タッチパネルであれば、ユーザは、タップ操作、スワイプ操作等を入力することができる。もちろん、タッチパネルに代えて、スイッチボタン、マウス、QWERTYキーボード等を採用してもよい。ユーザは、入力部7を介して量子計算機1に処理させる最適化問題(例えば後述のMax-cut問題)を入力することができる。
【0023】
2.機能構成
本節では、本実施形態に係る量子計算機1の機能構成について説明する。図2は、量子計算機1(制御部5)の機能構成を示すブロック図である。前述の制御部5に関して、量子計算機1は、コスト関数設定部51と、初期化部52と、量子ゲート53と、回数決定部54と、特定部55とを備える。以下、各構成要素についてさらに説明する。
【0024】
(コスト関数設定部51)
コスト関数設定部51は、ユーザによって入力部7、又は通信部3を介して入力された最適化問題に対し、2量子ビットに作用する第1の演算子L_ijの級数和として所定のコスト関数Lを設定するように構成される。ここでコスト関数Lは、複数の準位を確率的に有する。つまり、コスト関数Lは量子力学的に複数の解を重ね合わせて保持するもので、観測によってそのうちの1つが確率的に定まるものである。
【0025】
(初期化部52)
初期化部52は、コスト関数設定部51が設定したコスト関数Lを初期化するように構成される。例えば、初期化部52は、初期状態としてすべての量子ビットにアダマールゲートを作用させることで、コスト関数Lを初期化することができる。初期化されたコスト関数Lは、複数の準位を等確率に有することとなる。また、複数の準位を等確率に有する初期状態を用いる以外に、他の何らかの方法で生成された状態を初期状態として用いることもできる。
【0026】
(量子ゲート53)
量子ゲート53は、第1の演算子L_ijに依存する虚時間発展演算子Uを含む。また、量子ゲート53は、複数の(例えばX個の)量子ゲート531,532,533,…,53Xからなる(図2参照)。量子ゲート53は、虚時間発展演算子Uにより複数の準位のうち所望の準位Eの存在確率を増加させる虚時間発展の演算を実行するように構成される。ところで、量子ゲート53による演算では、演算子のユニタリ化が必須となる。例えば、虚時間発展演算子Uをユニタリ化する際には、第1の演算子L_ijが2量子ビット、3量子ビット、4量子ビット、又はそれ以上の量子ビットの級数和として表現することができる。
【0027】
しかしながら、2量子ビットで打ち切った場合のゲート操作数は量子ビット数Nを用いて16N程度、3量子ビットで打ち切った場合のゲート操作数は96N程度、4量子ビットで打ち切った場合のゲート操作数は512N程度、一般にD量子ビット操作までで打ち切った場合のゲート操作数は4^D*D(N-1)/2といったように、量子ビット数に応じてゲート操作数が指数関数的に増加してしまう。また、通常、有意義な計算精度を維持するには6量子ビット操作程度は少なくとも必要なことが知られているため、多くのゲート操作数が必要となり、このような虚時間発展演算子Uを用いることはNISQに適した計算量にならない。(図3参照)
【0028】
そこで、本実施形態では、虚時間発展演算子Uがユニタリ化されるにあたり、第1の演算子L_ijが少数量子ビット操作のみからなる第2の演算子A_kl、A_klm、、、の級数和として表されるように、創意工夫されている。ここでいう少数量子ビットとは、2,3,4,5量子ビットであり、好ましくは、2,3,4量子ビットであり、さらに好ましくは、2,3量子ビットであり、最も好ましくは、2量子ビットである。換言すると、少数量子ビット操作までで打ち切ることで、1つの量子ゲート53におけるゲート操作数を削減することができる。なお、好ましくは、第1の演算子L_ijは、互い独立した第1の添字組ijを含み、第2の演算子A_kl、A_klm、、、は、第1の添字組ijとは独立した第2の添字組kl、klm、、、を含む。これにより、一般にD量子ビット操作までで打ち切った場合のゲート操作数は 4^D*N^{D-1}のオーダに抑えることができる。例えば、第2の演算子を2量子ビット操作までで打ち切った場合のゲート操作数は16N程度になり、3量子ビット操作までで打ち切った場合は64N^2程度となる。(ただし、3量子ビット操作までで打ち切った場合でも、第2の演算子A_klmの一部分のみを取り込むことで、ゲート操作数をオーダNに下げることもできる。)例えば、重み付きグラフのノードを2つのグループに分割する問題(いわゆるMax-cut問題)は、一般性を失うことなく取り扱うことの可能な最適化問題の一例である。このような最適化問題に対して、第2の演算子として、2量子ビット操作までで打ち切っても十分な精度であることを確認しており、1つの量子ゲート53は、最適化問題を解くにあたり16N程度のオーダのゲート操作数を有することとなる。図4は、要素数がN=10のMax-cut問題の概要図である。もちろんあくまでも例示であり、古典コンピュータにおいて指数関数的に計算数が増大する最適化問題の他、電子状態計算や機械学習等において現れる最適化問題を含むものであれば、どのような問題を設定してもよい。
【0029】
(回数決定部54)
本実施形態では、虚時間発展演算子Uがユニタリ化されるにあたり、虚時間ステップΔτ単位で本来実施される第1のゲート操作を、臨界回数Δkまとめて1つの新たな第2のゲート操作として扱うことがより好ましい。このような場合において、回数決定部54は、第1のゲート操作を実施した場合と第2のゲート操作を実施した場合との虚時間発展の誤差が所定範囲内になるように、臨界回数Δkを決定するように構成される。回数決定部54が決定する臨界回数Δkの回数は一意的に決定される必要はなく、好ましくは、回数決定部54は、第2のゲート操作ごとに臨界回数Δkをそれぞれ決定するように構成される。つまり、回数決定部54によれば、ゲート操作数を約1/Δk倍に削減することができる。
【0030】
臨界回数Δkの決定する方法として、好ましくは、回数決定部54は、臨界回数を1ずつ増加させる増加処理を繰り返し実行し、所定回次における増加処理において、系のエネルギーが上昇した場合に、増加処理を中断し、この所定回次又はこれより1小さい値を臨界回数に設定する。換言すると、Δkの値を1増やす増加処理を適宜行いながら、第1のゲート操作を順次、第2のゲート操作としてまとめたものを生成し、あるタイミングでのΔkを1増やす増加処理の前と後とで、第2の演算子を作用させた際に、系のエネルギーが上昇している場合は、Δkの値の更新をそこで打ち切ればよい。これは、まとめたことにより、虚時間発展の誤差が蓄積し、虚時間発展演算子Uによりエネルギーを下げる効果よりも誤差の大きさが同等レベルにまで大きくなるためである。
【0031】
(特定部55)
特定部55は、量子ゲート53によって虚時間発展されたコスト関数Lの、所望の準位Eを特定するように構成される。前述の通り、量子ゲート53及び回数決定部54を、必要数繰り返すことで、コスト関数Lが虚時間発展され、その結果、所望の準位E(低いコスト又は、低いエネルギー)の存在確率が増加する。図4に示されるMax-cut問題であれば、特定部55で特定された準位Eに-1を乗じた値を最適化問題の解として特定することができ、解として11が特定される。
【0032】
3.理論
本説では、前述した機能構成に関する量子力学的な理論について補足する。
【0033】
3.1 2量子ビット打ち切り
与えられた問題に対するコスト関数Lは、第1の演算子L_iを用いて数1のように表される。
【数1】
【0034】
また、これ対してNΔτだけ虚時間方向に時間を進める虚時間発展演算子U(NΔτ)は、数2にように表される。
【数2】
【0035】
さらに、Δτだけ虚時間方向に時間を進める虚時間発展演算子U(Δτ)は、数3のように表される。
【数3】
【0036】
したがって、虚時間発展演算子U(NΔτ)は、虚時間発展演算子U(Δτ)の積として、数4のように表される。
【数4】
【0037】
各虚時間発展演算子U(Δτ)において、N_pair(N^2のオーダ量)回のゲート操作があるため、Δτのステップ数がN_stepであるとすると、一般的にトータルのゲート操作数は、数5のように表される。
【数5】
【0038】
ここで、第1の演算子L_iは通常2量子ビットに作用する演算子であるため、改めて第1の演算子L_ijと書くことにする。虚時間発展演算子Uをユニタリ化するにあたって、虚時間ステップの良いユニタリ化を実現するために、虚時間発展演算子Uに含まれるL_ijは、2以上量子ビット操作で表される(数6参照)。
【数6】
【0039】
図3は、所定の量子ビット数で打ち切った場合の虚時間発展演算子U(Δτ)を実行するために必要ゲート操作数と、問題のサイズとの関係を示している。比較例Aは、4量子ビット操作での打ち切りである。比較例Bは、3量子ビット操作での打ち切りである。比較例Cは、2量子ビット操作での打ち切りである。このように、D量子ビット操作は、4^D*D(N-1)/2個のゲート操作を含むため、できるだけ多重量子ビット以上の操作を含ませたくない。一方で、計算精度を維持したユニタリ化を実現するには6量子ビット操作以上が必要であることが以下の実証例からも示される。
【0040】
発明者らは、数7に示されるように、第1の演算子L_ijに含まれる第1の添字組ijとは独立した第2の添字組kl、klm、、、を有する第2の演算子A_kl、A_klm、、、の級数和として、第1の演算子L_ijを表すことで、少数量子ビット操作で打ち切ったとしても十分な精度を保つことを新たに発見し、本実施形態では、これを採用するものとした。
【数7】
【0041】
図5にて、本計算手法の有効性実証として、図4に示されるMax-cut問題に対する適用結果を示す。本計算手法、プログラム、及び本量子計算機は、量子計算機上にて実行するものであるが、ここでは古典計算機を用いた量子計算機のシミュレーションにて、前記計算手法、プログラム、本量子計算機の有効性を実証した。
【0042】
図5では、虚時間発展させた場合の、従来法(比較のため)と本実施形態に係る所望の準位Eへの収束の態様を示している。図5から、新しい計算手法の有効性を実証した。従来法ではD=2で打ち切ると精度が出ていないが、D=6で打ち切ることにより十分な精度を有している事がわかる。一方で、新しい計算手法では、D=2で既にD=6(従来法)相当の精度が出ている事がわかる。その一方で、D=6(従来法)でのゲート操作数に比べて、新しいD=2でのゲート操作数は768分の一になっており、NISQ向けになっている事に注意されたい。さらに、図6で表される要素数がN=10の別のMax-cut問題へと従来法と新しい計算手法とを適用し比較を行ってみると、従来法ではD=6においてさえも、精度が出ていない一方で、新しい計算手法ではD=2で既に良い精度を出していることがわかる。(図7参照)
【0043】
図8は、本実施形態に係るゲート操作を示すブロック図である。図7に示されるように、2量子ビットで打ち切った本実施形態の場合、(また、2量子ビット操作で打ち切っても十分な精度を有していることは確認している)ゲート操作数がN回(Nは量子ビット数)オーダへと大幅に小さくなる。このようにゲート操作数を削減することで、NISQへの実装可能性が高まったことに留意されたい。
【0044】
3.2 ゲート操作の束化
本実施形態では、さらにゲート操作数を削減するために、数8に示される近似に着目する。
【数8】
【0045】
かかる近似は、好ましくは、Δτが十分に小さく、Δτの1次のオーダで許容しうるものである。あくまでも近似であるため、虚時間発展全体として使用することは好ましくないが、所定の誤差の範囲内であれば、例えば3回のゲート操作(第1のゲート操作)を1回分にまとめた操作(第2のゲート操作)とすることができる(数9参照)。このように第1のゲート操作を第2のゲート操作としてまとめる個数N_criticalが、前述の臨界回数Δkに相当する。
【数9】
【0046】
したがって、このようなゲート操作の束化によれば、トータルのゲート操作数は数10のように表される。このようにゲート操作数をさらに削減することで、NISQへの実装可能性がさらに高まったことに留意されたい。
【数10】
【0047】
図9は、図4で表されるMax-cut問題へと、新しい量子計算方法(D=2)で虚時間発展させた場合と、新しい量子計算方法(D=2)に加えてゲート操作の束化を行った虚時間発展をさせた場合の所望の準位Eへの収束の態様を示している。第2のゲート操作を繰り返すことで、図9に示されるように、所望の準位Eの存在確率を1に近い値に収束させることができる。これは、ゲート操作の束化を行わない場合と比較しても遜色ないことが分かる。
【0048】
4.量子計算方法
本節では、量子計算機1に基づく量子計算方法について説明する。この量子計算方法は、コスト関数設定ステップと、虚時間発展ステップとを備える。コスト関数設定ステップでは、2量子ビットに作用する第1の演算子L_ijの級数和として所定のコスト関数Lを設定する。ここでコスト関数Lは、複数の準位を確率的に有する。虚時間発展ステップでは、第1の演算子L_ijに依存する虚時間発展演算子Uにより複数の準位のうち所望の準位Eの存在確率を増加させる虚時間発展を実施する。ここで、虚時間発展演算子Uがユニタリ化されるにあたり、第1の演算子L_ijは、少数量子ビット操作のみからなる第2の演算子A_kl、A_klm、、、の級数和として表される。好ましくは、虚時間発展演算子Uがユニタリ化されるにあたり、虚時間ステップΔτ単位で本来実施される第1のゲート操作を、臨界回数Δkでまとめて1つの新たな第2のゲート操作として扱う。本計算手法は、量子計算機上にて実行、又は古典計算機上にて量子計算機シミュレーションとして実行するものである。
【0049】
図10は、量子計算方法の一例を示すアクティビティ図である。以下、図10における各アクティビティに沿ってこの量子計算方法を説明する。
【0050】
(アクティビティA1)
予め入力部7、又は通信部3によって入力された最適化問題に対して、コスト関数設定部51が、コスト関数Lを設定する。換言すると、制御部5の一例である量子プロセッサが、記憶部4に記憶されたプログラムを読み出すことで、コスト関数設定ステップを実行する。
【0051】
(アクティビティA2及びA3)
初期化部52が、コスト関数Lの量子ビットを初期化する。前述の少数量子ビット操作(2量子ビット、又は3量子ビット程度の操作)で打ち切った第1の演算子L_ijが設定されている。
【0052】
(アクティビティA4~A6)
アクティビティA4~A6は、虚時間発展のプロセスとして繰り返し実行される。まず、回数決定部54が複数の第1のゲート操作を誤差が許容できる範囲で第2のゲート操作として束ねられる臨界回数Δkを決定する。換言すると、制御部5の一例である量子プロセッサが、記憶部4に記憶されたプログラムを読み出すことで、臨界回数決定ステップを実行する。そして、量子ゲート53がこれらをまとめて第2のゲート操作として実行する。その後、kをΔkだけ進めて処理を繰り返す。これにより虚時間発展が進行する。換言すると、制御部5の一例である量子プロセッサが、記憶部4に記憶されたプログラムを読み出すことで、演算ステップを実行する。
【0053】
(アクティビティA7)
虚時間発展がなされると、特定部55は、存在確率が1に収束した所望の準位Eを特定する。換言すると、制御部5の一例である量子プロセッサが、記憶部4に記憶されたプログラムを読み出すことで、特定ステップを実行する。
【0054】
5.変形例
本節では、量子計算機1の変形例について説明する。すなわち、次のような態様によって、本実施形態に係る量子計算機1をさらに創意工夫してもよい。
【0055】
(1)少数量子ビット打ち切りによる効果と、ゲート操作の束化による効果とは、独立に生じるため、何れか一方だけを実施してもよい。
(2)コンピュータに、量子計算機1における各ステップを実行させるプログラムを実施してもよい。このプログラムは、サーバからダウンロード可能な態様であってもよいし、クラウドコンピュータ上におけるプログラムの実行や配布であっても良いし、不揮発性又は揮発性の記憶媒体に記憶させて、このようなプログラムが頒布されてもよい。
【0056】
6.結言
以上のように、本実施形態によれば、全体のゲート操作数を削減した量子計算機、量子計算方法及びプログラムを実施することができる。
【0057】
次に記載の各態様で提供されてもよい。
前記量子計算機において、前記第1の演算子は、互い独立した第1の添字組を含み、前記第2の演算子は、前記第1の添字組とは独立した第2の添字組を含む、もの。
前記量子計算機において、前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、特定ステップをさらに実行するように構成され、前記特定ステップでは、前記量子ゲートによって前記虚時間発展された前記コスト関数の、前記所望の準位を特定する、もの。
前記量子計算機において、1つの前記量子ゲートは、前記最適化問題を解くにあたり前記コスト関数に含まれる量子ビット数のオーダのゲート数を有する、もの。
前記量子計算機において、前記最適化問題は、古典コンピュータにおいて指数関数的に計算数が増大する問題、電子状態計算において現れる問題、又は機械学習において現れる最適化問題を含む、もの。
虚時間発展法を用いて最適化問題を処理可能な量子計算機であって、量子プロセッサを備え、前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、次の各ステップを実行するように構成され、コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、演算ステップでは、前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行し、前記虚時間発展演算子がユニタリ化されるにあたり、虚時間ステップ単位で本来実施される第1のゲート操作を、臨界回数まとめて1つの新たな第2のゲート操作として扱って、演算を実行する、もの。
前記量子計算機において、前記量子プロセッサは、前記記憶部に記憶されたプログラムを読み出すことで、回数決定ステップをさらに実行するように構成され、前記回数決定ステップでは、前記第1のゲート操作を実施した場合と前記第2のゲート操作を実施した場合との虚時間発展の誤差が所定範囲内になるように、前記臨界回数を決定する、もの。
前記量子計算機において、前記回数決定ステップでは、前記第2のゲート操作ごとに前記臨界回数をそれぞれ決定する、もの。
前記量子計算機において、前記回数決定ステップでは、前記臨界回数を1ずつ増加させる増加処理を繰り返し実行し、所定回次における前記増加処理において、系のエネルギーが上昇した場合に、前記増加処理を中断し、この所定回次又はこれより1小さい値を前記臨界回数に設定する、もの。
虚時間発展法を用いて最適化問題を処理可能な量子計算方法であって、コスト関数設定ステップと、演算ステップとを備え、前記コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、前記演算ステップでは、前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展の演算を実行し、ここで、前記虚時間発展演算子がユニタリ化されるにあたり、前記第1の演算子は、少数量子ビット操作のみからなる第2の演算子の級数和として表される、方法。
前記量子計算方法において、前記第1の演算子は、互い独立した第1の添字組を含み、前記第2の演算子は、前記第1の添字組とは独立した第2の添字組を含む、方法。
前記量子計算方法において、特定ステップをさらに備え、前記特定ステップでは、前記量子ゲートによって前記虚時間発展された前記コスト関数の、前記所望の準位を特定する、方法。
前記量子計算方法において、1つの前記量子ゲートは、前記最適化問題を解くにあたり前記コスト関数に含まれる量子ビット数のオーダのゲート数を有する、もの。
前記量子計算方法において、前記最適化問題は、古典コンピュータにおいて指数関数的に計算数が増大する問題、電子状態計算において現れる問題、又は機械学習において現れる最適化問題を含む、方法。
虚時間発展法を用いて最適化問題を処理可能な量子計算方法であって、コスト関数設定ステップと、演算ステップとを備え、前記コスト関数設定ステップでは、2量子ビットに作用する第1の演算子の級数和として所定のコスト関数を設定し、ここで前記コスト関数は、複数の準位を確率的に有し、前記演算ステップでは、前記第1の演算子に依存する虚時間発展演算子を含む量子ゲートにより、前記複数の準位のうち所望の準位の存在確率を増加させる虚時間発展を実施し、前記虚時間発展演算子がユニタリ化されるにあたり、虚時間ステップ単位で本来実施される第1のゲート操作を、臨界回数まとめて1つの新たな第2のゲート操作として扱って、演算を実行する、方法。
前記量子計算方法において、回数決定ステップをさらに備え、前記回数決定ステップでは、前記第1のゲート操作を実施した場合と前記第2のゲート操作を実施した場合との虚時間発展の誤差が所定範囲内になるように、前記臨界回数を決定する、方法。
前記量子計算方法において、前記回数決定ステップでは、前記第2のゲート操作ごとに前記臨界回数をそれぞれ決定する、方法。
前記量子計算方法において、前記回数決定ステップでは、前記臨界回数を1ずつ増加させる増加処理を繰り返し実行し、所定回次における前記増加処理において、系のエネルギーが上昇した場合に、前記増加処理を中断し、この所定回次又はこれより1小さい値を前記臨界回数に設定する、方法。
プログラムであって、コンピュータに、前記量子計算方法の各ステップを実行させる、もの。
もちろん、この限りではない。
【0058】
最後に、本発明に係る種々の実施形態を説明したが、これらは、例として提示したものであり、発明の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0059】
1 :量子計算機
2 :通信バス
3 :通信部
4 :記憶部
5 :制御部
51 :コスト関数設定部
52 :初期化部
53 :量子ゲート
531 :量子ゲート
532 :量子ゲート
533 :量子ゲート
53X :量子ゲート
54 :回数決定部
55 :特定部
6 :表示部
7 :入力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10