(57)【要約】【課題】等価なメモリ容量でより多くの量子ビット、または、より合理的なメモリ容量で同じ数の量子ビットのいずれかを説明することができる量子回路シミュレーションが必要である。【解決手段】  半導体集積回路を含むコンピュータ処理ユニット上で、量子回路モデルの操作をシミュレートする方法であって、量子回路を、ｎ量子ビットが連続的に一緒に横断されるように意図されたｄ個の隣接する層Ｌｋに分割し、各層が単一の量子ゲートＧｋを含む操作と、３つの予め定義されたタイプの量子ゲートの中から、回路の各量子ゲートＧｋにタイプを割り当てる操作と、を含んでおり、上記３つの予め定義されたタイプは、伝達行列が対角である対角型ゲートと、伝達行列が非対角であり、０または１の値を有する演算子を含み、行ごとおよび列ごとに１つの演算子しかない従来型ゲートと、対角型でも従来型でもない高密度型ゲートと、である。
2020515999.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路を含むコンピュータ処理ユニット上で、入力量子ビットの所定の数ｎ（ｎはｎ≧２を満たす整数）を処理するように構成され、半導体集積回路メモリに記憶された所定の量子ゲートモデルのライブラリから選択された一連のｄ（ｄはｄ≧２を満たす整数）個の基本量子ゲートＧｋ（ｋは１≦ｋ≦ｄを満たす整数）のシリーズを含む量子回路モデルの操作をシミュレートする方法であって、
各量子ゲートモデルは、行および列に順序付けられた演算子を含み、このゲートを通過する量子ビットの可能な状態遷移のセットを定義する伝達行列Ｕｋに関連付けられ、
上記方法は、
量子回路モデルを構成する段階と、
上記構成された量子回路モデルを解析する段階と、
繰り返しを含む演算を行う段階と、
を含んでおり、
上記量子回路を構成する段階は、
量子回路モデルへの入力として処理される量子ビットの数ｎを定義する操作と、
ｄ個の量子ゲートモデルを選択する操作と、
上記選択されたｄ個の量子ゲートモデルを、量子回路モデルを構成するように配置する操作と、
を含んでおり、
上記構成された量子回路モデルを解析する段階は、
量子回路を、ｎ量子ビットが連続的に一緒に横断されるように意図されたｄ個の隣接する層Ｌｋに分割し、各層が単一の量子ゲートを含むようにする操作と、
３つの予め定義されたタイプの量子ゲートの中から、回路の各量子ゲートにタイプを割り当てる操作と、
を含んでおり、
上記３つの予め定義されたタイプは、
伝達行列が対角である対角型ゲートと、
伝達行列が非対角であり、０または１の値を有する演算子を含み、行ごとおよび列ごとに１つの演算子しかない従来型ゲートと、
対角型でも従来型でもない高密度型ゲートと、
であり、
上記繰り返しを含む演算を行う段階は、以下の操作のｊ＝１からｊ＝２ｎ（ｊは整数）の繰り返しを含む演算段階であって、
ａ）量子回路に入る量子ビットの状態ベクトル
【数１】
2020515999.tif 000107
を定義し、このｎ量子ビットは０または１の値を有する一連の２ｎの振幅係数
【数２】
2020515999.tif 000108
（ｉは、０≦ｉ≦２ｎ−１を満たす整数）を含み、以下のようにする操作と、
【数３】
2020515999.tif 000109
ｂ）ｋ＝１からｋ＝ｄまで、所定のシーケンスを繰り返す操作と、
ｃ）半導体集積回路メモリの単一のレジスタに、ベクトル
【数４】
2020515999.tif 000110
の可能な状態のセットを集約する操作と、
を含んでおり、
上記所定のシーケンスを繰り返す操作は、
ｂ１）層Ｌｋに入るｎ量子ビットの状態ベクトル
【数５】
2020515999.tif 000111
を考慮し、このベクトル
【数６】
2020515999.tif 000112
は一連の２ｎ振幅係数
【数７】
2020515999.tif 000113
を含むシーケンスと、
ｂ２）層Ｌｋに含まれるゲートＧｋを識別するシーケンスと、
ｂ３）ゲートＧｋのタイプを考慮するシーケンスと、
ｂ４）ゲートＧｋが対角型である場合、層Ｌｋを出るｎ量子ビットの状態ベクトル
【数８】
2020515999.tif 000114
に、それに入るｎ量子ビットの状態ベクトル
【数９】
2020515999.tif 000115
の値を、以下のように割り当てるシーケンスと、
【数１０】
2020515999.tif 000116
ｂ５）ゲートＧｋが従来型である場合、
各演算子はその伝達行列において、１の値を有し、その行番号ｌおよび列番号ｃ（ｌおよびｃは、０≦ｌ≦２ｎ、０≦ｃ≦２ｎ、ｌ≠ｃを満たす整数）を決定するシーケンスと、
層Ｌｋを出るｎ量子ビットの状態ベクトル
【数１１】
2020515999.tif 000117
の振幅係数
【数１２】
2020515999.tif 000118
に以下の値を割り当てるシーケンスと、
【数１３】
2020515999.tif 000119
半導体集積回路メモリの専用レジスタにベクトル
【数１４】
2020515999.tif 000120
を記憶するシーケンスと、
ｂ６）ゲートＧｋが密型である場合、
層Ｌｋを出るｎ量子ビットの状態ベクトル
【数１５】
2020515999.tif 000121
の可能な値のセットを、以下の値に決定するシーケンスと、
【数１６】
2020515999.tif 000122
ベクトル
【数１７】
2020515999.tif 000123
の各可能な値を半導体集積回路メモリの専用レジスタに記憶するシーケンスと、
を含んでいる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ科学の分野に関し、より具体的には、古典的に構造化されたコンピュータによる量子論理回路のシミュレーションに関し、言い換えれば、電子の流れが横切ることができるトランジスタの回路からそれぞれが構成される論理ゲートを備えるプロセッサを使用する。
【背景技術】
【０００２】
コンピュータの設計（プロセッサに似せることができ、ここでは２つのタームは同義語である）は一般的な挙動、より具体的には、所与のプログラムを実行した後にコンピュータが提供する結果を予測するために、一般に、その操作（言い換えれば、その構成要素論理回路の操作）のアルゴリズムシミュレーションの以前の段階に基づく。
【０００３】
演算（例えば、加算、減算、乗算）は入力ビット（値０または１）に適用される論理機能を実行し、その結果が出力ビット（値０または１）であるトランジスタに基づく基本論理ゲートの組み合わせによって実行される。例えば、論理関数ＮＯＴ、ＡＮＤ、ＯＲ、ＮＯＲ、ＮＡＮＤを挙げることができる。
【０００４】
半導体エッチングプロセスの高度化によって可能になったトランジスタの小型化は、コンピュータの計算能力および記憶容量（またはメモリ）を増大させることを可能にした。ムーアの推測（いわゆる法則）によれば、半導体上にエッチングされるトランジスタの密度は、１９６０年代から２年ごとにほぼ倍増する。
【０００５】
トランジスタがマイクロメートルスケールのままである限り、（電気の法則を有する）古典的な物理学は適用可能なままであり、論理ゲートによって実行される機能は決定論的なままであり、シミュレーションアルゴリズムにおいて単純な線形代数を適用することを可能にする。
【０００６】
古典的コンピュータ（古典的物理学の電気の法則に従って動作するトランジスタを含むという意味で）では、ｎ個の入力ビット（値０または１の各々）を必要とするプログラムの出力（結果を意味する）が出力ビットの可能な値のセットを表す
【０００７】
【数１】
2020515999.tif 000003
【０００８】
個の成分を有する状態ベクトルによってモデル化することができる。
【０００９】
したがって、入力ビットの加算は、出力ビットの可能な値の数を乗算することにつながることが理解される。言い換えれば、入力（ビットの加算）が線形に増加すると、必要な計算容量（および／またはメモリ）が指数関数的に増加する。
【００１０】
出願の要件（例えば、コンピュータ支援医療、自律車両の運転、高精細画像処理）の増大に鑑みて、論理回路の小型化が追求されており、ナノメートル規模および原子規模さえも現在達成されている。
【００１１】
これらのスケールでは、情報がもはや、古典物理学の法則によってその挙動を決定し予測することができる電気流によって伝えられるのではなく、その挙動が主に確率論的に、量子物理学の法則に応答する粒子（または量子）によって伝えられる。
【００１２】
量子コンピュータでは、情報を記憶するための基本単位を表すのは量子ビット（量子ビットの縮小）であり、古典的なコンピュータで情報を記憶するための基本単位を表すビットに類似している。
【００１３】
一方、ビットの値は、それに適用される操作（identity：０→０または１→１、ＮＯＴ：０→１または１→０）に応じて、常にかつ永続的に０または１になる。あるいは、量子ビットの値は確率的であるため不確定である。
【００１４】
量子ビットのかなり明確な定義は、Ｂｅｎｅｎｔｉ  ｅｔ  ａｌ、Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔａｔｉｏｎ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ、Ｖｏｌｕｍｅ  Ｉ：  Ｂａｓｉｃ  Ｃｏｎｃｅｐｔｓ、Ｗｏｒｌｄ  Ｓｃｉｅｎｔｉｆｉｃ  Ｐｕｂｌｉｓｈｉｎｇ  Ｃｏ、２００４に提案されている。この定義によれば、量子ビットは、ヒルベルト空間において、ＤｉｒａｃのＢｒａ-ｋｅｔ表記法によって表される波動関数
【００１５】
【数２】
2020515999.tif 000004
【００１６】
によって
【００１７】
【数３】
2020515999.tif 000005
【００１８】
と状態が記述される量子系である。
【００１９】
波動関数
【００２０】
【数４】
2020515999.tif 000006
【００２１】
は、量子ビットの可能な値の線形結合として、以下のように記述される。
【００２２】
【数５】
2020515999.tif 000007
【００２３】
ここで、｜０>および｜０>は古典ビットの値０および１（または基本状態）を表し、係数αおよびβ（「確率振幅」と呼ばれるもの）は、以下の関係に従って正規化された複素数である。
【００２４】
【数６】
2020515999.tif 000008
【００２５】
幾何学的観点から、量子ビットは、球座標がθ（０≦θ≦π）およびφ（０≦φ≦２π）である（半径１の）ブロッホ球の表面上に位置する点によって表すことができる。
【００２６】
これらの条件の下で、量子ビットの状態
【００２７】
【数７】
2020515999.tif 000009
【００２８】
は、以下の式として書くことができる。
【００２９】
【数８】
2020515999.tif 000010
【００３０】
または、以下の状態ベクトルとして書くことができる。
【００３１】
【数９】
2020515999.tif 000011
【００３２】
これらの式は量子ビットの状態の連続性を反直感的に証明し、これは、それが測定されない限り無限の状態をとることができ、その瞬間から、その値が決定される（０または１）。この連続性は理論的には単一の量子ビットが無限量の情報を蓄積することができ、そのコンパクトさが物体として魅力的であるとしても、計算および蓄積の点で特に魅力的な性能の量子コンピュータに対する期待を与えることを意味する。
【００３３】
しかしながら、量子力学の法則は量子ビットの状態が読み取られるとすぐにそれを凍結させ、振幅の値αおよびβを求めることは不可能であり、したがって、量子ビットの瞬間的な状態を知ることは不可能である。
【００３４】
現在の知識状態では、量子ビットが古典的なビットに類似した方法で使用されること、言い換えれば、コンピュータプログラム内で処理することができるｎ量子ビットのレジスタ（ｎは整数である）に結合されることが意図されている。
【００３５】
ｎ量子ビットの状態は、２ｎの次元を有するヒルベルト空間における一般化された波動関数
【００３６】
【数１０】
2020515999.tif 000012
【００３７】
によって記述される。
【００３８】
【数１１】
2020515999.tif 000013
【００３９】
ここで、係数｜ｉ>は、以下の関係に従って正規化された、古典的ビット組合せの可能な値（または基本状態）を表し、係数αｉは、各値の確率振幅である。
【００４０】
【数１２】
2020515999.tif 000014
【００４１】
したがって、２つの量子ビット（ｎ＝２）に対して、以下のようになる。
【００４２】
【数１３】
2020515999.tif 000015
【００４３】
ここで、
【００４４】
【数１４】
2020515999.tif 000016
【００４５】
全ての可能な状態の中でレジスタの単一の状態を処理する古典的なコンピュータとは異なり、量子コンピュータは理論的にはレジスタの全ての可能な状態（２ｎ個）を同時に処理することができる。言い換えれば、量子コンピュータは、その性質上、その計算を並列に実行する。その結果、量子ビットの加算はコンピュータの計算能力に２を乗算し、したがって、これは、レジスタのサイズの指数関数である。説明のために、ｎ＝３００（換言すれば、３００個の量子ビット）のレジスタのサイズ、したがって、コンピュータが同時に処理することができるレジスタの状態の数（各１つの特徴情報）は、２３３０≒１０９０であり、すなわち、我々の観察可能な宇宙における粒子の推定数に対応することを示すことで十分である。
【００４６】
近い将来、量子コンピュータは移動させる必要がある不合理な計算容量、および必要な計算時間のために、古典的なコンピュータによって現在解決不可能な問題を解決できると期待することが現実的である。
【００４７】
古典的コンピュータ上で実行される古典的アルゴリズムが妥当な時間内に解くことができない数学的問題の周知の例は、自然数Ｎ（典型的には、１５＝３×５）の因数分解である。公開鍵の生成が整数の積に依存するＲＳＡ（Ｒｉｖｅｓｔ-Ｓｈａｍｉｒ-Ａｌｄｅｍａｎ）暗号法の使用を可能にしたのは、古典的なコンピュータが因数分解問題を解決できないことである。
【００４８】
Ｓｈｏｒの量子アルゴリズム（例えば、Ｓｈｏｒ'ｓ  Ｑｕａｎｔｕｍ  Ｆａｃｔｏｒｉｎｇ  Ａｌｇｏｒｉｔｈｍ、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｓｙｍｐｏｓｉａ  ｉｎ  Ａｐｐｌｉｅｄ  Ｍａｔｈｅｍａｔｉｃｓ、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｍａｒｙｌａｎｄ、２０００、ｂｙ  Ｌｏｍｏｎａｃｏ）におけるこのアルゴリズムのプレゼンテーションを参照されたい）は、理論的には大きさの注文が漸近的にアルゴリズム的ですなわち（Ｌａｎｄａｕの「Ｂｉｇ  Ｏ」表記法において）０（ｌｏｇ（Ｎ））の注文の時間内での自然整数Ｎの因数分解の問題を解くことを可能にする。Ｓｈｏｒアルゴリズムは量子フーリエ変換の使用に依存し、量子フーリエ変換の効率は、古典的なフーリエ変換の効率よりもはるかに高い。
【００４９】
したがって、今のところ、古典的なコンピュータ上で量子論理回路をモデル化することの魅力を見ることができる。しかしながら、メモリ空間および計算能力は制限要因である。
【００５０】
したがって、ｎ量子ビットを有する量子論理回路の既知のモデリングは、サイズが２ｎの初期状態ベクトルＥに適用され、サイズが２ｎであり、ＥとＵの行列積である最終状態ベクトルＥ’を出力する、サイズが２ｎ×２ｎの行列（Ｕと記述され、演算行列と呼ばれる）によって、この回路を数学的に表すことからなる。
【００５１】
Ｅ’＝Ｕ・Ｅ
このモデリングは特に、Ｇｅｒｄｔ  ｅｔ  ａｌ、Ａ  Ｍａｔｈｅｍａｔｉｃａ  Ｐｒｏｇｒａｍ  ｆｏｒ  Ｃｏｎｓｔｒｕｃｔｉｎｇ  Ｑｕａｎｔｕｍ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｃｏｍｐｕｔｉｎｇ  Ｔｈｅｉｒ  Ｕｎｉｔａｒｙ  Ｍａｔｒｉｃｅｓ、Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｑｕａｎｔｕｍ  Ｐｈｙｓｉｃｓ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ、Ｏｃｔ。２００７において試験される。
【００５２】
しかしながら、Ｐａｔｒｚｙｋ  ｅｔ  ａｌ、Ｔｏｗａｒｄｓ  ａ  Ｎｏｖｅｌ  Ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔｉｎｇ、Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  １６  （１）  ２０１５、１０３−１２９では、古典的なコンピュータが所与の数の量子ビット（およびより正確には演算行列を記憶するために）をシミュレートするのに必要なメモリ容量（メモリに記憶できるビット数に対応する）を評価し、以下に再現される表（表１ｐ．１０６）に提示される興味深い数値例のリストを提供した（メモリはバイトで示され、プレフィックスｋ、Ｍ、およびＴはそれぞれ演算子ｋｉｌｏ、Ｍｅｇａ、およびＴｅｒａに対応する）。
【００５３】
【表１】
2020515999.tif 000017
【００５４】
演算行列Ｕを記憶するために必要とされる古典的なコンピュータのメモリ容量をＮとして書く場合、シミュレートされた量子ビットの、ｎｍで示される最大数は、以下よりも大きくないことが示され得る。
【００５５】
【数１５】
2020515999.tif 000018
【００５６】
計算に必要な（または、等価メモリ容量で、シミュレートされた量子ビットの数ｎｍを増加させるために）メモリ容量を減少させるための既知の技法はシュミット分解によってそのサイズを減少させることによって演算行列Ｕの近似を行うことからなり、この方法は特に、ＡＮｉｅｌｓｅｎ  ＆  ＩＣｈｕａｎｇ：  Ｑｕａｎｔｕｍ  Ｃｏｍｐｕｔａｔｉｏｎ  ａｎｄ  Ｑｕａｎｔｕｍ  Ｉｎｆｏｒｍａｔｉｏｎ、Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，１０ｔｈ  Ａｎｎｉｖｅｒｓａｒｙ  Ｅｄｉｔｉｏｎ，２０１０、ｐ．１０９以降の参考文献に記載されている。
【発明の概要】
【発明が解決しようとする課題】
【００５７】
しかしながら、実際にはこの近似がいくつかの単純な量子回路（例えば、ＡＮＤ論理ゲート）に対して許容可能な結果を提供することができるが、より複雑な回路（例えば、量子フーリエ変換回路）に対してはロバスト性に著しく欠けている。
【００５８】
ＳａｍａｄおよびＡｌはＭｅｍｏｒｙ  Ｅｆｆｉｃｉｅｎｔ  Ｑｕａｎｔｕｍ  Ｃｉｒｃｕｉｔ  Ｓｉｍｕｌａｔｏｒ  Ｂａｓｅｄ  ｏｎ  Ｌｉｎｋｅｄ  Ｌｉｓｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ、２００５において、量子論理回路の完全な行列（上記で示されるＵ）を記憶することを省略することを提案しており、これは量子論理回路を列に細分し、入力量子ビットを表す状態ベクトルを有する各列のスカラ積を連続的に取得することを主張することによって行われ、列はそれらのスカラ積が取得されるにつれてメモリから徐々に消去される（効率的な実装、ｐ．４-５を参照）。しかし、Ｓｈｏｒのアルゴリズムにこの方法をうまく適用したと主張する一方で、妥当な時間内に２０個の量子ビットをシミュレートすることができたと主張する一方で、Ｓａｍａｄは、この方法の詳細を提供しない。
【００５９】
したがって、既知のシミュレーションと比較してより良好な性能が可能であり、より具体的には、以下を説明することができる量子回路シミュレーション（古典的なコンピュータ上で実行される）が依然として必要とされていることが分かる。
【００６０】
すなわち、等価なメモリ容量でより多くの量子ビット、または、より合理的なメモリ容量で同じ数の量子ビットのいずれか。
【課題を解決するための手段】
【００６１】
この目的のために、半導体集積回路を備えるコンピュータ処理ユニット上で、入力量子ビットの所定の数ｎ（ｎは、ｎ≧２を満たす整数）を処理するように構成され、半導体集積回路メモリに記憶された所定の量子ゲートモデルのライブラリから選択されたｄ（ｄは、ｄ≧２を満たす整数）個の基本量子ゲートＧｋ（ｋは、１≦ｋ≦ｄを満たす整数）のシリーズを備える量子回路モデルの動作をシミュレートするための方法が提供され、各量子ゲートモデルは、行および列に順序付けられた演算子を備え、このゲートを通過する量子ビットの可能な状態遷移のセットを定義する伝達行列Ｕｋに関連付けられる。
【００６２】
上記方法は、量子回路モデルを構成する段階と、上記構成された量子回路モデルを解析する段階と、繰り返しを含む演算を行う段階と、を含んでいる。
【００６３】
上記量子回路を構成する段階は、量子回路モデルへの入力として処理される量子ビットの数ｎを定義する操作と、ｄ個の量子ゲートモデルを選択する操作と、このようにして選択されたｄ個の量子ゲートモデルを、量子回路モデルを構成するように配置する操作とを含んでいる。
【００６４】
このように構成された量子回路モデルを解析する段階は、量子回路を、ｎ個の量子ビットが連続的に一緒に横断されるように意図されたｄ個の隣接する層Ｌｋに分割し、各層が単一の量子ゲートを含むようにする操作と、３つの予め定義されたタイプの量子ゲートの中から、回路の各量子ゲートにタイプを割り当てる操作とを含んでいる。
【００６５】
上記３つの予め定義されたタイプは、伝達行列が対角である対角型ゲートと、伝達行列が非対角であり、０または１の値を有する演算子を含み、行ごとおよび列ごとに１つの演算子しかない従来型ゲートと、対角型でも従来型でもない高密度型ゲートとである。
【００６６】
上記繰り返しを含む演算を行う段階は、以下の操作のｊ＝１からｊ＝２ｎ（ｊは整数）の繰り返しを含む演算段階であって、
ａ）量子回路に入るｎ量子ビットの状態ベクトル
【００６７】
【数１６】
2020515999.tif 000019
【００６８】
を定義し、この量子ビットは０または１の値を有する一連の２ｎの振幅係数
【００６９】
【数１７】
2020515999.tif 000020
【００７０】
（ｉは、０≦ｉ≦２ｎ−１を満たす整数）を含み、以下のようにする操作と、
【００７１】
【数１８】
2020515999.tif 000021
【００７２】
ｂ）ｋ＝１からｋ＝ｄの、所定のシーケンスを繰り返す操作と、
ｃ）半導体集積回路メモリの単一のレジスタに、所定のセットを集約する操作と、
を含んでいる。
【００７３】
上記所定のシーケンスを繰り返す操作は、
ｂ１）層Ｌｋに入るｎ量子ビットの状態ベクトル
【００７４】
【数１９】
2020515999.tif 000022
【００７５】
を考慮し、このベクトル
【００７６】
【数２０】
2020515999.tif 000023
【００７７】
は、一連の２ｎの振幅係数
【００７８】
【数２１】
2020515999.tif 000024
【００７９】
を含むシーケンスと、
ｂ２）層Ｌｋに含まれるゲートＧｋを識別するシーケンスと、
ｂ３）ゲートＧｋのタイプを考慮するシーケンスと、
ｂ４）ゲートＧｋが対角型である場合、層Ｌｋを出るｎ量子ビットの状態ベクトル
【００８０】
【数２２】
2020515999.tif 000025
【００８１】
に、それに入るｎ量子ビットの状態ベクトル
【００８２】
【数２３】
2020515999.tif 000026
【００８３】
の値を、以下のように割り当てるシーケンスと、
【００８４】
【数２４】
2020515999.tif 000027
【００８５】
ｂ５）ゲートＧｋが従来型である場合、
各演算子はその伝達行列において、１の値を有し、その行番号ｌおよび列番号ｃ（ｌおよびｃは、０≦ｌ≦２ｎ、０≦ｃ≦２ｎ、および、ｌ≠ｃを満たす整数である）を決定するシーケンスと、
層Ｌｋを出るｎ量子ビットの状態ベクトル
【００８６】
【数２５】
2020515999.tif 000028
【００８７】
の振幅係数
【００８８】
【数２６】
2020515999.tif 000029
【００８９】
に以下の値を割り当てるシーケンスと、
【００９０】
【数２７】
2020515999.tif 000030
【００９１】
半導体集積回路メモリの専用レジスタにベクトル
【００９２】
【数２８】
2020515999.tif 000031
【００９３】
を記憶するシーケンスとを含んでいる。
【００９４】
ｂ６）ゲートＧｋが密型である場合、
層Ｌｋを出るｎ量子ビットの状態ベクトル
【００９５】
【数２９】
2020515999.tif 000032
【００９６】
の可能な値のセットを、以下の値に決定するシーケンスと、
【００９７】
【数３０】
2020515999.tif 000033
【００９８】
ベクトル
【００９９】
【数３１】
2020515999.tif 000034
【０１００】
の各可能な値を半導体集積回路メモリの専用レジスタに記憶するシーケンスと、を含んでいる。
【０１０１】
ｃ）では、半導体集積回路メモリの単一のレジスタに、ベクトル
【０１０２】
【数３２】
2020515999.tif 000035
【０１０３】
の可能な状態のセットを集約する操作を行う。
【０１０４】
この方法は公知方法と比較して、量子回路をより効率的に（換言すれば、より迅速に、かつより少ないメモリ空間を移動させながら）シミュレートすることを可能にする。
【図面の簡単な説明】
【０１０５】
本発明は、添付の図面を参照して以下に与えられる、１つの実施形態の説明において詳述される。
【図１】このゲートを通過する量子ビットの状態遷移グラフに関連する、対角タイプの量子論理ゲートの一例の概略図である；
【図２】このゲートを通過する量子ビットの状態遷移グラフに関連する、従来のタイプの量子論理ゲートの一例の概略図である；
【図３】このゲートを通過する量子ビットの状態遷移グラフに関連する、高密度タイプの量子論理ゲートの一例の概略図である；
【図４】これらの論理ゲートを連続的に横断する量子ビットの状態遷移グラフに関連する一連の量子論理ゲートを含む量子論理回路の一例の概略図である。
【発明を実施するための形態】
【０１０６】
その目的は、半導体集積回路を含むコンピュータ処理ユニット上で、この回路に入る所定数ｎの量子ビットを処理するように構成された量子回路の（任意の）モデルの操作をシミュレートすることである。
【０１０７】
「半導体集積回路を備えるコンピュータ処理ユニット」という表現は、従来の精製、エッチング、半導体材料（シリコンなど）のドーピングの技法に従って得られ、古典物理学の法則（特にオームの法則）によってモデル化することができる電流の流れによってそれぞれ横切ることができる（またはトランジスタの状態に応じて横切ることができない）トランジスタのセットを備える任意のプロセッサ（マイクロプロセッサとも呼ばれる）を指す。
【０１０８】
トランジスタは、そのトランジスタの状態によって決定される値が慣例によって０または１に等しい信号を出力する。この値はビットと呼ばれるバイナリ番号付けユニットに割り当てられ、これは一般大衆によって知られている（かつ使用される）古典的なコンピュータにおける符号化の基礎である。
【０１０９】
特定Ｈｉｌｂｅｒｔ、Ｄｉｒａｃ、およびＳｃｈｒｏｄｉｎｇｅｒによって可能にされた理論的進歩は量子コンピュータ、言い換えれば、その基本構成要素がナノメートルまたは原子スケールにまで小型化されるコンピュータを設計することを目的とした研究分野を開き、このスケールでは、既知のトランジスタでは可能であるような電流のフローの通過もはや見られず、それぞれがビット（０または１）の値を提供する単一電子のフローを見ることになる。
【０１１０】
電子はそれ自体がもはや物理学の古典法則に従わないが、本質的に確率論的である量子力学の法則に従う挙動を有するので、問題の構成要素は値が不確定であるが、量子力学のために開発された数学的ツールによって、特に粒子（ここでは電子）が存在する重ね合わせと呼ばれる状態（または波動関数）に関連する式によって記述することが可能である信号を出力する。
【０１１１】
ここでは、作業における物理現象の正確な性質（特に、スピン、位置、電子の運動量について）については説明しない。これは話題にならないだけでなく、科学界内でも議論が続いているからである。
【０１１２】
しかし、提案したシミュレーション法の理論的説明に必要なある種の物理的および数学的概念を導入し、この方法が既知のシミュレーション法よりもどのように良く機能するかを理解できるようにした。
【０１１３】
ここでは、文献によって採用された表記規則を使用する（序論で言及された参考文献を参照されたい）。したがって、我々は、粒子、または我々が見るような粒子の状態を記述する波動関数（Ｄｉｒａｃのｂｒａ−ｋｅｔ表記法を用いて）を
【０１１４】
【数３３】
2020515999.tif 000036
【０１１５】
として示す。
【０１１６】
２次元では、２つの値（０および１）を提供することができる量子ビットと呼ばれる単純な粒子について、量子ビットの波動関数（または状態）は以下のように書かれる。
【０１１７】
【数３４】
2020515999.tif 000037
【０１１８】
｜０>および｜１>は、古典ビットの値０および１（または基本状態）をブラケット表記で表し、これらの値が量子ビットによって採用することができる可能性のある（かつ一定ではない）値であるという事実を表現しながら、量子力学の法則に従って、（粒子に対応する）量子ビットに対して実行される任意の測定が、その状態を確定的に固定することを理解されたい。
【０１１９】
αおよびβ、すなわち、「確率大きさ」または「振幅係数」と呼ばれるものは、それぞれが対応する値（それぞれ、αには｜０>、および、βには｜１>）の発生確率に関連し、以下の「正規化」関係を満たす複素数である。
【０１２０】
【数３５】
2020515999.tif 000038
【０１２１】
単位量子ビットの波動関数（または状態）
【０１２２】
【数３６】
2020515999.tif 000039
【０１２３】
は、ベクトル（列行列）として書くこともできる。
【０１２４】
【数３７】
2020515999.tif 000040
【０１２５】
この表記法では、状態｜０>および｜１>は次のように書かれる：
【０１２６】
【数３８】
2020515999.tif 000041
【０１２７】
文献によれば、理論的には無限の情報を記憶することができるので、１つのｑｕｂｉｔの研究に限定することができる。
【０１２８】
しかしながら、量子コンピュータの挙動について行われた研究では、量子ビットの初期値をその観察された（すなわち、測定された）値から決定することは本質的に不可能であるので、一般化された波動関数
【０１２９】
【数３９】
2020515999.tif 000042
【０１３０】
によってグローバル状態が決定される、一緒にされた量子ビットの数ｎ（ｎは、ｎ≧２を満たす整数である）を一般的に考慮する。
【０１３１】
ｎ次元のヒルベルト空間において、波動関数（または状態）
【０１３２】
【数４０】
2020515999.tif 000043
【０１３３】
は、以下のように書かれる。
【０１３４】
【数４１】
2020515999.tif 000044
【０１３５】
｜ｉ>は、ｂｒａ−ｋｅｔ表記法（Ｄｉｒａｃ表記法）およびバイナリで、古典的ビット組合せの可能な値（または基本状態）を表す。
【０１３６】
係数αｉは、これらの値のそれぞれの出現の確率振幅（または振幅係数）であり、（用語の数学的意味において）複素数であり、これらは一緒になって以下の関係を満たす。
【０１３７】
【数４２】
2020515999.tif 000045
【０１３８】
ただし、すべてのｉについて、
【０１３９】
【数４３】
2020515999.tif 000046
【０１４０】
単一量子ビットに適用した波動関数
【０１４１】
【数４４】
2020515999.tif 000047
【０１４２】
を既に示した。この非常に単純な場合のために、表記を明確にするために、我々は単に、α０がαで示され、α１がβで示されることを観察する。
【０１４３】
２つの量子ビット（ｎ＝２）の場合、
【０１４４】
【数４５】
2020515999.tif 000048
【０１４５】
ここで、
【０１４６】
【数４６】
2020515999.tif 000049
【０１４７】
ベクトル表記では、
【０１４８】
【数４７】
2020515999.tif 000050
【０１４９】
３つの量子ビット（ｎ＝３）の場合、
【０１５０】
【数４８】
2020515999.tif 000051
【０１５１】
ここで、
【０１５２】
【数４９】
2020515999.tif 000052
【０１５３】
ベクトル表記では、
【０１５４】
【数５０】
2020515999.tif 000053
【０１５５】
以下に見られるように、我々が説明する量子回路をシミュレートするための方法は振幅係数αｉの錯体表記を考慮する計算アプローチに依存せず、状態ベクトル
【０１５６】
【数５１】
2020515999.tif 000054
【０１５７】
（波動関数を意味する）が想定することができる可能な値のセットを考慮する組み合わせアプローチに依存し、量子ビットが量子回路を通って進行するときにこの状態ベクトル
【０１５８】
【数５２】
2020515999.tif 000055
【０１５９】
のありそうもない値を除去する。
【０１６０】
予備的に、２つの量子ビット（ｎ＝２、上記参照）に対して、仮定することができる可能な値
【０１６１】
【数５３】
2020515999.tif 000056
【０１６２】
は、以下の通りであることに注意されたい。
【０１６３】
【数５４】
2020515999.tif 000057
【０１６４】
これらは、それぞれ、一緒にされた２つの量子ビットに対する以下の値に対応する。
【０１６５】
【数５５】
2020515999.tif 000058
【０１６６】
３つの量子ビット（ｎ＝３、上記参照）について、仮定することができる可能な値
【０１６７】
【数５６】
2020515999.tif 000059
【０１６８】
は、以下の通りである。
【０１６９】
【数５７】
2020515999.tif 000060
【０１７０】
これらは、それぞれ、一緒にされた３つの量子ビットに対する以下の値に対応する：
【０１７１】
【数５８】
2020515999.tif 000061
【０１７２】
量子回路は、それを横切る２ｎ量子ビットの値を修正する。
【０１７３】
慣例により、そして以下の説明のために、回路に入る量子ビットの状態が
【０１７４】
【数５９】
2020515999.tif 000062
【０１７５】
で示され、そして、それを出る量子ビットの状態が
【０１７６】
【数６０】
2020515999.tif 000063
【０１７７】
で示される。
【０１７８】
【数６１】
2020515999.tif 000064
【０１７９】
および
【０１８０】
【数６２】
2020515999.tif 000065
【０１８１】
は、量子回路によって実行され、以下の行列関係によって記述される伝達関数によって関連付けられる。
【０１８２】
【数６３】
2020515999.tif 000066
【０１８３】
ここで、Ｕは、量子回路によって入ってくる量子ビットに適用される伝達関数に対応する、サイズが２ｎ×２ｎの、伝達行列と呼ばれる行列である。伝達行列Ｕは、（用語の数学的意味において）複素数の形式である演算子ｕｘｙ（ｘおよびｙは、０≦ｘ≦２ｎ−１、０≦ｙ≦２ｎ−１である整数）を含む。伝達行列Ｕは、それらの状態ベクトル
【０１８４】
【数６４】
2020515999.tif 000067
【０１８５】
によって記述されるように、量子回路によって入力量子ビットに適用される動作のセットを表す。
【０１８６】
次のような表記法を使用する。
【０１８７】
【数６５】
2020515999.tif 000068
【０１８８】
【数６６】
2020515999.tif 000069
【０１８９】
および
【０１９０】
【数６７】
2020515999.tif 000070
【０１９１】
の間について、以下の関係を書くことができる。
【０１９２】
【数６８】
2020515999.tif 000071
【０１９３】
古典的なコンピュータが線形代数においてさえ、回路を出る量子ビットの可能な状態のセットをカウントするために、これは、入ってくる量子ビットの数が多いときに、非常に大きなリソースを必要とする。実際、必要とされるメモリ空間は、処理される量子ビットの数と共に指数関数的に増加する。
【０１９４】
したがって、（検討された量子回路に対応する）伝達行列Ｕ全体を構築し、以下の行列計算を実行しなければならないことを回避したい。
【０１９５】
【数６９】
2020515999.tif 000072
【０１９６】
この目的のために、発明者らは最初に、回路に入る一組のクバビットが通過する幾つかの隣接した連続した層に量子回路を細分化し、各々が層に入る一以上のクバビット上で（しかし、必ずしもそれらの全てについてではない）、同様に所定の動作を行う所定の基本量子論理ゲートを含むという考えを持っていた。
【０１９７】
我々は、回路の基本量子論理ゲートの数をｄ（ｄは、ｄ≧２を満たす整数）個と表す。基本論理ゲートは、結果が既知のシミュレーションによって容易に解かれる単純な行列演算に対応するので、ｄ≧２ということが宣言される。
【０１９８】
各層のインデックスは、ｋ（ｋは、１≦ｋ≦ｄを満たす整数）として示され、これは、ｋｔｈ層をＬｋとして指定するために文字Ｌに割り当てられ、層Ｌｋに含まれるｋｔｈユニタリ論理ゲートをＧｋとして指定するために文字Ｇに割り当てられる。
【０１９９】
文献（例えば、Ｎｉｅｌｓｅｎ  ＆  Ｃｈｕａｎｇ、ｏｐｃｉｔ．を参照のこと）は、各々が特定の伝達行列に関連する、いくつかの基本的な量子論理ゲートモデルを定義した。
【０２００】
例として、以下を挙げることができる。
【０２０１】
ハダマールゲートは、Ｈと示され、その伝達関数を１つのｑｕｂｉｔに適用し、以下のように定義される：
【０２０２】
【数７０】
2020515999.tif 000073
【０２０３】
ＰａｕｌｉゲートはＸ（またはＮＯＴ）、ＹおよびＺによって示され、それらの伝達関数（それぞれ、角度πの置換および２つの回転）を単一量子ビットに適用し、それぞれ、以下のように定義される：
【０２０４】
【数７１】
2020515999.tif 000074
【０２０５】
「Ｃｏｎｔｒｏｌｌｅｄ−ＮＯＴ」ゲートは、ＣＮＯＴで示され、その伝達関数（反転）を２つの量子ビットに適用し、以下のように定義される：
【０２０６】
【数７２】
2020515999.tif 000075
【０２０７】
ゲートＳＷＡＰ（またはｑＳＷＡＰ）はその伝達関数（置換）を２つの量子ビットに適用し、以下のように定義される：
【０２０８】
【数７３】
2020515999.tif 000076
【０２０９】
制御された位相ゲートは、Ｒφで示され、その伝達関数（角度φの回転）を単一の量子ビットに適用し、以下のように定義され、（ブロッホ球上の量子ビットを記述するために使用される表記法において）φによって示される角度に関連付けられて示される。
【０２１０】
【数７４】
2020515999.tif 000077
【０２１１】
任意の量子回路のシミュレーションを容易にするために、本発明者らは、異なる基本ゲートモデル（量子回路を構成するために使用することができる）を３つのタイプに分類するという考えを有していた：
・マトリックスが対角である対角型ゲート；
・マトリックスが非対角であり、０または１の値を有する演算子を含み、１つの演算子のみが行当たりおよび列当たり１に等しい、従来のタイプのゲート；
従来型でも対角型でもない高密度型ゲート。
【０２１２】
この分類によると：
Ｚ、Ｒφは、特に、対角型ゲートである。
【０２１３】
とりわけ、Ｘ、Ｙ、ＣＮＯＴ、ＳＷＡＰは、従来のタイプのゲートである；
特に、Ｈは、高密度型ゲートである。
【０２１４】
シミュレーションをさらに促進するために、本発明者らは次に、以下の３倍仮定から開始して、この層に存在する基本論理ゲートＧｋによって実行される伝達関数を適用することから得られる計算を可能な限り単純化することによって、量子回路の各層Ｌｋを通って移動する量子ビットに対して実行される演算を最小化するという考えを有していた。
【０２１５】
ゲートに入るｎ量子ビットの任意の状態ベクトル
【０２１６】
【数７５】
2020515999.tif 000078
【０２１７】
について、その可能な値に従って考慮され、換言すれば、値０の２ｎ−１の振幅係数および値１の単一の振幅係数を含む列行列の形態の状態ベクトル
【０２１８】
【数７６】
2020515999.tif 000079
【０２１９】
である（以下に提供される例を参照）。
【０２２０】
１）対角型論理ゲートは状態ベクトルの値を変更しない（その可能な値に従って考慮される）。対角行列は入力量子ビットの状態ベクトルの振幅係数の値に影響しないので、これは特にポーリゲートＺ及び制御された位相ゲートＲφの場合である。
【０２２１】
２）従来のタイプの論理ゲートは入ってくる量子ビットの状態ベクトル
【０２２２】
【数７７】
2020515999.tif 000080
【０２２３】
の単一の可能な変換を実行し、これは特にＸ（ＮＯＴ）、Ｙ、ＣＮＯＴ、および、ＳＷＡＰのゲートの場合に当てはまる。ゲートは行当たり１つの値１の演算子と列当たり１つの値１の演算子を有する０または１に等しい演算子を含む非対角行列が値１の振幅係数αｃを、この係数が入ってくる量子ビットの状態ベクトル
【０２２４】
【数７８】
2020515999.tif 000081
【０２２５】
に位置するランクｉ＝ｃから、出て行く量子ビットの状態ベクトル
【０２２６】
【数７９】
2020515999.tif 000082
【０２２７】
にｌのランク付けをするためである。
【０２２８】
３）密型論理ゲートは入ってくる量子ビットの状態ベクトル
【０２２９】
【数８０】
2020515999.tif 000083
【０２３０】
のいくつかの可能な変換を実行し、これは、その行列が少なくとも１つの行および／または列に非ゼロ値を含むので、特に行列Ｈの場合である。
【０２３１】
この３倍仮定はｎ量子ビットによる各ゲートの通路のシミュレーション中に計算をかなり単純化することを可能にするが、それは、ゲートを出る状態ベクトル
【０２３２】
【数８１】
2020515999.tif 000084
【０２３３】
のありそうもない値を除去する、言い換えれば、考慮しないことを可能にし、ありそうな値を保持する（および専用メモリレジスタに記憶する）だけであるからである。
【０２３４】
これを説明するために、図１、図２、および図３をそれぞれ参照して、各タイプの論理ゲートについてこの仮定を適用し、様々な基本量子ゲートが既知の表現規則（特定Ｎｉｅｌｓｅｎ  ＆  Ｃｈｕａｎｇ、ｏｐｃｉｔ．に記載されている）を使用して表されており、各量子ビットの経路が水平線によって表され、各基本量子ゲートが線上に重ね合わされている。ゲートが位置する線以外の線上の点に通じる垂直線は、ゲートがこの他の線によって表される量子ビットによって制御されることを意味する。
【０２３５】
図１は単一の量子ビットが横切る、対角タイプの単一の基本量子ゲートを含む回路を示し、これは、制御された位相Ｒπ／２であり、角度π／２の回転を、それを横切る量子ビットに適用する。
【０２３６】
ゲートの下では、入力量子ビット｜００>、｜０１>、｜１０>および｜１１>の４つの可能な状態が重ね合わされたボックスで表されており、これらのボックスと同じレベルで、出力量子ビット｜００>、｜０１>、｜１０>および｜１１>の４つの可能な状態が表されている。
【０２３７】
入力状態が｜００>である場合、出力状態の唯一の可能な値が｜００>でもあり、他の可能な値（｜０１>、｜１０>および｜１１>）はありそうもなく、無視することができ、対応するボックスは、これらの計算仮説の放棄を示すためにグレーアウトされる。
【０２３８】
説明のために、状態遷移
【０２３９】
【数８２】
2020515999.tif 000085
【０２４０】
は、考慮される量子ゲートが処理される量子ビットの値を変更しないことを示す水平矢印によって表される。
【０２４１】
図２は単一の量子ビットが横切る従来型の単一の基本量子ゲートを含む回路を示しており、これはＸゲートである。
【０２４２】
ゲートの下では、入力量子ビットである｜０>および｜１>の２つの可能な状態が重ね合わされたボックスで表されており、これらのボックスと同じレベルで、出力量子ビットである｜０>および｜１>の２つの可能な値が表されている。
【０２４３】
入力量子ビットの状態が｜０>である場合、出力量子ビットの唯一の可能な状態が｜１>であり、他の可能な値である｜０>はあり得ず、無視することができ、対応するボックスは灰色に見える。
【０２４４】
逆に、入力量子ビットの状態が｜１>である場合、出力量子ビットの唯一の可能な状態が｜０>であり、他の可能な状態である｜１>はあり得ない（無視することができる）。
【０２４５】
例示のために、状態遷移
【０２４６】
【数８３】
2020515999.tif 000086
【０２４７】
は斜めの矢印によって表され、これは、考慮される量子ゲートがそれに唯一の他の可能な状態を割り当てることによって、入ってくる量子ビットの状態を修正することを示す。
【０２４８】
図３は単一の量子ビットが横切る高密度タイプの単一の基本量子ゲートを含む回路を示しており、これはＨ（アダマール）ゲートである。
【０２４９】
ゲートの下では入力量子ビットである｜０>および｜１>の２つの可能な状態が重ね合わされたボックスで表されており、これらのボックスのレベルでは出力量子ビットである｜０>および｜１>の２つの可能な値が表されている。
【０２５０】
入力量子ビットの状態が｜０>か｜１>にかかわらず、その出力状態が｜０>（状態不変）または｜１>（状態変化）であることは等確率である。
【０２５１】
入力量子ビットの状態が｜０>であることを想定すると、説明のために、２つの可能な状態遷移はボックス｜０>に由来する２つの矢印で表される。一つは｜０>への水平方向で、ｑｕｂｉｔの状態を維持する可能性を意味し、もう一つは｜１>への対角方向で、ｑｕｂｉｔの状態変化の可能性を意味する。
【０２５２】
これらの例示的な規則は、使用されるシミュレーション方法をグラフ形式で示すことを可能にする。次に、この方法について、図４に示す例を参照して詳細に説明する。
【０２５３】
シミュレーションを開始する前に、半導体集積回路メモリに記憶された予め定義された量子ゲートモデルのライブラリがあり、各量子ゲートモデルは行および列に順序付けられた演算子を含み、このゲートを通過する量子ビットの可能な状態遷移のセットを定義する伝達行列Ｕｋに関連付けられていると仮定する。
【０２５４】
シミュレーションは構成の第１のフェーズを含み、これは、以下の操作を含む。
【０２５５】
・量子回路モデルへの入力信号として処理されるべき量子ビットの数ｎ（例えば、ｎ＝３）を定義する。
【０２５６】
・ｄ個の量子ゲートモデル、例えば３つのアダマールゲート、２つのゲートＲπ／２及び１つのゲートＲπ／４を選択する。
【０２５７】
このようにして選択されたｄ個の量子ゲートモデルを、例えば図４に示すように、量子高速フーリエ変換（ＱＦＦＴ：Ｑｕａｎｔｕｍ  Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）をモデル化した回路として構成する。
【０２５８】
シミュレートされるべき量子回路がこのように構成されると、シミュレーションはこのように構成された量子回路モデルを分析する第２の段階を含み、これは、以下の操作を含む：
量子回路を、ｎ量子ビットが連続的に一緒に横断されるように意図されたｄ個の隣接する層Ｌｋに分割し、各層は単一の基本量子ゲートを含み、したがって、図４の例では、以下のようになる。ここで、ｄ＝６である。
【０２５９】
【数８４】
2020515999.tif 000087
【０２６０】
３つの予め定義されたタイプの量子ゲートの中から、回路の各量子ゲートにタイプを割り当てる。
【０２６１】
・マトリックスが対角である対角型ゲートであり、図４の例では、Ｇ２、Ｇ４およびＧ５が当てはまる。
【０２６２】
・マトリックスが非対角であり、０または１の値を有する演算子を含み、行ごとおよび列ごとに１つの演算子しかない（図４の例ではゲートのいずれもない）従来型ゲートである。
【０２６３】
・対角型でも従来型でもない高密度型ゲートは、図４の例では、Ｇ１、Ｇ３およびＧ６が当てはまる。
【０２６４】
この解析が完了すると、シミュレーションは、以下の演算のｊ＝２からｊ＝２ｎ（ｊは整数；図４の例では、ｎ＝４であり、ｊは１から２３＝８まで変化する）に対する繰り返しを含む第３の操作フェーズを含む。
【０２６５】
量子回路に入るｎ量子ビットの状態ベクトル
【０２６６】
【数８５】
2020515999.tif 000088
【０２６７】
を定義する。図４の例では、ベクトル
【０２６８】
【数８６】
2020515999.tif 000089
【０２６９】
が以下の８つの状態のそれぞれを仮定することができる。
【０２７０】
【数８７】
2020515999.tif 000090
【０２７１】
これは、（図４で使用される）ｂｒａ-ｋｅｔ表記法ではそれぞれ以下のように表すことができる。
【０２７２】
【数８８】
2020515999.tif 000091
【０２７３】
（図４の重ねられたボックスに積み重ねられる）
ｋ＝１からｋ＝ｄまで（ここでは、ｋ＝１からｋ＝６まで）以下のシーケンス（ｂ１〜ｂ６）を繰り返す。
【０２７４】
ｂ１）ｎ量子ビット入力層Ｌｋの可能な状態ベクトル
【０２７５】
【数８９】
2020515999.tif 000092
【０２７６】
を考慮し、このベクトル
【０２７７】
【数９０】
2020515999.tif 000093
【０２７８】
は一連の２ｎの振幅係数
【０２７９】
【数９１】
2020515999.tif 000094
【０２８０】
を含み、したがって、図４の場合、ｊ＝１およびｋ＝１では、ｎ個の量子ビット入力層Ｌ１の状態は｜０００>であり、他の状態がグレーアウトされて、これらがこのｋに関する反復において考慮されないことを示す。
【０２８１】
ｂ２）図４の例では、層Ｌｋに含まれるゲートＧｋを識別する。
【０２８２】
Ｇ１＝Ｈ、Ｇ２＝Ｒπ／２、Ｇ３＝Ｈ、Ｇ４＝Ｒπ／４、Ｇ５＝Ｒπ／２、Ｇ６＝Ｈ
ｂ３）ゲートＧｋのタイプを考慮に入れる。（図４の例では、ｋ＝１の高密度ゲート、ｋ＝２の対角ゲート、ｋ＝３の高密度ゲート、ｋ＝４の対角ゲート、ｋ＝５の対角ゲート、ｋ＝６の高密度ゲート）
ｂ４）ゲートＧｋが対角型（図４の例では、Ｇ２、Ｇ４、Ｇ５）である場合、層Ｌｋを出るｎ量子ビットの状態ベクトル
【０２８３】
【数９２】
2020515999.tif 000095
【０２８４】
に、それに入るｎ量子ビットの状態ベクトル
【０２８５】
【数９３】
2020515999.tif 000096
【０２８６】
の値を割り当てる。
【０２８７】
【数９４】
2020515999.tif 000097
【０２８８】
図４の例では、ゲートＧ２、Ｇ４およびＧ５の両側の斜線の付いていないボックスを結ぶ水平方向の矢印が入力状態と出力状態の同一性を示している。
【０２８９】
ｂ５）ゲートＧｋが従来型である場合。
【０２９０】
・各演算子はその伝達行列において、１の値を有し、その行番号ｌおよび列番号ｃを決定する（ｌおよびｃは、０≦ｌ≦２ｎ、０≦ｃ≦２ｎ、ｌ≠ｃを満たす整数である）。
【０２９１】
・層Ｌｋを出るｎ量子ビットの状態ベクトル
【０２９２】
【数９５】
2020515999.tif 000098
【０２９３】
の振幅係数
【０２９４】
【数９６】
2020515999.tif 000099
【０２９５】
に、以下の値を割り当てる。
【０２９６】
【数９７】
2020515999.tif 000100
【０２９７】
ベクトル
【０２９８】
【数９８】
2020515999.tif 000101
【０２９９】
を半導体集積回路メモリの専用レジスタに記憶するため、各計算ステップを並列に実行することが可能になる。
【０３００】
ｂ６）ゲートＧｋが密型である場合。
【０３０１】
次のように、層Ｌｋを出るｎ量子ビットの状態ベクトル
【０３０２】
【数９９】
2020515999.tif 000102
【０３０３】
の可能な値のセットを決定する。
【０３０４】
【数１００】
2020515999.tif 000103
【０３０５】
したがって、図４の例ではゲートＧ１、Ｇ３およびＧ６、およびアダマールゲートに入る量子ビットは任意の出力値をとることができるが、他の２つのビットは不変であることが分かる。これはゲートの伝達関数によって影響される量子ビットの値に従って、２つの矢印がゲートに入る量子ビットの可能な状態を含むボックスから始まり、２つの可能なゲート出力状態のみで終わる理由を説明する。例えば、第２の量子ビットのみに影響し、入力状態｜０００>から始まるゲートＧ３の場合、２つの可能な出力状態｜０００>および｜０１０>のみがあり、他の状態はあり得ないものであり、シミュレーションの後続のステップで無視される。
【０３０６】
・ベクトル
【０３０７】
【数１０１】
2020515999.tif 000104
【０３０８】
の各可能な値を半導体集積回路メモリの専用レジスタに記憶し、このレジスタは、この段階で、以前の計算から得られた部分計算を並列に継続することを可能にする。
【０３０９】
ｃ）以前の反復が完了すると、半導体集積回路メモリの単一のレジスタに、ベクトル
【０３１０】
【数１０２】
2020515999.tif 000105
【０３１１】
の可能な状態のセット（これまで見てきたように、別々のレジスタに記憶されている）を集約する。
【０３１２】
各ゲート通路における量子ビットのありそうもない状態を無視することは、必要とされるメモリ空間（従来型）と同様に、反復の数（従って、計算時間及び電力）をかなり減少させる。
【０３１３】
これらの利点を説明するために、今説明したシミュレーションは、例えば、図４のタイプの回路（量子高速フーリエ変換）で、ｎ＝１８からｎ＝２４まで行うことができた。
【０３１４】
既知のアルゴリズムと比較して、シミュレーションは、２０〜４０の間に含まれる因子によって加速することができた。
【０３１５】
より具体的にはシミュレーションが実行されるコンピュータの利用可能なメモリ容量をＮとして表すことによって、本方法は、以下の値よりも大きい最大数ｎｍの量子ビットを処理することを可能にする。
【０３１６】
【数１０３】
2020515999.tif 000106
【０３１７】
この数は、公知の数よりも２倍大きく、等価メモリ容量を有する。
【図１】
2020515999.tif 000124
【図２】
2020515999.tif 000125
【図３】
2020515999.tif 000126
【図４】
2020515999.tif 000127
【国際調査報告】
2020515999.tif 000128
2020515999.tif 000129