(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】量子回路の最適化方法、装置、量子計算機器、電子機器及びコンピュータプログラム
(51)【国際特許分類】
G06N 10/60 20220101AFI20241106BHJP
【FI】
G06N10/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024524590
(86)(22)【出願日】2023-05-25
(85)【翻訳文提出日】2024-04-24
(86)【国際出願番号】 CN2023096212
(87)【国際公開番号】W WO2024021819
(87)【国際公開日】2024-02-01
(31)【優先権主張番号】202210885994.4
(32)【優先日】2022-07-26
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】袁 佩
(72)【発明者】
【氏名】▲張▼ ▲勝▼誉
(57)【要約】
本発明は、量子計算技術に関し、量子回路の最適化方法、装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品を提供する。該方法は、最適化すべき量子回路を処理すべきユニタリ行列に変換し、処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得するステップと、各量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解するステップと、連結グラフの制限に従って、各量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定するステップと、第2の数のマッチ量子回路と第3の数の単一量子ビットゲートとを整合し、各量子ビット均一制御ゲートの目標量子回路を取得するステップと、第1の数の目標量子回路を接続し、最適化後の量子回路を取得するステップと、を含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
電子機器が実行する、量子回路の最適化方法であって、
最適化すべき量子回路を処理すべきユニタリ行列に変換し、前記処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得するステップと、
各前記量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解するステップと、
連結グラフの制限に従って、各前記量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定するステップと、
第2の数の前記マッチ量子回路と第3の数の前記単一量子ビットゲートとを整合し、各前記量子ビット均一制御ゲートの目標量子回路を取得するステップと、
第1の数の前記目標量子回路を接続し、最適化後の量子回路を取得するステップと、を含む、方法。
【請求項2】
前記処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得するステップは、
iを順次増加する正の整数とし、1≦i≦n、nを量子ビット数とし、
i回目の反復の初期ユニタリ行列に対して行列分解を行い、i回目の反復の分解結果を取得する処理であって、1回目の反復の初期ユニタリ行列は、前記処理すべきユニタリ行列である、処理と、
i回目の反復の分解結果からi回目の反復の量子ビット均一制御ゲート及びi回目の反復の生成ユニタリ行列を抽出する処理と、
前記i回目の反復の生成ユニタリ行列をi+1回目の反復の初期ユニタリ行列として決定する処理と、を反復的に実行するステップと、
n回の反復により取得された2
n-1個の量子ビット均一制御ゲートを第1の数の前記量子ビット均一制御ゲートとして決定するステップと、を含む、請求項1に記載の方法。
【請求項3】
前記量子ビット対角ユニタリ行列は、n個の量子ビットに対応し、
前記連結グラフの制限に従って、各前記量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定するステップは、
前記連結グラフの制限に従って、前記n個の量子ビットにそれぞれ対応する番号情報を決定するステップと、
前記n個の量子ビットの番号情報に基づいて、前記量子ビット対角ユニタリ行列から基準対角ユニタリ行列を抽出するステップであって、前記基準対角ユニタリ行列の目標ビットは番号情報がnである量子ビットであり、制御ビットは番号情報が前のn-1である量子ビットである、ステップと、
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する基準量子回路を決定するステップと、
制御NOT(CNOT)ゲートにより前記基準量子回路を変換し、残余対角ユニタリ行列に対応する変換量子回路を取得するステップであって、前記残余対角ユニタリ行列は、前記量子ビット対角ユニタリ行列のうちの前記基準対角ユニタリ行列以外の対角ユニタリ行列である、ステップと、
前記基準対角ユニタリ行列に対応する基準量子回路及び前記残余対角ユニタリ行列に対応する変換量子回路を前記量子ビット対角ユニタリ行列の前記マッチ量子回路として決定するステップと、を含む、請求項1に記載の方法。
【請求項4】
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する基準量子回路を決定するステップは、
前記基準対角ユニタリ行列について複数の量子ビット系列を生成するステップと、
各前記量子ビット系列の末尾に第1の要素をそれぞれ追加し、複数の第1の量子ビット系列を取得し、各前記量子ビット系列の末尾に第2の要素をそれぞれ追加し、複数の第2の量子ビット系列を取得するステップと、
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する第1の量子回路を決定するステップであって、前記第1の量子回路は、複数の前記第1の量子ビット系列に対応する位相を標準基底に付加するために使用される、ステップと、
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する第2の量子回路を決定するステップであって、前記第2の量子回路は、複数の前記第2の量子ビット系列に対応する位相を前記標準基底に付加するために使用される、ステップと、
前記第1の量子回路及び前記第2の量子回路に基づいて、前記基準対角ユニタリ行列に対応する前記基準量子回路を決定するステップと、を含む、請求項3に記載の方法。
【請求項5】
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する第1の量子回路を決定するステップは、
前記n個の量子ビットの番号情報に基づいて、j番目の前記第1の量子ビット系列のマッチCNOTゲートを決定するステップであって、jは順次増加する正の整数であり、1≦j≦2
n-1-1、ステップと、
j+1番目の前記第1の量子ビット系列に基づいて、j番目の前記第1の量子ビット系列のマッチCNOTゲートの後に適用するマッチR量子ゲートを構築するステップと、
jが2
n-1-1となる場合、2
n-1-1個のマッチCNOTゲートとマッチR量子ゲートとを交互に接続し、候補サブ回路を取得するステップと、
補充R量子ゲート及び補充CNOTゲートを決定し、前記補充R量子ゲートと前記補充CNOTゲートとを接続し、補充サブ回路を取得するステップと、
前記候補サブ回路及び前記補充サブ回路に基づいて、前記第1の量子回路を決定するステップと、を含む、請求項4に記載の方法。
【請求項6】
前記補充R量子ゲートは1番目の量子ビット系列に基づいて決定され、前記補充CNOTゲートの制御ビットは番号情報が1である量子ビットであり、前記補充CNOTゲートの目標ビットは番号情報がnである量子ビットであり、
j番目の前記第1の量子ビット系列のマッチCNOTゲートの制御ビットに対応する番号情報はn及びjから計算され、j番目の前記第1の量子ビット系列のマッチCNOTゲートの目標ビットは番号情報がnである量子ビットである、請求項5に記載の方法。
【請求項7】
前記n個の量子ビットの番号情報に基づいて、前記基準対角ユニタリ行列に対応する第2の量子回路を決定するステップは、
前記基準対角ユニタリ行列に対応する実装すべき対角ユニタリ行列を決定するステップであって、前記実装すべき対角ユニタリ行列はn-1個の量子ビットに対応する、ステップと、
変換回路により前記実装すべきユニタリ行列を分解し、置換対角ユニタリ行列を取得するステップであって、前記変換回路は、前記実装すべきユニタリ行列に対応する第1の量子ビット集合における量子状態を第2の量子ビット集合における量子状態に置換するために使用される、ステップと、
前記n個の量子ビットの前記番号情報に基づいて、前記置換対角ユニタリ行列に対応する置換量子回路を決定するステップと、
前記変換回路と、前記置換量子回路と、前記変換回路に対応する逆変換回路との接続結果を、前記第2の量子回路として決定するステップであって、前記逆変換回路は、第2の量子ビット集合における量子状態を前記第1の量子ビット集合における量子状態に置換するために使用される、ステップと、を含む、請求項4に記載の方法。
【請求項8】
前記基準対角ユニタリ行列について複数の量子ビット系列を生成するステップは、
j番目の量子ビット系列の反転すべき量子ビットを決定し、前記反転すべき量子ビットにおける要素を反転し、j+1番目の量子ビット系列を取得するステップであって、2≦j≦2
n-1、1番目の量子ビット系列は、n-1個の第2の要素を配列することによって得られる、ステップと、
反復のjの値が2
n-1となる場合、2
n-1個の量子ビット系列を前記基準対角ユニタリ行列の複数の前記量子ビット系列として決定するステップと、を含む、請求項4に記載の方法。
【請求項9】
前記連結グラフの制限に従って、前記n個の量子ビットにそれぞれ対応する番号情報を決定するステップは、
前記連結グラフから目標木を抽出するステップであって、前記目標木は前記連結グラフにおける任意の1つの全域木であり、各量子ビットは前記目標木における1つのノードに対応する、ステップと、
前記目標木における各ノードに番号を付け、前記各ノードに対応するノード番号を取得するステップと、
前記各ノードに対応するノード番号を、各ノードに対応する量子ビットの番号情報として決定するステップと、を含む、請求項3に記載の方法。
【請求項10】
前記目標木における各ノードに番号を付け、前記各ノードに対応するノード番号を取得するステップは、
前記目標木における各ノードについて初期化番号を生成するステップと、
前記ノード番号がn-k+2であるノードについて子ノードが存在せず、或いは番号が初期化番号である子ノードが存在しない場合、ノード番号を有するノードから検索条件を満たす目標ノードを検索し、前記目標ノードの最も左側の子ノードのノード番号をn-k+1として決定するステップであって、前記検索条件は、番号が最大であり、且つ番号が初期化番号である子ノードが存在するノードであり、3≦k≦n、前記ノード番号nであるノードは前記目標木の根ノードであり、前記ノード番号がn-1であるノードは前記根ノードの最も左側のノードである、ステップと、
前記ノード番号がn-k+2であるノードについて子ノードが存在し、且つ前記子ノードの番号が初期化番号である場合、前記番号が初期化番号である子ノードのうちの最も左側の子ノードのノード番号をn-k+1として決定するステップと、を含む、請求項9に記載の方法。
【請求項11】
量子回路の最適化装置であって、
最適化すべき量子回路を処理すべきユニタリ行列に変換し、前記処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得する行列分解モジュールと、
各前記量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解する制御ゲート分解モジュールと、
連結グラフの制限に従って、各前記量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定する回路実装モジュールと、
第2の数の前記マッチ量子回路と第3の数の前記単一量子ビットゲートとを整合し、各前記量子ビット均一制御ゲートの目標量子回路を取得し、第1の数の前記目標量子回路を接続し、最適化後の量子回路を取得する接続整合モジュールと、を含む、装置。
【請求項12】
請求項1乃至10の何れかに記載の量子回路の最適化方法により実現される最適化量子回路を含む、量子計算機器。
【請求項13】
実行可能な命令が記憶されたメモリと、
前記メモリに記憶された実行可能な命令を実行する際に、請求項1乃至10の何れかに記載の量子回路の最適化方法を実現するプロセッサと、を含む、電子機器。
【請求項14】
プロセッサにより実行される際に、請求項1乃至10の何れかに記載の量子回路の最適化方法を実現する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年7月26日に出願した出願番号が202210885994.4である中国特許出願に基づく優先権を主張し、該中国特許出願の全ての内容を参照により本発明に援用する。
【0002】
本発明は、量子計算技術に関し、特に量子回路の最適化方法、装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品に関する。
【背景技術】
【0003】
量子回路における量子ゲートの数は量子アルゴリズムの実行時間と関連しており、演算効率を向上させ続けるために、量子アルゴリズムの実行時間をさらに低減させるように、量子回路を最適化してもよい。
【0004】
しかし、超伝導量子デバイスにおける量子回路には、無制限、経路制限、木制限、連結グラフの制限などの様々な制約が存在するため、任意のユニタリ行列の回路実装では、既存の回路制限のない量子回路に基づいて一般化すると、量子回路の最適化効果が低下してしまう。
【発明の概要】
【0005】
本発明の実施例は、量子回路の最適化効果を向上させることができる、量子回路の最適化方法、装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品を提供する。
【0006】
本発明の実施例の技術的手段は、以下の通りである。
【0007】
本発明の実施例では、電子機器が実行する、量子回路の最適化方法であって、最適化すべき量子回路を処理すべきユニタリ行列に変換し、前記処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得するステップと、各前記量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解するステップと、連結グラフの制限に従って、各前記量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定するステップと、第2の数の前記マッチ量子回路と第3の数の前記単一量子ビットゲートとを整合し、各前記量子ビット均一制御ゲートの目標量子回路を取得するステップと、第1の数の前記目標量子回路を接続し、最適化後の量子回路を取得するステップと、を含む、方法を提供する。
【0008】
本発明の実施例では、量子回路の最適化装置であって、最適化すべき量子回路を処理すべきユニタリ行列に変換し、前記処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得する行列分解モジュールと、各前記量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解する制御ゲート分解モジュールと、連結グラフの制限に従って、各前記量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定する回路実装モジュールと、第2の数の前記マッチ量子回路と第3の数の前記単一量子ビットゲートとを整合し、各前記量子ビット均一制御ゲートの目標量子回路を取得し、第1の数の前記目標量子回路を接続し、最適化後の量子回路を取得する接続整合モジュールと、を含む、装置を提供する。
【0009】
本発明の実施例では、本発明の実施例に係る量子回路の最適化方法により実現される最適化量子回路を含む、量子計算機器を提供する。
【0010】
本発明の実施例では、実行可能な命令が記憶されたメモリと、前記メモリに記憶された実行可能な命令を実行する際に、本発明の実施例に係る量子回路の最適化方法を実現するプロセッサと、を含む、電子機器を提供する。
【0011】
本発明の実施例では、実行可能な命令が記憶されたコンピュータ読み取り可能な記憶媒体であって、前記実行可能な命令は、プロセッサにより実行される際に、本発明の実施例に係る量子回路の最適化方法を実現する、記憶媒体を提供する。
【0012】
本発明の実施例では、コンピュータプログラム又は命令を含むコンピュータプログラム製品であって、前記コンピュータプログラム又は命令は、プロセッサにより実行される際に、本発明の実施例に係る量子回路の最適化方法を実現する、コンピュータプログラム製品を提供する。
【0013】
本発明の実施例は、以下の有利な効果を有する。電子機器は、最適化すべき量子回路を変換して得られた処理すべきユニタリ行列に対して反復分解を行い、分解により得られた量子ビット均一制御ゲートを分解し、量子ビット対角ユニタリ行列及び単一量子ビットゲートを取得する。最適化すべき量子回路の構造が比較的に複雑であり、機能を変えず、且つ連結グラフの制限を受ける前提で最適化すべき量子回路を最適化することができず、一方、量子ビット対角ユニタリ行列の量子回路の実装プロセスが比較的に簡単である。従って、量子回路の最適化問題を量子ビット対角ユニタリ行列の量子回路の実装問題に変換することで、量子回路の最適化を高効率に実現することができる。また、連結グラフの制限に従って、量子ビット対角ユニタリ行列についてマッチ量子回路を決定し、マッチ量子回路と単一量子ビットゲートとを整合して最適化量子回路を取得する。従って、連結グラフの制限の下で最適化された量子回路、即ち、演算速度がより速い最適化量子回路を取得し、量子回路の最適化の効果を向上させ、量子回路の最適化により量子計算効率を向上させることができる。
【図面の簡単な説明】
【0014】
【
図2】本発明の実施例に係る量子回路の最適化システムのアーキテクチャの概略図である。
【
図3】本発明の実施例に係る
図2におけるサーバの構成の概略図である。
【
図4】本発明の実施例に係る量子回路の最適化方法の概略的なフローチャートである。
【
図5】本発明の実施例に係るn-量子ビット均一制御ゲートの概略図である。
【
図6】本発明の実施例に係る量子ビット均一制御ゲートの分解の概略図である。
【
図7】本発明の実施例に係る連結グラフの概略図である。
【
図8】本発明の実施例に係る処理すべきユニタリ行列の分解結果の概略図である。
【
図9】本発明の実施例に係る量子回路の最適化方法のもう1つの概略的なフローチャートである。
【
図10】本発明の実施例に係る量子回路の最適化方法のさらにもう1つの概略的なフローチャートである。
【
図11】本発明の実施例に係るマッチ量子回路の概略図である。
【
図12】本発明の実施例に係る量子ビットの番号付けの概略図である。
【
図13】本発明の実施例に係る経路制限での制御NOT(CNOT)ゲートの回路実装の概略図である。
【発明を実施するための形態】
【0015】
本発明の目的、技術的手段及び利点をより明確にするために、以下は、図面を参照しながら本発明の実施例をさらに詳細に説明する。説明される実施例は、本発明を制限するものではなく、当業者は、創造的な作業を行うことなく得られる他の全ての実施例は、本発明の保護の範囲に属する。
【0016】
以下の説明では、言及される「幾つかの実施例」は、全ての可能な実施例のサブセットを説明しているが、「幾つかの実施例」は、全ての可能な実施例の同一又は異なるサブセットであってもよく、矛盾しない限り、互いに組み合わせられてもよい。
【0017】
以下の説明では、言及される用語「第1の」、「第2の」、「第3の」は、単なる類似のオブジェクトを区別するためのものであり、オブジェクトの特定の順序を表すものではない。なお、「第1の」、「第2の」、「第3の」は、許可されている場合に、記載される本発明の実施例が本明細書に図示又は記載されているもの以外の順序で実施できるように、特定の順序又は前後の順序を交換されてもよい。
【0018】
特に明記されていない限り、ここで使用される全ての技術用語及び科学用語は、当業者が通常理解できる意味と同一である。本明細書で使用される用語は、単なる本発明の実施例を説明するためのものであり、本発明を制限するものではない。
【0019】
本発明の実施例をさらに詳細に説明する前に、本発明の実施例に含まれる名詞及び用語を説明し、本発明の実施例に含まれる名詞及び用語は、以下の解釈に適している。
【0020】
(1)量子計算(Quantum Computation):量子状態の重ね合わせ及びエンタングルメントなどの性質を利用して、計算タスクを高速に実行する計算方法の1つである。
【0021】
(2)量子回路(Quantum Circuit):量子計算の記述モデルの1つであり、量子ビットと量子ビット上の量子操作を含む。量子回路は、一連の量子ゲートと測定シーケンスを含み、量子ゲートは計算を実行するために用いられ、測定シーケンスは計算結果を測定するために用いられる。
【0022】
(3)量子ビット(Qubit):量子情報の担持形式である。量子計算において、量子情報の単位は量子ビットであり、量子ビットは古典ビットに類似しているが、物理原子の量子的特性を加えたものである。
【0023】
(4)量子ゲート(Quantum Gate):少量の量子ビットを操作する基本的な量子回路である。量子ゲートは量子回路の基礎であり、論理ゲートとデジタル回路との関係のようである。量子ゲートは1つ又は2つの量子ビットに対して動作し、1つの量子ビットに対して動作する量子ゲートは単一量子ビットゲートであり、2つの量子ビットに対して動作する量子ゲートはダブル量子ビットゲートである。以下は、幾つかの量子ゲート及びその定義を次の表1に示す。
【0024】
表1 量子ゲート
【0025】
【表1】
(5)ユニタリ行列(Unitray Matrix):ユニタリ正方行列とも称され、量子ゲートを表すために使用される。即ち、任意の量子ゲートはユニタリ行列として表現できる。ユニタリ行列は、エルミート共役が逆行列に等しいことを表すために用いられる。実行列について、エルミート共役は転置であるため、実直交表現は転置行列が逆行列に等しいことを表す。
【0026】
(6)連結グラフ:1つの無向グラフにおいて、ノードiからノードjまでは経路でつながる場合、ノードiとノードjとが連結していると言う。無向グラフにおける任意の2つのノードが連結している場合、無向グラフは連結グラフと称される。
【0027】
量子計算は、計算タスクを高速に完成する特徴があるため、幾つかの古典コンピュータが解決し難い問題を解決することができる。例えば、素因数分解問題(integer factoring problem)ついて、量子計算を用いることで計算効率を指数的に向上させることができる。
【0028】
量子回路における量子ゲートの数は量子アルゴリズムの実行時間に対応しているため、演算効率を向上させ続けるために、量子アルゴリズムの実行時間をさらに低減させるように、量子回路を最適化してもよい。
【0029】
ノイジー中間スケール量子時代(NISQ era:Noisy intermediate-scale quantum Era)において、超伝導量子デバイスにおけるダブル量子ビットゲート(例えばCNOTゲート)の実装が制限され、例えば、特定の量子ビットペアに作用することのみを許可し、このような制限は、本発明の実施例ではグラフ制限と称される。
【0030】
図1は、グラフ制限の概略図である。例えば、
図1におけるグラフ制限は、経路制限1-1、木制限1-2及びレンガ壁形状制限1-3を含む。
図1におけるノードは、量子ビットを表し、辺は、量子ビットの接続関係を表し、グラフ制限は、接続された2つの量子ビットにのみダブル量子ビットゲートを適用することである。例えば、経路制限1-1において、0と1は接続されており、0と1はCNOTゲートを適用でき、0と4は接続されておらず、0と4はCNOTゲートを適用できない。木制限1-2において、1と3は接続されており、1と3はCNOTゲートを適用でき、2と6は接続されておらず、2と6はCNOTゲートを適用できない。レンガ壁形状制限1~3において、4と15は接続されており、4と15はCNOTゲートを適用でき、15と16は接続されておらず、15と16はCNOTゲートを適用できない。
【0031】
任意の量子回路はユニタリ行列に変換できるため、最適化された量子回路の大きさは任意のユニタリ行列の量子回路の実装問題に変換できる。従って、グラフ制限G=(V,E)の下で量子状態調製の問題は、任意のユニタリ行列
(外1)
について、n-量子ビット回路C
USが以下の式
【0032】
【0033】
ここで、
(外2)
は量子状態を表し、n-量子ビット回路C
USは単一量子ビットゲートとCNOTゲートを含み、且つCNOTゲートの配置はG=(V,E)の制限を受ける。即ち、量子回路の設計では、単一量子ビットゲートとCNOTゲートのみを使用することを許可し、且つCNOTが2つの隣接する量子ビットにのみ作用することを許可する。
【0034】
関連技術では、量子回路の最適化問題について、回路制限がない場合の任意のユニタリ行列の量子回路の実装、及び経路制限での特殊問題の量子回路の実装を解決し、そして、この回路制限のない量子回路に基づいて一般化して最適な量子回路を得る。しかし、超伝導量子デバイスにおける量子回路は様々な制約、例えば無制限、経路制限、木制限、連結グラフの制限等のグラフ制限が存在するため、任意のユニタリ行列の回路実装について、既存の回路制限のない量子回路に基づいて一般化すると、漸進的な意味での最適な量子回路を得ることが困難となり、最終的に量子回路の最適化効果が低下してしまう。
【0035】
本発明の実施例は、量子回路の最適化効果を向上させることができる、量子回路の最適化方法、装置、電子機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム製品を提供する。以下は、本発明の実施例に係る量子回路の最適化のための電子機器の例示的な応用を説明する。本発明の実施例に係る電子機器は、様々なタイプの端末として実施されてもいし、サーバとして実施されてもよい。以下は、電子機器をサーバとして実装される場合の例示的な応用について説明する。
【0036】
図2は、本発明の実施例に係る量子回路の最適化システムのアーキテクチャの概略図である。
図2に示すように、量子回路の最適化応用をサポートするために、量子回路の最適化システム100において、端末400と量子計算機器500とがネットワーク300を介してサーバ200に接続され、ネットワーク300は、広域ネットワーク若しくはローカルエリアネットワーク、又は両方の組み合わせであってもよい。
【0037】
端末400は、解決すべき問題に応じて、最適化すべき量子回路を生成し、最適化すべき量子回路をサーバ200に送信する。
【0038】
サーバ200は、最適化すべき量子回路を処理すべきユニタリ行列に変換し、処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得し、各量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解し、連結グラフの制限に従って、各量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定し、第2の数のマッチ量子回路と第3の数の単一量子ビットゲートとを整合し、各量子ビット均一制御ゲートの目標量子回路を取得し、第1の数の目標量子回路を接続し、最適化すべき量子回路に対応する最適化後の量子回路を取得し、量子回路の最適化プロセスを実現する。
【0039】
サーバ200は、最適化された量子回路を量子計算機器500に適用し(例えば、最適化された量子回路を量子チップの製造装置に伝送し、最適化された量子回路に対応する量子チップを製造し、量子チップの配置に基づいて量子計算機器を取得する)、最適化された量子回路により量子計算機器500の演算効率を向上させる。
【0040】
幾つかの実施例では、サーバ200は、独立した物理サーバであってもよいし、複数の物理サーバからなるサーバクラスタ又は分散型システムであってもよいし、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、コンテン配信ネットワーク(CDN:Content Delivery Network)、及びビッグデータ及び人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバであってもよい。端末400は、スマートフォン、タブレットコンピュータ、ノートブックコンピュータ、デスクトップパソコンなどであってもよいが、これらに限定されない。
【0041】
図3は、本発明の実施例に係る
図2におけるサーバ(電子機器の1つの実装)の構成の概略図である。
図3に示すサーバ200は、少なくとも1つのプロセッサ210、メモリ250、及び少なくとも1つのネットワークインターフェース220を含む。サーバ200における各構成要素は、バスシステム240を介して接続されている。なお、バスシステム240は、これらの構成要素間の接続通信を実現するために使用される。バスシステム240は、データバスに加えて、電源バス、制御バス及び状態信号バスを含む。なお、説明の便宜上、
図3における各バスをバスシステム240と総称する。
【0042】
プロセッサ210は、例えば汎用プロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントなどの信号処理機能を備えた集積回路チップであってもよい。ここで、汎用プロセッサは、マイクロプロセッサ又は任意の従来のプロセッサなどであってもよい。
【0043】
メモリ250は、取り外し可能なもの、取り外し不可能なもの、又はそれらの組み合わせであってもよい。例示的なハードウェアデバイスには、ソリッドステートメモリ、ハードドライブ、光学ドライブなどを含む。メモリ250は、好ましくは、プロセッサ210から物理的に離れた1つ又は複数のストレージデバイスを含む。
【0044】
メモリ250は、揮発性メモリ又は不揮発性メモリを含み、或いは揮発性及び不揮発性メモリの両方を含んでもよい。不揮発性メモリは、読み取り専用メモリ(ROM:Read Only Memory)であってもよく、揮発性メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)であってもよい。本発明の実施例で説明されるメモリ250は、任意の適切なタイプのメモリを含むことを意図している。
【0045】
幾つかの実施例では、メモリ250は、様々な動作をサポートするためにデータを記憶することができ、その例には、以下に例示するように、プログラム、モジュール、及びデータ構造、或いはそれらのサブセット又はスーパーセットが含まれる。
【0046】
オペレーティングシステム251は、様々な基本システムサービスを処理し、様々な基本サービスを実装し、ハードウェアベースのタスクを処理するためのフレームワーク層、コアライブラリ層、ドライバ層などのハードウェア関連タスクを実行するためのシステムプログラムを含む。
【0047】
ネットワーク通信モジュール252は、1つ又は複数の(有線又は無線)ネットワークインターフェース220を介して他の電子機器に到達する。ネットワークインターフェース220は、例えばブルートゥース、ワイヤレス互換性(WiFi)、及びユニバーサルシリアルバス(USB:Universal Serial Bus)などを含む。
【0048】
幾つかの実施例では、本発明の実施例に係る量子回路の最適化装置は、ソフトウェアで実現されてもよい。
図3に示すように、メモリ250に記憶された量子回路の最適化装置255は、プログラム及びプラグインなどの形態のソフトウェアであってもよく、行列分解モジュール2551、制御ゲート分解モジュール2552、回路実装モジュール2553及び接続整合モジュール2554を含む。これらのモジュールは、論理的であるため、実現された機能に従って任意の組み合わせ又はさらなる分割を行ってもよい。以下は、モジュールの機能を説明する。
【0049】
他の幾つかの実施例では、本発明の実施例に係る量子回路の最適化装置は、ハードウェアで実現されてもよい。一例として、本発明の実施例に係る量子回路の最適化装置は、ハードウェア復号化プロセッサの形態のプロセッサを採用してもよく、本発明の実施例に係る量子回路の最適化方法を実行するようにプログラミングされる。例えば、ハードウェア復号化プロセッサの形態のプロセッサは、1つ又は複数の特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、DSP、プログラマブル論理デバイス(PLD:Programmable Logic Device)、複合プログラマブル論理デバイス(CPLD:Complex Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA:Field-Programmable Gate Array)又は他の電子部品を採用してもよい。
【0050】
幾つかの実施例では、端末又はサーバは、コンピュータプログラムを実行することによって、本出願の実施例に係る量子回路の最適化方法を実現してもよい。例えば、コンピュータプログラムは、オペレーティングシステムにおけるオリジナルプログラム又はソフトウェアモジュールであってもよいし、ローカル(Native)アプリケーションプログラム(APP:Application)、即ち、例えば回路最適化APPなどのオペレーティングシステムにインストールして実行する必要のあるプログラムであってもよいし、アプレット、即ち、ブラウザ環境にダウンロードするだけで実行可能なプログラムであってもよいし、任意のAPPに埋め込むことのできるアプレットであってもよい。言い換えれば、上記のコンピュータプログラムは、任意の形式のアプリケーションプログラム、モジュール又はプラグインソフトウェアであってよい。
【0051】
本発明の実施例は量子計算機器を提供し、該量子計算機器は最適化された量子回路を含み、該最適化された量子回路は本発明の実施例に係る量子回路の最適化方法により実現される。
【0052】
本発明の実施例に係る量子回路の最適化方法を説明する前に、まず本発明の実施例に関連する基本的な符号について説明する。[n]は集合{1,2,…,n}を表す。
【0053】
(外3)
はバイナリ領域を表し、
(外4)
はバイナリ領域での加算を表し、任意のx=(x
1,…,x
n)
T,y=(y
1,…,y
n)
T∈{0,1}
nについて、内積
(外5)
、ここで、加算及び乗算は何れもバイナリ領域で定義される。0
nは長さnであり、且つ要素が全て0であるベクトルを表し、1
nは長さがnであり、且つ要素が全て1であるベクトルを表す。集合Sは量子ビットの番号情報の集合であり、
(外6)
は量子状態
(外7)
が集合Sにおける量子ビットからなることを表し、S={q}である場合、
(外8)
を
(外9)
として簡単に記載する。集合S、Tが
(外10)
を満たす場合、
(外11)
として定義する。
【0054】
以下は、本発明の実施例に係る電子機器の例示的な応用及び実装、並びに関連する基本的な符号を参照しながら、本発明の実施例に係る量子回路の最適化方法を説明する。
図4は、本発明の実施例に係る量子回路の最適化方法の概略的なフローチャートである。
図4に示すステップを参照しながら該方法を説明する。
【0055】
S101:最適化すべき量子回路を処理すべきユニタリ行列に変換し、処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得する。
【0056】
本発明の実施例は、連結グラフの制限の下で、最適化すべき量子回路を最適化するシナリオで実現される。最適化すべき量子回路を最適化することによって、最適化すべき量子回路と同様な機能を達成することができると共に、量子ゲートがより少ない(言い換えれば、必要な計算時間がより少ない)最適化された量子回路を得ることができる。各量子回路は、対応するユニタリ行列を有し、本発明の実施例では、電子機器は、処理すべき量子回路に対してユニタリ行列の変換を行い、得られたユニタリ行列は処理すべきユニタリ行列である。最適化すべき量子回路の構造が比較的に複雑であり、機能を変えず、且つ連結グラフの制限を受ける前提で最適化すべき量子回路を最適化することが難しく、一方、ユニタリ行列の量子回路の実装プロセスが比較的に簡単であるため、本発明の実施例では、最適化された量子回路の大きさを任意のユニタリ行列の量子回路の実装問題に変換することである。
【0057】
なお、最適化すべき量子回路が作用する量子ビットの数は、実際の状況に応じて設定されてもよく、例えばn(nは正の整数である)として設定されてもよい。本発明の実施例では、最適化すべき量子回路をn個の量子ビットに適用することを一例とすると、最適化すべき量子回路の最適化のプロセスを説明する。
【0058】
最適化すべき量子回路がn個の量子ビットに作用する場合、処理すべきユニタリ行列はn-量子ビットユニタリ行列である。従って、最適化すべき量子回路の最適化問題は、連結グラフ制限の下でn-量子ビットユニタリ行列の対応する量子回路を実装することである。
【0059】
なお、処理すべきユニタリ行列から反復分解により得られた量子ビット均一制御ゲートに対応する量子ビットの数は、処理すべきユニタリ行列に対応する量子ビットの数と同一である。即ち、処理すべきユニタリ行列がn-量子ビットユニタリ行列である場合、電子機器は、n-量子ビットユニタリ行列に対してn回の反復分解を行い、毎回の反復分解の時に1つ又は複数のn-量子ビット均一制御ゲート(UCG:n-qubit Uniformly Controlled Gate)及び分解を続ける必要のある量子ビットユニタリ行列を取得し、電子機器は、得られた量子ビットユニタリ行列を引き続き分解し、このように反復し、n回の反復分解を完成する時まで、第1の数のn-量子ビット均一制御ゲートを取得する。
【0060】
なお、n-量子ビット均一制御ゲートの役割は、2
n-1種類の異なる制御の下で、目標ビットに異なる単一量子ビットゲートを適用することである。例えば、
図5は、本発明の実施例に係るn-量子ビット均一制御ゲートの概略図である。集合S={s
1,s
2,…,s
n-1}は、制御ビット量子ビットの番号を表し、tは、目標ビット量子ビットの番号を表し、n-量子ビット均一制御ゲートV
t
Sは、一連の単一量子ビットゲート
(外12)
を含み、回転ゲートR
z(θ)の場合、V
t
Sは、n-量子ビット対角ユニタリ行列であり、Λ
t
Sとして表される。
【0061】
幾つかの実施例では、ステップS101における処理すべきユニタリ行列に対して反復分解を行うステップは、iを順次増加する正の整数とし、1≦i≦n、nを量子ビット数とし、i回目の反復の初期ユニタリ行列に対して行列分解を行い、i回目の反復の分解結果を取得する処理であって、1回目の反復の初期ユニタリ行列は、処理すべきユニタリ行列である、処理と、i回目の反復の分解結果からi回目の反復の量子ビット均一制御ゲート及びi回目の反復の生成ユニタリ行列を抽出する処理と、i回目の反復の生成ユニタリ行列をi+1回目の反復の初期ユニタリ行列として決定する処理と、を反復的に実行するステップと、n回の反復により取得された2n-1個の量子ビット均一制御ゲートを第1の数の量子ビット均一制御ゲートとして決定するステップとにより実現されてもよい。
【0062】
なお、iは順次増加する正の整数であり、1≦i≦n、nは量子ビットの数である。i回目の反復の量子ビット均一制御ゲートにおけるi番目のビットは目標ビットであり、残りのn-1ビットは全て制御ビットであり、i回目の反復の生成ユニタリ行列に対応する量子ビットはi回目の反復の初期ユニタリ行列に対応する量子ビットよりも1つ減少する。
【0063】
例えば、任意のn-量子ビットユニタリ行列(即ち、処理すべきユニタリ行列)に対応するn個の量子ビットがそれぞれ{1,2,…,n}と表される場合、電子機器は、n-量子ビットユニタリ行列に対してcosine-sine分解(即ち、行列分解)を行い、以下のような形式の分解結果を取得してもよい。
【0064】
【数2】
ここで、
(外13)
は(n-1)-量子ビットユニタリ行列(即ち、1ラウンド目の反復の生成ユニタリ行列)であり、
(外14)
は何れも対角行列であり、且つ対角要素はそれぞれ
(外15)
及び
(外16)
である。
【0065】
(外17)
は、目標ビットが1番目の量子ビットであるn-量子ビット均一制御ゲート(即ち、1回目の反復の量子ビット均一制御ゲート)であり、V
1
[n]-{1}と表されるため、1回目の反復のcosine-sine分解は以下のように記述されてもよい。
【0066】
【数3】
V
n-1,1,V
n-1,2,V’
n-1,1,V’
n-1,2は(n-1)-量子ビットユニタリ行列であるため、cosine-sine分解(即ち、行列分解)を引き続き行い、以下の式を取得してもよい。
【0067】
【数4】
ここで、
(外18)
、
(外19)
、i∈[2]、L
n-2,1(i)、L
n-2,2(i)、L’
n-2,1(i)、L’
n-2,2(i)、R
n-2,1(i)、R
n-2,2(i)、R’
n-2,1(i)、R’
n-2,2(i)は、(n-2)量子ビットユニタリ行列(2回目の反復の生成ユニタリ行列)であり、
(外20)
は対角行列であり、対角要素は、それぞれ、
(外21)
、
(外22)
、及び
(外23)
、
(外24)
である。従って、行列Uは次のように展開されてもよい。
【0068】
【数5】
ここで、2番目の行列(即ち、
(外25)
)と6番目の行列(即ち、
(外26)
)は、目標ビットが2番目の量子ビットであるn-量子ビット均一制御ゲートV
2
[n]-[2]であり、残りの行列(即ち、2回目の反復の生成ユニタリ行列)は、cosine-sine分解を続ける必要のある対角行列(即ち、3ラウンド目の反復の初期ユニタリ行列)である。
【0069】
このように、iがnになるまで反復を繰り返すと、Uの最終的な展開式を取得することができ、該展開式は、2n-1個のn-量子ビット均一制御ゲートの冪乗により得られる。従って、Uは次のように記述されてもよい。
【0070】
【数6】
ここで、ζは定規関数から算出され、定規関数は、
(外27)
と定義される(
(外28)
は割り切れないことを表し、|は割り切れることを表す)。
【0071】
例えば、
図8は、本発明の実施例に係る処理すべきユニタリ行列の分解結果の概略図である。処理すべきユニタリ行列は3つの量子ビット(1、2、3と表される)に対応し、即ち、処理すべきユニタリ行列は3-量子ビットユニタリ行列である。電子機器は、3-量子ビットユニタリ行列を分解して、7個の3-量子ビット均一制御ゲート、即ち、V
3
[2](目標ビットは3番目の量子ビットであり、制御ビットは1番目の量子ビットと2番目の量子ビットである)、V
2
{1,3}(目標ビットは2番目の量子ビットであり、制御ビットは1番目の量子ビットと3番目の量子ビットである)、V
3
[2]
、V
1
{2,3}(目標ビットは1番目の量子ビットであり、制御ビットは2番目の量子ビットと3番目の量子ビットである)、V
3
[2]、V
2
{1,3}及びV
3
[2]を取得してもよい。
【0072】
上述したように、電子機器は、連結グラフの制限の下でn-量子ビット均一制御ゲートの回路を実装するだけで、連結グラフの制限の下で処理すべきユニタリ行列の量子回路を実装することができる。
【0073】
S102:各量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解する。
【0074】
量子ビット均一制御ゲートにおける任意の対角行列(主対角線以外の要素が全て0である行列)は何れも回転ゲートR
z(θ)、HadmardゲートH、位相ゲートS及び逆位相ゲート
(外29)
に分解できるため、電子機器は、各対角行列を分解することによって、量子ビット均一制御ゲートに対する分解を実現し、量子ビット対角ユニタリ行列と単一量子ビットゲートを取得する。また、単一量子ビットゲートの量子回路は既知であるため、本発明の実施例では、処理すべきユニタリ行列の反復分解と、量子ビット均一制御ゲートの分解とに基づいて、処理すべきユニタリ行列の実装問題を量子ビット対角ユニタリ行列の回路実装問題にさらに変換する(対角ユニタリ行列はユニタリ行列と比べてより実現しやすい)。
【0075】
以下に式(1)~(3)を参照しながら量子ビット均一制御ゲートの分解プロセスを具体的に説明する。
【0076】
任意のn-量子ビット均一制御ゲートの各対角要素は、式(1)に示す対角行列である。
【0077】
【数7】
ここで、V
nはn-量子ビット均一制御ゲートを表し、U
kは対角行列を表し、ここで、k∈[2
n-1]。
【0078】
任意の対角行列Ukについて、式(2)のような分解を行ってもよい。
【0079】
【数8】
ここで、R
zは回転ゲートを表し、Sは位相ゲートを表し、HはHadmardゲートを表し、
(外30)
は逆位相ゲートを表す。
【0080】
このため、任意のn-量子ビット均一制御ゲートは式(3)に示す形式に分解されてもよい。
【0081】
【数9】
ここで、
(外31)
はn-1量子ビットの単位演算子を表す(
(外32)
は規模が(2n-1)×(2n-1)である単位行列を表し、(2n-1)×(2n-1)規模の演算子はn-1量子ビットに適用して実現できる)。A
1、A
2、A
4及びA
6は何れもn-量子ビットの対角ユニタリ行列であり、HadmardゲートH、位相ゲートS及び逆位相ゲート
(外33)
は何れも単一量子ビットゲートである。A
1とA
2は1つのn-量子ビット対角ユニタリ行列に併合されることができるため、電子機器は、任意の1つのn-量子ビット均一制御ゲートについて、3つ(第2の数)のn-量子ビット対角ユニタリ行列(即ち、A
1・A
2、A
4及びA
6)と4つ(第3の数)の単一量子ビットゲート(即ち、A
3におけるHadmardゲートHと位相ゲートS、A
3におけるHadmardゲートHと逆位相ゲート
(外34)
)とに分解することができる。
【0082】
例えば、
図6は、本発明の実施例に係る量子ビット均一制御ゲートの分解の概略図である。電子機器は、処理すべきユニタリ行列から分解されたn-量子ビット均一制御ゲートV
t
Sを分解し(集合S={s
1,s
2,…,s
n-1}は制御ビット量子ビットの番号を表し、tは目標ビット量子ビットの番号を表す)、3つのn-量子ビット対角ユニタリ行列、即ち、Λ
t
S(1)、Λ
t
S(2)及びΛ
t
S(3)(ここで、Λ
t
S(1)は式(3)におけるA
6に対応し、Λ
t
S(2)は式(3)におけるA
4に対応し、Λ
t
S(3)は式(3)におけるA
1とA
2との併合(即ちA
1・A
2)である)、並びに4つの単一量子ビットゲート(式(3)における左から右へのそれぞれの
(外35)
、H、HとSである)を取得する。このように、電子機器は、n-量子ビット対角ユニタリ行列Λ
t
S(1)、Λ
t
S(2)及びΛ
t
S(3)の回路、即ち、R
1、R
2及びR
3を実現するだけで、n-量子ビット均一制御ゲートV
t
Sの回路Uを実現することができる。
【0083】
上述したように、S102においてn-量子ビット均一制御ゲートをn-量子ビット対角ユニタリ行列に分解することによって、n-量子ビット対角ユニタリ行列のマッチ量子回路を実装するだけで、n-量子ビット均一制御ゲートの目標量子回路を取得することができるため、処理すべきユニタリ行列の連結グラフの制限下の量子回路を取得することができる。
【0084】
S103:連結グラフの制限に従って、各量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定する。
【0085】
本発明の実施例では、電子機器は、連結グラフの制限の下で、量子ビット対角ユニタリ行列の回路を実装する必要があり、得られた回路をマッチ量子回路と表記する。電子機器は、連結グラフに従ってn個の量子ビットに対して番号情報を決定し、番号情報に基づいて量子ビットペアを決定し、量子ビットペアに応用するダブル量子ビットゲートにより、再帰的に量子ビット対角ユニタリ行列のマッチ量子回路を実装する。
【0086】
なお、連結グラフに含まれる任意の2つのノードは連結されており、即ち、任意の2つのノードの間には辺が接続されており、ここで、連結グラフにおけるノードは量子ビットに1対1で対応しており、即ち、連結グラフにおけるノードは量子ビットを表す。連結グラフの制限とは、量子回路におけるダブル量子ビットゲートが、連結グラフにおいて辺で連結された2つの量子ビットにのみ作用することを許可することを意味する。例えば、
図7は、本発明の実施例に係る連結グラフの概略図である。連結グラフG=(V,E)におけるV={q
1,q
2,…,q
n}は連結グラフにおけるn個のノードの集合を表し、Eは連結グラフにおける辺の集合を表す。連結グラフGのノードが量子回路における量子ビットを表す場合、連結グラフGの制限下では、量子ビットペア(q
1,q
2),(q
2,q
3),(q
2,q
4),(q
4,q
5)の間に辺で接続されているため、ダブル量子ビットゲート(例えばCNOTゲート)が量子ビットペア(q
1,q
2),(q
2,q
3),(q
2,q
4),(q
4,q
5)にのみ作用することを許可する。
【0087】
連結グラフに基づいて得られた番号情報は1つの利点があり、即ち、番号情報がk∈[n]([n]はn個の量子ビットの番号情報の集合である)の量子ビットから番号情報がnである量子ビットまでの距離がn-k超えないため、経路制限下でダブル量子ビットゲートが回路実装される場合の回路サイズを制限することができ、マッチ量子回路のサイズを制限することができる。
【0088】
以下は、連結グラフ制約下で量子ビット対角ユニタリ行列対応のマッチ量子回路を実装するプロセスを説明する。
【0089】
図9は、本発明の実施例に係る量子回路の最適化方法のもう1つの概略的なフローチャートである。
図9に示すように、幾つかの実施例では、異なるn量子ビット均一制御ゲートの制御ビット、目標ビットが異なる可能性があるため、異なるn量子ビット均一制御ゲートから分解されたn-量子ビット対角ユニタリ行列の目標ビット、制御ビットが異なる可能性がある。一方、対角ユニタリ行列Λ
k
[n]-{k}と対角ユニタリ行列Λ
l
[n]-{l}とは、回路サイズがO(n)以下のCNOT回路で相互変換することができる。従って、電子機器はΛ
n
[n-1]を基準対角ユニタリ行列として選択し、マッチ量子回路(即ち、基準量子回路)を決定し、CNOTゲート変換により残余対角ユニタリ行列の変換量子回路を取得してもよい。これによって、任意のn-量子ビット対角ユニタリ行列のマッチ量子回路を取得することができる。S103の具体的な実装プロセスは、以下のように、S1031~S1035を含んでもよい。
【0090】
S1031:連結グラフの制限に従って、n個の量子ビットにそれぞれ対応する番号情報を決定する。
【0091】
幾つかの実施例では、ステップS1031は、以下のアプローチ2により実現されてもよい。即ち、連結グラフから目標木を抽出し、目標木における各ノードに番号を付け、各ノードに対応するノード番号を取得し、各ノードに対応するノード番号を、各ノードに対応する量子ビットの番号情報として決定する。ここで、目標木は連結グラフにおける任意の1つの全域木であり、各量子ビットは前記目標木における1つのノードに対応する。
【0092】
例えば、電子機器は、連結グラフG=(V,E)から任意に1つの全域木を抽出し、該全域木によりn個の量子ビットに番号を付ける。ここで、全域木のノードは、連結グラフG=(V,E)における全てのノードであり、辺は、連結グラフG=(V,E)における辺の一部であり、即ち、V(G’)=V(G)、E(G’)⊆E(G)、ここで、G’は全域木を表し、辺の集合E(G’)を満たす全ての辺は、回路を形成することなく、全てのノードを連結することができる。
【0093】
より具体的には、アプローチ2における目標木における各ノードに番号を付け、各ノードに対応するノード番号を取得するステップは、以下のステップにより実現されてもよい。即ち、目標木における各ノードについて初期化番号を生成し、ノード番号がn-k+2であるノードについて子ノードが存在せず、或いは番号が初期化番号である子ノードが存在しない場合、ノード番号を有するノードから検索条件を満たす目標ノードを検索し、目標ノードの最も左側の子ノードのノード番号をn-k+1として決定し、ノード番号がn-k+2であるノードについて子ノードが存在し、且つ子ノードの番号が初期化番号である場合、番号が初期化番号である子ノードのうちの最も左側の子ノードのノード番号をn-k+1として決定する。
【0094】
ここで、検索条件は、番号が最大であり、且つ番号が初期化番号である子ノードが存在するノードであり、3≦k≦n、ノード番号nであるノードは目標木の根ノードであり(即ち、n番目のノードが目標木の根ノードである)、ノード番号がn-1であるノードは根ノードの最も左側のノードである(即ち、n-1番目のノードは根ノードの最も左側のノードである)。言い換えれば、電子機器は、まず全域木の根ノードにアクセスし、根ノードにnという番号を付け、次に根ノードの最も左側の子ノードにアクセスし、該ノードにn-1という番号を付ける。次に、下方向にアクセスし続け、アクセスしたノードの番号がn-k+2である(3≦k≦n)場合、ノードn-k+2に葉ノードがなく、或いは番号が0(0は初期化番号である)の葉ノードがないとき、ノード集合{n-k+2,n-k+3,…,n}(即ち、ノード番号の付いたノード)から番号が最も大きく、且つ番号が0の子ノードを持つノードを検索し、該ノードの最も左側の番号が0のノードにアクセスし、該ノードにn-k+1の番号を付け、該ノードn-k+2に番号が0の子ノードがある場合、その最も左側の番号が0の子ノードにアクセスし、該ノードにn-k+1の番号を付ける。
【0095】
例えば、
図12は、本発明の実施例に係る量子ビットの番号付けの概略図である。連結グラフGついて、まず1つの全域木Tを抽出し、全域木Tにおける全てのノードの番号を0(初期化番号)とする。まず、Tの根ノードにアクセスし、そのノード番号を5と決定した後、ノード5の最も左側の番号0の子ノードにアクセスし、そのノード番号を4と決定する。ノード4は子ノードを持たないため、ノード5に戻り、残りの番号が0の子ノードのうちの最も左側の子ノードにアクセスし、そのノード番号を3と決定し、ノード3に番号0の子ノードが存在し、その子ノードのノード番号を2と決定する。ノード2に子ノードがないため、ノード3に戻り、ノード3に他の番号が0の子ノードがないため、ノード5に戻り続け、ノード5の残りの番号0の子ノードのうちの最も左側の子ノードにアクセスし、そのノード番号を1と決定する。これによって、5つの量子ビットの番号情報が得られ、この番号情報は、この5つの量子ビットのアクセス順序を表す。
【0096】
上記の番号付けの方式によれば、n個の量子ビットを[n]と表記してもよい。この番号付けの方式には、番号情報がk∈[n]であるノードから番号情報がnであるノードまでの距離がn-kを超えず、且つ{k,k+1,k+2,…,n}により生成されたサブグラフが連結グラフであるという利点がある。
【0097】
S1032:n個の量子ビットの番号情報に基づいて、量子ビット対角ユニタリ行列から基準対角ユニタリ行列を抽出する。ここで、基準対角ユニタリ行列の目標ビットは番号情報がnである量子ビットであり、制御ビットは番号情報が前のn-1である量子ビットである。
【0098】
S1033:n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する基準量子回路を決定する。
【0099】
基準対角ユニタリ行列(即ち、Λn
[n-1])について基準量子回路を決定する前に、まず基準対角ユニタリ行列Λn
[n-1]の標準基底での変換の定義を導入する。
【0100】
【数10】
ここで、
(外36)
は標準基底であり、
(外37)
は実数集合である。実数集合について、{α
s:s∈{0,1}
n-{0
n}}のように次のように定義してもよい。
【0101】
【数11】
説明の便宜上、
(外38)
のように定義してもよい。次に、Λ
n
[n-1]の基準量子回路の実装について説明する。
【0102】
図10は、本発明の実施例に係る量子回路の最適化方法のさらにもう1つの概略的なフローチャートである。幾つかの実施例では、S1033の具体的な実現プロセスは、以下のようなS1033a~S1033eを含んでもよい。
【0103】
S1033a:基準対角ユニタリ行列について複数の量子ビット系列を生成する。
【0104】
例えば、基準対角ユニタリ行列がΛ
n
[n-1]である場合、電子機器は、2
n-1個の長さがn-1である量子ビット系列
(外39)
を構築する。
【0105】
幾つかの実施例では、基準対角ユニタリ行列について複数の量子ビット系列を生成するステップは、以下の処理により実現されてもよい。j番目の量子ビット系列の反転すべき量子ビットを決定し、反転すべき量子ビットにおける要素を反転し、j+1番目の量子ビット系列を取得する。反復のjの値が2n-1となる場合、2n-1個の量子ビット系列を基準対角ユニタリ行列の複数の量子ビット系列として決定する。
【0106】
なお、2≦j≦2n-1、1番目の量子ビット系列は、n-1個の第2の要素を配列することによって得られる。例えば、第2の要素が0である場合、第1の量子ビット系列は、n-1個の0を配列したものである。反転すべき量子ビットは、nとjの定規関数の値の減算により得られる。
【0107】
即ち、1番目の量子ビット系列c
1=0
n-1、この場合、量子ビット系列c
jはc
j-1のn-ζ(j-1)番目のビットを反転して得られる。定規関数の性質から分かるように、
(外40)
はc
1の1番目のビットを反転して得られ、且つ
(外41)
となる。
【0108】
S1033b:各量子ビット系列の末尾に第1の要素をそれぞれ追加し、複数の第1の量子ビット系列を取得し、各量子ビット系列の末尾に第2の要素をそれぞれ追加し、複数の第2の量子ビット系列を取得する。
【0109】
例えば、第1の要素を1とし、第2の要素を0としてもよい。このように、電子機器は、各長さがn-1の量子ビット系列を2つの長さがnの量子ビット系列に拡張する。例えば、複数の量子ビット系列がそれぞれ00,01,10,11である場合、複数の第1の量子ビット系列は001,011,101,111であってもよく、複数の第2の量子ビット系列は000,010,100,110であってもよい。
【0110】
S1033c:n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する第1の量子回路を決定する。ここで、第1の量子回路は、複数の第1の量子ビット系列に対応する位相を標準基底に付加するために使用される。
【0111】
例えば、第1の要素が1である場合、第1の量子ビット系列に対応する位相を標準基底の量子回路に付加し、基準対角ユニタリ行列に対応する第1の量子回路を取得する。上記の定義された基準対角ユニタリ行列Λ
n
[n-1]の標準基底での変換と実数集合を参照して、ステップS1033cにおいて、電子機器は、変換
(外42)
を実装するための量子回路を決定する。ここで、cは複数の量子ビット系列の総称を意味し、c1は各量子ビット系列の末尾部分にそれぞれ1を追加して得られた第1の量子ビット系列の総称を意味し、α
c1は第1の量子ビット系列により構成された実数集合である。
【0112】
より具体的には、S1033cは、以下の処理により実現されてもよい。n個の量子ビットの番号情報に基づいて、j番目の第1の量子ビット系列のマッチCNOTゲートを決定し、j+1番目の第1の量子ビット系列に基づいて、j番目の第1の量子ビット系列のマッチCNOTゲートの後に適用するマッチR量子ゲートを構築し、jが2n-1-1となる場合、2n-1-1個のマッチCNOTゲートとマッチR量子ゲートとを交互に接続し、候補サブ回路を取得し、補充R量子ゲート及び補充CNOTゲートを決定し、補充R量子ゲートと補充CNOTゲートとを接続し、補充サブ回路を取得し、候補サブ回路及び補充サブ回路に基づいて、第1の量子回路を決定する。ここで、jは順次増加する正の整数であり、1≦j≦2n-1-1、2n-1は第1の量子ビット系列の数である。
【0113】
ここで、マッチCNOTゲートの目標ビットは番号情報がnである量子ビットであり、制御ビットは番号情報がn-ζ(j)である量子ビットである。即ち、電子機器は、番号情報がnである量子ビットと番号情報がn-ζ(j)(ζ(j)は上記の定規関数の定義から算出される)である量子ビットにCNOTゲートを適用し、該CNOTゲートは第1の量子ビット系列を処理するために用いられる。言い換えれば、j番目の前記第1の量子ビット系列のマッチCNOTゲートの制御ビットに対応する番号情報はn及びjから計算され、目標ビットは番号情報がnである量子ビットである。
【0114】
なお、補充R量子ゲートは1番目の量子ビット系列に基づいて決定され、補充CNOTゲートの制御ビットは番号情報が1である量子ビットであり、補充CNOTゲートの目標ビットは番号情報がnである量子ビットである。
【0115】
例えば、式(2)は、第1の量子回路の式の一例である。
【0116】
【数12】
ここで、α
c1は第1の量子ビット系列により構成された実数集合であり、CNOT
n
n-ζ(j)はマッチCNOTゲートを表し、
(外43)
はマッチR量子ゲートを表し、CNOT
n
1は補充CNOTゲートを表し、
(外44)
は補充R量子ゲートを表す。
【0117】
式(2)は以下のプロセスで実現されてもよい。
【0118】
【数13】
S1033d:n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する第2の量子回路を決定する。第2の量子回路は、複数の第2の量子ビット系列に対応する位相を標準基底に付加するために使用される。
【0119】
幾つかの実施例では、ステップS1033dは、以下のアプローチ1により実現されてもよい。基準対角ユニタリ行列に対応する実装すべき対角ユニタリ行列を決定する。ここで、実装すべき対角ユニタリ行列はn-1個の量子ビットに対応する。変換回路により実装すべきユニタリ行列を分解し、置換対角ユニタリ行列を取得する。ここで、変換回路は、実装すべきユニタリ行列に対応する第1の量子ビット集合における量子状態を第2の量子ビット集合における量子状態に置換するために使用される。n個の量子ビットの番号情報に基づいて、置換対角ユニタリ行列に対応する置換量子回路を決定する。変換回路と、置換量子回路と、変換回路に対応する逆変換回路との接続結果を、第2の量子回路として決定する。ここで、逆変換回路は、第2の量子ビット集合における量子状態を第1の量子ビット集合における量子状態に置換する(例えば、逆変換回路は、量子ビットを初期位置、即ち元の量子状態に変換する)ために使用される。
【0120】
以下は、アプローチ1を例示的に説明する。第2の要素が0である場合、第2のビット系列に対応する位相を標準基底の量子回路に付加することによって、第2の量子回路を取得する。上記で定義された基準対角ユニタリ行列Λ
n
[n-1]の標準基底での変換及び実数集合を参照して、電子機器は、
(外45)
を実装するための量子回路を第2の量子回路とする。ここで、c
0は、ビット系列の末尾に0を補充して得られた第2の量子ビット系列であり、α
c0は、第2の量子ビット系列により構成された実数集合である。
【0121】
ここで、
(外46)
を実装することは、量子ビット集合[n-1]における(n-1)-量子ビット対角ユニタリ行列(実装すべき対角ユニタリ行列Λ
n-1
[n-2])を実装することである。即ち、
(外47)
量子ビット集合[n-1](即ち、第1の量子ビット集合)により生成されたグラフは必ずしも連結グラフではないが、量子ビット集合[n]-{1}(即ち、第2の量子ビット集合)により生成されたグラフは連結グラフである。従って、Λ
n-1
[n-2]を実現のために、本発明の実施例では、まず、実装すべき対角ユニタリ行列の量子ビット集合[n-1]における量子状態を量子ビット集合[n]-{1}に置換できる交換回路を決定してもよい。即ち、交互回路は、実装すべき対角ユニタリ行列に対応する第1の量子ビット集合における量子状態を第2の量子ビット集合における量子状態に置換する。例えば、量子ビット集合[n-1]は、番号が1、2、3、…、n-1の量子ビットにより構成された集合であり、これらの量子ビットのそれぞれの量子状態を
(外48)
、
(外49)
、…、
(外50)
と表し、この場合、番号がnの量子ビットの量子状態は、
(外51)
である。量子ビット集合[n]-{1}は、番号が2、3、…、nの量子ビットにより構成された集合である。この場合、量子ビット集合[n-1]における量子状態を量子ビット集合に置換するプロセスは、以下の通りである。番号が2、3、…、nの量子ビットの量子状態をそれぞれ
(外52)
、
(外53)
、…、
(外54)
に置換し、この場合、番号nの量子ビットの量子状態は
(外55)
となる。そして、以下のように実装すべき対角ユニタリ行列を分解する。変換回路に対応するユニタリ行列と、逆変換回路に対応するユニタリ行列とに基づいて、実装すべきユニタリ行列を分解し、量子ビット集合[n]-{1}でのΛ
n
[n-1]-{1}(置換対角ユニタリ行列)を取得する。ここで、分解の原理は以下の通りである。Λ
n-1
[n-2]とΛ
n
[n-1]-{1}とがY=PXP
-1(Yは実装すべきユニタリ行列を表し、Pは変換回路に対応するユニタリ行列を表し、P
-1は逆変換回路に対応するユニタリ行列を表し、Xは置換対角ユニタリ行列を表す)の関係を満たすため、変換回路を決定した後、交互回路のユニタリ行列及び逆交換回路のユニタリ行列が既知量であることにより、行列変換(即ち、Yに対してP
-1を左乗算、Pを右乗算し、Yを分解すること)により、Λ
n
[n-1]-{1}を取得する。その後、以下の方式により、Λ
n
[n-1]-{1}の量子回路(置換量子回路)を決定する。Λ
n
[n-1]-{1}が連結グラフの制限を受けるため、n個の量子ビットの番号情報に基づいて置換対角ユニタリ行列Λ
n
[n-1]-{1}を分解し、最後に分解して得られた量子ゲートに対応する量子回路を接続し、置換量子回路を取得してもよい。例えば、Λ
n
[n-1]-{1}を新しい基準対角ユニタリ行列としてステップS1033a~S1033eを実行し、Λ
n
[n-1]-{1}の置換量子回路を取得する。即ち、ステップS1033によりΛ
n
[n-1]-{1}について量子ビット系列を構築し、ステップS1033bにより量子ビット系列の末尾にそれぞれ0と1を補充してΛ
n
[n-1]-{1}の第1の量子ビット系列と第2の量子ビット系列を取得する。そして、S1033cのプロセスと類似する方式により、Λ
n
[n-1]-{1}に対応する第1の量子回路を決定し、ステップS1033dの方法により、Λ
n
[n-1]-{1}の第2の量子回路を決定し、ステップS1033eにより、Λ
n
[n-1]-{1}の置換量子回路を決定する。Λ
n
[n-1]-{1}の量子回路(置換量子回路)を決定した後、置換量子回路に基づいて、変換回路と変換回路に対応する逆変換回路とを接続し、第2の量子回路を取得する。
【0122】
S1033e:第1の量子回路及び第2の量子回路に基づいて、基準対角ユニタリ行列に対応する基準量子回路を決定する。
【0123】
電子機器は、まず第1の量子回路をn個の量子ビットに作用し、その後、第2の量子回路をn個の量子ビットに作用し、得られた全体回路は基準量子回路である。言い換えれば、電子機器は、第1の量子回路と第2の量子回路とを接続して基準量子回路を取得する。
【0124】
例えば、
図11は、本発明の実施例に係るマッチ量子回路の概略図である。番号情報がそれぞれ1、2、…、n-1、nである量子ビットに、第1の量子回路と第2の量子回路を適用する。ここで、第2の量子回路は、変換回路P、置換量子回路及び逆変換回路
(外56)
を含む。
【0125】
S1034:制御NOT(CNOT)ゲートにより基準量子回路を変換し、残余対角ユニタリ行列に対応する変換量子回路を取得する。
【0126】
なお、残余対角ユニタリ行列は、量子ビット対角ユニタリ行列のうちの基準対角ユニタリ行列以外の対角ユニタリ行列である。
【0127】
S1035:基準対角ユニタリ行列に対応する基準量子回路及び残余対角ユニタリ行列に対応する変換量子回路を量子ビット対角ユニタリ行列のマッチ量子回路として決定する。
【0128】
S104:第2の数のマッチ量子回路と第3の数の単一量子ビットゲートとを整合し、各量子ビット均一制御ゲートの目標量子回路を取得する。
【0129】
ここで、単一量子ビットゲートは既知の量子回路であり、電子機器は、上記のステップS103で求められた連結グラフにより制限されたマッチ量子回路に基づいた後、ステップS104は、以下の方式により実現されてもよい。順序に従って、マッチ量子回路と単一量子ビットゲートとを接続し、各量子ビット均一制御ゲートの目標量子回路を取得する。該順序は、量子ビット均一制御ゲートを分解して得られた量子ビット対角ユニタリ行列と単一量子ビットゲートの分解順序、例えば
図6の順序である。最終的に、電子機器は、複数の量子ビット均一制御ゲートと1対1で対応する複数の目標量子回路を取得する。
【0130】
例えば、
図6に示すように、
(外57)
、H、H、Sは既知の量子回路であり、ステップS103でR
1、R
2及びR
3にそれぞれ対応するマッチ量子回路を取得した後、R
1、
(外58)
、H、R
2、H、S、R
3の順(即ち、量子ビット均一制御ゲートを量子ビット対角ユニタリ行列と単一量子ビットゲートに分解する分解順序)に、既知の量子回路(即ち、単一量子ビットゲート
(外59)
、H、H、S)及びマッチ量子回路(即ち、R
1、R
2及びR
3にそれぞれ対応するマッチ量子回路)を接続し、n-量子ビット均一制御ゲートV
t
Sの目標量子回路を取得する。
【0131】
S105:第1の数の前記目標量子回路を接続し、最適化後の量子回路を取得する。
【0132】
ここで、電子機器は、上記ステップS104において第1の数の目標量子回路を取得した後、量子ビット均一制御ゲートの反復分解順序に従って、第1の数の目標量子回路を接続し、最適化後の量子回路(即ち、最適化すべき量子回路に対応する最適化された量子回路)を取得する。ここで、反復分解順序は、処理すべきユニタリ行列を反復分解して得られた量子ビット均一制御ゲートの順序である。上述したように、量子回路を最適化するために必要な演算時間は、最適化すべき量子回路の演算時間よりも少ない。
【0133】
以上のように、本発明の実施例は、連結グラフの制限の下で、最適化すべき量子回路を最適化するシナリオで実現される。最適化すべき量子回路を最適化することによって、最適化すべき量子回路と同様な機能を達成することができると共に、量子ゲートがより少ない(言い換えれば、必要な計算時間がより少ない)最適化された量子回路を得ることができる。各量子回路は、対応するユニタリ行列を有し、本発明の実施例では、電子機器は、処理すべき量子回路に対してユニタリ行列の変換を行い、得られたユニタリ行列は処理すべきユニタリ行列である。最適化すべき量子回路の構造が比較的に複雑であり、機能を変えず、且つ連結グラフの制限を受ける前提で最適化すべき量子回路を最適化することが難しく、一方、ユニタリ行列の量子回路の実装プロセスが比較的に簡単である。従って、本発明の実施例では、まず最適化すべき量子回路を変換して得られた処理すべきユニタリ行列に対して反復分解を行い、その後、分解により得られた量子ビット均一制御ゲートを分解し、量子ビット対角ユニタリ行列と単一量子ビットゲートを取得する。これによって、量子回路の最適化問題を量子ビット対角ユニタリ行列の量子回路実装問題に再帰的に変換することを実現し、連結グラフの制限下で、量子ビット対角ユニタリ行列についてマッチ量子回路を決定し、最終的にマッチ量子回路と単一量子ビットゲートとを整合して最適化された量子回路を取得する。従って、連結グラフの制限下で最適化された量子回路を、即ち、演算速度がより速い最適化量子回路を取得し、量子回路の最適化の効果を向上させることができる。また、得られた最適化量子回路を量子計算機器に適用すると、量子計算機器の演算速度を加速させ、量子計算機器の演算効率を向上させることができる。
【0134】
以上は、本発明の実施例に係る量子回路の最適化方法の最適化効果について説明する。
【0135】
まず、CNOTゲートと交換ゲートの経路制限での回路実装を導入する。
【0136】
1.CNOTゲートCNOT
j
iの経路での回路実装:例えば、
図13は、本発明の実施例に係る経路制限での制御NOT(CNOT)ゲートの回路実装の概略図である。
図13に示すように、経路i-(i+1)-…-(j-1)-jの制限で、CNOT
j
iは、深さ及びサイズが何れもO(j-i)であるCNOT回路により実装されてもよい。
【0137】
2.交換ゲートSWAPj
iの回路実装:SWAPj
i=CNOTj
iCNOTi
jCNOTj
iのため、経路i-(i+1)-…-(j-1)-jの制限により、SWAPj
iは、深さと大きさが何れも(j-i)であるCNOT回路により実現されてもよい。
【0138】
3.任意の連結グラフの制限の下でのCNOT回路の圧縮:連結グラフの制限の下で、任意のCNOTゲートにより構成されたn-量子ビット回路の大きさは、O(n2)に圧縮することができる。
【0139】
以下は、n-量子ビット対角ユニタリ行列Λ
n
[n-1]の連結グラフGの制限下で再帰的に実装される回路サイズを分析する。S
[n]-[k]が量子ビット集合[n]-[k]に作用する対角ユニタリ行列の回路サイズを表すとする。ここで、
(外60)
を定義する。第1の量子回路を決定する際に、連結グラフでの量子ビットの番号情報から分かるように、CNOT
n
n-ζ(j)における制御ビットn-ζ(j)と目標ビットnとの距離はζ(j)超えない。CNOTゲートの経路制限での実装から分かるように、CNOT
n
n-ζ(j)は、サイズがO(ζ(j))である回路により実装されることができる。また、定規関数は、集合
(外61)
において、要素kが2
n-1-k回出現するという性質があるため、第1の量子回路のサイズは、以下のようになる。
【0140】
【数14】
第2の量子回路の構築プロセスにおいて、2回の置換の回路サイズは、O((n-0)
2)=O(n
2)である。従って、S
[n]-[0]は、次の再帰式を満たす。
【0141】
【数15】
以上のことから、n-量子ビット対角ユニタリ行列の連結グラフ制限での回路サイズはO(2
n)であるため、n-量子ビット均一制御ゲートの回路サイズは3・O(2
n)+4=O(2
n)である。また、n-量子ビットユニタリ行列を分解して2
n-1個のn-量子ビット均一制御ゲートを取得することから分かるように、連結グラフの制限の下で、n-量子ビットユニタリ行列は、サイズがO(2
n)・(2
n-1)=O(4
n)である回路で実装できる。従って、本発明の実施例に係る量子回路の最適化方法は、漸進的な意味で最適な量子回路を得ることができ、即ち、演算速度がより速い最適化量子回路を得ることができると共に、該最適化量子回路を量子計算機器に適用する場合、量子計算機器の演算速度を加速させ、量子計算機器の演算効率を向上させることができる。
【0142】
また、本発明の実施例は、サイズがO(2n)である回路を用いて、連結グラフ制限の下で任意のn-量子ビット均一制御ゲートを実現し、量子状態の調製回路はn個のサイズがそれぞれ1,2,…,nである量子ビット均一制御ゲートに分解できるため、本発明の実施例は、連結グラフ制限の下の回路サイズがO(2n)である量子状態の調製回路を実現することができるため、連結グラフ制限の下で量子状態の調製回路のサイズも最適である。
【0143】
以下は、本発明の実施例に係る量子回路の最適化装置255がソフトウェアモジュールとして実装される例示的な構成を引き続き説明する。幾つかの実施例では、
図3に示すように、メモリ250に記憶された量子回路の最適化装置255のソフトウェアモジュールは、以下のモジュールを含んでもよい。
【0144】
行列分解モジュール2551は、最適化すべき量子回路を処理すべきユニタリ行列に変換し、処理すべきユニタリ行列に対して反復分解を行い、第1の数の量子ビット均一制御ゲートを取得する。制御ゲート分解モジュール2552は、各量子ビット均一制御ゲートを第2の数の量子ビット対角ユニタリ行列と第3の数の単一量子ビットゲートとに分解する。回路実装モジュール2553は、連結グラフの制限に従って、各量子ビット対角ユニタリ行列に対応するマッチ量子回路を決定する。接続整合モジュール2554は、第2の数のマッチ量子回路と第3の数の単一量子ビットゲートとを整合し、各量子ビット均一制御ゲートの目標量子回路を取得し、第1の数の目標量子回路を接続し、最適化後の量子回路を取得する。
【0145】
幾つかの実施例では、行列分解モジュール2551は、iを順次増加する正の整数とし、1≦i≦n、nを量子ビット数とし、i回目の反復の初期ユニタリ行列に対して行列分解を行い、i回目の反復の分解結果を取得する処理であって、1回目の反復の初期ユニタリ行列は、処理すべきユニタリ行列である、処理と、i回目の反復の分解結果からi回目の反復の量子ビット均一制御ゲート及びi回目の反復の生成ユニタリ行列を抽出する処理と、i回目の反復の生成ユニタリ行列をi+1回目の反復の初期ユニタリ行列として決定する処理と、を反復的に実行するステップと、n回の反復により取得された2n-1個の量子ビット均一制御ゲートを第1の数の量子ビット均一制御ゲートとして決定するステップと、を実行するように構成される。
【0146】
幾つかの実施例では、回路実装モジュール2553は、連結グラフの制限に従って、n個の量子ビットにそれぞれ対応する番号情報を決定するステップと、n個の量子ビットの番号情報に基づいて、量子ビット対角ユニタリ行列から基準対角ユニタリ行列を抽出するステップであって、基準対角ユニタリ行列の目標ビットは番号情報がnである量子ビットであり、制御ビットは番号情報が前のn-1である量子ビットである、ステップと、n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する基準量子回路を決定するステップと、制御NOT(CNOT)ゲートにより基準量子回路を変換し、残余対角ユニタリ行列に対応する変換量子回路を取得するステップであって、残余対角ユニタリ行列は、量子ビット対角ユニタリ行列のうちの基準対角ユニタリ行列以外の対角ユニタリ行列である、ステップと、基準対角ユニタリ行列に対応する基準量子回路及び残余対角ユニタリ行列に対応する変換量子回路を量子ビット対角ユニタリ行列のマッチ量子回路として決定するステップと、を実行するように構成される。
【0147】
幾つかの実施例では、回路実装モジュール2553は、基準対角ユニタリ行列について複数の量子ビット系列を生成するステップと、各量子ビット系列の末尾に第1の要素をそれぞれ追加し、複数の第1の量子ビット系列を取得し、各量子ビット系列の末尾に第2の要素をそれぞれ追加し、複数の第2の量子ビット系列を取得するステップと、n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する第1の量子回路を決定するステップであって、第1の量子回路は、複数の第1の量子ビット系列に対応する位相を標準基底に付加するために使用される、ステップと、n個の量子ビットの番号情報に基づいて、基準対角ユニタリ行列に対応する第2の量子回路を決定するステップであって、第2の量子回路は、複数の第2の量子ビット系列に対応する位相を標準基底に付加するために使用される、ステップと、第1の量子回路及び第2の量子回路に基づいて、基準対角ユニタリ行列に対応する基準量子回路を決定するステップと、を実行するように構成される。
【0148】
幾つかの実施例では、回路実装モジュール2553は、n個の量子ビットの番号情報に基づいて、j番目の第1の量子ビット系列のマッチCNOTゲートを決定するステップであって、jは順次増加する正の整数であり、1≦j≦2n-1-1、ステップと、j+1番目の第1の量子ビット系列に基づいて、j番目の第1の量子ビット系列のマッチCNOTゲートの後に適用するマッチR量子ゲートを構築するステップと、jが2n-1-1となる場合、2n-1-1個のマッチCNOTゲートとマッチR量子ゲートとを交互に接続し、候補サブ回路を取得するステップと、補充R量子ゲート及び補充CNOTゲートを決定し、補充R量子ゲートと補充CNOTゲートとを接続し、補充サブ回路を取得するステップと、候補サブ回路及び補充サブ回路に基づいて、第1の量子回路を決定するステップと、を実行するように構成される。
【0149】
幾つかの実施例では、補充R量子ゲートは1番目の量子ビット系列に基づいて決定され、補充CNOTゲートの制御ビットは番号情報が1である量子ビットであり、補充CNOTゲートの目標ビットは番号情報がnである量子ビットである。j番目の第1の量子ビット系列のマッチCNOTゲートの制御ビットに対応する番号情報はn及びjから計算され、j番目の第1の量子ビット系列のマッチCNOTゲートの目標ビットは番号情報がnである量子ビットである。
【0150】
幾つかの実施例では、回路実装モジュール2553は、基準対角ユニタリ行列に対応する実装すべき対角ユニタリ行列を決定するステップであって、実装すべき対角ユニタリ行列はn-1個の量子ビットに対応する、ステップと、変換回路により実装すべきユニタリ行列を分解し、置換対角ユニタリ行列を取得するステップであって、変換回路は、実装すべきユニタリ行列に対応する第1の量子ビット集合における量子状態を第2の量子ビット集合における量子状態に置換するために使用される、ステップと、n個の量子ビットの番号情報に基づいて、置換対角ユニタリ行列に対応する置換量子回路を決定するステップと、変換回路と、置換量子回路と、変換回路に対応する逆変換回路との接続結果を、第2の量子回路として決定するステップであって、逆変換回路は、第2の量子ビット集合における量子状態を第1の量子ビット集合における量子状態に置換するために使用される、ステップと、を実行するように構成される。
【0151】
幾つかの実施例では、回路実装モジュール2553は、j番目の量子ビット系列の反転すべき量子ビットを決定し、反転すべき量子ビットにおける要素を反転し、j+1番目の量子ビット系列を取得するステップであって、2≦j≦2n-1、1番目の量子ビット系列は、n-1個の第2の要素を配列することによって得られる、ステップと、反復のjの値が2n-1となる場合、2n-1個の量子ビット系列を基準対角ユニタリ行列の複数の量子ビット系列として決定するステップと、を実行するように構成される。
【0152】
幾つかの実施例では、回路実装モジュール2553は、連結グラフから目標木を抽出するステップであって、目標木は連結グラフにおける任意の1つの全域木であり、各量子ビットは目標木における1つのノードに対応する、ステップと、目標木における各ノードに番号を付け、各ノードに対応するノード番号を取得するステップと、各ノードに対応するノード番号を、各ノードに対応する量子ビットの番号情報として決定するステップと、を実行するように構成される。
【0153】
幾つかの実施例では、回路実装モジュール2553は、目標木における各ノードについて初期化番号を生成するステップと、ノード番号がn-k+2であるノードについて子ノードが存在せず、或いは番号が初期化番号である子ノードが存在しない場合、ノード番号を有するノードから検索条件を満たす目標ノードを検索し、目標ノードの最も左側の子ノードのノード番号をn-k+1として決定するステップであって、検索条件は、番号が最大であり、且つ番号が初期化番号である子ノードが存在するノードであり、3≦k≦n、ノード番号nであるノードは目標木の根ノードであり、ノード番号がn-1であるノードは根ノードの最も左側のノードである、ステップと、ノード番号がn-k+2であるノードについて子ノードが存在し、且つ子ノードの番号が初期化番号である場合、番号が初期化番号である子ノードのうちの最も左側の子ノードのノード番号をn-k+1として決定するステップと、を実行するように構成される。
【0154】
本発明の実施例は、コンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムをさらに提供する。該コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されている。電子機器のプロセッサは、コンピュータ読み取り可能な記憶媒体からコンピュータ命令を読み出し、プロセッサは、電子機器に本発明の実施例に係る上記の量子回路の最適化方法を実行させるように、コンピュータ命令を実行する。
【0155】
本発明の実施例は、コンピュータ実行可能な命令が記憶されたコンピュータ読み取り可能な記憶媒体であって、命令は、プロセッサにより実行される際に、プロセッサに本発明の実施例に係る量子回路の最適化方法、例えば
図4に示すような量子回路の最適化方法を実行させる。
【0156】
幾つかの実施例では、コンピュータ読み取り可能な記憶媒体は、FRAM、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、磁気表面メモリ、光ディスク、又はCD-ROMなどのメモリであってもよいし、上記のメモリの1つ又は任意の組み合わせを含む各種の機器であってもよい。
【0157】
幾つかの実施例では、実行可能な命令は、プログラム、ソフトウェア、ソフトウェアモジュール、スクリプト又はコードの形式で任意の形式のプログラミング言語(コンパイル若しくは解釈言語、又は宣言的又は手続き的言語を含む)で作成されてもよく、任意の形式で実装されてもよく、例えば、スタンドアロンプログラムとして実装されてもよいし、モジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に適したその他のユニットとして実装されてもよい。
【0158】
一例として、実行可能な命令は、1つの電子機器に実装されて実行されてもよいし、1つの場所に配置された複数の電子機器で実行されてもよいし、複数の場所に分散され、且つ通信ネットワークを介して相互に接続された複数の電子機器で実行されてもよい。
【0159】
上述したように、本発明の実施例によれば、まず最適化すべき量子回路を変換して得られた処理すべきユニタリ行列に対して反復分解を行い、その後、分解により得られた量子ビット均一制御ゲートを分解し、量子ビット対角ユニタリ行列と単一量子ビットゲートを取得する。これによって、量子回路の最適化問題を量子ビット対角ユニタリ行列の量子回路実装問題に再帰的に変換することを実現し、連結グラフの制限下で、量子ビット対角ユニタリ行列についてマッチ量子回路を決定し、最終的にマッチ量子回路と単一量子ビットゲートとを整合して最適化された量子回路を取得する。従って、連結グラフの制限下で最適化された量子回路を、即ち、演算速度がより速い最適化量子回路を取得し、量子回路の最適化の効果を向上させることができる。また、該最適化量子回路を量子計算機器に適用すると、量子計算機器の演算速度を加速させ、量子計算機器の演算効率を向上させることができる。連結グラフ制限での回路サイズがO(2n)である量子状態の調製回路を実現することができるため、連結グラフ制限での量子状態の調製回路のサイズも最適である。
【0160】
以上は、単に本発明の例示的な実施例を説明し、本発明を制限するものではない。本発明の主旨及び原則の範囲内で行われる変更、均等的な置換、改良などは、本発明の保護範囲内に含まれる。
【国際調査報告】