(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-08
(45)【発行日】2024-02-19
(54)【発明の名称】量子コンピューティングシステムおよびその動作方法
(51)【国際特許分類】
G06N 10/20 20220101AFI20240209BHJP
【FI】
G06N10/20
(21)【出願番号】P 2022165055
(22)【出願日】2022-10-13
【審査請求日】2022-10-20
(31)【優先権主張番号】10-2021-0143604
(32)【優先日】2021-10-26
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0058786
(32)【優先日】2022-05-13
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】596180076
【氏名又は名称】韓國電子通信研究院
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
【住所又は居所原語表記】218,Gajeong-ro Yuseong-gu Daejeon 34129,Republic of Korea
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【氏名又は名称】吉田 昌司
(72)【発明者】
【氏名】ス、チョルオ
(72)【発明者】
【氏名】チェイ、ヨルキム
(72)【発明者】
【氏名】ジン、ホオン
(72)【発明者】
【氏名】サン、ミンリー
(72)【発明者】
【氏名】ギュ、イルチャ
【審査官】牛丸 太希
(56)【参考文献】
【文献】L. Lao など,Mapping of Lattice Surgery-based Quantum Circuits on Surface Code Architectures,arxiv.org,2018年05月28日,https://arxiv.org/abs/1805.11127
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00-10/80
(57)【特許請求の範囲】
【請求項1】
所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力する論理キュービット量子コンパイラと、
前記量子カーネルに基づいて複数の物理キュービット量子命令を生成する論理キュービット量子カーネル実行器と、
前記物理キュービット量子命令を受信して物理量子演算を行う物理キュービット量子システムとを含
み、
前記論理キュービット量子コンパイラは、
前記入力された量子コードを量子複合演算命令の組合せに分解して論理キュービットを対象とする量子複合演算命令ベースのコードを生成する量子複合演算命令組合せ部と、
前記量子複合演算命令ベースのコードが入力されて論理キュービットを対象とする量子基本演算命令に分解し、量子基本演算命令ベースの量子カーネルを生成する量子基本演算命令生成部とを含む、
量子コンピューティングシステム。
【請求項2】
前記論理キュービット量子コンパイラは、データ論理キュービットの演算のための臨時論理キュービットを選定し、前記量子複合演算命令を構成する少なくとも1つの量子基本演算命令に対する並列および順次実行スケジューリングを行うものである、
請求項
1に記載の量子コンピューティングシステム。
【請求項3】
前記量子複合演算命令は、n個(nは自然数)の量子基本演算命令グループを含み、前記量子基本演算命令グループは、k個(kは自然数)の量子基本演算命令を含みかつ、
前記量子基本演算命令グループは、定められた時間によって順次に行われ、前記量子基本演算命令グループ内の量子基本演算命令は、互いに並列的に行われるものである、
請求項
1に記載の量子コンピューティングシステム。
【請求項4】
前記量子基本演算命令のうち併合量子基本演算命令は、第1境界または第2境界に隣り合う第1論理キュービットと第2論理キュービットとを1つの論理キュービットに併合するようにする量子基本演算命令でかつ、
前記併合量子基本演算命令が行われることにより併合された論理キュービットは、前記第1および第2論理キュービットのもつれ状態を有するものである、
請求項
1に記載の量子コンピューティングシステム。
【請求項5】
前記論理キュービット量子カーネル実行器は、前記併合量子基本演算命令の併合測定結果を格納する併合論理キュービット測定結果格納部を含むものである、
請求項
4に記載の量子コンピューティングシステム。
【請求項6】
前記量子基本演算命令のうち分割量子基本演算命令は、前記併合された論理キュービットを前記第1境界または第2境界に隣り合う第1論理キュービットと第2論理キュービットとに分割するようにする量子基本演算命令でかつ、
前記分割量子基本演算命令が行われることにより分割された第1および第2論理キュービットは、もつれ状態を有するものである、
請求項
4に記載の量子コンピューティングシステム。
【請求項7】
前記量子複合演算命令のうち移動量子複合演算命令は、出発地である第1論理キュービットの状態を、第1境界または第2境界に隣接した目的地である第2論理キュービットに移動するようにする量子複合演算命令でかつ、
前記第1論理キュービットは、データ論理キュービットであり、前記第2論理キュービットは、臨時論理キュービットである、
請求項
1に記載の量子コンピューティングシステム。
【請求項8】
前記移動量子複合演算命令は、
前記臨時論理キュービットの初期化のための初期化量子基本演算命令グループと、
前記第1論理キュービットと第2論理キュービットを対象に前記第1境界または第2境界に相応する併合論理キュービットを生成する併合量子基本演算命令グループと、
前記併合論理キュービットを対象にもつれ状態の第1および第2論理キュービットに分割する分割量子基本演算命令グループと、
前記もつれ状態の第1論理キュービットの量子状態を第2論理キュービットに移動させ、前記第1論理キュービットを臨時論理キュービットに変更し、前記第2論理キュービットをデータ論理キュービットに変更する移動後処理量子基本演算命令グループとを含むものである、
請求項
7に記載の量子コンピューティングシステム。
【請求項9】
前記移動後処理量子基本演算命令グループの移動後処理量子基本演算命令は、前記第2境界に相応する前記併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、第2論理キュービットに論理Z演算を行い、
前記第1論理キュービットのZ基底測定結果の固有値が-1であれば、前記第2論理キュービットに論理X演算を行うものである、
請求項
8に記載の量子コンピューティングシステム。
【請求項10】
前記移動後処理量子基本演算命令グループの移動後処理量子基本演算命令は、前記第1境界に相応する前記併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、第2論理キュービットに論理X演算を行い、
前記第1論理キュービットのX基底測定結果の固有値が-1であれば、前記第2論理キュービットに論理Z演算を行うものである、
請求項
8に記載の量子コンピューティングシステム。
【請求項11】
前記量子複合演算命令のうちCNOT量子複合演算命令は、第1論理キュービットおよび第2論理キュービットのいずれか1つをそれぞれ制御およびターゲットとして用いるControlled-NOT動作を行うようにする量子複合演算命令でかつ、
前記第1および第2論理キュービットは、データ論理キュービットである、
請求項
1に記載の量子コンピューティングシステム。
【請求項12】
前記CNOT量子複合演算命令は、
臨時論理キュービットの初期化のための初期化量子基本演算命令グループと、
前記第1論理キュービットと前記臨時論理キュービットを対象に第1境界または第2境界に相応する第1併合論理キュービットを生成する第1併合量子基本演算命令グループと、
前記第1併合論理キュービットを対象にもつれ状態の第1論理キュービットおよび臨時論理キュービットに分割する第1分割量子基本演算命令グループと、
前記第2論理キュービットと前記もつれ状態の臨時論理キュービットを対象に前記第2境界または第1境界に相応する第2併合論理キュービットを生成する第2併合量子基本演算命令グループと、
前記第2併合論理キュービットを対象にもつれ状態の第2論理キュービットおよび臨時論理キュービットに分割する第2分割量子基本演算命令グループと、
前記もつれ状態の第1および第2論理キュービットと臨時論理キュービットに対するもつれ状態を解除するCNOT後処理量子基本演算命令グループとを含むものである、
請求項
11に記載の量子コンピューティングシステム。
【請求項13】
前記CNOT後処理量子基本演算命令グループのCNOT後処理量子基本演算命令は、前記第1境界に相応する第2併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、ターゲットである論理キュービットに論理X演算を行い、
前記第2境界に相応する第1併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値と、臨時論理キュービットのX基底測定結果の固有値、のいずれか1つが-1であれば、制御である論理キュービットに論理Z演算を行うものである、
請求項
12に記載の量子コンピューティングシステム。
【請求項14】
前記CNOT後処理量子基本演算命令グループのCNOT後処理量子基本演算命令は、前記第2境界に相応する第2併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、制御である論理キュービットに論理Z演算を行い、
前記第1境界に相応する第1併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値と、臨時論理キュービットのZ基底測定結果の固有値、のいずれか1つが-1であれば、ターゲットである論理キュービットに論理X演算を行うものである、
請求項
12に記載の量子コンピューティングシステム。
【請求項15】
前記量子複合演算命令のうち交換量子複合演算命令は、第1論理キュービットと第2論理キュービットの状態を交換する動作を行うようにする量子複合演算命令でかつ、
前記第1および第2論理キュービットは、データ論理キュービットであり、前記第1および第2論理キュービットの第1および第2境界に位置する第3および第4論理キュービットは、臨時論理キュービットである、
請求項
1に記載の量子コンピューティングシステム。
【請求項16】
前記交換量子複合演算命令は、
前記第3および第4論理キュービットの初期化のための第1初期化量子基本演算命令グループと、
前記第1境界に位置する前記第1および第3論理キュービットを併合し、前記第2および第4論理キュービットを併合する第1併合量子基本演算命令グループと、
前記併合された各併合論理キュービットを対象にもつれ状態の第1および第3論理キュービットに分割し、第2および第4論理キュービットに分割する第1分割量子基本演算命令グループと、
前記もつれ状態の第1および第2論理キュービットの量子状態をそれぞれ第3および第4論理キュービットに移動させ、前記第3および第4論理キュービットをそれぞれ第1および第2論理キュービットに相応するデータ論理キュービットに変更する第1移動後処理量子基本演算命令グループと、
臨時論理キュービットに変更された第1および第2論理キュービットの初期化のための第2初期化量子基本演算命令グループと、
前記第2境界に位置する前記第1および第4論理キュービットを併合し、前記第2および第3論理キュービットを併合する第2併合量子基本演算命令グループと、
前記併合された各併合論理キュービットを対象にもつれ状態の第1および第4論理キュービットに分割し、第2および第3論理キュービットに分割する第2分割量子基本演算命令グループと、
前記もつれ状態の第3および第4論理キュービットの量子状態をそれぞれ第2および第1論理キュービットに移動させ、前記第2および第1論理キュービットをそれぞれ第3および第4論理キュービットに相応するデータ論理キュービットに変更する第2移動後処理量子基本演算命令グループとを含む、
請求項
15に記載の量子コンピューティングシステム。
【請求項17】
前記論理キュービット量子カーネル実行器は、
前記量子カーネルが入力されて量子基本演算命令を複数の物理キュービット量子命令に分解する量子基本演算命令分解部と、
前記分解された物理キュービット量子命令を前記物理キュービット量子システムに相応するように最適化およびスケジューリングを行う物理キュービット量子命令最適化部とを含む、
請求項1に記載の量子コンピューティングシステム。
【請求項18】
前記論理キュービット量子カーネル実行器は、
前記物理量子演算が行われることによる物理キュービットの測定結果を組合せて単一論理キュービット測定結果を生成および格納する単一論理キュービット測定結果格納部を含む論理キュービット測定結果格納部と、
前記論理キュービットを対象とする一部の量子複合演算命令の最終の量子基本演算命令を実行する量子基本演算の後処理部とを含む、
請求項1に記載の量子コンピューティングシステム。
【請求項19】
量子コンピューティングシステムにより行われる動作方法において、
所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力するステップと、
前記出力された量子カーネルに基づいて複数の物理キュービット量子命令を生成するステップと、
前記物理キュービット量子命令を受信して物理量子演算を行うステップとを含
み、
前記所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力するステップは、
前記入力された量子コードを量子複合演算命令の組合せに分解して論理キュービットを対象とする量子複合演算命令ベースのコードを生成するステップと、
前記量子複合演算命令ベースのコードが入力されて論理キュービットを対象とする量子基本演算命令に分解し、量子基本演算命令ベースの量子カーネルを生成するステップを含む、
動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子コンピューティングシステムおよびその動作方法に関し、論理キュービットを用いた専用の量子演算命令構造に基づく量子コンピューティングシステムおよびその動作方法に関する。
【背景技術】
【0002】
量子コンピュータはもつれ、重ね合わせなどのような量子力学性の現象を用いてデータを処理するコンピュータである。量子コンピュータは半導体コンピュータを代替可能な次世代コンピュータとされている。しかし、量子コンピュータに関連づけられた技術研究は量子コンピュータを実現するには及んでいない。
【0003】
量子コンピュータは多様な企業によって活発に研究されている。最近の量子コンピュータは約50個の情報の誤りを有するキュービットを支援する水準の初期開発段階にあり、まだ実用化されていない状態である。
【0004】
一方、量子コンピューティングシステムでは物理キュービットの誤り率が高いため、誤り率を減少させるために、複数の物理キュービットを用いて1つの論理キュービットを生成し、これを運営する方法を使用する。ただし、量子コンピューティングシステムを効果的に実現するために、論理キュービットのための量子演算命令構造が必要であるが、今のところは物理キュービットで用いていた量子演算命令構造を修正なしにそのまま用いている。
【0005】
一般的に、論理キュービットは複数の物理キュービット集合で構成されるため、論理キュービットを対象とする量子論理演算命令は、物理キュービット量子演算命令よりはるかに複雑な実行過程が用いられる。
【0006】
したがって、論理キュービットの演算特性を正確に反映する論理キュービットに基づく専用の量子演算命令構造が必要であり、これによって論理キュービット量子演算命令の実行に必要な時間および資源の大きさを減少させることができる。
【先行技術文献】
【特許文献】
【0007】
【文献】韓国公開特許公報第10-2021-0008297号(2021.01.21)
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、表面コード方式の論理キュービットを用いた演算分解ベースの量子基本演算命令とこれを結合した量子複合演算命令を提案し、当該命令の動作方法およびそのための量子コンピューティングシステムを提供することである。
【0009】
ただし、本発明が解決しようとする課題は上記の課題に限定されず、さらに他の課題が存在することができる。
【課題を解決するための手段】
【0010】
上述した課題を解決するための、本発明の第1側面による量子コンピューティングシステムは、所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力する論理キュービット量子コンパイラと、前記量子カーネルに基づいて複数の物理キュービット量子命令を生成する論理キュービット量子カーネル実行器と、前記物理キュービット量子命令を受信して物理量子演算を行う物理キュービット量子システムとを含む。
【0011】
また、本発明の第2側面による量子コンピューティングシステムにより行われる動作方法は、所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力するステップと、前記出力された量子カーネルに基づいて複数の物理キュービット量子命令を生成するステップと、前記物理キュービット量子命令を受信して物理量子演算を行うステップとを含む。
【0012】
上述した課題を解決するための、本発明の他の側面によるコンピュータプログラムは、ハードウェアであるコンピュータと結合されて量子コンピューティングシステムにより行われる動作方法を実行し、コンピュータ読取可能記録媒体に格納される。
【0013】
本発明のその他の具体的な事項は詳細な説明および図面に含まれている。
【発明の効果】
【0014】
上述した本発明の一実施例は、論理キュービット量子コンピューティングシステムのための論理キュービット専用の量子演算命令構造を提案する。本発明の一実施例による論理キュービット量子演算命令構造は、既存の量子命令をより小さい演算単位に分解し、論理キュービット量子演算命令の実行に付加的に必要な臨時論理キュービットまで表現可能という特徴を有する。
【0015】
これにより、本発明の一実施例は、実際の量子命令が行われる前に行われる作業スケジューリングおよび最適化にかかる計算資源と実行費用を減少させることができる。
【0016】
本発明の効果は以上に言及された効果に制限されず、言及されていないさらに他の効果は以下の記載から通常の技術者に明確に理解されるであろう。
【図面の簡単な説明】
【0017】
【
図1A】論理キュービットが配置される例を示す図である。
【
図1B】論理キュービットが配置される例を示す図である。
【
図1C】論理キュービットが配置される例を示す図である。
【
図1D】論理キュービットが配置される例を示す図である。
【
図2】本発明の一実施例による量子複合演算命令の構成方法を説明するための図である。
【
図3】MOVE_MXX量子複合演算命令の構成を説明するための図である。
【
図4】MOVE_MZZ量子複合演算命令の構成を説明するための図である。
【
図5】SWAP量子複合演算命令の構成を説明するための図である。
【
図6】CNOT_MXX量子複合演算命令の構成を説明するための図である。
【
図7】CNOT_MZZ量子複合演算命令の構成を説明するための図である。
【
図8】本発明の一実施例による量子コンピューティングシステムのブロック図である。
【
図9A】本発明の一実施例によるMERGE_MXX量子基本演算命令の動作方式を説明するための図である。
【
図9B】本発明の一実施例によるMERGE_MXX量子基本演算命令の動作方式を説明するための図である。
【
図10A】本発明の一実施例によるMERGE_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図10B】本発明の一実施例によるMERGE_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図11A】本発明の一実施例によるSPILT_MXX量子基本演算命令の動作方式を説明するための図である。
【
図11B】本発明の一実施例によるSPILT_MXX量子基本演算命令の動作方式を説明するための図である。
【
図12A】本発明の一実施例によるSPILT_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図12B】本発明の一実施例によるSPILT_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図13A】本発明の一実施例によるMOVE_POST_MXX量子基本演算命令の動作方式を説明するための図である。
【
図13B】本発明の一実施例によるMOVE_POST_MXX量子基本演算命令の動作方式を説明するための図である。
【
図14A】本発明の一実施例によるMOVE_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図14B】本発明の一実施例によるMOVE_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図15A】本発明の一実施例によるCNOT_POST_MXXとCNOT_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図15B】本発明の一実施例によるCNOT_POST_MXXとCNOT_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【
図16A】本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【
図16B】本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【
図16C】本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【
図16D】本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【
図16E】本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【
図17A】本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図17B】本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図17C】本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図17D】本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図17E】本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図18A】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18B】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18C】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18D】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18E】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18F】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18G】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18H】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図18I】本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【
図19A】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19B】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19C】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19D】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19E】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19F】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図19G】本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【
図20A】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20B】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20C】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20D】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20E】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20F】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図20G】本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
【
図21】本発明の一実施例による動作方法のフローチャートである。
【発明を実施するための形態】
【0018】
本発明の利点および特徴、そしてそれらを達成する方法は添付した図面とともに詳細に後述する実施例を参照すれば明確になる。しかし、本発明は以下に開示される実施例に制限されるものではなく、互いに異なる多様な形態で実現可能であり、単に本実施例は本発明の開示が完全となるようにし、本発明の属する技術分野における通常の技術者に本発明の範疇を完全に知らせるために提供されるものであり、本発明は請求項の範疇によってのみ定義される。
【0019】
本明細書で使われた用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。本明細書において、単数形は、文言で特に言及しない限り、複数形も含む。明細書で使われる「含む(comprises)」および/または「含む(comprising)」は、言及された構成要素のほか、1つ以上の他の構成要素の存在または追加を排除しない。明細書全体にわたって同一の図面符号は同一の構成要素を指し示し、「および/または」は、言及された構成要素のそれぞれおよび1つ以上のすべての組み合わせを含む。たとえ、「第1」、「第2」などが多様な構成要素を述べるために使われるが、これらの構成要素はこれらの用語によって制限されないことはもちろんである。これらの用語は、単に1つの構成要素を他の構成要素と区別するために使うものである。したがって、以下に言及される第1構成要素は、本発明の技術的思想内で第2構成要素であってもよいことはもちろんである。
【0020】
他に定義されなければ、本明細書で使われるすべての用語(技術および科学的用語を含む)は、本発明の属する技術分野における通常の技術者に共通して理解できる意味で使われるであろう。また、一般的に使われる事前に定義されている用語は、明らかに特に定義されていない限り、理想的または過度に解釈されない。
【0021】
以下、まず、通常の技術者の理解のために、本発明が着目した背景について説明した後、本発明について詳しく説明する。
【0022】
量子コンピュータはもつれ、重ね合わせなどのような量子力学に基づく未来型スーパーコンピュータである。量子コンピュータは10年内に商用化されるという見込みが出るとともに、新物質や新薬開発、宇宙航空などこれまで人類が解けなかった課題を解決する未来の技術として注目されている。
【0023】
このような量子コンピュータは多様な企業によって研究されている。IBMは、ユーザが遠隔で量子コンピュータにアクセスできるように共用クラウドに量子コンピューティングを導入した最初の会社になり、Googleは、2018年、Sycamoreという54キュービットの量子プロセッサを用いて量子優位を達成できたことを、科学界に明言した。
【0024】
一方、量子コンピューティングシステムは、根本的にエラーに極めて脆弱であり、システムの信頼度を高めるために、一般的に量子誤り訂正符号技術を用いる。最近、これに関連する量子誤り訂正符号技術の中でシステムとして最も実現の可能性が高いものが表面コードである。
【0025】
表面コードは多数の物理キュービットを用いて1つの論理キュービットを提供する方式である。表面コード上で複数の論理キュービットを対象とする量子演算の実現は、代表的に格子手術手法を使用する。
【0026】
既存の量子演算命令構造は物理キュービットをベースとし、これを論理キュービット技術にもそのまま適用していて、新たな論理キュービット量子演算の特性を適切に反映することができない。例えば、多数の論理キュービット量子演算に付加的に用いられる臨時論理キュービットを表現することができない。また、論理キュービット量子演算を物理キュービット量子演算に分解した量子実行コードのサイズが大きいというデメリットを有する。
【0027】
これは、論理キュービット演算の最適化および効率的な作業スケジューリングにおいて高い最適化時間と資源使用負荷を発生させる。
【0028】
このような問題を解消するために、本発明の一実施例による量子コンピューティングシステムおよびその動作方法は、表面コード方式の論理キュービットを用いた演算分解ベースの量子基本演算命令とこれを結合した量子複合演算命令を提案する。
【0029】
論理キュービットのための専用の量子演算命令構造は、論理量子演算命令を基本物理命令よりも小さい演算単位である量子基本演算命令に分解することにより行われる。これにより、本発明の一実施例は、実際の論理キュービットのための量子演算命令が行われる前に行われる作業スケジューリングおよび最適化にかかる資源使用負荷と最適化時間を減少させることができる。これに関連してより詳しく説明すれば次の通りである。
【0030】
第一、本発明の一実施例は、臨時論理キュービットに関連する量子演算作業スケジューリングを、実際の量子演算が行われる時点ではない、演算実行前の量子コンパイリングの時点で処理する。
【0031】
論理キュービット量子演算は、データを格納するデータ論理キュービットのほか、演算に付加的に用いる臨時論理キュービットを必要とする。しかし、既存の物理キュービット方式の量子演算構造は臨時論理キュービットを表現することができない。したがって、臨時論理キュービットの選定と並列/順次実行スケジューリングを実際の量子演算が実行される時点で行うことによりさらなる実行負荷を誘発して、物理キュービットのコヒーレンス(Coherence)時間を超える可能性が増加する。
【0032】
本発明の一実施例で提案する量子演算命令構造は、臨時論理キュービットを表現できるようにする。したがって、臨時論理キュービットの選定と並列/順次実行スケジューリングを、実際の量子演算実行の時点ではない、量子コンパイリングの時点で行えるようにする。これにより、本発明の一実施例は、実際の量子演算を行う時のさらなる実行時間負荷を減少させることができる。
【0033】
第二、本発明の一実施例は、論理キュービット量子演算を物理キュービット量子演算に分解した後の最適化作業にかかる時間を減少させることができる。
【0034】
単一論理キュービットは距離(d)で特定され、dが大きくなるほど誤り率が減少する。単一論理キュービットを構成する物理キュービットの数はd2になり、論理量子演算を構成する物理量子演算の数もO(d2)に増加する。誤り率を減少させるためにはdが増加しなければならず、実際に単一論理量子演算は数百~数万個の物理量子演算に分解される。このように分解された物理量子演算を最終的に物理キュービット量子演算システムで行うためには、物理量子システムの特性を反映して最適化作業を行わなければならない。そして、大きな規模の物理量子演算を1つの問題空間内で最適化する作業は多くの計算資源と実行費用を必要とする。
【0035】
この時、量子演算最適化の問題空間は、論理キュービット演算が分解された物理キュービットの個数および命令奥行(depth)で表現される。命令奥行は、単一物理キュービットを基準とした時、順次に行われる量子演算の個数である。
【0036】
本発明の一実施例は、単一論理量子命令をより小さな演算単位である量子基本演算命令に分解することにより、最適化に用いられる物理キュービットの個数および演算奥行を減少させることができる。したがって、本発明の一実施例は、最適化作業に必要な問題空間の大きさを減少させることができる。結果的に、本発明の一実施例は、物理量子演算の最適化作業に必要な計算資源の大きさと処理時間を減少させることができる。
以下、
図1A~
図20GGを参照して、本発明の一実施例による量子コンピューティングシステムについて詳しく説明する。
【0037】
図1A~
図1Dは、論理キュービットが配置される例を示す図である。
【0038】
図1A~
図1Dは、表面コードに基づいた論理キュービット(LQ:Logical Qubit)の多様な配置構造の中で代表的な4つの例を示す図である。各図面で、小さい四角形は、複数の物理キュービットに表面コードを適用して生成された1つの論理キュービットを示す。
【0039】
各論理キュービットは2種類の境界を有する。この時、実線はX境界を示し、点線はZ境界を示す。本発明の説明では、X境界を第1境界、Z境界を第2境界と称した。しかし、必ずしもこれに限定されるものではなく、実施例により、X境界が第2境界になり、これとは逆に、Z境界は第1境界になってもよい。各論理キュービットは同一の境界同士(第1境界同士または第2境界同士)で対向して隣り合うことができ、このような条件を満たす多様な論理キュービットの配置が可能である。
【0040】
図1Aは、上下部分が第1境界(X境界)であり、左右部分が第2境界(Z境界)である論理キュービットを横および縦方向に配置した構造110を示した。
図1Bは、左右部分が第1境界(X境界)であり、上下部分が第2境界(Z境界)である論理キュービットを横および縦方向に配置した構造120を示した。
【0041】
図1Cと
図1Dは、論理キュービットが対角方向に配置された構造を示す図である。
図1Cは、右上、左下部分が第1境界(X境界)であり、左上、右下部分が第2境界(Z境界)である論理キュービットを対角方向に配置した構造130を示した。
図1Dは、左上、右下部分が第1境界(X境界)であり、右上、左下部分が第2境界(Z境界)である論理キュービットを対角方向に配置した構造140を示した。
【0042】
以下、本発明の説明では、便宜上、
図1Aに示された配置構造110を基準として説明する。しかし、本発明の権利範囲は必ずしもこれに限定されるものではなく、図面に示された配置構造およびその他に適用可能な配置構造においても同一の命令と動作を使用できることはもちろんである。
【0043】
本発明の一実施例は、表面コードに基づいた論理キュービットのための量子コンピューティングシステムにおいて、複数の論理キュービットを対象とする量子演算を行うために、格子手術(Lattice Surgery)手法を使用する。
図1A~
図1Dで説明した多様な論理キュービットの配置において格子手術手法を使用するために、本発明では、次のような量子基本演算命令および量子複合演算命令を提案する。この時、量子複合演算命令は量子基本演算命令の組合せで生成される。
【0044】
まず、本発明の一実施例で提案する量子基本演算命令は次の通りである。
【0045】
-MERGE_MXX a、b:第2境界(Z境界)に隣り合う論理キュービット(a)と論理キュービット(b)とを1つの論理キュービットに併合する。
【0046】
-MERGE_MZZ a、b:第1境界(X境界)に隣り合う論理キュービット(a)と論理キュービット(b)とを1つの論理キュービットに併合する。
【0047】
-SPLIT_MXX a、b:MERGE_MXX量子基本演算命令を用いて併合された論理キュービットを論理キュービット(a)と論理キュービット(b)とに再度分割する。
【0048】
-SPLIT_MZZ a、b:MERGE_MZZ量子基本演算命令を用いて併合された論理キュービットを論理キュービット(a)と論理キュービット(b)とに再度分割する。
【0049】
-MOVE_POST_MXX a、b:量子複合演算命令であるMOVE_MXX命令実行の最後のステップで用いる量子基本演算命令である。MOVE動作の出発地は論理キュービット(a)であり、目的地は論理キュービット(b)である。
【0050】
-MOVE_POST_MZZ a、b:量子複合演算命令であるMOVE_MZZ命令実行の最後のステップで用いる量子基本演算命令である。MOVE動作の出発地は論理キュービット(a)であり、目的地は論理キュービット(b)である。
【0051】
-CNOT_POST_MXX a、b、c:量子複合演算命令であるCNOT_MXX命令実行の最後のステップで用いる命令語である。論理キュービット(a)は制御(control)、論理キュービット(b)はターゲット(target)、論理キュービット(c)は臨時論理キュービットとして用いられる。
【0052】
-CNOT_POST_MZZ a、b、c:量子複合演算命令であるCNOT_MZZ命令実行の最後のステップで用いる命令語である。論理キュービット(a)は制御(control)、論理キュービット(b)はターゲット(target)、論理キュービット(c)は臨時論理キュービットとして用いられる。
【0053】
参照として、本発明の説明では、必要に応じて、MERGE_MXX、MERGE_MZZを併合量子基本演算命令、SPILT_MXX、SPILT_MZZを分割量子基本演算命令、MOVE_POST_MXX、MOVE_POST_MZZを移動後処理量子基本演算命令、CNOT_POST_MXX、CNOT_POST_MZZをCNOT後処理量子基本演算命令と称することとする。
【0054】
次に、本発明の一実施例で提案する量子複合演算命令は次の通りである。
【0055】
-MOVE_MXX a、b:出発地である論理キュービット(a)の状態を、第2境界(Z境界)に隣接した目的地論理キュービット(B)に移動する。
【0056】
-MOVE_MZZ a、b:出発地である論理キュービット(a)の状態を、第1境界(X境界)に隣接した目的地論理キュービット(B)に移動する。
【0057】
-SWAP a、b、c、d:論理キュービット(a)と論理キュービット(b)の状態を交換する。交換動作を実行するために、論理キュービット(c)と論理キュービット(d)を臨時キュービットとして活用する。
【0058】
-CNOT_MXX a、b、c/CNOT_MZZ a、b、c:論理キュービット(a)を制御(control)として用い、論理キュービット(b)をターゲット(target)として用いるControlled-NOT動作を行う。この時、論理キュービット(c)を臨時キュービットとして活用する。CNOT_MXXは、ターゲットとして用いる論理キュービット(b)と、臨時キュービットとして用いる論理キュービット(c)との併合を先に行う方法であり、CNOT_MZZは、制御として用いる論理キュービット(a)と、臨時キュービットとして用いる論理キュービット(c)との併合を先に行う方法である。CNOT_MXXとCNOT_MZZの最終実行結果は同一である。
【0059】
参照として、本発明の説明では、必要に応じて、MOVE_MXX、MOVE_MZZを移動量子複合演算命令、SWAPを交換量子複合演算命令、CNOT_MXX、CNOT_MZZをCNOT量子複合演算命令と称することとする。
【0060】
図2は、本発明の一実施例による量子複合演算命令の構成方法を説明するための図である。
【0061】
一実施例として、1個の量子複合演算命令210は、n個(nは自然数)の量子基本演算命令グループ220を含む。量子複合演算命令210内の量子基本演算命令グループ220は、時間によって順次に実行されなければならない。したがって、量子基本演算命令グループ1の実行が完了した後、量子基本演算命令グループ2が実行されなければならず、量子基本演算命令グループnが一番最後に実行される。
【0062】
一実施例として、1個の量子基本演算命令グループ220は、k個(kは自然数)の量子基本演算命令221を含む。量子基本演算命令グループ220内の量子基本演算命令221が複数個含まれる場合、複数の量子基本演算命令221は、互いに並列的に実行される。すなわち、量子基本演算命令1から量子基本演算命令kまでは互いに並列的に同時に行われる。
【0063】
したがって、最終的に1個の量子複合演算命令210は、並列または順次に行われる複数の量子基本演算命令221で構成される。
【0064】
図2の量子基本演算命令を組合せて量子複合演算命令を構成する方法を、
図3~
図7を参照して説明する。この時、INIT命令は単一論理キュービットを初期化する量子基本演算命令で、本発明で提案する命令ではないが、量子複合演算命令を構成するために活用する。
【0065】
参照として、
図3~
図7に示された論理キュービットの番号は、後述する
図9~
図20における量子基本演算命令および量子複合演算命令の詳しい動作説明と一致するように付与した。
【0066】
図3は、MOVE_MXX量子複合演算命令の構成を説明するための図である。
【0067】
移動量子複合演算命令であるMOVE_MXX命令300は、出発地である第1論理キュービットの状態を、第2境界(Z境界)に隣接した目的地である第2論理キュービットに移動するようにする量子複合演算命令である。
【0068】
MOVE_MXX量子複合演算命令300は、4個の量子基本演算命令グループ310~340で構成される。各量子基本演算命令グループ310~340は、1個の量子基本演算命令だけを含む。したがって、MOVE_MXX量子複合演算命令300は、INIT命令、MERGE_MXX命令、SPLIT_MXX命令、MOVE_POST_MXX命令を順次に実行すれば良い。
【0069】
図4は、MOVE_MZZ量子複合演算命令の構成を説明するための図である。
【0070】
移動量子複合演算命令であるMOVE_MZZ命令400は、出発地である第1論理キュービットの状態を、第1境界(X境界)に隣接した目的地である第2論理キュービットに移動するようにする量子複合演算命令である。
【0071】
MOVE_MZZ量子複合演算命令400は、MOVE_MXX量子複合演算命令300と同様に、4個の量子基本演算命令グループ410~440で構成される。各量子基本演算命令グループ410~440は、1個の量子基本演算命令だけを含む。したがって、MOVE_MZZ量子複合演算命令400は、INIT命令、MERGE_MZZ命令、SPLIT_MZZ命令、MOVE_POST_MZZ命令を順次に実行すれば良い。
【0072】
図5は、SWAP量子複合演算命令の構成を説明するための図である。
【0073】
交換量子複合演算命令であるSWAP命令500は、第1論理キュービットと第2論理キュービットの状態を交換する動作を行うようにする量子複合演算命令である。
【0074】
SWAP量子複合演算命令500は、8個の量子基本演算命令グループ510~580で構成される。各量子基本演算命令グループ510~580は、2個の量子基本演算命令で構成される。各量子基本演算命令グループ510~580に属した2個の量子基本演算命令は、互いに並列的に行われる。
【0075】
また、SWAP量子複合演算命令500内の量子基本演算命令グループ1から8(510~580)までは順次に実行されなければならない。まず、量子基本演算命令グループ1(510)に属した2個のINIT命令が並列に行われる。2個のINIT命令の実行が終了すると、次に、量子基本演算命令グループ2(520)に属した2個のMERGE_MXX命令が並列に行われる。この順序どおりに量子基本演算命令グループ8(530~580)まで行われる。
【0076】
図6は、CNOT_MXX量子複合演算命令の構成を説明するための図である。
【0077】
CNOT量子複合演算命令600は、第1論理キュービットおよび第2論理キュービットのいずれか1つをそれぞれ制御およびターゲットとして用いるControlled-NOT動作を行うようにする量子複合演算命令である。
【0078】
CNOT_MXX量子複合演算命令600は、6個の量子基本演算命令グループ610~660で構成される。各量子基本演算命令グループ610~660は、1個の量子基本演算命令だけを含む。したがって、CNOT_MXX量子複合演算命令600は、INIT命令、MERGE_MXX命令、SPLIT_MXX命令、MERGE_MZZ命令、SPLIT_MZZ命令、CNOT_POST_MXX命令を順次に実行すれば良い。
【0079】
図7は、CNOT_MZZ量子複合演算命令の構成を説明するための図である。
【0080】
CNOT_MZZ量子複合演算命令700は、6個の量子基本演算命令グループ710~760で構成される。各量子基本演算命令グループ710~760は、1個の量子基本演算命令だけを含む。したがって、CNOT_MZZ量子複合演算命令700は、INIT命令、MERGE_MZZ命令、SPLIT_MZZ命令、MERGE_MXX命令、SPLIT_MXX命令、CNOT_POST_MZZ命令を順次に実行すれば良い。
【0081】
次に、
図8を参照して、上述した量子基本演算命令および量子複合演算命令を処理する論理キュービットのための量子コンピューティングシステムについて説明する。
【0082】
図8は、本発明の一実施例による量子コンピューティングシステムのブロック図である。
【0083】
本発明の一実施例による量子コンピューティングシステム800は、論理キュービット量子コンパイラ810と、論理キュービット量子カーネル実行器820と、物理キュービット量子システム830とを含む。
【0084】
論理キュービット量子コンパイラ810は、所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力する。この時、所定の量子コードは、ユーザによって作成された量子コードであってもよい。
【0085】
一実施例として、論理キュービット量子コンパイラ810は、量子複合演算命令組合せ部811と、量子基本演算命令生成部812とを含むことができる。
【0086】
量子複合演算命令組合せ部811は、入力された量子コードを量子複合演算命令の組合せに分解して量子複合演算命令ベースのコードを生成する。以後、量子基本演算命令生成部812は、量子複合演算命令ベースのコードが入力されて量子基本演算命令に分解し、量子基本演算命令ベースの量子カーネルを生成する。
【0087】
したがって、論理キュービット量子コンパイラ810が出力として生成する量子カーネルは、量子基本演算命令の組合せで構成され、量子カーネルは、論理キュービット量子カーネル実行器820に入力される。
【0088】
論理キュービット量子カーネル実行器820は、入力された量子カーネルに基づいて複数の物理キュービット量子命令を生成する。
【0089】
一実施例として、論理キュービット量子カーネル実行器820は、量子基本演算命令分解部821と、物理キュービット量子命令最適化部822と、論理キュービット測定結果格納部823と、量子基本演算命令後処理部824とを含むことができる。
【0090】
1個の論理キュービットは複数の物理キュービットで構成されているため、1個の量子基本演算命令は複数の物理キュービット量子命令に分解されなければならない。量子基本演算命令分解部821はこのような分解作業を行う。すなわち、量子基本演算命令分解部821は、量子カーネルが入力されて量子基本演算命令を複数の物理キュービット量子命令に分解する。
【0091】
本発明の一実施例による量子基本演算命令分解部821は、MERGE_MXX分解部8211と、MERGE_MZZ分解部8212と、SPLIT_MXX分解部8213と、SPLIT_MZZ分解部8214と、MOVE_POST_MXX分解部8215と、MOVE_POST_MZZ分解部8216と、CNOT_POST_MXX分解部8217と、CNOT_POST_MZZ分解部8218とを含むことができる。
【0092】
物理キュービット量子命令最適化部822は、分解された物理キュービット量子命令を物理キュービット量子システム830の特性に相応するように最適化およびスケジューリングを行う。
【0093】
最適化された物理量子命令は、物理キュービット量子システム830に伝達されて物理量子演算が行われる。物理キュービット量子システム830での物理量子演算が終了すると、物理キュービットの測定結果は、論理キュービット測定結果格納部823に格納される。
【0094】
論理キュービット測定結果格納部823は、単一論理キュービット測定結果格納部8231と、併合論理キュービット測定結果格納部8232とを含むことができる。
【0095】
単一論理キュービット測定結果格納部8231は、物理量子演算が行われることによる物理キュービットの測定結果の組合せで単一論理キュービット測定結果を生成および格納する。
【0096】
併合論理キュービット測定結果格納部8232は、併合量子基本演算命令であるMERGE_MXX命令と、MERGE_MZZ命令の実行結果で測定された併合測定結果を格納する。
【0097】
一方、MERGE_MXX命令、MERGE_MZZ命令、SPILT_MXX命令、SPILT_MZZ命令の実行は、物理キュービット量子システム830で実行される。そして、測定結果は、論理キュービット測定結果格納部823に格納される。しかし、MOVE_POST_MXX命令、MOVE_POST_MZZ命令、CNOT_POST_MXX命令、CNOT_POST_MZZ命令は、追加的に量子基本演算命令後処理部824によって後処理過程が行われなければならない。
【0098】
本発明の一実施例による量子基本演算命令後処理部824は、MOVE_POST_MXX後処理部8241と、MOVE_POST_MZZ後処理部8242と、CNOT_POST_MXX後処理部8243と、CNOT_POST_MZZ後処理部8244とを含むことができる。
【0099】
MOVE_POST_MXX後処理部8241は、
図13で後述するMOVE_POST_MXX命令において目的地論理キュービットの測定を除いたすべての作業を行う。MOVE_POST_MZZ後処理部8242は、
図14で後述するMOVE_POST_MZZ命令において目的地論理キュービットの測定を除いたすべての作業を行う。CNOT_POST_MXX後処理部8243は、
図15で後述するCNOT_POST_MXX命令において論理キュービット(j)の測定を除いたすべての作業を行う。CNOT_POST_MZZ後処理部8244は、
図15で後述するCNOT_POST_MZZ命令において論理キュービット(j)の測定を除いたすべての作業を行う。
【0100】
以下、本発明で提案する量子基本演算命令と量子複合演算命令の動作方式をより詳しく説明する。各図面では、動作方式の説明のために、論理キュービットの番号をiからqまで付与した。
【0101】
まず、
図9A~
図15Bを参照して、本発明の一実施例における量子基本演算命令の動作方式について説明する。
【0102】
図9Aおよび
図9Bは、本発明の一実施例によるMERGE_MXX量子基本演算命令の動作方式を説明するための図である。
【0103】
量子基本演算命令のうち併合量子基本演算命令であるMERGE命令語は、第1境界(X境界)または第2境界(Z境界)に隣り合う第1論理キュービットと第2論理キュービットとを1つの論理キュービットに併合するようにする量子基本演算命令である。併合量子基本演算命令が行われることにより併合された論理キュービットは、第1および第2論理キュービットのもつれ状態を有する。
【0104】
MERGE_MXXは、第2境界(Z境界)に隣り合う2個の論理キュービットを1つの論理キュービットに併合する動作である。まず、
図9Aは、論理キュービット(l)と論理キュービット(m)とが併合される前の状態910を示す図である。
図9Bは、MERGE_MXX量子基本演算命令が行われることにより、論理キュービット(l)と論理キュービット(m)とが併合されて1つの併合論理キュービット(l_m)(MLQ:Merged Logical Qubit)として生成された結果920を示す図である。
【0105】
この時、併合論理キュービット(l_m)の状態は、併合前の2個の論理キュービット状態のもつれ(entanglement)と定義される。MERGE_MXX命令語が行われた後の併合測定結果は、後に行われる他の量子基本演算命令のために、論理キュービット量子カーネル実行器の併合論理キュービット測定結果格納部823に格納される。
【0106】
図10Aおよび
図10Bは、本発明の一実施例によるMERGE_MZZ量子基本演算命令の動作方式を説明するための図である。
【0107】
MERGE_MZZは、第1境界(X境界)に隣り合う2個の論理キュービットを1つの論理キュービットに併合する動作である。まず、
図10Aは、論理キュービット(j)と論理キュービット(m)とが併合される前の状態1010を示す図である。
図10Bは、MERGE_MZZ量子基本演算命令が行われることにより、論理キュービット(j)と論理キュービット(m)とが併合されて1つの併合論理キュービット(j_m)として生成された結果1020を示す図である。
【0108】
この時、併合論理キュービット(j_m)の状態は、併合前の2個の論理キュービット状態のもつれ(entanglement)と定義される。MERGE_MZZ命令語が行われた後の併合測定結果は、後に行われる他の量子基本演算命令のために、論理キュービット量子カーネル実行器の併合論理キュービット測定結果格納部823に格納される。
【0109】
図11Aおよび
図11Bは、本発明の一実施例によるSPILT_MXX量子基本演算命令の動作方式を説明するための図である。
【0110】
量子基本演算命令のうち分割量子基本演算命令であるSPILT命令語は、MERGE命令語によって併合された論理キュービットを第1境界(X境界)または第2境界(Z境界)に隣り合う第1論理キュービットと第2論理キュービットとに分割するようにする量子基本演算命令である。分割量子基本演算命令が行われることにより、分割された第1および第2論理キュービットは、もつれ状態を有する。
【0111】
SPLIT_MXXは、MERGE_MXX命令語を用いて併合された論理キュービットを2個の論理キュービットに分割する。
図11Aは、分割しようとする併合論理キュービット(m_n)を示す図である(1110)。
図11Bは、併合論理キュービット(m_n)が論理キュービット(m)と論理キュービット(n)とに分割されることを示す図である(1120)。この時、併合論理キュービット(m_n)の状態は、論理キュービット(m)と論理キュービット(n)に一様に伝達され、論理キュービット(m)と論理キュービット(n)は、もつれ状態で存在する。
【0112】
図12Aおよび
図12Bは、本発明の一実施例によるSPILT_MZZ量子基本演算命令の動作方式を説明するための図である。
【0113】
SPLIT_MZZは、MERGE_MZZ命令語を用いて併合された論理キュービットを2個の論理キュービットに分割する。
図12Aは、分割しようとする併合論理キュービット(m_p)を示す図である(1210)。
図12Bは、併合論理キュービット(m_p)が論理キュービット(m)と論理キュービット(p)とに分割されることを示す(1220)。この時、併合論理キュービット(m_p)の状態は、論理キュービット(m)と論理キュービット(p)に一様に伝達され、論理キュービット(m)と論理キュービット(p)は、もつれ状態で存在する。
【0114】
図13Aおよび
図13Bは、本発明の一実施例によるMOVE_POST_MXX量子基本演算命令の動作方式を説明するための図である。
【0115】
第2境界(Z境界)に隣接した2個の論理キュービットがある時、MOVE_MXX量子複合演算命令により、出発地である論理キュービットの状態を、目的地である論理キュービットに移動させることができる。この時、移動後処理量子基本演算命令MOVE_POST_MXXは、移動量子複合演算命令MOVE_MXX命令実行の最後のステップで行われる命令語である。
【0116】
図13Aは、出発地である論理キュービット(m)と目的地である論理キュービット(n)にMERGE_MXXとSPLIT_MXX命令語が順次にすでに行われた状態1310である。
【0117】
この時、MOVE_POST_MXX命令は、第2境界(Z境界)に相応する併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、第2論理キュービットに論理Z演算を行う。また、第1論理キュービットのZ基底測定結果の固有値が-1であれば、第2論理キュービットに論理X演算を行う。
【0118】
すなわち、前に行われたMERGE_MXXの併合測定結果の固有値が-1であれば、目的地論理キュービット(n)に論理Z演算を行う。また、出発地である論理キュービット(m)のZ基底測定結果の固有値が-1であれば、目的地論理キュービット(n)に論理X演算を行う。
【0119】
このような演算を行った結果は、
図13Bに示された通りである(1320)。移動後処理量子基本演算命令MOVE_POST_MXXが行われることにより、2個の論理キュービットは、もつれが解除される。
【0120】
図14Aおよび
図14Bは、本発明の一実施例によるMOVE_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【0121】
第1境界(X境界)に隣接した2個の論理キュービットがある時、MOVE_MZZ量子複合演算命令により、出発地である論理キュービットの状態を、目的地である論理キュービットに移動させることができる。この時、移動後処理量子基本演算命令MOVE_POST_MZZは、移動量子複合演算命令MOVE_MZZ命令実行の最後のステップで行われる命令語である。
【0122】
図14Aは、出発地である論理キュービット(m)と目的地である論理キュービット(p)にMERGE_MZZとSPLIT_MZZ命令語が順次にすでに行われた状態1410である。
【0123】
この時、MOVE_POST_MZZ命令は、第1境界(X境界)に相応する併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、第2論理キュービットに論理X演算を行う。また、第1論理キュービットのX基底測定結果の固有値が-1であれば、第2論理キュービットに論理Z演算を行う。
【0124】
すなわち、前に行われたMERGE_MZZの併合測定結果の固有値が-1であれば、目的地論理キュービット(p)に論理X演算を行う。また、出発地である論理キュービット(m)のX基底測定結果の固有値が-1であれば、目的地論理キュービット(p)に論理Z演算を行う。
【0125】
このような演算を行った結果は、
図14Bに示された通りである(1420)。移動後処理量子基本演算命令MOVE_POST_MZZが行われることにより、2個の論理キュービットは、もつれが解除される。
【0126】
図15Aおよび
図15Bは、本発明の一実施例によるCNOT_POST_MXXとCNOT_POST_MZZ量子基本演算命令の動作方式を説明するための図である。
【0127】
CNOT量子複合演算命令は、2個の論理キュービットのうちの1つを制御(Control)として用い、他の1つをターゲット(Target)として用いるControlled-NOT動作を行う命令である。CNOT量子複合演算命令は、CNOT_MXXとCNOT_MZZとの量子複合演算命令に区分される。
【0128】
CNOT_POST_MXX命令は、CNOT_MXX命令実行の最後のステップで行われる命令語である。CNOT_POST_MXX命令語の実行前には、MERGE_MXX、SPLIT_MXX、MERGE_MZZ、SPLIT_MZZ命令が事前に順次に行われなければならず、
図15Aには、これらの命令語が順次に行われた状態が示された(1510)。
【0129】
この時、CNOT_POST_MXX命令は、第1境界(X境界)に相応する第2併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、ターゲットである論理キュービットに論理X演算を行う。また、第2境界(Z境界)に相応する第1併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値と、臨時論理キュービットのX基底測定結果の固有値、のいずれか1つが-1であれば、制御である論理キュービットに論理Z演算を行う。
【0130】
すなわち、MERGE_MZZの併合測定結果の固有値が-1であれば、ターゲットである論理キュービット(i)に論理X演算を行う。また、MERGE_MXXの併合測定結果の固有値と、論理キュービット(j)のX基底測定結果の固有値、のいずれか1つが-1の時、制御として用いる論理キュービット(m)に論理Z演算を行う。このような演算を行った結果は、
図15Bに示した通りである(1520)。
【0131】
次に、CNOT_POST_MZZ命令は、CNOT_MZZ命令実行の最後のステップで行われる命令語である。CNOT_POST_MZZ命令語の実行前には、MERGE_MZZ、SPLIT_MZZ、MERGE_MXX、SPLIT_MXX命令が事前に順次に行われなければならず、
図15Aには、順次に行われた状態が示された(1510)。
【0132】
この時、CNOT_POST_MZZ命令は、第2境界(Z境界)に相応する第2併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値が-1であれば、制御である論理キュービットに論理Z演算を行う。また、第1境界(X境界)に相応する第1併合量子基本演算命令グループ内の併合量子基本演算命令の併合測定結果の固有値と、臨時論理キュービットのZ基底測定結果の固有値、のいずれか1つが-1であれば、ターゲットである論理キュービットに論理X演算を行う。
【0133】
すなわち、MERGE_MXXの併合測定結果の固有値が-1であれば、制御である論理キュービット(m)に論理Z演算を行う。また、MERGE_MZZの併合測定結果の固有値と、論理キュービット(j)のZ基底測定結果の固有値、のいずれか1つが-1のとき、ターゲットとして用いる論理キュービット(i)に論理X演算を行う。このような演算を行った結果は、
図15Bに示した通りである(1520)。
【0134】
次に、
図16A~
図20Gを参照して、本発明の一実施例における量子複合演算命令の動作方式について説明する。
【0135】
一方、本発明の一実施例では、各論理キュービットを、役割によって、データ論理キュービット(DLQ:Data Logical Qubit)と、臨時論理キュービット(ILQ:Intermediate Logical Qubit)とに区分することができる。データ論理キュービットは、実際の量子データを格納し、量子演算のために用いられる。臨時論理キュービットは、データ論理キュービット間の量子演算を行うために臨時に用いるキュービットで、データ論理キュービット間の量子演算が終了すると、臨時論理キュービットのデータは要らなくなる。
【0136】
本発明の一実施例は、論理キュービット量子コンパイラがデータ論理キュービットに対する量子複合演算命令を行うために、臨時論理キュービットを選定して、各論理キュービットをデータ論理キュービットと臨時論理キュービットに役割を割り当てる。
【0137】
図16A~
図16Eは、本発明の一実施例によるMOVE_MXX量子複合演算命令の動作方式を説明するための図である。
【0138】
量子複合演算命令のうち移動量子複合演算命令であるMOVE命令300、400は、出発地である第1論理キュービットの状態を、第1境界(X境界)または第2境界(Z境界)に隣接した目的地である第2論理キュービットに移動するようにする量子複合演算命令である。この時、第1論理キュービットは、データ論理キュービットであり、第2論理キュービットは、臨時論理キュービットである。
【0139】
このような移動量子複合演算命令300、400は、初期化量子基本演算命令グループ310、410と、併合量子基本演算命令グループ320、420と、分割量子基本演算命令グループ330、430と、移動後処理量子基本演算命令グループ340、440とで構成される。
【0140】
初期化量子基本演算命令グループ310、410は、臨時論理キュービットの初期化のための量子基本演算命令を含む。
【0141】
併合量子基本演算命令グループ320、420は、第1論理キュービットと第2論理キュービットを対象に第2境界(Z境界)または第1境界(X境界)に相応する併合論理キュービットを生成する量子基本演算命令を含む。
【0142】
分割量子基本演算命令グループ330、430は、併合論理キュービットを対象にもつれ状態の第1および第2論理キュービットに分割する量子基本演算命令を含む。
【0143】
移動後処理量子基本演算命令グループ340、440は、もつれ状態の第1論理キュービットの量子状態を第2論理キュービットに移動させ、第1論理キュービットを臨時論理キュービットに変更し、第2論理キュービットをデータ論理キュービットに変更する移動後処理量子基本演算命令を含む。
【0144】
具体的には、MOVE_MXX300は、出発地であるデータ論理キュービットの状態を、第2境界(Z境界)に隣接した目的地臨時論理キュービットに移動させるようにする量子複合演算命令である。
図16A~
図16EによるMOVE_MXX命令300の動作方式を、
図3を併せて参照して説明する。
【0145】
図16Aは、第2境界(Z境界)に隣接した2つの論理キュービット間の2つの移動動作の例を示す(1610)。データ論理キュービット(m)は、第2境界(Z境界)に隣接した臨時論理キュービット(l)や臨時論理キュービット(n)に移動することができる。
図16B~
図16Eは、臨時論理キュービット(n)を目的地とする移動動作を示す(1620~1650)。この時、臨時論理キュービット(l)を目的地とする移動動作も同様の方法で行われる。
【0146】
図16Bは、
図3の量子基本演算命令グループ1(初期化量子基本演算命令グループ、310)のINIT量子基本演算命令を行って、臨時論理キュービット(n)を|0>状態に初期化した結果を示す図である(1620)。
【0147】
図16Cは、
図3の量子基本演算命令グループ2(併合量子基本演算命令グループ、320)のMERGE_MXX量子基本演算命令を行って、併合論理キュービット(m_n)を生成した結果を示す図である(1630)。
【0148】
図16Dは、
図3の量子基本演算命令グループ3(分割量子基本演算命令グループ、330)のSPLIT_MXX量子基本演算命令を行って、併合論理キュービット(m_n)を論理キュービット(m)と論理キュービット(n)とに分割した結果を示す図である(1640)。
【0149】
図16Eは、
図3の量子基本演算命令グループ4(移動後処理量子基本演算命令グループ、340)のMOVE_POST_MXX量子基本演算命令を行って、移動動作を完了した結果を示す図である(1650)。
【0150】
この時、移動動作が完了すると、出発地にあったデータ論理キュービット(m)の量子状態が臨時論理キュービット(n)に移動する。また、移動前の臨時論理キュービット(n)は、移動後にデータ論理キュービット(n)に役割が変更され、移動前のデータ論理キュービット(m)は、移動後に臨時論理キュービット(m)に変更される。
【0151】
図17A~
図17Eは、本発明の一実施例によるMOVE_MZZ量子複合演算命令の動作方式を説明するための図である。
【0152】
MOVE_MZZ量子複合演算命令400は、出発地であるデータ論理キュービットの状態を、第1境界(X境界)に隣接した目的地臨時論理キュービットに移動させるようにする量子複合演算命令である。
図17A~
図17EによるMOVE_MZZ命令400の動作方式を、
図4を併せて参照して説明する。
【0153】
図17Aは、第1境界(X境界)に隣接した2つの論理キュービット間の2つの移動動作の例を示す(1710)。データ論理キュービット(m)は、第1境界(X境界)に隣接した臨時論理キュービット(j)や臨時論理キュービット(p)に移動することができる。
図17B~
図17Eは、臨時論理キュービット(j)を目的地とする移動動作を示す。この時、臨時論理キュービット(p)を目的地とする移動動作も同様の方法で行われる。
【0154】
図17Bは、
図4の量子基本演算命令グループ1(初期化量子基本演算命令グループ、410)のINIT量子基本演算命令を行って、臨時論理キュービット(j)を|+>状態に初期化した結果を示す図である(1720)。
【0155】
図17Cは、
図4の量子基本演算命令グループ2(併合量子基本演算命令グループ、420)のMERGE_MZZ量子基本演算命令を行って、併合論理キュービット(j_m)を生成した結果を示す図である(1730)。
【0156】
図17Dは、
図4の量子基本演算命令グループ3(分割量子基本演算命令グループ、430)のSPLIT_MZZ量子基本演算命令を行って、併合論理キュービット(j_m)を論理キュービット(j)と論理キュービット(m)とに分割した結果を示す図である(1740)。
【0157】
図17Eは、
図4の量子基本演算命令グループ4(移動後処理量子基本演算命令グループ、440)のMOVE_POST_MZZ量子基本演算命令を行って、移動動作を完了した結果を示す図である(1750)。
【0158】
この時、移動動作が完了すると、出発地にあったデータ論理キュービット(m)の量子状態が臨時論理キュービット(j)に移動する。また、移動前の臨時論理キュービット(j)は、移動後にデータ論理キュービット(j)に役割が変更され、移動前のデータ論理キュービット(m)は、移動後に臨時論理キュービット(m)に変更される。
【0159】
図18A~
図18Iは、本発明の一実施例によるSWAP量子複合演算命令の動作方式を説明するための図である。
【0160】
量子複合演算命令のうち交換量子複合演算命令であるSWAP命令500は、第1論理キュービットと第2論理キュービットの状態を交換する動作を行うようにする量子複合演算命令である。この時、第1および第2論理キュービットは、データ論理キュービットであり、第1および第2論理キュービットの第1および第2境界(XおよびZ境界)に位置する第3および第4論理キュービットは、臨時論理キュービットである。
【0161】
このような交換量子複合演算命令500は、第1および第2初期化量子基本演算命令グループ510、550と、第1および第2併合量子基本演算命令グループ520、560と、第1および第2分割量子基本演算命令グループ530、570と、第1および第2移動後処理量子基本演算命令グループ540、580とで構成される。
【0162】
第1初期化量子基本演算命令グループ510は、第3および第4論理キュービットの初期化のための量子基本演算命令を含む。
【0163】
第1併合量子基本演算命令グループ520は、第2境界(Z境界)に位置する第1および第3論理キュービットを併合し、第2および第4論理キュービットを併合する量子基本演算命令を含む。
【0164】
第1分割量子基本演算命令グループ530は、併合された各併合論理キュービットを対象にもつれ状態の第1および第3論理キュービットに分割し、第2および第4論理キュービットに分割する量子基本演算命令を含む。
【0165】
第1移動後処理量子基本演算命令グループ540は、もつれ状態の第1および第2論理キュービットの量子状態をそれぞれ第3および第4論理キュービットに移動させ、第3および第4論理キュービットをそれぞれ第1および第2論理キュービットに相応するデータ論理キュービットに変更する量子基本演算命令を含む。
【0166】
次に、第2初期化量子基本演算命令グループ550は、臨時論理キュービットに変更された第1および第2論理キュービットの初期化のための量子基本演算命令を含む。
【0167】
第2併合量子基本演算命令グループ560は、第1境界(X境界)に位置する第1および第4論理キュービットを併合し、第2および第3論理キュービットを併合する量子基本演算命令を含む。
【0168】
第2分割量子基本演算命令グループ570は、併合された各併合論理キュービットを対象にもつれ状態の第1および第4論理キュービットに分割し、第2および第3論理キュービットに分割する量子基本演算命令を含む。
【0169】
第2移動後処理量子基本演算命令グループ580は、もつれ状態の第3および第4論理キュービットの量子状態をそれぞれ第2および第1論理キュービットに移動させ、第2および第1論理キュービットをそれぞれ第3および第4論理キュービットに相応するデータ論理キュービットに変更する量子基本演算命令を含む。
【0170】
図18A~
図18Iは、SWAP量子複合演算命令500の動作方式を示し、これを
図5の内容とともに説明する。
【0171】
まず、
図18Aは、データ論理キュービット(m)とSWAP動作を実行可能な4つのデータ論理キュービットを示す(1810)。データ論理キュービット(m)は、データ論理キュービット(i)、データ論理キュービット(k)、データ論理キュービット(o)、データ論理キュービット(q)とSWAP動作を行うことができる。
【0172】
図18B~
図18Iは、データ論理キュービット(m)とデータ論理キュービット(k)の状態を交換する例を示す。この時、残りの3個のデータ論理キュービットに対する交換動作も同様の方式で行われる。
【0173】
図18Bは、
図5の量子基本演算命令グループ1(第1初期化量子基本演算命令グループ、510)に含まれた2個のINIT命令を並列に行って、SWAP動作に用いる2個の臨時論理キュービットを|0>状態に初期化した結果を示す図である(1820)。SWAP動作には、臨時論理キュービット(j)と臨時論理キュービット(n)を用いる。
【0174】
図18Cは、
図5の量子基本演算命令グループ2(第1併合量子基本演算命令グループ、520)に含まれた2個のMERGE_MXX命令を並列に行って、併合論理キュービット(i_k)と併合論理キュービット(m_n)を生成した結果を示す図である(1830)。
【0175】
図18Dは、
図5の量子基本演算命令グループ3(第1分割量子基本演算命令グループ、530)に含まれた2個のSPLIT_MXX命令を並列に行って、併合論理キュービット(j_k)を論理キュービット(j)と論理キュービット(k)とに分割し、併合論理キュービット(m_n)を論理キュービット(m)と論理キュービット(n)とに分割した結果を示す図である(1840)。
【0176】
図18Eは、
図5の量子基本演算命令グループ4(第1移動後処理量子基本演算命令グループ、540)に含まれた2個のMOVE_POST_MXX命令を並列に行った結果を示す(1850)。
図18Eの結果により、データ論理キュービット(m)の状態はデータ論理キュービット(n)に移動し、データ論理キュービット(k)の状態はデータ論理キュービット(j)に移動した。
【0177】
図18Fは、
図5の量子基本演算命令グループ5(第2初期化量子基本演算命令グループ、550)に含まれた2個のINIT命令を並列に行って、臨時論理キュービット(k)と臨時論理キュービット(m)を|+>状態に初期化した結果を示す図である(1860)。
【0178】
図18Gは、
図5の量子基本演算命令グループ6(第2併合量子基本演算命令グループ、560)に含まれた2個のMERGE_MZZ命令を並列に行って、併合論理キュービット(j_m)と併合論理キュービット(k_n)を生成した結果を示す図である(1870)。
【0179】
図18Hは、
図5の量子基本演算命令グループ7(第2分割量子基本演算命令グループ、570)に含まれた2個のSPLIT_MZZ命令を並列に行って、併合論理キュービット(j_m)を論理キュービット(j)と論理キュービット(m)とに分割し、併合論理キュービット(k_n)を論理キュービット(k)と論理キュービット(n)とに分割した結果を示す図である(1880)。
【0180】
図18Iは、
図5の量子基本演算命令グループ8(第2移動後処理量子基本演算命令グループ、580)に含まれた2個のMOVE_POST_MZZ命令を並列に行った結果を示す(1890)。
図18Iの結果により、データ論理キュービット(j)の状態はデータ論理キュービット(m)に移動し、データ論理キュービット(n)の状態はデータ論理キュービット(k)に移動する。
【0181】
SWAP量子複合演算命令500によって、最終的に、
図18B~
図18Iまでの過程によりデータ論理キュービット(k)とデータ論理キュービット(m)の状態が交換される。
【0182】
図19A~
図19Gは、本発明の一実施例によるCNOT_MXX量子複合演算命令の動作方式を説明するための図である。
【0183】
量子複合演算命令のうちCNOT量子複合演算命令600、700は、第1論理キュービットおよび第2論理キュービットのいずれか1つをそれぞれ制御およびターゲットとして用いるControlled-NOT動作を行うようにする量子複合演算命令である。この時、第1および第2論理キュービットは、データ論理キュービットに相当する。
【0184】
このようなCNOT量子複合演算命令600、700は、初期化量子基本演算命令グループ610と、第1および第2併合量子基本演算命令グループ620、640、720、740と、第1および第2分割量子基本演算命令グループ630、650、730、750と、CNOT後処理量子基本演算命令グループ660、760とを含むことができる。
【0185】
初期化量子基本演算命令グループ610、710は、CNOT動作に用いる臨時論理キュービットを初期化するための量子基本演算命令を含む。
【0186】
第1併合量子基本演算命令グループ620、720は、第1論理キュービットと臨時論理キュービットを対象に第2境界(Z境界)または第1境界(X境界)に相応する第1併合論理キュービットを生成する量子基本演算命令を含む。
【0187】
第1分割量子基本演算命令グループ630、730は、第1併合論理キュービットを対象にもつれ状態の第1論理キュービットおよび臨時論理キュービットに分割する量子基本演算命令を含む。
【0188】
第2併合量子基本演算命令グループ640、740は、第2論理キュービットともつれ状態の臨時論理キュービットを対象に第1境界(X境界)または第2境界(Z境界)に相応する第2併合論理キュービットを生成する量子基本演算命令を含む。
【0189】
第2分割量子基本演算命令グループ650、750は、第2併合論理キュービットを対象にもつれ状態の第2論理キュービットおよび臨時論理キュービットに分割する量子基本演算命令を含む。
【0190】
CNOT後処理量子基本演算命令グループ660、760は、もつれ状態の第1および第2論理キュービットと臨時論理キュービットに対するもつれ状態を解除する量子基本演算命令を含む。
【0191】
図19A~
図19Gは、CNOT_MXX命令600の動作方式を示し、これを
図6の内容とともに説明する。
【0192】
まず、
図19Aは、データ論理キュービット(m)を制御として用いる時、CNOT動作を実行可能な4つのターゲットデータ論理キュービットを示す(1910)。データ論理キュービット(m)は、データ論理キュービット(i)、データ論理キュービット(k)、データ論理キュービット(o)、データ論理キュービット(q)とCNOT動作を行うことができる。
【0193】
図19B~
図19Gは、データ論理キュービット(m)を制御として用い、データ論理キュービット(i)をターゲットとして用いるCNOT命令実行結果の例を示す図である。この時、残りの3個のデータ論理キュービットに対するCNOT動作も同様の方式で行われる。
【0194】
CNOTを行う命令は、CNOT_MXX600とCNOT_MZZ700の2つに分類することができる。CNOT_MXX600は、ターゲットとして用いるデータ論理キュービット(i)を臨時論理キュービット(j)と先に併合する方法であり、CNOT_MZZ700は、制御として用いるデータ論理キュービット(m)を臨時論理キュービット(j)と先に併合する方法である。
図19A~
図19Gは、CNOT_MXX600を行う方法であり、
図20A~
図20Gは、CNOT_MZZ700を行う方法を説明するための図である。
【0195】
図19Bは、
図6の量子基本演算命令グループ1(初期化量子基本演算命令グループ、610)のINIT命令を行って、CNOT動作に用いる臨時論理キュービット(j)を|0>状態に初期化した結果を示す図である(1920)。
【0196】
図19Cは、
図6の量子基本演算命令グループ2(第1併合量子基本演算命令グループ、620)のMERGE_MXX命令を行って、併合論理キュービット(i_j)を生成した結果を示す図である(1930)。
【0197】
図19Dは、
図6の量子基本演算命令グループ3(第1分割量子基本演算命令グループ、630)のSPLIT_MXX命令を行って、併合論理キュービット(i_j)を論理キュービット(i)と論理キュービット(j)とに分割した結果を示す図である(1940)。
【0198】
図19Eは、
図6の量子基本演算命令グループ4(第2併合量子基本演算命令グループ、640)のMERGE_MZZ命令を行って、併合論理キュービット(j_m)を生成した結果を示す図である(1950)。
【0199】
図19Fは、
図6の量子基本演算命令グループ5(第2分割量子基本演算命令グループ、650)のSPLIT_MZZ命令を行って、併合論理キュービット(j_m)を論理キュービット(j)と論理キュービット(m)とに分割した結果を示す図である(1960)。
【0200】
図19Gは、
図6の量子基本演算命令グループ6(CNOT後処理量子基本演算命令グループ、660)のCNOT_POST_MXX命令を行って、CNOT動作を完了した結果を示す図である(1970)。
【0201】
図20A~
図20Gは、本発明の一実施例によるCNOT_MZZ量子複合演算命令の動作方式を説明するための図である。
図20A~
図20Gは、CNOT_MZZ命令の動作方式を示し、これを
図7とともに説明する。
【0202】
図20Aは、データ論理キュービット(m)を制御として用いる時、CNOT動作を実行可能な4つのターゲットデータ論理キュービットを示す(2010)。
図20B~
図20Gは、データ論理キュービット(m)を制御として用い、データ論理キュービット(i)をターゲットとして用いるCNOTの例を示す。この時、残りの3個のデータ論理キュービットに対するCNOT動作も同様の方式で行われる。
【0203】
図20Bは、
図7の量子基本演算命令グループ1(初期化量子基本演算命令グループ、710)のINIT命令を行って、CNOT動作に用いる臨時論理キュービット(j)を|+>状態に初期化した結果を示す図である(2020)。
【0204】
図20Cは、
図7の量子基本演算命令グループ2(第1併合量子基本演算命令グループ、720)のMERGE_MZZ命令を行って、併合論理キュービット(j_m)を生成した結果を示す図である(2030)。
【0205】
図20Dは、
図7の量子基本演算命令グループ3(第1分割量子基本演算命令グループ、730)のSPLIT_MZZ命令を行って、併合論理キュービット(j_m)を論理キュービット(i)と論理キュービット(m)とに分割した結果を示す図である(2040)。
【0206】
図20Eは、
図7の量子基本演算命令グループ4(第2併合量子基本演算命令グループ、740)のMERGE_MXX命令を行って、併合論理キュービット(i_j)を生成した結果を示す図である(2050)。
【0207】
図20Fは、
図7の量子基本演算命令グループ5(第2分割量子基本演算命令グループ、750)のSPLIT_MXX命令を行って、併合論理キュービット(i_j)を論理キュービット(i)と論理キュービット(j)とに分割した結果を示す図である(2060)。
【0208】
図20Gは、
図7の量子基本演算命令グループ6(CNOT後処理量子基本演算命令グループ、760)のCNOT_POST_MZZ命令を行って、CNOT動作を完了した結果を示す図である(2070)。
【0209】
以下、
図21を参照して、本発明の一実施例による量子コンピューティングシステム800により行われる動作方法について説明する。
【0210】
図21は、本発明の一実施例による動作方法のフローチャートである。
【0211】
まず、論理キュービット量子コンパイラ810で、所定の量子コードが入力されて量子基本演算命令ベースの量子カーネルを出力する(2110)。
【0212】
次に、論理キュービット量子カーネル実行器820で、出力された量子カーネルに基づいて複数の物理キュービット量子命令を生成する(2120)。
【0213】
次に、物理キュービット量子システム830で、物理キュービット量子命令を受信して物理量子演算を行う(2130)。
【0214】
一方、上述した説明において、ステップ2110~2130は、本発明の実施形態により、追加的なステップにさらに分割されるか、より少ないステップで組合わされてもよい。また、一部のステップは、必要に応じて省略されてもよく、ステップ間の順序が変更されてもよい。これとともに、その他省略された内容であっても、
図1~
図20Gの内容は
図21の動作方法にも適用可能である。
【0215】
以上、上述した本発明の一実施例は、ハードウェアであるコンピュータと結合されて実行されるために、プログラム(またはアプリケーション)で実現されて媒体に格納される。
【0216】
上述したプログラムは、前記コンピュータがプログラムを読み込んでプログラムで実現された前記方法を実行させるために、前記コンピュータのプロセッサ(CPU)が前記コンピュータの装置インターフェースを介して読み込み可能なC、C++、JAVA、Ruby、機械語などのコンピュータ言語でコード化されたコード(Code)を含むことができる。このようなコードは、前記方法を実行する必要な機能を定義した関数などに関連する機能的なコード(Functional Code)を含むことができ、前記機能を前記コンピュータのプロセッサが所定の手順どおりに実行させるのに必要な実行手順関連の制御コードを含むことができる。また、このようなコードは、前記機能を前記コンピュータのプロセッサが実行させるのに必要な追加情報やメディアが前記コンピュータの内部または外部メモリのどの位置(アドレス番地)で参照されるべきかに対するメモリ参照関連コードをさらに含むことができる。さらに、前記コンピュータのプロセッサが前記機能を実行させるために、遠隔(Remote)にある何らかの他のコンピュータやサーバなどと通信が必要な場合、コードは、前記コンピュータの通信モジュールを用いて遠隔にある何らかの他のコンピュータやサーバなどとどのように通信すべきか、通信時にどのような情報やメディアを送受信すべきか、などに対する通信関連コードをさらに含むことができる。
【0217】
前記格納される媒体は、レジスタ、キャッシュ、メモリなどのように、短い瞬間にデータを格納する媒体ではなく、半永久的にデータを格納し、機器によって読取(reading)可能な媒体を意味する。具体的には、前記格納される媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などがあるが、これらに制限されない。すなわち、前記プログラムは、前記コンピュータ接続可能な多様なサーバ上の多様な記録媒体またはユーザの前記コンピュータ上の多様な記録媒体に格納されてもよい。また、前記媒体は、ネットワークで連結されたコンピュータシステムに分散して、分散方式でコンピュータ読出可能なコードが格納されてもよい。
【0218】
上述した本発明の説明は例示のためのものであり、本発明の属する技術分野における通常の知識を有する者は、本発明の技術的思想や必須の特徴を変更することなく他の具体的な形態で容易に変形可能であることを理解するであろう。そのため、以上に述べた実施例は、あらゆる面で例示的であり、限定的ではないと理解しなければならない。例えば、単一形で説明されている各構成要素は分散して実施されてもよいし、同様に、分散したと説明されている構成要素も結合された形態で実施されてもよい。
【0219】
本発明の範囲は、上記の詳細な説明よりは後述する特許請求の範囲によって示され、特許請求の範囲の意味および範囲、そしてその均等概念から導出されるあらゆる変更または変形された形態が本発明の範囲に含まれると解釈されなければならない。
【符号の説明】
【0220】
800:量子コンピューティングシステム
810:論理キュービット量子コンパイラ
820:論理キュービット量子カーネル実行器
830:物理キュービット量子システム