(57)【要約】  コンピュータシステムと共に利用するコンピュータプログラム製品において、前記コンピュータプログラム製品は、コンピュータ読み出し可能な記憶媒体及びその中に組み込まれるコンピュータプログラム機構を備えている。前記コンピュータプログラム機構は、量子コンピューティング統合開発環境（ＱＣ−ＩＤＥ）モジュール及びコンパイラモジュールを備えている。前記ＱＣ−ＩＤＥモジュールは、複数のキュビットに対する量子論理を設計するのに用いられる。前記ＱＣ−ＩＤＥモジュールは、時間分解設定のオペレータを発生させるための命令を含んでいる。前記コンパイラモジュールは、時間分解設定のオペレータを一組の量子機械語命令にコンパイルするための命令を含んでいる。
2005513680.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムと共に利用するコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、コンピュータ読み出し可能な記憶媒体と、その中に組み込まれるコンピュータプログラム機構と、を備え、
前記コンピュータプログラム機構は、
複数のキュビットに対する量子論理を設計するための量子コンピューティング統合開発環境（ＱＣ−ＩＤＥ）モジュールであって、時間分解設定のオペレータを発生させるための命令を含んでいる前記ＱＣ−ＩＤＥモジュールと、
量子論理をコンパイルするためのコンパイラモジュールであって、前記時間分解設定のオペレータを一組の量子機械語命令にコンパイルするためのコンパイラモジュールと、
を備えることを特徴とするコンピュータプログラム製品。
【請求項２】
量子機械語命令の前記組は、一組のハードウェア実行可能な命令を含み、
前記組のハードウェア実行可能な命令における少なくとも１つの命令は、量子コンピュータにおいてのみ実行され得ることを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項３】
量子機械語命令の前記組は、従来のコンピュータ上で実行可能な命令をさらに含むことを特徴とする請求項２に記載のコンピュータプログラム製品。
【請求項４】
オペレータの前記時間分解設定は、基本オペレータのシーケンスを含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項５】
基本オペレータの前記シーケンスは、所定の量子コンピュータに対する全ての可能なユニタリ変換を含むことを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項６】
前記所定の量子コンピュータは、ユニタリオペレータの全集合において各オペレータを実行することができる量子システムであることを特徴とする請求項５に記載のコンピュータプログラム製品。
【請求項７】
基本オペレータの前記シーケンスは、２N×２Nのユニタリ行列によって描写されており、
Ｎは、前記基本オペレータを実行するのに用いられる前記量子コンピュータにおけるキュビットの数であることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項８】
基本オペレータの前記シーケンスのうちの１つの基本オペレータは、ユニタリ行列
【数１】
2005513680.tif 000007
によって表されることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項９】
基本オペレータの前記シーケンスのうちの１つの基本オペレータは、ユニタリ行列
【数２】
2005513680.tif 000008
によって表されることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項１０】
基本オペレータの前記シーケンスのうちの１つの基本オペレータは、ユニタリ行列
【数３】
2005513680.tif 000009
によって表されることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項１１】
基本オペレータの前記シーケンスのうちの１つの基本オペレータは、前記量子コンピュータにおける単一のキュビットに適用されることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項１２】
基本オペレータの前記シーケンスのうちの１つの基本オペレータは、複数のキュビットに適用されることを特徴とする請求項４に記載のコンピュータプログラム製品。
【請求項１３】
前記ＱＣ−ＩＤＥモジュールは、基本量子ゲートのシーケンスを前記時間分解設定のオペレータに含まれる単一の抽象量子ゲートとして定義するための命令をさらに含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項１４】
前記ＱＣ−ＩＤＥモジュールは、抽象量子ゲートのシーケンスを前記時間分解設定のオペレータに含まれる単一の抽象量子ゲートとして定義するための命令を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項１５】
前記ＱＣ−ＩＤＥモジュールは、量子コンピュータのドライバ仕様を設定するための命令を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項１６】
前記ＱＣ−ＩＤＥモジュールは、前記時間分解設定のオペレータに基本オペレータの周波数を設定するための命令を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項１７】
前記時間分解設定のオペレータにおける基本オペレータの周波数を設定するための前記命令は、
前記基本オペレータにおける各パルスの鋭さを設定するための命令と、
前記基本オペレータにおける各パルスの振幅を設定するための命令と、
をさらに備えることを特徴とする請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
前記ＱＣ−ＩＤＥモジュールは、前記時間分解設定のオペレータにおける各基本オペレータの周波数を独立に設定するための命令を含んでいる請求項１に記載のコンピュータプログラム製品。
【請求項１９】
前記ＱＣ−ＩＤＥモジュールは、量子コンピューティングシステムを選択して量子機械語命令の前記組の全部又は一部を実行することを含んでいる請求項１に記載のコンピュータプログラム製品。
【請求項２０】
前記ＱＣ−ＩＤＥモジュールは、量子コンピューティングシステムを定義するための命令を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項２１】
量子コンピューティングシステムを定義するための前記命令は、前記量子コンピューティングシステムによって実行され得る一組の基本オペレーションを特定するための命令を含むことを特徴とする請求項２０に記載のコンピュータプログラム製品。
【請求項２２】
量子コンピューティングシステムを定義するための前記命令は、前記量子コンピューティングシステムにおけるノイズを特定するための命令を含むことを特徴とする請求項２０に記載のコンピュータプログラム製品。
【請求項２３】
量子コンピューティングシステムを定義するための前記命令は、前記量子コンピューティングシステムに対するドライバ仕様を定義するための命令を含むことを特徴とする請求項２０に記載のコンピュータプログラム製品。
【請求項２４】
前記ＱＣ−ＩＤＥモジュールは、オペレータの前記時間分解設定における抽象量子ゲートを基本オペレータのシーケンスに変換するための命令を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項２５】
変換のための前記命令は、一組の単純化ルールを用いることを特徴とする請求項２４に記載のコンピュータプログラム製品。
【請求項２６】
単純化ルールの前記組のうちの１つの単純化ルールは、基本オペレータの交換であることを特徴とする請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
単純化ルールの前記組のうちの１つの単純化ルールは、第１の基本オペレータと第２の基本オペレータとの間の冗長性の除去であることを特徴とする請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
変換のための前記命令は、オペレータの前記時間分解設定における抽象オペレータを基本オペレータの等価シーケンスとして表示するための命令を含むことを特徴とする請求項２４に記載のコンピュータプログラム製品。
【請求項２９】
量子コンピューティングのための方法であって、
複数のキュビットに対する量子論理の設計であって、時間分解設定のオペレータを発生させることを含む前記設計と、
オペレータの前記時間分解設定を一組の量子機械語命令にコンパイルすることと、
を備えている方法。
【請求項３０】
前記方法は、
量子コンピューティングシステムにおいて前記量子機械語命令を実行すること、及び
前記量子機械語命令の実行の結果を出力すること、
をさらに備えることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記量子機械語命令は、量子システムをモデル化することを特徴とする請求項２９に記載の方法。
【請求項３２】
前記量子システムは、多体電子システム、核融合、溶解状態のプロテイン、溶解状態の核酸、又は高分子と有機化合物の間の相互作用であることを特徴とする請求項３１に記載の方法。
【請求項３３】
コンピュータシステムと共に利用するコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、コンピュータ読み出し可能な記憶媒体と、その中に組み込まれるコンピュータプログラム機構と、を備え、
前記コンピュータプログラム機構は、
複数のキュビットに対する量子論理を設計するための量子コンピューティング統合開発環境（ＱＣ−ＩＤＥ）モジュールであって、時間分解設定のオペレータを発生させるための命令を含んでいる前記ＱＣ−ＩＤＥモジュールと、
量子論理をコンパイルするためのコンパイラモジュールであって、前記時間分解設定のオペレータを一組の量子機械語命令にコンパイルするためのコンパイラモジュールと、
を備えることを特徴とするコンピュータプログラム製品。
【請求項３４】
量子論理を設計するためのコンピュータシステムであって、
中央処理装置と、
前記中央処理装置に接続されるメモリであって、量子コンピューティング統合開発環境（ＱＣ−ＩＤＥ）モジュール及びコンパイラモジュールを記憶するメモリと、
時間分解設定のオペレータを発生させるための命令を含んでいる前記量子コンピューティング統合開発環境（ＱＣ−ＩＤＥ）モジュールと、
前記時間分解設定のオペレータを一組の量子機械語命令にコンパイルするための命令を含んでいる前記コンパイラモジュールと、
を備えているコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
１．０  本発明の技術分野
本発明は、量子コンピュータに関し、量子コンピュータの動作シミュレーションのための方法及び装置に関する。
【背景技術】
【０００２】
本発明は、２００１年１２月２２日に提出された米国特許出願番号１０／０２８，８９１を部分的に承継するものであり、その全体を参照によって取り込んでいる。
【０００３】
２．０  背景
２．１  キュビット
量子ビットすなわちキュビットは、従来の二値ビットが古典的コンピュータのビルディングブロックであるのと同様の方法の量子コンピュータのビルディングブロックである。従来の二値ビットは、通常、０及び１の値を採用する。０及び１の値は、従来のビットの基底状態と呼ばれ得る。キュビットは、同様に基底状態を採用し得るという点で従来の二値ビットに類似している。キュビットの基底状態は、｜０＞基底状態及び｜１＞基底状態として言及される。量子計算の中で、キュビットの状態は、｜０＞基底状態及び｜１＞基底状態の重ね合わせとして定義される。これは、キュビットの状態が、ゼロでない｜０＞基底状態をとる確率及びゼロでない｜１＞基底状態をとる確率を同時に有することを意味する。ゼロでない第１基底状態（｜０＞）をとる確率及びゼロでない第２基底状態（｜１＞）をとる確率を有するために、キュビットの能力は、通常、０又は１の値を有する従来のビットと異なる。
【０００４】
性質上、基底状態の重ね合わせは、キュビットが基底状態｜０＞及び｜１＞の両状態で同時に存在し得ることを意味する。数学的には、基底状態の重ね合わせは、｜Ψ＞で表されるキュビットの全状態が、以下の式で示されることを意味する。
【０００５】
｜Ψ＞＝α｜０＞＋β｜１＞
【０００６】
ここで、α及びβは、確率振幅である。α及びβの項は、それぞれ実数成分及び虚数成分である。典型的には、キュビットの状態が測定される（例えば読み出される）場合、キュビットの量子性質は一時的に失われ、基底状態の重ね合わせは｜０＞基底状態又は｜１＞基底状態のいずれか一方につぶれ、それによって、従来のビットと同様なものに帰着する。それがつぶれた後のキュビットの実際の状態は、読み出しオペレーションの直前の確率振幅α及びβ次第である。
【０００７】
【特許文献１】米国特許出願番号０９／８７２，４９５“Ｑｕａｎｔｕｍ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍ  ａｎｄ  ｍｅｔｈｏｄ  ｆｏｒ  ａ  ｓｕｐｅｒｃｏｎｄｕｃｔｉｎｇ  ｐｈａｓｅ  ｑｕｂｉｔ”
【０００８】
量子計算を実現するキュビットオペレーション及び制御システムの議論については、その全体が参照によって取り込まれている、２００１年６月１日に提出された特許文献１を参照すればよい。
【０００９】
【非特許文献１】Ｍｏｏｉｊ  ｅｔ  ａｌ．，１９９９，Ｓｃｉｅｎｃｅ２８５，１０３６
【００１０】
２．１．１  フラックス（ＦＬＵＸ）キュビット
多くのキュビットの物理的実現方法が存在する。その提案の１つは、超伝導フラックスキュビットである。非特許文献１を参照すると、これによって、その全体が参照によって取り込まれている。フラックスキュビットは、３つ又は４つ以上のジョセフソン結合を含む内部超伝導ループから成り、誘導的に、２つのジョセフソン結合を含む外部ｄｃ−ＳＱＵＩＤに結合されている。ｄｃ−ＳＱＵＩＤは、どちらにバイアス電流が流れ得るかを誘導する。誘導を介したバイアス電流は、内部ループで動作させるための基礎を提供し、キュビットを形成する。
【００１１】
【非特許文献２】Ｍａｋｈｌｉｎ  ｅｔ  ａｌ．，２００１，Ｒｅｖ．Ｍｏｄ．Ｐｈｙｓ．７３，３５７
【００１２】
Ｍｏｏｉｊキュビットは、エネルギー位相図を調整するようにバイアスされ得る。このＤＣバイアス又はフラックスバイアスは、キュビットを描写するネルギー位相図のダブルウェルの相対値を調整する。フラックスキュビットの結合は、誘導性結合を用いて実現され、結合されたフラックスキュビットを描写する量子システムのハミルトニアンにおけるそれぞれのキュビット間の相互作用をシグマｘ及びシグマｚに誘導する。直接誘導性結合は、フラックスキュビットを結合するのに用いられる。例えば、非特許文献２を参照すると、これによって、その全体が参照によって取り込まれている。
【００１３】
【非特許文献３】Ｓｈｎｉｒｍａｎ  ａｎｄ  Ｓｃｈｏｎ，１９９８，Ｐｈｙｓ．Ｒｅｖ．Ｂ５７  １５４００
【００１４】
２．１．２  電荷（ＣＨＡＲＧＥ）キュビット
電荷キュビットの例は、非特許文献３によって提案される電子箱である。電子箱は、ゲート電極に対する容量結合Ｃを有する超伝導電極に対してジョセフソン結合によって接続される超伝導アイランドから成る。制御電圧Ｖxは、ゲートコンデンサーを用いて適用される。ジョセフソン結合は、（ＥJ＝ＩCΦ0／２πであり、Φ0≡ｈ／２ｅがフラックス量子であることによってジョセフソン臨界電流ＩCに関係する）ジョセフソンエネルギーＥJと、充電電力量スケールを決定するキャパシタンスＣJと、を特徴としている。このシステムにおいて、電子箱の中の電荷及び接合部を横切る位相は、規範的に複素共役変数である。システムは、それが超伝導でない場合、すなわち、電流がＩCよりも低く保たれている場合には、コヒーラーの感度を回復する。ビット状態は、状態｜↓＞＝｜ｎ＞及び｜↑＞＝｜ｎ＋１＞を満たすように対応する擬似スピン変量であり、この場合、ｎはクーパー対の整数である。
【００１５】
【非特許文献４】Ｌｅａ  ｅｔ  ａｌ．ａｎｄ  Ｄｙｋｍａｎ  ｅｔ  ａｌ．ｉｎ  Ｂｒａｕｎｓｔｅｉｎ  ａｎｄ  Ｌｏ（Ｅｄｓ．），２００１，Ｓｃａｌａｂｌｅ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔｅｒｓ，Ｗｉｌｅｙ−ＶＣＨ  Ｂｅｒｌｉｎ
【００１６】
２．１．３  ヘリウムの電子
別のキュビットは、“ヘリウムの電子”である。この種類のキュビットの電子は、ボーアモデルによって支配される擬似単一電子の原子のように動作する。第１及び第２の励起状態の波動関数は、キュビットのビット状態である。このタイプのキュビットにおける第１及び第２の励起状態は、縮退しない（すなわち、それらは同じエネルギーを有しない）。垂直ポテンシャルウェルＶ（ｚ）α−１／ｚは、電子を閉じ込める。システムは、それ自身のリュードベリ定数及び用いられるヘリウム同位体に依存するボーア半径ａBを用いた原子モデルに対して類似の動作を有する。従って、システムは、数理物理学において研究されているウェルに類似している。期待値＜ｚ0＞＝１．５ａBである第１状態から第２状態＜ｚ1＞＝６ａBの期待される垂直位置へのエネルギー遷移が存在する。エネルギー差は、周波数単位でｆr＝（Ｅ1−Ｅ0）／ｈである。従って、ＮＭＲ研究で用いられるそれらのようなパルスは、これらの個々の擬似原子の状態を遷移させるのに用いられ得る。電子は、ウィンガー（Ｗｉｎｇｅｒ）結晶と呼ばれる超格子構造で配置される。各原子は、アドレス可能であり、調整パルスを原子と相互作用できるようにする。キュビット間の相互作用は、全てのパウリ行列及びその複合線形結合に比例した項を有するハミルトニアンによって描写される。キュビット同志の相互作用は、通常存在するが、ある範囲で変調されるのみである。非特許文献４を参照すると、これによって、その全てが参照によって取り込まれている。
【００１７】
【非特許文献５】Ｆｅｙｎｍａｎ，１９８２，Ｉｎｔ．Ｊ．Ｙｈｅｏｒ．Ｐｈｙｓ．２１，４６７
【００１８】
２．２  量子コンピューティング
２．２．１  定義される量子コンピューティング
ここで、いわゆる量子コンピューティングに関する調査は、リチャードファインマンにさかのぼる。例えば、非特許文献５を見ると、これによって、その全体が参照によって取り込まれている。ファインマンは、量子システムが伝統的な（例えば従来の、非量子デジタルの）コンピュータを用いてシミュレートするのは本質的に難しいが、このタスクは、制御された状況下で量子システムの評価を観察することによって成し遂げられ得ることに注目した。量子システムの動作理論を解くことは、システムのハミルトニアンに関する微分方程式を解くことを共通に含む。システム動作の観察は、方程式の解に関係する情報を提供する。
【００１９】
【非特許文献６】Ｓｈｏｒ，１９９７，ＳＩＡＭ  Ｊ．ｏｆ  Ｃｏｍｐｕｔ．２６，１４８４；Ｇｒｏｖｅｒ，１９９６，Ｐｒｏｃ．２８ｔｈ  ＳＴＯＣ，２１２（ＡＣＭ  Ｐｒｅｓｓ，Ｎｅｗ  Ｙｏｒｋ）；ａｎｄ  Ｋｉｔａｅｖ，ＬＡＮＬ  ｐｒｅｐｒｉｎｔ  ｑｕａｎｔ−ｐｈ／９５１１０２６
【非特許文献７】Ｂｒｉｅｇｅｌ  ｅｔ  ａｌ．，ｐｒｅｐｒｉｎｔ  ｑｕａｎｔ−ｐｈ／９８０３０５６
【非特許文献８】Ｋｎｉｌｌ  ｅｔ  ａｌ．，１９９８、Ｓｃｉｅｎｃｅ  ２７９，３４２
【００２０】
量子コンピューティングの奮闘は、正式な理論の確立に、又は“ソフトウェア開発”又は他の計算処理上の問題への拡張に、初期的には関係していた。Ｓｈｏｒアルゴリズム及びＧｒｏｖｅｒアルゴリズムの発見は、量子コンピューティングにおける重要な事件であった。例えば、非特許文献６を見ると、そのそれぞれは、これによって、その全体が参照によって取り込まれている。Ｓｈｏｒアルゴリズムにより、量子コンピュータは、大きな自然数を効果的に因数分解することができる。Ｓｈｏｒアルゴリズムを用いると、量子コンピュータは、全ての現存する“公開鍵”暗号方式を時代遅れのものにし得る。Ｓｈｏｒアルゴリズムの別のアプリケーションにおいて、量子コンピュータ（又は量子中継のような小規模デバイスでさえ）通信チャネルを絶対的に安全にし、原理上、メッセージがプロセスにおいて破壊されることなしには傍受され得ない。非特許文献７を見ると、これによって、その全体が参照によって取り込まれている。故障耐性の量子計算は、実際上の実現の試行方法が開示されており、理論的には、可能である。例えば、非特許文献８を参照すべきである。
【００２１】
量子コンピューティングは、一般には、Ｎ量子ビット（キュビット）の状態を初期化すること、それらの間の制御されたエンタングルメント（絡み合い）を作ること、これらの状態が進化するのを可能にすること、及び状態が進化した後にキュビットを読み出すことを含む。従って、キュビットは、量子コンピュータの基本ビルディングブロックである。上述のように、キュビットは、他の状態で発見される確率がゼロでないこと用いて、従来、２つの縮退した（すなわち、等しいエネルギーの）量子状態を有するシステムである。このゼロでない確率のために、Ｎキュビットは、２Nの従来の状態の組み合わせである初期状態を定義し得る。この初期状態は、キュビットがそれら自身の間に有する相互作用及びキュビットが外部の影響を含めて有する相互作用によって支配されて進化を遂げる。Ｎキュビットのこの進化の状態は、次の計算、すなわち実際には２Nの同時の従来計算を定義する。進化が完了した後にキュビットの状態を読み出すことは、計算結果を決定する。
【００２２】
【特許文献２】米国特許出願番号５，７６８，２９７
【００２３】
２．２．２  量子コンピューティングを実現するための基本的要件
その基本状態の重ね合わせを採用するキュビットの能力は、量子コンピュータによって利用される１つの基礎となる能力である。しかしながら、量子コンピュータで利用するためには、キュビットは、量子レジスタを形成するために他のキュビットと結合されなければならない。実際には、情報を表す量子レジスタの容量は、量子レジスタにおけるキュビットの数と共に指数関数的に大きくなっている。計算能力及び量子コンピュータの性質は、既知であり、技術的に説明される。例えば、Ｓｈｏｒ氏による特許文献２を見ると、これによって、その全体が参照によって取り込まれている。
【００２４】
【非特許文献９】ＤｉＶｉｃｅｎｚｏ，ｉｎ  Ｓｃａｌａｂｌｅ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔｅｒｓ，ｃｈａｐｔｅｒ１，２００１，Ｗｉｌｅｙ−ＶＣＨ  Ｖｅｒｌａｇ  ＧｍｂＨ，Ｂｅｒｌｉｎ
【００２５】
キュビットを量子レジスタに結合する要件に加えて、ＤｉＶｉｃｅｎｚｏは、量子計算を可能にする物理システムを実現するのに必要な多数の要件を示す。非特許文献９を参照すると、これによって、その全体が参照によって取り込まれている。これらの要件は、キュビットの状態を単純な基準状態に初期化する必要性、長い関連するデコヒーレンス時間に対する必要性、量子ゲートの“全体集合”、及びキュビット特定の測定容量を含む。
【００２６】
【非特許文献１０】ＤｉＶｉｃｅｎｚｏ，ｉｎ  Ｓｃａｌａｂｌｅ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔｅｒ，Ｗｉｌｅｙ−ＶＣＨ，Ｂｅｒｌｉｎ，２００１，Ｂｒａｕｎｓｔｅｉｎ  ａｎｄ  Ｌｏ，ｅｄｓ
【００２７】
２．２．３  量子ゲートの全体集合要件
上述したように、量子計算を可能とする任意の物理システムは、量子ゲートの全体集合を提供しなければならず、物理システムにおける各ビットの状態は、制御された手法で発展し得る。量子ゲートの全体集合を実現するのに必要とされるゲートの最小集合は、非特許文献１０を示す。簡単には、量子ゲートの全体集合は、少なくとも１つの２キュビットオペレーションと同様に単一のキュビットオペレーションを含む。
【００２８】
単一キュビットは、２つの複素数ａ及びｂによってパラメータ化されるベクトル｜Ψ＞＝ａ｜０＞＋ｂ｜１＞とみなされ、｜ａ｜2＋｜ｂ｜2＝１を満たす。キュビットのオペレーションは、このノルムを維持しなければならず、従って、前記オペレーションは、２ｘ２の行列によって描写される。２ｘ２からなる行列は、以下に示すパウリ行列である。
【００２９】
【数１】
2005513680.tif 000003
【００３０】
【非特許文献１１】Ｎｉｅｌｓｅｎ  ａｎｄ  Ｃｈｕａｎｇ，２０００，Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔａｔｉｏｎ  ａｎｄ  Ｑｕａｎｔｕｍ  Ｉｎｆｏｒｍａｔｉｏｎ，Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，Ｃａｍｂｒｉｄｇｅ，ＵＫ
【００３１】
パウリ行列σx、σy、及びσzは、３つの単一キュビットオペレーションである。ゲート上の詳細情報については、非特許文献１１を参照すると、これによって、その全体が参照によって取り込まれている。
【００３２】
２．２．４  ２キュビット量子コンピューティングシステムに利用可能な行列セット
図４は、量子レジスタの可能な状態を含んでいる、２キュビット量子コンピューティングシステムに利用可能な行列のセットを例証する。行列４００は、標準２進表記と相関する２キュビットシステムの可能な状態を例証する。量子レジスタは、同時にそれぞれの状態の重ね合わせで存在し、それぞれの状態において存在する一定の複素確率γ0、γ1、γ2、及びγ3をそれぞれ有する。行列４１０及び４１１は、量子レジスタにおける第１及び第２のキュビットでそれぞれ動作するＸオペレータの行列を表す。行列４２０及び４２１は、量子レジスタにおける第１及び第２のキュビットでそれぞれ動作するＺオペレータの行列を表す。行列４３０及び４３１は、量子レジスタにおける第１及び第２のキュビットでそれぞれ動作するＹオペレータの行列を表す。行列４４０は、量子レジスタにおける第１及び第２のキュビットを連結するように動作する連結オペレータの行列を表し、連結オペレーションは、制御位相オペレーションを表す。Ｎキュビット量子レジスタにおいて、これらの行列は、対応する一のキュビット又は複数のキュビットで動作する２N×２N行列になるように拡大され得る。
【００３３】
【特許文献３】米国特許５，９１７，３２２
【非特許文献１２】Ｍｏｓｃａ，１９９８，Ｎａｔｕｒｅ  ３９３，３４４
【非特許文献１３】ｔｈｅ  ｎｕｍｂｅｒ−ｏｒｄｅｒｉｎｇ  ａｌｇｏｒｉｔｈｍ  ｏｆ  Ｖａｎｄｅｒｓｙｐｅｎ  ｅｔ  ａｌ．，ｐｒｅｐｒｉｎｔ  ｑｕａｎｔ−ｐｈ／０００７０１７
【００３４】
２．３  量子コンピューティングを実現するための物理システム
量子コンピュータのキュビットに対して、幾つかの物理システムが提案されてきている。１つのキュビットシステムは、縮退した核スピン状態を有する分子を用いる。Ｇｅｒｓｈｅｎｆｅｌｄ氏とＣｈｕａｎｇ氏の特許文献３を参照すると、これによって、その全体が参照によって取り込まれている。核磁気共鳴（ＮＭＲ）技術は、スピン状態を読み取ることができる。これらのシステムは、探索アルゴリズムを首尾よく実現している。例えば、非特許文献１２を参照すると、これによって、その全体が参照によって取り込まれている。また、非特許文献１３を参照すると、これによって、その全体が参照によって取り込まれている。ナンバーオーダリングアルゴリズムは、量子フーリエ変換に関し、重要要素であるＳｈｏｒの因数分解アルゴリズム及び整列されていないデータベースを探索するためのＧｒｏｖｅｒのアルゴリズムの両方に関する。さらに、量子コンピューティングのための物理システムに対する提案は、２．１節に述べられている。
【００３５】
【非特許文献１４】Ｂｅｔｔｅｌｌｉ  ｅｔ  ａｌ．，２００１，“Ｔｏｗａｒｄ  ａｎ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｑｕａｎｔｕｍ  ｐｒｏｇｒａｍｍｉｎｇ”，ＬＡＮＬ  ｃｓ．ＰＬ／０１０３００９ｖ．２
【００３６】
２．４  量子コンピューティングプログラミング言語
量子コンピューティングプログラミング言語及びアーキテクチャに対する提案がなされてきている。例えば、非特許文献１４を参照すると、これによって、その全体が参照によって取り込まれている。Ｂｅｔｔｅｌｌｉ氏は、量子コンピュータをプログラミングする問題に対して可能なアプローチを調査する。前記参照は、一組の量子プリミティブを用いて汎用の多目的従来言語を補足するテンプレートハイレベル量子言語を提供する。基本方式は、量子オペレーションに対するバイトコードを計算し、それを量子デバイスコントローラ又はシミュレータに送信する実行時間環境を伴う。
【００３７】
しかしながら、Ｂｅｔｔｉｌｌｉ氏は、量子コンピュータの異なる物理的具現化に関連する複雑性に対する取り組みに失敗しており、それによって、量子コンピュータを制御するために必要とされるバイトコードレベルに量子コンピューティング命令を低減することを教示していない。さらに、Ｂｅｔｔｉｌｌｉ氏は、ハイレベル量子言語が自動化された拡張性のある処理手順を許容して、ハイレベルコードを量子マシンのための連続するローレベル制御命令に翻訳し、随意に最適化しなければならないということを、認識しているが、前記拡張性のある処理手順は、文献上では教示されていない。さらに、Ｂｅｔｔｉｌｌｉ氏のハイレベル言語は、抽象的なものに過ぎない。それは、前記言語が実際の物理システムでどのように動作するかについての詳細を提供していない。Ｂｅｔｔｉｌｌｉ氏は、概要で、ハイレベルプログラミング言語は、実際のコンピューティングシステムを駆動することができないことを教示している。
【００３８】
さらに、現在の量子シミュレータは、任意の物理量子コンピューティングの提案をほとんど基本としていない。例えば、ＱｕＣａｌｃ（Ｐａｕｌ  Ｄｕｍａｉｓ，Ｌａｂｏｒａｔｏｒｙ  ｆｏｒ  Ｔｈｅｏｒｅｔｉｃａｌ  ａｎｄ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔｉｎｇ，Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｍｏｎｔｒｅａｌ）を参照すべきである。ＱｕＣａｌｃは、共通して用いられる数式処理パッケージ（Ｗｏｌｆｒａｍ  Ｒｅｓｅａｒｃｈ  Ｉｎｃ．，Ｃｈａｍｐａｉｇｎ  ＩＬ）であって、量子コンピューティングオペレーションをシミュレートする。ＱｕＣａｌｃは、定性的量子計算に基づいている。しかしながら、ＱｕＣａｌｃは、物理的な量子計算システムの拘束、制限、又は特性を考慮していない。
【発明の開示】
【発明が解決しようとする課題】
【００３９】
上記背景を与えられる場合、量子計算システムを動作させるため、及び前記システムで実行される命令を最適化するために必要とされる物理パラメータを扱う開発ツールに対する技術の必要性が存在する。
【課題を解決するための手段】
【００４０】
３．０  本発明の概要
本発明は、
複数のキュビットを用いて量子論理を設計し、
前記量子論理を一組の量子機械語命令にコンパイルし、
前記量子機械語命令を実行し、
前記量子機械語命令の前記実行によって発生させられる結果を出力する、
のための量子コンピューティング統合開発環境及び方法を提供する。
従来技術システム及び方法と対照すると、本発明のインターフェースにより、拡張性のある量子デバイスの特定の性質を考慮する量子コンピューティングプログラムの設計及び試験が可能となり、前記プログラムが実行される。
【００４１】
量子論理を設計することは、量子コンピューティングシステムを選択すること、及び基本オペレータのシーケンスを設計することを含んでいる。基本オペレータの組は、選択する量子コンピューティングシステムに依存する。さらに、量子論理を設計するメカニズムは、基本オペレータのシーケンスを抽象オペレータ（抽象量子ゲート）として定義すること、及び抽象オペレータのシーケンスを設計することを含んでいる。本発明の幾つかの実施例において、量子論理を設計するメカニズムは、読み出しオペレーションを実現すること、及び所望の状況に基づいて実行され得る条件オペレーションを定義することを含んでいる。一実施例において、読み出しオペレーションは、量子レジスタにおける１つ又は複数のキュビットの読み出しオペレーションを実現することを含んでいる。前記読み出しオペレーションは、キュビットの量子状態を２値相当に縮小させる。条件的作用は、量子レジスタの１つ又は複数のキュビットにおける基本オペレータ（基本ゲート）又は抽象オペレータ（抽象量子ゲート）のアプリケーションを含み得る。条件オペレーションは、１つ又は複数の縮小したキュビット又は縮小していないキュビットに適用され得る。
【００４２】
さらに、量子論理を設計することは、量子レジスタに対するドライバ詳細を設定することを含み得る。前記レジスタに対するドライバ詳細は、選択する量子コンピューティングシステムに依存する。ドライバ詳細は、基本オペレータのアプリケーションに対する最小期間又は適用され得るパルスの鋭さのようなパラメータを含み得る。さらに、量子論理を設計することは、量子コンピューティングシステムにおける各々のキュビットの初期条件を準備することを含み得る。
【００４３】
量子論理を一組の量子機械語命令にコンパイルすることは、一組の抽象オペレータを一組の基本パラメータに縮小させることを含んでいる。量子機械語命令をコンパイルするメカニズムは、基本オペレータを最適化する一組のルールに従って基本オペレータのシーケンスを縮小することをさらに含み得る。
【００４４】
量子機械語命令は、量子レジスタによって実行され、量子レジスタと相互作用するための制御システムによって規定される。量子レジスタは、キュビットのアレーを含んでいる。量子レジスタで実現される基本オペレーションは、一組の基本オペレータのアプリケーションによって量子レジスタの状態を進化させる初期化オペレーションであり、読み出しオペレーションである。制御システムは、量子機械語命令によって特定されると、それぞれのオペレーションの各々を時間と共に調整するように量子レジスタと相互作用し得る。本発明の幾つかの実施例において、量子機械語命令は、量子コンピューティングシステム（量子コンピュータ）のシミュレータによって実行される。
【００４５】
一度、前記機械語命令設定の実行が完了すると、量子レジスタは、その基本状態の量子重ね合わせで存在する。前記重ね合わせは、その後、単一の基本状態に縮小され、計算結果を提供する。量子機械語命令実行後の量子コンピューティングシステムの最終状態は、計算結果を提供する。
【００４６】
本発明の幾つかの実施例により、ユーザは、所望のハードウェアプラットフォームを選択することができ、そして、ハードウェア、機械語、論理、及びソフトウェアレベルにおいて機械を設計する際に援助するツールを提供する。本発明の実施例により、ユーザは、各々のこれらの状況を制御することができ、計算エンジン設計の全てのフェーズが成し遂げられている“統合開発環境”（ＩＤＥ）を提供する。
【００４７】
４．０  図面の簡単な説明
図１は、本発明に係る一実施例に従って動作するシステム１０である。
【００４８】
図２は、本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の要素間の相互作用を例証しているフロー図である。
【００４９】
図３Ａは、本発明に係る幾つかの実施例に従う、量子論理設計プロセスを描写している実体関連図である。
【００５０】
図３Ｂは、本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の実行部要素を例証しているブロック図である。
【００５１】
図３Ｃは、本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の出力部要素を例証しているブロック図である。
【００５２】
図４は、従来技術に従う、２キュビット量子システムに関連する基本オペレーションの総体を例証する。
【００５３】
図５は、本発明に係る幾つかの実施例に従う、量子コンピューティング環境に対する校正ツールとして用いられる量子コンピューティング統合開発環境のブロック図である。
【００５４】
図６Ａ−６Ｂは、量子コンピューティング統合開発環境について回路及び機械語の設計モードに対する本発明に係るインターフェースの実施例である。
【００５５】
図７は、量子コンピューティング統合開発環境について回路及び機械語設計モードの別の実施例を説明する。
【００５６】
図８Ａ−８Ｃは、量子コンピューティング統合開発環境における量子論理設計モードの実施例の様々な側面を例証する。
【００５７】
図９Ａ及び９Ｂは、実行モードインターフェースの２つの実施例を説明する。
【００５８】
図１０は、抽象量子ゲートの実施例を説明する。
【００５９】
類似の参照番号は、図の幾つかの表示にわたる対応する部分について言及している。
【発明を実施するための最良の形態】
【００６０】
５．０  本発明の詳細説明
量子論理の任意のシーケンスは、基本オペレーション又は“ゲート”によって詳述され得る。ゲートに関する情報に対しては、上記２．２．３節を参照すればよい。従って、これらのゲートは、初期化命令及び読み出しオペレーションに加えて、量子コンピュータの量子機械語の重要な部分を構成する。２．２．２節で述べたように、量子コンピューティングシステムは、前記システムに対して特有である、基本的な量子オペレーションのシーケンス又は基本オペレータを提供しなければならない。量子計算に適合するために、量子システムは、以下で“Ｘ”オペレーションとして指示されるσXオペレーション、以下で“Ｚ”オペレーションとして指示されるσZオペレーション、以下で“Ｙ”オペレーションとして指示されるσYオペレーション、及びエンタングルメントオペレーションを提供するように、又はこれらのオペレーションの一部分を提供するように設計されなければならない。
【００６１】
１つの既知の量子コンピューティングシステムは、核磁気共鳴（ＮＭＲ）である。ＮＭＲは、全ての必要な基本オペレーションを達成し得る。全ての必要な基本オペレーションを達成し得る他のシステムは、フラックスキュビット、電荷キュビット、及びヘリウム電子を含んでいる。量子計算に利用可能な計算スペースは、２Nとして前記システムと協働するキュビットの数と共に増大し、この場合において、Ｎはシステムのキュビット数である。量子システムに対するアルゴリズムを確立し設計することは、それが２N×２Nの大きさの行列を用いて動作することを伴うので非常に複雑なタスクである。
【００６２】
５．１  代表的なシステム
図１は、本発明の一実施例に従って動作するシステム１０を例証する。システム１０は、少なくとも１つのデジタル（従来の二値の）コンピュータ２０を含んでいる。コンピュータ２０は、中央処理装置２２、プログラムモジュール及びデータ構造を記憶するための（ディスク１４のような不揮発性記憶装置と同様な高速ランダムアクセスメモリを含む）メモリ２４、ユーザ入力／出力装置２６、ディスクコントローラ１２、ネットワークインターフェースカード１６及びこれらの要素を相互接続する１つ又は複数のバス３４を含む標準的なサーバ要素を含んでいる。ユーザ入力／出力装置２６は、マウス３６、ディスプレイ３８、及びキーボード８のような１つ又は複数のユーザ入力／出力要素を含んでいる。
【００６３】
メモリ２４は、本発明に従って用いられる多くのモジュール及びデータ構造を含んでいる。システム動作中の任意のある時間に、メモリ２４に記憶されているモジュール及び／又はデータ構造の一部がランダムアクセスメモリに記憶される一方で、モジュール及び／又はデータ構造の別の部分が不揮発性記憶装置に記憶されていることが認識される。典型的な実施例において、メモリ２４は、オペレーティングシステム４０を含んでいる。オペレーティングシステム４０は、多様な基本システムサービスを取り扱うための処理手順及びハードウェア依存のタスクを実現するための処理手順を含んでいる。
【００６４】
典型的な実装では、システムメモリ２４に記憶されているプログラム及びデータは、量子コンピューティング、量子論理を設計する統合開発環境（ＱＣ−ＩＤＥ）モジュール４４、量子論理を量子機械語命令にコンパイルすること、量子機械語命令を実行すること、及び出力として実行結果を提供することをさらに含んでいる。ＱＣ−ＩＤＥ４４は、量子アルゴリズムを開発するのに用いられ、量子アルゴリズムを最適化し、量子計算を実現する。ＱＣ−ＩＤＥ４４は、回路レイアウトインターフェースモジュール６２０、機械語インターフェースモジュール６１０、パルス振幅インターフェースモジュール６１１、初期条件インターフェースモジュール６１５、制御パネルモジュール６３０、グローバル設定インターフェースモジュール６４０、ツールバーメニューモジュール６５０、及びシステム情報インターフェースモジュール６６０を含んでいる。これらのモジュールは、図６から８と共にさらに以下で詳細に説明される。ＱＣ−ＩＤＥ４４の幾つかの実施例は、多体電子システム、核融合又は核分裂、又はプロテインフォールディングシステム及びその類似のもののような量子システムをモデル化するのに用いられる。特に、ＱＣ−ＩＤＥ４４の幾つかの実施例は、プロテイン構造、リン酸、及び高分子と有機化合物の間の相互作用力を決定するのと同様に他の生物学的高分子をモデル化するのに有用である。さらに、メモリ２４は、ＱＣ−ＩＤＥモジュール４４を用いて生成される少なくとも１つの時間分解設定のオペレータ４８を含んでいる。時間分解設定のオペレータ４８は、コンパイラモジュール５０によってコンパイルされて機械語命令５２を形成し、その後、実行モジュール５４によって実行され、出力モジュール５６によって装置に出力される。
【００６５】
さらに、システム１０は、量子レジスタ７２を含む量子コンピューティングシステム７０を含んでいる。量子レジスタは、順番に複数のキュビット７４を含む。量子レジスタの各々のキュビットにおいて基本的なオペレーションを実行するための制御システム及びオペレーションを統合するための制御プロセッサが必要とされる。システム１０において、前記統合機能は、コンピュータ２０のドライバハードウェア５８として提供される。
【００６６】
例証されるシステム１０には量子コンピューティングシステム７０が１つだけ例証されているが、実際には、システム１０は任意数の量子コンピューティングシステム１０を有する。さらに、システム１０における各量子コンピューティングシステム７０は、同じタイプのキュビットやアーキテクチャを有することを必要としない。例えば、システム１０における量子コンピューティングシステム７０の中には、フラックスキュビット７４を含む１つ又は複数の量子レジスタ７２を含んでいるものもあれば、システム１０における量子コンピューティングシステム７０の中には、電荷キュビット７２を含む１つ又は複数の量子レジスタ７２を含んでいるものもある。さらに、システム１０における幾つかの量子コンピューティングシステム７０は、ハイブリッドレジスタであって、例えばフラックスキュビット及び電荷キュビットの両方を含んでいる１つ又は複数の量子レジスタ７２を含んでいる。ドライバハードウェア５８は、以下でさらに詳細に述べるように、システム１０で用いられる量子コンピューティングシステム７０の各々の特性を追跡するのに用いられる。
【００６７】
５．２  処理フロー
図２は、本発明の実施例のフロー図である。量子論理設計は、ＱＣ−ＩＤＥ４４を用いる設計段階２０２において導出される。この結果は、以下にさらに詳細に述べられているオペレータ４８の時間分解設定を行う。コンパイル段階２０４において、設計段階２０２で導出された量子論理（時間分解設定のオペレータ４８）は、コンパイラモジュール５０によって量子機械語命令５２のシーケンスにコンパイルされる。命令５２は、従来の（例えばデジタルのコンピュータ２０）コンピュータによって実行され得る従来の機械語命令を含んでいるが、典型的には、量子コンピューティングシステム７０（図１）において実行可能な少なくとも１つの量子機械語命令を含んでいる。実行段階２０６において、命令５２は、量子コンピューティングシステム７０及び／又はコンピューティングシステム２０において実行される。最終的に、出力段階２０８において、計算結果が出力モジュール５６による出力として提供される。
【００６８】
設計段階２０２で導出される量子コンピューティング論理は、量子状態で動作する一連のユニタリ変換として定義され得る。量子コンピューティング論理の基本オペレーションは、量子コンピュータが実行し得る量子ユニタリ変換の組を含んでいる。一般には、基本オペレーションは、Ｘ、Ｙ、Ｚ及びエンタングルメントオペレーションから成る。幾つかの実施例において、グランド（ｇｒｏｕｎｄ）又は読み出しオペレーションが含まれる。
【００６９】
幾つかの実施例において、設計段階２０２で量子論理を設計する方法は、時間分解されたシーケンスの基本オペレータ４８を作成することを含んでおり、量子システム７０の初期状態に提供される場合に、その組み合わせは、量子システム７０の初期状態を幾つかの最終状態に進化させる。幾つかの実施例において、量子論理を設計する方法は、図２に例証される出力結果２０８を得ることを含んでおり、必要に応じて基本オペレータ４８のシーケンスを調整し、所望の量子論理が実行されるまで図２に例証される処理を繰り返す。
【００７０】
本発明の幾つかの実施例に従って、量子論理２０２を設計することは、ドライバハードウェア５８の特性を制御することを含んでいる。ドライバハードウェア５８は、量子レジスタにおいてキュビットの各々の基本オペレーションを実装するための制御システムである。ドライバハードウェア５８は、時間分解設定のオペレーション４８において各オペレーションの分解能又は最小期間を定義する時間単位設定を含んでいる。さらに、オペレータ４８の時間分解設定におけるパルスの鋭さは、ドライバハードウェア５８の特性に従って校正され得る。最適なドライバ設定は、最終的には、量子コンピューティングシステム７０の物理的特性次第である。例えば、特許文献１は、その全体が参照によって取り込まれている、ギガヘルツのオーダーの周波数及びナノアンペアのオーダーの振幅を有する最新パルスを描写する。前記ドライバ設定５８は、位相又はフラックスキュビットに有用であり得るが、他の物理システムが異なるドライバ設定を要求する。
【００７１】
本発明の幾つかの実施例において、ターゲットとなる量子コンピューティングシステム７０は、量子論理４８が設計される前に選択され得る。ターゲットとなる量子コンピューティングシステム７０が選択される場合、ドライバハードウェア５８の詳細は、前記プラットフォームの必要性に応じて変化する。しかしながら、任意ポイントで、前記プラットフォーム７０に対するドライバ詳細５８は、設計された量子コンピューティングプラットフォーム７０で実行されるアルゴリズムの設計を支援するために変更され得る。
【００７２】
本発明の幾つかの実施例において、量子論理を設計することは、ＱＣ−ＩＤＥモジュール４４を用いて、必要とされるキュビット７４の数及びそれら（基本オペレータ）の間の可能な接続を定義することを含んでいる。前記基本オペレータを定義することは、（ｉ）所望のオペレータシーケンスを選択すること、（ｉｉ）適切なドライバ条件を設定すること、（ｉｉｉ）量子レジスタ７２におけるキュビット７４の各々の初期状態を設定すること、（ｉｖ）オペレーションのシーケンスを量子機械語命令５２にコンパイルすること、（ｖ）量子コンピューティングシステム７０において量子機械語命令５２を実行すること、及び（ｖｉ）出力モジュール５６を用いてオペレーションの実行されたシーケンスの結果を評価すること、を必要とする。計算後の出力が所望の出力を満たさない場合、処理は、所望の結果が得られるまでＱＣ−ＩＤＥモジュール４４を用いてパルスシーケンス４８を反復的に再設計することによって繰り返される。
【００７３】
本発明の幾つかの実施例において、量子論理４８は、１つ又は複数の抽象量子ゲート１０００（図１０）を含んでいる。各抽象量子ゲート１０００は、基本オペレーション（ゲート）１００２のシーケンス及びドライバ特性１００４を含んでいる。抽象量子ゲート１０００は、ハイレベル量子論理４８を設計するのに用いられ得る。基本オペレーション（ゲート）のシーケンスのように、各抽象量子ゲート１０００は、他の抽象量子ゲート１０００と組み合わされ、抽象量子ゲートのシーケンスを形成し、それによって、ハイレベル量子論理４８を達成する。言い換えれば、抽象量子ゲート１０００における各オペレーション１００２は、基本オペレーション（ゲート）又は抽象量子ゲートであり得る。
【００７４】
本発明の幾つかの実施例は、抽象量子ゲート１０００を作成すること、及び抽象量子ゲート１０００のシーケンスを含むハイレベル量子論理４８を設計することを含んでいる。抽象量子ゲート１０００は、単一のキュビット７４又は複数のキュビット７４において動作し得る。幾つかの実施例において、抽象量子ゲート１０００は、抽象量子ゲート１０００のシーケンスを含んでいる。これは、特に、多くのキュビット７４を伴う複雑な量子論理４８を設計するのに有利である。
【００７５】
本発明の幾つかの実施例において、抽象量子ゲート１０００は、基本オペレータ（例えば、上記２．２．３節で述べたパウリ行列）の所望のシーケンスを確立すること、及び抽象量子ゲート１０００としてシーケンスをエクスポートすることによって設計される。基本オペレータ（ゲート）のシーケンスを確立することは、ＱＣ−ＩＤＥモジュール４４を用いて成し遂げられ得る。一度、基本オペレータ（ゲート）１００２のシーケンスが設計されれば、前記シーケンスは、単一の量子ゲート１０００として定義され得る。本発明の幾つかの実施例において、抽象量子ゲート１０００は、その後、ハイレベル量子論理設計ツールと共に用いられ得る。
【００７６】
本発明の幾つかの実施例において、メモリ２４は、（示されていない）抽象オペレータ１００２の１つ又は複数のライブラリを含んでいる。前記ライブラリにおける抽象オペレータ１０００は、設計段階２０２中にオペレータ４８の時間分解設定に組み込まれる。抽象オペレータの各ライブラリは、特定のターゲットの量子コンピューティングシステム７０に対応している。この方法で、抽象オペレータのライブラリは、所定の量子コンピューティングシステム７０の特性を定義するのに用いられ得る。結果として、システム１０における量子コンピューティングシステム７０は、別の量子コンピューティングシステムを正確にシミュレートすることができる。
【００７７】
５．２  条件ステップの量子論理への導入
本発明の１つの側面は、一組の条件動作を含む量子論理４８（図１）を提供する。これらの条件は、単一のキュビット７４又は複数のキュビット７４の先の読み出しオペレーションの結果に基づいている。キュビット７４の読み出しは、キュビットの状態を縮小させることを伴い、キュビットが従来の“１”又は“０”を返し、その後、（０又は１）の値を測定する。本発明のこの側面は、量子アルゴリズムが単一キュビット７４又は複数のキュビット７４の読み出しに基づく条件動作をしばしば必要とするので、有利である。例えば、Ｓｈｏｒ氏の特許文献２を参照すると、これによって、その全体が参照によって取り込まれている。エラーデコーディングオペレーションは、典型的には、可能なエラーを情報から取り除くために、一定の補助的キュビット７４の状態を読み出すこと、及びそれらの測定に基づいて他のキュビットにおいてオペレーションを実行することを伴う。さらに、読み出し及び後続の条件動作は、典型的には、量子テレポーテーションに用いられる。特許文献２において、論理的な量子状態をデコードすることは、２つのキュビットを測定し、その後、最初の２つのキュビットの読み出しの結果に基づいたターゲットキュビットにおいてＮＯＴ量子オペレーションを実行することを必要とする。
【００７８】
本発明のこの側面に従う一実施例において、量子オペレーションは、先の読み出しオペレーション（又は読み出しオペレーションの組）の結果に基づいて実行される。この制御論理は、論理オペレータ４８の時間分解設定に記憶される。幾つかの実施例において、読み出しオペレーションは、複数のキュビット７４において実現され、読み出しオペレーションの結果に基づいた条件量子論理が設計される。この条件論理は、量子状態を維持するキュビット７４に（すなわち、読み出しオペレーションをうけていないキュビットに）適用される。読み出しに基づいて実行され得る一組の量子オペレーションは、一組の基本オペレータ及び／又は一組の抽象オペレータ１０００を含んでおり、それぞれの量子コンピューティングシステム７０に利用できる。
【００７９】
任意の基本オペレータ又は定義された基本オペレータの組は、ＱＣ−ＩＤＥ４４モジュールに利用可能であり、条件論理の基本として用いられ得る。例証するために、典型的な量子論理設計４８は、３つのキュビット７４を用いる。３つのキュビット７４の組の幾つかの進化が生じた後、第２及び第３のキュビットが読み出される。その後、一組のオペレータは、以下の擬似コードによって例証されるような読み出しオペレーションの結果を条件として適用される。
【００８０】
ｉｆ（（ｒｅａｄｏｕｔ  ｏｆ  ｑｕｂｉｔ２）ａｎｄ（ｒｅａｄｏｕｔ  ｏｆ  ｑｕｂｉｔ３）ａｒｅ  ｉｎ  ｂｉｔ  ｓｔａｔｅ１）
ｔｈｅｎ  ａｐｐｌｙ  ａ  ｑｕａｎｔｕｍ  ｏｐｅｒａｔｉｏｎ  ｔｏ  ｑｕｂｉｔ［１］
ｅｌｓｅ
ｃｏｎｔｉｎｕｅ  ｗｉｔｈｏｕｔ  ａｐｐｌｙｉｎｇ  ａｎｙ  ｃｏｎｄｉｔｉｏｎａｌ  ｑｕａｎｔｕｍ  ｏｐｅｒａｔｉｏｎｓ
【００８１】
本発明の幾つかの実施例において、一組の条件動作は、量子コンピューティングシステム７０のキュビット７４における一組の読み出しオペレーションに基づいて定義され得る。
【００８２】
５．３  時間分解設定のオペレータのコンパイル
一組の抽象オペレータ４８の形態で表される量子論理を、一組の量子機械語命令５２（図１）に変換するために、抽象オペレーション１００２は、最初に等価な一組の基本オペレータにコンパイルされなければならない。量子論理をコンパイルすることは、一組の抽象オペレーション１００２を一組の基本オペレーションに変換すること、及び一組の量子機械語命令５２を作成するためにドライバ設定を基本オペレーションに組み込むことを含んでいる。
【００８３】
【特許文献４】米国特許出願番号０９／７８２，８８６
【００８４】
抽象オペレータ１０００を一組の基本オペレーションに変換することは、基本オペレーションのシーケンスを最適化することを含んでいる。量子コンピューティングシステム７０におけるデコヒーレンスプロセスが、決定的に重要な計算を実行するのに必要とされる時間を示すとき、基本オペレーションの組の最適化は、量子論理の実行のためには重要になる。特許文献４は、これによって、その全体が参照によって取り込まれ、一組の基本オペレータの最適化（低減）に対するルールを描写する。本発明の幾つかの実施例において、これらのルールは、基本オペレータの交換、無意味な時間単位の除去、及び冗長パルスシーケンスの除去又は単純化されたパルスシーケンスによる前記パルスシーケンスの交換を含んでいる。
【００８５】
基本オペレータの交換により、互いに干渉しない量子ゲートは、それらの順序を結局はオーバーラップさせるか又は変化させることができる。例えば、キュビット７４−１においてＸオペレーションは、キュビット７４−２においてＸオペレーションと干渉せず、時間分解シーケンスＸ（１）Ｘ（２）は、Ｘ（２）Ｘ（１）と同様である。量子コンピューティングシステム７０の選択は、どの基本オペレータを交換するかを決定するので、交換オペレーションは、量子コンピューティングシステム７０次第である。例えば、２つのキュビット７４の間の結合オペレーションの効果は、結合の性質に依存し、結合順序は、用いられる量子コンピューティングシステム７０に依存する。
【００８６】
一度、所望の論理４８が開発されれば、それは、前記量子コンピューティングシステム７０に対する抽象量子オペレータとして定義され得る。一組の抽象量子オペレータは、例えば量子フーリエ変換（ＱＦＴ）のようなハイレベル量子論理を実現するのに用いられ得る。例えば、Ｂｌａｉｓ氏の特許文献４を参照すると、これによって、その全体が参照によって取り込まれている。このハイレベルな量子アルゴリズム開発は、前記複雑な量子アルゴリズムを確立するのに有用な抽象レベルを提供する。さらに、可能性のあるエラーに対する量子コンピューティングシステムの感度に基づいて、個々のキュビット状態は、論理的キュビットとしてエンコードされ、その中で、複数の物理的キュビットは単一のキュビット状態をエンコードするのに用いられ、前記状態は、計算中のエラーから保護される。前記アルゴリズムは、従来のエラー定性アルゴリズムに類似した側面を含んでおり、例えば、Ｓｈｏｒ氏の特許文献２を参照すると、これによって、その全体が参照によって取り込まれている。
【００８７】
ハイレベル量子論理４８が設計に用いられる場合であって、一組の抽象オペレータが直接的に一組の量子機械語命令５２に変換される場合には、幾つかの非効率な結果を生じる。例えば、特許文献４において、制御ＮＯＴ（ＣＮ）ゲートは、以下の後続の基本オペレーションとして定義される。
【００８８】
2005513680.tif 000004
【００８９】
この場合において、ｒ及びｓは、２つのキュビット７４であり、Ｚ及びＸは、２．２．３節で定義したものである。このパルスシーケンスは、多数の固体量子コンピューティングシステムにおいて利用できる基本量子ゲートからなる。ここで、ＣＰrsゲートは、ＺTＺSオペレーション効果を有する２つのキュビット間のエンタングルメントオペレーションである。ＳＷＡＰ12量子ゲートは、
【００９０】
ＳＷＡＰ12＝ＣＮ12ＣＮ21ＣＮ12
【００９１】
のように定義され、２つのキュビット間のＣＮrsオペレーションを抽象オペレータとして定義することによって、ＳＷＡＰrsオペレータは、ＣＮrs抽象量子オペレータのシーケンスを用いて抽象量子オペレータとしてさらに定義され得る。ＳＷＡＰ抽象オペレータに対して前述したシーケンスの基本オペレータへの直接的変換は、結果として、ある程度の冗長性を生じる。オペレータの交換のような最適化ルールを用いると、本発明の幾つかの実施例に応じて一定の単純化が自動化され得る。例えば、上記で説明したＣＮrsは、以下のように再度整理され得る。
【００９２】
2005513680.tif 000005
【００９３】
この場合において、角括弧は同時に実現され得るオペレータを並置し、これによって全体の必要とされる時間を低減し、ＣＮrsオペレーションを実行する。同様の低減は、ＳＷＡＰ拡張と関連する基本オペレータから生じる。
【００９４】
本発明の幾つかの実施例において、量子論理は、量子コンピューティングシステム７０の基本オペレータを直接用いて設計され得る。この場合に、ＱＣ−ＩＤＥモジュール４４は、基本オペレータの組を最適化するのに用いられ、コンパイルは、量子コンピューティングシステム７０で実行されるようにドライバ詳細を基本オペレータの組と結合することを含んでいる。
【００９５】
コンパイルプロセスで利用される量子機械語５２は、ターゲットの量子コンピューティングシステム７０次第で変化し得る。異なる量子コンピューティングシステム７０は、基本オペレータの異なる組を有し得る。量子コンピューティングシステムは、全集合を形成するのに十分なオペレータを有する。本発明の幾つかの実施例は、所定の量子コンピューティングシステム７０に対して特有である量子機械語５２によって量子論理をコンパイルし得る。
【００９６】
５．４  量子機械語命令
一度、量子論値４８及びドライバ５８の詳細がコンパイルされると、実行され得る一組の量子機械語命令５２が現れる。機械語命令５２の性質は、それらの命令を実行するためのメカニズム次第である。例えば、命令セットを実行するためのメカニズムは、特定の量子コンピューティングシステム７０、又はデジタルコンピュータ２０のメモリ２４に固有の前記システムのシミュレーションであり得る。従って、利用可能な基本オペレータの組は、各量子コンピューティングシステムに対して様々である。
【００９７】
量子機械語命令セット５２は、この中で描写されるそれらの量子コンピューティングシステム７０で実行され得る。量子コンピューティングシステム７０は、任意の量子力学的システムを含んでおり、一組の基本状態が量子力学的原理に従って計算するのに用いられ得る。量子コンピューティングに有用な量子システムは、システムの情報ユニット又はキュビット７４を介して少なくともある程度の制御を提供しなければならない。例えば、各量子コンピューティングシステム７０は、キュビット７４の状態を初期化し、キュビット７４の一連のユニタリ展開を実現し、キュビット７４の状態において読み出しオペレーションを実現できなければならない。このような量子コンピューティングシステムは、“量子レジスタ７２”と称され、量子コンピューティングに必要とされるオペレーションが複数のキュビット７４に適用される。量子レジスタ構造７２は、例えば、特許文献１に描写されており、これによって、その全体が参照によって取り込まれている。
【００９８】
５．５  量子論理設計プロセス
図３Ａ、３Ｂ及び３Ｃは、本発明の様々な実施例に従う量子論理設計プロセスを例証する。図３Ａは、ＱＣ−ＩＤＥモジュール４４の幾つかの実施例で見受けられるオペレーションシーケンス設計ツールを例証する。これらのツールは、ドライバ詳細を特定し、量子コンピューティングシステム７０の初期条件を特定し、命令セット４８を命令セット５２にコンパイルするためのツールを含んでいる（図１）。本発明の幾つかの実施例において、量子コンピューティングシステム７０におけるキュビット７４の初期条件は、デフォルトで｜０＞状態に設定される。
【００９９】
量子機械語命令５２の組は、どのオペレーションが時間分解手法で量子レジスタ７２において実現されることになるかを命令する。一度、コンパイルされると、量子機械語命令５２は、制御システム（実行モジュール５４）及びドライバ（ドライバハードウェア５８）によって実行され、図３Ｂに示されるような量子レジスタ７２によって提供される制御状況を利用する。特に、図３Ｂは、命令セット５２がシミュレーションモジュール６０を用いてデジタルコンピュータ２０でシミュレートされ得ることを示す。択一的に、命令セット５２は、量子コンピュータ７０で実行され得る。幾つかの実施例において、シミュレーションモジュール６０は、通常の微分方程式解答プログラムである。シミュレーションモジュール６０が利用される場合、量子コンピューティングシステムの状態の重ね合わせは、初期条件からの入力に基づいて準備される。量子コンピュータ７０において利用可能な初期化オペレーションは、｜０＞又は｜１＞状態のどちらかにキュビットを初期化できるのみであるので、状態の重ね合わせに対する初期化は、物理的に非現実的である。しかしながら、シミュレーション目的では、それは、初期化プロセスを回避し、量子コンピューティングシステムを直接所望の状態に初期化するのには、時には有用である。
【０１００】
図３Ｃは、量子機械語命令５２の実行結果がどのように出力として提供されるかを例証する。出力の利用形態は、従来の値によって０又は１のようなレジスタ７２の最終状態を含んでいる。さらに、量子機械語命令５２がシミュレーションモジュール６０を用いてシミュレートされる実例において、量子レジスタ７２の量子状態の進化は、状態の重ね合わせの正規化された大きさを比較する構想で監視され得る。推測シミュレーションが量子コンピュータ７０における実際の計算よりも大きなデータを提供することは、量子コンピュータ７０における読み出しオペレーションが、キュビット７４の状態を従来の“０”又は“１”の値に縮小させることである。物理的読み出しがシミュレーションモジュール６０によって必要とされないので、シミュレートされるキュビットの量子状態を縮小させることは必要とせず、前記キュビットを表す行列が出力され得る。
【０１０１】
本発明の幾つかの実施例において、量子コンピューティングシステム７０は、｜０＞又は｜１＞のどちらかの従来の状態に初期化できるのみである。その後、システム７０は、基本状態の重ね合わせに進化する。この場合において、一組の抽象オペレータは、量子論理を提供するのに用いられ、実際には所望の量子計算を実現するより先に、量子コンピューティングシステム７０を計算に有用な状態の重ね合わせに進化させる。
【０１０２】
５．６  従来コンピュータ上での量子システムのシミュレート
上述のように、本発明の幾つかの実施例において、従来のコンピュータ２０は、設計し、コンパイルし、実行し、量子コンピューティング統合開発環境に対する出力を提供するのに用いられ得る。従って、本発明の幾つかの実施例において、量子コンピューティングシステムは、従来のコンピュータ２０を用いてシミュレートされる。
【０１０３】
量子コンピューティングシステムがシミュレートされる本発明の実施例は、Ｎ個の２レベルシステム（キュビット）によって発生させられるヒルベルト空間における時間依存のシュレディンガー方程式（ＴＤＳＥ）を含んでいる。ヒルベルト空間は、１つ又は複数のキュビットの可能性のある全ての値を表す。あるＮキュビットシステムのハミルトニアンは、以下のように表され得る。
【０１０４】
2005513680.tif 000006
【０１０５】
この場合において、最初の３項は、それぞれドライバ詳細Δ及びεを用いて結合されるパウリ行列Ｘ、Ｙ、及びＺであり、最後の項は、キュビットｋとｍの間で結合する制御位相タイプである。エンタングルメントオペレーションの効果は、本発明の特定の実施例に依存する。ヒルベルト空間における状態は、“キュビット１”が通常右端の数であり、“キュビットＮ”が通常左端である状態で、規則的な二進形式でラベル付けされる。
【０１０６】
本発明の幾つかの実施例において、機械語命令セット５２を実行することは、量子コンピューティングシステム７０をシミュレートすることを含んでいる。前記シミュレート環境の量子レジスタは、利用可能な組の基本オペレータをアプリケーションに従って進化させる。上述のように、シミュレートされた量子レジスタの進化は、時間依存のシュレディンガー方程式を解くことによって描写され得る。システムのハミルトニアンは、エラー又は損失の潜在源と同様な基本オペレータのシーケンスを含む量子システムの全ての時間分解動作を含んでおり、２N×２N行列によって表され、この場合において、Ｎはシステムのキュビットの数を表している。基本オペレータの各々は、２N×２Nユニタリ行列によって描写され、その各々は量子レジスタ状態の特定の進化と相関関係がある。
【０１０７】
本発明の幾つかの実施例において、量子システムのシミュレーションは、解かれることになるシステムのハミルトニアンを表す２N×２N時間依存行列を準備することを含んでおり、この場合において、Ｎはシステムにおけるキュビットの数を表し、準備された時間依存ハミルトニアンを用いてシュレディンガー方程式を数値的に解く。ハミルトニアン情報を記憶するのに有用なデータ構造は、“スパース行列”データ型であり、ハミルトニアンの全ての要素は、行及び列の行列入力値によって鍵をかけられてハッシュテーブルに記憶され、行列の各々の要素は、適用されている基本オペレータを表す時間依存の複素数を記憶する。基本オペレータの幾つかは、対角に沿ってのみ入力を備えた行列を有する。これらの基本オペレータに有用なデータ構造は、“対角行列”データ型であり、この場合において、データ型の必要性は、対角に沿った成分の数である、２N状態に関する情報を維持するのみである。成分は、行列の対角に沿って線形に配置されるようになることが知られているので、スパース行列データ構造は、効果的に縮小する。従って、ハミルトニアンは、システムに適用されている各々の基本オペレータに対して各々の行列を加算することによって発生させられ得る。本発明の幾つかの実施例において、デコヒーレンスの潜在源が考慮され、さらにハミルトニアンに取り込まれ得る。
【０１０８】
５．７  量子システムの校正
本発明の幾つかの実施例は、量子コンピューティングシステム７０を校正するように用いられ得る。前記実施例は、（ｉ）量子レジスタ７２の初期化、（ｉｉ）基本状態の幾つかの重ね合わせに対するレジスタ７２の進化、（ｉｉｉ）量子レジスタ７２の状態の進化、（ｉｖ）進化の結果の読み出し、に対する機能性を含んでいる。この機能性は、量子レジスタ７２における単一キュビット７４を校正するのに有用である。前記校正において、キュビット７４は、初期化され、続いて量子コンピューティングシステム７０における固有のデコヒーレンスプロセスに関して情報を集めるために読み出される。さらに、初期化の後、基本オペレータのシーケンスは、読み出しオペレーションが適用される前にキュビットに適用され得る。繰り返される測定プロセスを介して、量子コンピューティングシステム７０における前記特定のキュビット７４の統計的分析は、所定の量子コンピューティングシステム７０の単一キュビット７４に適用可能な各々の基本オペレーションに関連するように取り入れられ得る。処理手順は、複数のキュビット７４の校正に拡張され得る。さらに、キュビット間の相互作用オペレータは、本発明のシステム及び方法を用いて同様に校正され得る。
【０１０９】
図５は、量子コンピューティング環境に対する校正ツールとしてＱＣ−ＩＤＥのアプリケーションを例証する。状態５５０は、校正のための量子レジスタの初期状態を表す。この状態は、校正に関係するキュビットの数に依存する。状態５５０は、制御システムによって準備されるようなレジスタの初期状態を表す。典型的には、レジスタは、幾つかの重ね合わせの状態よりもむしろ幾つかの単一の従来の状態で始まり得る。量子コンピューティングシステムの初期状態５５０の進化は、その後、オペレーション５５５で成し遂げられ、この場合において、基本オペレータの幾つかのシーケンスは、量子コンピューティングシステムの状態を進化させるのに用いられる。一度、基本オペレータのシーケンスが適用されると、読み出しオペレーション５６０は、量子コンピューティングシステムで実現され得る。従って、レジスタからの出力は、入力状態及び適用された基本オペレータのシーケンスと相関関係があり、量子システムについての情報を決定する。
【０１１０】
５．８  ＱＣ−ＩＤＥのインターフェースモード
図６から８は、本発明の一実施例に従ってＱＣ−ＩＤＥ４４のインターフェースモードの様々な側面を例証する。図６Ａは、回路レイアウトインターフェースモジュール６２０、機械語インターフェース６１０、パルス振幅インターフェース６１１、初期条件インターフェース６１５、制御パネル６３０、グローバル設定インターフェース６４０、ツールバーメニュー６５０、及びシステム情報インターフェース６６０を例証する。
【０１１１】
図６Ａは、２キュビット量子ＣＮＯＴオペレーションを実行する量子プログラムの例を説明する。量子ＣＮＯＴオペレーションは、２つのキュビット（６２０−１及び６２０−２）を含んでいる。２つのキュビットのうち一方は、制御として動作し、他方はターゲットとして動作する。ＣＮＯＴオペレーションは、それぞれのキュビットの間に結合機構６２０−１、２を必要とする（図６Ａ）。回路レイアウトインターフェースモジュール６２０で例証される回路は、一般の量子コンピューティング方式を表しており、任意の量子コンピューティングシステム７０の物理特性を反映するように設計され得る。
【０１１２】
図６Ａにおける機械語インターフェース６１０は、量子ＣＮＯＴオペレーションを実行するためのパルスシーケンスの例を説明する。インターフェース６１０におけるチャート６１３の横軸は、時間単位を表し、横軸の各番号は、連続する期間（継続時間）を表している。チャート６１３の各列は、キュビットゲートを表し、設計されるキュビットに適用される。例えば、チャート６１３の列６１３−１は、“Ｑ１σX”を示している。これは、チャート６１３の列６１３−１でパルスが出現する各期間においてσXがキュビット７４−１に適用されることを意味する。パルスは、所定の期間に所定の列で立ち上がった垂線によって表される。例えば、チャート６１３の列６１４の期間２にパルスが存在する。これは、σXが期間２の間にキュビット７４−２に適用されるようになることを意味する。図６Ａの例において、ＣＮＯＴオペレーションは、以下のように表される。
【０１１３】
ＣＮＯＴ1,2＝ｅi3π/4Ｘ2（π／２）Ｃ1,2（π／２）Ｚ2（π／２）Ｘ2（π／２）Ｚ2（π／２）Ｚ1（π／２）Ｃ1,2（π／２）
【０１１４】
この場合において、Ｘr（θ）は、位相θに対してキュビットｒに適用される単一キュビットビットフリップオペレーションを表し、Ｚrは位相θに対してキュビットｒに適用される単一キュビット位相オペレーションを表し、Ｃr、s（θ）は２キュビット制御位相オペレーションを表し、位相θを介して再度キュビットｒ及びｓの状態をもつれさせ、ｅi3π/4はグローバル位相を表す。
【０１１５】
ここで、量子ＣＮＯＴオペレーションの実装及び最適化は、上記で詳細に描写されている。チャート６１３における列は、上からＸr（θ）、Ｙr（θ）、Ｚr（θ）、グランド又は読み出しオペレーション、及びキュビット１及び２のそれぞれに対するＣr、s（θ）オペレーションを表している。列に生じたバーは、それぞれのゲートが前記時間単位中に変化していることを示し、それぞれのキュビットにおける前記オペレーションのパルスを表している。パルスの大きさは、パルス振幅インターフェース６１１で定義され得る。
【０１１６】
機械語インターフェース６１０は、量子機械語を表し、量子コンピュータ７０で実行される。一度、それはコンパイルされると、それはプログラムを実行するのに重要となる全ての関連する情報を含む。図６Ａにおいて、ハードウェア設定及びパルス詳細は、機械語インターフェース６１０におけるドライバパネル６９９の“設定及び振幅”ボタン６９８にアクセスすることによって定義され得る。
【０１１７】
“設定及び振幅”ボタン６９８は、グローバル設定インターフェース６４０及びパルス振幅インターフェース６１１をそれぞれ開く。グローバル設定インターフェース６４０により、ユーザは、適用されるパルスの峻度を制御することができる。また、ユーザは、時間単位を動作させるように定義できる。前記時間単位は、１．０ナノ秒（ｎｓ）として図６Ａに例証される。パルス振幅インターフェース６１１により、ユーザは、適用されるパルスの下でデフォルト領域を設定することができ、それぞれの量子ゲートに対する自由度を許容する。
【０１１８】
初期条件インターフェース６１５は、各々のキュビット７４それぞれの複素数の状態を設定することによって、ユーザに量子システム７０に対する所望の初期状態を準備することを許容する。キュビット７４の状態は、｜Ｑr＞＝α｜０＞＋β｜１＞として定義され、この場合において、α及びβは、形態ａ＋ｂｉを有する複素数であり、ａ及びｂは実数である。図６Ａを参照すると、キュビットＱ１に対する初期条件は、以下のように定義される。
【０１１９】
Ｑ１：[（０．４９３３７）＋ｉ（０．５２０２７）]｜０＞＋［（０．３４１６３）＋ｉ（０．６０７６）］｜１＞
【０１２０】
初期条件インターフェース６１５は、任意の数をキュビット状態に割り当てるためのランダムボタンを含んでいる。この機能は、それぞれのオペレーションの論理を理解するために状態の重ね合わせで量子レジスタ７２の初期状態を準備する際に有用である。
【０１２１】
ツールバー６５０により、ユーザは、ＱＣ−ＩＤＥモジュール４４に特有なツールと同様に“新規”、“開く”、“保存”、及び“ヘルプ”のようなソフトウェアに共通する標準機能にアクセスでき、“カーソル”、“追加キュビット”、及び“追加接続”のような回路レイアウトインターフェースモジュール６２０に有用である。
【０１２２】
コントロールパネル６３０は、図６Ａに例証されるそれぞれのインターフェースを開閉するインターフェースの実施例である。本発明の実施例において、制御パネル６３０は、可視のワークスペースを広げるように大きさが縮小される閉鎖状態と、特徴及び制御において提供しアクセス可能である開放状態と、を有する。図７は、制御パネル６３０に対する開いた状態を例証する。
【０１２３】
システム情報インターフェース６６０Ａ（図６Ａ）は、適用されている回路及び論理についての情報を含んでいる。インターフェース６６０Ａは、ワーキング文書のタイトル、Ｓｙｓｔｅｍ＝Ｇｅｎｅｒｉｃとして例証されるシステムタイプ、及びＣｏｕｐｌｉｎｇｓ＝Ｃｏｎｔｒｏｌｌｅｄ  Ｐｈａｓｅとして例証される結合形態を含んでいる。システム情報インターフェース６６０Ａにより、ユーザは、所望の量子コンピューティングプラットフォーム７０のパラメータを定義できる。例えば、幾つかの場合において、量子ＣＮＯＴオペレーションは、Ｃｏｕｐｌｉｎｇｓ＝ＣＮＯＴのような結合オペレーションに選択され得る。
【０１２４】
図６Ｂは、システム設計インターフェース６６０Ｂの実施例を説明する。システム設計インターフェースは、ユーザに、システムの有用な側面を定義することを許容し、さらに、図６Ａからのグローバル設定インターフェース６４０及びシステム情報インターフェース６６０Ａに関連している。
【０１２５】
図７は、ＱＣ−ＩＤＥモジュール４４の論理設計インターフェースを利用した量子ゲートの作成例を説明する。図６Ａに例証されるように、回路レイアウトインターフェースモジュール６２０及び機械語インターフェース６１０は、量子コンピュータ７０において一組の論理４８を実行するパルスの基本シーケンスを定義するために用いられる。図７における機械語インターフェース６１０のチャート６３０は、量子ＣＮＯＴオペレーションを例証する。図７は、エクスポートライブラリ要素インターフェース６７０の例を説明するが、これは論理設計インターフェース（実施例は図８Ａに説明される）での利用のために単一量子論理ゲートのような機械語シーケンスを定義してエクスポートするのに用いられる。エクスポートライブラリ要素インターフェース６７０は、ファイル名のためのテキスト領域６７１、ライブラリ要素に利用しようとするアイコンの表示６７２、利用しようとする所望のアイコンを選択するボタン６７３、ライブラリ要素のタイトルのためのテキスト領域６７４、ライブラリ要素を描写するテキスト領域６７５、及びライブラリ要素のためのシステム情報を描写する幾つかのテキスト６７６、を含んでいる。ライブラリ要素タイトルは、描写、及びアイコンは、論理設計インターフェースにおいて情報を搬送するのに用いられ得る。
【０１２６】
さらに、図７は、制御パネル６３０の開放モードの例を説明する。図７に例証される制御パネル６３０の例は、機械語インターフェース６１０を表示するＯＳボタン、図６の初期条件インターフェース６１５を表示する条件ボタン、及びコンパイルし、実行し、それぞれの機械語の結果を表示するための実行モードボタン（実行モードインターフェースの実施例は図９Ａ及び９Ｂに説明される）を含んでいる。
【０１２７】
図８Ａは、論理設計インターフェース７８０の実施例を説明する。論理設計インターフェース７８０により、ユーザは、標準量子回路表示を用いてハイレベル量子論理を設計できる。キュビットは、左から右に時間が経過していくことを表している水平の列に表されている。幾つかの実施例において、量子論理ゲートは、それぞれの時間ステップ及びキュビットラインでクリックすることによってキュビットラインの各々に追加される。本発明の幾つかの実施例において、所望の位置でそれぞれのキュビットライン上のマウスポインタを右クリックすることによって、ドロップダウンメニューがライブラリ要素のリストを表示して現れる。ドロップダウンメニュー７８１の実施例は、利用可能なライブラリ要素のリストであり、図８Ａで例証される。
【０１２８】
図８Ａの論理設計インターフェース７８０は、キュビットＱ１の初期状態がキュビットＱ３にテレポートされる量子テレポーテーション回路の例を説明する。量子テレポーテーションの回路は、従来から周知である。例えば、非特許文献１１のｐ．２６−２８を参照すると、この中に参照によって組み込まれている。例証されるように、テレポーテーション回路は、読み出し、Ｘ、及びＺオペレーションと同様なアダマール及びＣＮＯＴオペレーションを含む量子回路を備えている。
【０１２９】
図６及び７を再度参照すると、量子ＣＮＯＴオペレーションは、基本パルスのシーケンス又は機械語オペレーションを含み得る。論理設計インターフェース７８０の単一論理ゲートは、複数の基本パルスを表し得るので、単一時間単位はまた、複数の時間単位を表し得る。幾つかの実施例において、論理設計インターフェース７８０の単一時間単位は、５つの基本時間単位を表す。論理設計インターフェース７８０のキュビットに対するタイムチャート（対照年表）の長さは、長さボタン７８２によって制御され得る。
【０１３０】
論理設計インターフェース７８０に例証されるテレポーテーション回路は、キュビットＱ１及びＱ２における読み出しオペレーションを含んでいる。それそれの読み出しオペレーションから生じる値は｜１＞に従い、その後、さらに、ゲートはターゲットキュビットＱ３に適用される（図８Ａ）。例えば、図８Ａを再度参照すると、キュビットＱ１に適用されるＸ及びＺの論理ゲートは、キュビットＱ１及びＱ２で実行される読み出しオペレーションの値に基づいた条件オペレーションである。キュビットＱ２における読み出しオペレーションが結果として｜１＞の値を生ずる場合、その後、Ｘオペレーションは、キュビットＱ１に適用され、キュビットＱ１における読み出しオペレーションが結果として｜１＞の値を生ずる場合、その後、Ｚオペレーションは、Ｑ１に適用される。これらの条件オペレーションは、図８Ａで例証される量子回路において、ドロップダウンメニュー７８１の条件オプションでなされる選択によって達成される。本発明の一実施例において、ドロップダウンメニュー７８１における条件オプションは、ユーザが読み出しオペレーションにおいてドロップダウンメニュー７８１を開いた場合にのみ現れる。本発明における量子回路の条件オペレーションは、上記５．２節で詳細に描写されている。
【０１３１】
図８Ｂは、任意形態の従来論理が読み出しオペレーションの結果に適用され得る場合のグランド条件インターフェース７８２を例証する。例えば、図８Ｂに例証されるステートメントは、擬似コードで以下のように読み出す。
【０１３２】
ＩＦ（Ｇｒｏｕｎｄ  ｏｎ  ｑｕｉｂｉｔ  Ｑ２  ａｔ  ｔｉｍｅ  ｕｎｉｔ５  ｒｅｓｕｌｔｓ  ｉｎ  ｜１＞），
ｔｈｅｎ（ａｐｐｌｙ  Ｘ  ｏｐｅｒａｔｉｏｎ  ｏｎ  ｑｕｂｉｔ  Ｑ３  ａｔ  ｔｉｍｅ  ｕｎｉｔ６）．
【０１３３】
図８Ｃは、ユーザがそれぞれの量子回路に適用される条件論理ステートメントを表示する場合の制御ステートメントブラウザインターフェース７８３の実施例を説明する。図８Ａに例証される量子回路を参照すると、本発明の実施例は、キュビットＱ１及びＱ２において読み出しオペレーションに基づいた２つの条件オペレーション各々をそれぞれ含んでおり、左側のパネルにおいてｃｏｎｄ１及びｃｏｎｄ２として図８Ｃに例証される。実施例において、それぞれの回路の条件の１つが選択される場合、前記条件の条件論理は、制御ステートメントブラウザインターフェース７８３のメインパネルに現れる。図８Ｃは、図８Ａに例証されるテレポーテーション回路からのｃｏｎｄ２の条件論理例を説明する。
【０１３４】
図９Ａは、実行コンソールインターフェース８３５、最終状態インターフェース８９１、ＯＳインターフェース８９２、及び状態振幅インターフェース８９３を含む実行モードインターフェース８００（図１の出力モード５６）の実施例を説明する。実行モードインターフェース８００は、図２の要素２０８として例証される出力結果インターフェースの実施例であって、量子論理の実行を表示するのに用いられる。実施例において、実行コンソールインターフェース８３５は、計算の実行を表示して再検討するためのメイン制御インターフェースとして動作する。実行コンソールインターフェース８３５は、様々な出力インターフェースを表示するプロット表示パネル８３５−１、及び出力結果の表示と認識を支援する時間コンソールの位置を制御する時間制御パネル８３５−２を含み得る。状態振幅インターフェース８９３と最終状態インターフェース８９１の両者は、量子論理の実行結果を表示するインターフェースの実施例であり、ＯＳインターフェース８９２は、論理の入力パルス又は機械語に対する結果を比較するのに利用できる。
【０１３５】
本発明の幾つかの実施例において、最終状態インターフェース８９１（図９Ａ）は、３つの要素：（ｉ）量子レジスタ７２の初期状態、（ｉｉ）時間コンソールにおける量子レジスタ７２の値、及び（ｉｉｉ）計算後の量子レジスタ７２の最終状態を含んでいる。時間コンソールの位置を変更することは、量子レジスタ７２に記憶されている、対応する情報を変化させる。この中間値は、実行を介して量子論理を追跡するのに有用である。状態振幅インターフェース８９３は、時間に対する状態集団をプロットする形態で量子レジスタ７２における情報のグラフ表示を提供する。状態振幅インターフェース８９３において図９Ａに例証される出力は、任意の初期状態を有する２つのキュビットの間で適用される量子ＣＮＯＴオペレーションの例を説明する。状態振幅インターフェース８９３における状態ラインを追跡すると、量子状態｜０１＞及び｜１１＞にそれぞれ対応する状態８９３−０１及び８９３−１１は確率を交換する一方、量子状態｜００＞及び｜１０＞にそれぞれ対応する状態８９３−００及び８９３−１０は確率が変化しないということが実証される。これは、状態が｜Ｑ２Ｑ１｜として表示されるように、制御キュビットがＱ１であって、ターゲットキュビットがＱ２である場合のＣＮＯＴ論理を実証している。
【０１３６】
図９Ｂは、実行モードインターフェース８００の別の実施例を説明する。図９Ｂの実行モードインターフェース８００は、図８Ａの前記例証した論理設計インターフェース７８０のような量子テレポーテーション回路からの出力の例を説明する。実行モードインターフェース８００（図９Ｂ）は、最終状態インターフェース８９１−１及び中間状態インターフェース８９１−２を含んでおり、図９Ａで例証した最終状態インターフェース８９１に類似している。最終状態インターフェース８９１−１及び中間状態インターフェース８９１−２は、最終グローバル位相パネル８９１−１−Ｐ及び８９１−２−Ｐをそれぞれ含んでおり、ユーザによって定義されるグローバル位相を量子レジスタの最終状態に適用する。例えば、中間状態インターフェースは、ｅiπ/2のグローバル位相を例証する場合において、数字１．５７０７９６は、ユーザによって入力され、この例ではπ／２を表しており、量子レジスタの最終状態に適用されることにより、最終出力は量子レジスタの初期状態として同様の形態をとることができる。図８Ａで例証されるテレポーテーション回路の例において、キュビットＱ１に記憶される状態情報は、キュビットＱ３に変態し、状態は｜Ｑ３Ｑ２Ｑ１＞によって表される。テレポーテーション回路の例において、キュビットＱ１及びキュビットＱ２の最終状態は重要ではない。
【０１３７】
本発明は、コンピュータの読み出し可能な記憶媒体に組み込まれたコンピュータプログラム機構を含むコンピュータプログラム製品として実行され得る。例えば、コンピュータプログラム製品は、図１に示されるプログラムモジュールを含み得る。これらのプログラムモジュールは、ＣＤ−ＲＯＭ、磁気ディスク記憶製品、又は任意の他のコンピュータ読み出し可能なデータ又はプログラム記憶製品に記憶される。また、コンピュータプログラム製品におけるソフトウェアモジュールは、インターネット又は他のものを介して、（ソフトウェアモジュールが組み込まれている）コンピュータデータ信号を搬送波での送信によって電子的に配送され得る。また、コンピュータプログラム製品のソフトウェアモジュールは、ハードコピープリントアウト又は他の手段によって分配され得る。
【０１３８】
本発明は幾つかの特定の実施例に関して描写されてきた一方、描写は本発明を例示するものであって、本発明を限定するように構成されるものではない。様々な変更が、添付した請求項によって定義されるような本発明の本来の意図及び範囲から出発することなしに当業者には思い浮かぶであろう。
【図面の簡単な説明】
【０１３９】
【図１】本発明に係る一実施例に従って動作するシステム１０である。
【図２】本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の要素間の相互作用を例証しているフロー図である。
【図３Ａ】本発明に係る幾つかの実施例に従う、量子論理設計プロセスを描写している実体関連図である。
【図３Ｂ】本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の実行部要素を例証しているブロック図である。
【図３Ｃ】本発明に係る幾つかの実施例に従う、量子コンピューティング統合開発環境の出力部要素を例証しているブロック図である。
【図４】従来技術に従う、２キュビット量子システムに関連する基本オペレーションの総体を例証する。
【図５】本発明に係る幾つかの実施例に従う、量子コンピューティング環境に対する校正ツールとして用いられる量子コンピューティング統合開発環境のブロック図である。
【図６Ａ】量子コンピューティング統合開発環境について回路及び機械語の設計モードに対する本発明に係るインターフェースの実施例である。
【図６Ｂ】量子コンピューティング統合開発環境について回路及び機械語の設計モードに対する本発明に係るインターフェースの実施例である。
【図７】量子コンピューティング統合開発環境について回路及び機械語設計モードの別の実施例を説明する。
【図８Ａ】量子コンピューティング統合開発環境における量子論理設計モードの実施例の様々な側面を例証する。
【図８Ｂ】量子コンピューティング統合開発環境における量子論理設計モードの実施例の様々な側面を例証する。
【図８Ｃ】量子コンピューティング統合開発環境における量子論理設計モードの実施例の様々な側面を例証する。
【図９Ａ】実行モードインターフェースの２つの実施例を説明する。
【図９Ｂ】実行モードインターフェースの２つの実施例を説明する。
【図１０】抽象量子ゲートの実施例を説明する。
【図１】
2005513680.tif 000010
【図２】
2005513680.tif 000011
【図３Ａ】
2005513680.tif 000012
【図３Ｂ】
2005513680.tif 000013
【図３Ｃ】
2005513680.tif 000014
【図４】
2005513680.tif 000015
【図５】
2005513680.tif 000016
【図６Ａ】
2005513680.tif 000017
【図６Ｂ】
2005513680.tif 000018
【図７】
2005513680.tif 000019
【図８Ａ】
2005513680.tif 000020
【図８Ｂ】
2005513680.tif 000021
【図８Ｃ】
2005513680.tif 000022
【図９Ａ】
2005513680.tif 000023
【図９Ｂ】
2005513680.tif 000024
【図１０】
2005513680.tif 000025
【国際調査報告】
2005513680.tif 000026
2005513680.tif 000027