
量子コンピューティング、特に量子回路モデルにおける計算において、量子論理ゲート(または単に量子ゲート)は、少数の量子ビット上で動作する基本的な量子回路である。量子論理ゲートは、従来のデジタル回路における古典論理ゲートと同様に、量子回路の構成要素となる。
量子力学によれば、量子システムはシュレーディンガー方程式に従ってユニタリに進化するか、測定される(「観測される」とも呼ばれる)かのどちらかしかあり得ません。量子ゲートは、システムが測定されていないときに発生するこれらのユニタリ変換を表します。「量子ゲート」という表現は量子プロセッサに関連して現れ、この文脈では、アセンブリ言語レベルの抽象化(例:OpenQASM)で量子コンピュータが処理する量子データ(量子ビットまたは量子状態)に対して実行できる論理演算を指しますが、量子ゲートはアルゴリズム全体(例:量子フーリエ変換)である場合もあります。ただし、これはそのようなアルゴリズムに測定操作が含まれていない場合に限ります。量子データが測定されると、通常はバイナリビットに変換され、通常の(「古典的」)コンピュータに送信されます。量子プロセッサは、このような古典的なバイナリプロセッサに対してコプロセッサのように動作します。
多くの古典論理ゲートとは異なり、量子論理ゲートは可逆です。可逆ゲートのみを使用して古典計算を実行することが可能です。例えば、可逆トフォリゲートは、補助ビットを使用する必要がある場合が多いものの、すべてのブール関数を実装できます。トフォリゲートには直接的な量子版が存在し、量子回路が古典回路で実行されるすべての演算を実行できることを示しています。
量子ゲートはユニタリ演算子であり、ある正規直交基底に関するユニタリ行列として記述されます。通常、計算基底が使用されますが、これは何かと比較しない限り、dレベルの量子システム (キュービット、量子レジスタ、キュートリット、キューディットなど) [ 1 ] : 22–23に対して、正規直交基底ベクトルがラベル付けされていることを意味します。または、バイナリ表記を使用します。
量子ゲートの現在の表記法は、アドリアーノ・バレンコ、チャールズ・ベネット、リチャード・クリーブ、デイビッド・P・ディヴィンチェンツォ、ノーマン・マーゴラス、ピーター・ショア、タイコ・スレーター、ジョン・A・スモーリン、ハラルド・ワインフルター[ 2 ]を含む量子情報科学の創始者の多くによって開発され、 1986年にリチャード・ファインマンによって導入された表記法に基づいています[ 3 ]。

量子論理ゲートはユニタリ行列で表されます。量子ビット(レジスタ)は、ユニタリ行列であり、行列乗算の群演算を持つそのようなゲートの集合は、ユニタリ群U(2 n )である。[ 2 ]ゲートが作用する量子状態は、単位ベクトルである。複素次元、複素ユークリッドノルム(2ノルム)を持つ。[ 4 ]: 66 [ 5 ]: 56、65基底ベクトル(固有状態と呼ばれることもある)は、量子ビットの状態を測定した場合の可能な結果であり、量子状態はこれらの結果の線形結合である。最も一般的な量子ゲートは、一般的な古典論理ゲートが1ビットまたは2ビットで動作するのと同様に、1つまたは2つの量子ビットのベクトル空間で動作する。
量子論理ゲートは連続対称群に属しますが、実際のハードウェアは不正確であるため、精度が制限されます。ゲートの適用によって通常はエラーが発生し、量子状態の忠実度は時間とともに低下します。エラー訂正を使用する場合、使用可能なゲートはさらに有限セットに制限されます。[ 4 ]:第10章[ 1 ]:第14章この記事の後半では、理想的な量子ゲートの特性に焦点を当てているため、この点は無視されます。
量子状態は通常、ブラケット記法として知られる表記法から「ケット」で表されます。
単一量子ビットのベクトル表現は
ここ、そしてこれらは量子ビットの複素確率振幅です。これらの値は、量子ビットの状態を測定する際に、0または1が測定される確率を決定します。詳細は下記の測定の項を参照してください。
ゼロの値はケットで表されます、値1はケットによって表されます。
テンソル積(またはクロネッカー積)は、量子状態を組み合わせるために使用されます。量子ビットレジスタの結合状態は、構成量子ビットのテンソル積です。テンソル積は記号で表されます。。
2つの量子ビットのベクトル表現は次のとおりです。[ 6 ]
ゲートが特定の量子状態に及ぼす作用は、ベクトルを乗算することによって求められる。これは、行列によって状態を表します。ゲートを表す。結果として新しい量子状態が生まれる。:
シュレーディンガー方程式は、観測されない量子システムが時間とともにどのように進化するかを記述し、システムが安定した環境にある場合、つまりハミルトニアンが一定である場合、この方程式の解は次のようになります。[ 1 ] : 24–25もし時間がは常に同じであり、簡略化のために省略されることもあり、量子状態がどのように進化するかは次のように記述できます。上記のセクションと同様です。
つまり、量子ゲートとは、観測されない量子システムが特定の時間内にどのように進化するかを示すものであり、言い換えれば、ゲートとはユニタリ時間発展演算子である。特定の時間、量子状態に作用する。
ゲートは数えきれないほど無限に存在する。それらのいくつかは様々な著者によって命名されており、 [ 1 ] [ 2 ] [ 4 ] [ 5 ] [ 7 ] [ 8 ] [ 9 ]以下に文献で最もよく使用されるもののいくつかを示す。
アイデンティティゲートは、通常Iと表記される単位行列であり、単一量子ビットに対して次のように定義されます。
ここで、Iは基底に依存せず、量子状態を変化させません。恒等ゲートは、様々なゲート操作の結果を数学的に記述する場合や、多量子ビット回路について議論する場合に最も有用です。
パウリ門3つのパウリ行列はそして単一の量子ビットに作用する。パウリのX、Y、Zはそれぞれ、ブロッホ球のx、y、z軸周りの回転に相当する。ラジアン。[ b ]
パウリXゲートは、標準基底に関して古典コンピュータのNOTゲートに相当する量子力学的なゲートである。、これは、ブロッホ球上のz軸を区別するものです。これは、マッピングを行うため、ビット反転と呼ばれることもあります。にそしてに同様に、パウリYマップにそしてにパウリZは基底状態を離れる変更なし、地図にこのような性質から、パウリZは位相反転と呼ばれることもある。
これらの行列は通常次のように表されます。
パウリ行列は対合的である。つまり、パウリ行列の二乗は単位行列になる。
パウリ行列も反交換関係にある。例えば
パウリ行列の行列指数関数は回転演算子であり、しばしば次のように表記される。

制御ゲートは2つ以上の量子ビットに作用し、1つ以上の量子ビットが何らかの操作の制御として機能します。[ 2 ]例えば、制御NOTゲート(またはCNOTまたはCX)は2つの量子ビットに作用し、最初の量子ビットが特定の条件を満たしている場合にのみ、2番目の量子ビットに対してNOT演算を実行します。それ以外の場合は変更しません。基礎に関して、、、これは、エルミートユニタリ行列で表されます。
CNOTゲート(または制御パウリXゲート)は、基底状態をマッピングするゲートとして説明できます。、 どこXORです。
CNOTはパウリ基底で次のように表現できます。
エルミートユニタリ演算子であるCNOTは、そして、そしてそれは退化的である。
より一般的には、U が行列表現を持つ単一の量子ビットに作用するゲートである場合
すると、制御Uゲートは、最初の量子ビットが制御として機能するように2つの量子ビットに作用するゲートです。それは基底状態を次のようにマッピングします。
制御されたUを表す行列は
Uがパウリ演算子X、Y、Zのいずれかである場合、それぞれ「制御X」、「制御Y」、または「制御Z」という用語が使用されることがあります。[ 4 ] : 177–185時には、これを単に C X、C Y、C Zと略すこともあります。
一般に、任意の単一量子ビットユニタリゲートは次のように表現できます。ここで、Hはエルミート行列であり、制御されたUは
制御は任意の数の量子ビットを持つゲート[ 2 ]やプログラミング言語の関数に拡張できます。 [ 10 ]関数は重ね合わせ状態に基づいて条件付けできます。[ 11 ] [ 12 ]

ゲートは古典論理によっても制御できます。量子コンピュータは古典コンピュータによって制御され、どの量子ビットに対してどのゲートを実行するかについて古典コンピュータから指示を受け取るコプロセッサのように動作します。 [ 13 ] : 42–43 [ 14 ]古典制御は、量子コンピュータの命令シーケンスにゲートを含めるか省略するかのことです。[ 4 ] : 26–28 [ 1 ] : 87–88量子回路の終端ではなく中間で測定を実行することは、タイミングの問題とデコヒーレンスのため、困難で技術的に難しいです。このため、すべての量子コンピュータが、量子データがビットに変換され、プログラムの流れを制御するこれらの古典的なif文をサポートしているわけではありません。[ 15 ] [ 16 ]
位相シフトは、基底状態をマッピングする単一量子ビットゲートのファミリーである。そして測定する確率またはこのゲートを適用した後も変化はありませんが、量子状態の位相は変化します。これは、水平円(一定の緯度の線)を描くこと、またはブロッホ球上でz軸を中心に回転することに相当します。ラジアン。位相シフトゲートは次の行列で表されます。
どこは周期2πの位相シフトです。一般的な例としては、Tゲートがあり、(歴史的にはゲート)、位相ゲート(Sゲートとも呼ばれ、Sと表記されるが、SはSWAPゲートに使用されることもある)そしてパウリZゲートでは
位相シフトゲートは、以下のように相互に関連しています。
位相ゲートに注意してくださいはエルミートではない(ただし、すべてを除く)これらのゲートは、エルミート共役ゲートとは異なります。2 つの随伴(または共役転置)ゲートそして命令セットに含まれる場合もある。[ 17 ] [ 18 ]
ジャック・アダマール(フランス語: [ adamaʁ ])とジョセフ・L・ウォルシュにちなんで名付けられたアダマールゲートまたはウォルシュ・アダマールゲートは、単一の量子ビットに作用します。基底状態をマッピングします。そして(計算基底状態が与えられた場合、等しい重ね合わせ状態を生成します。)2つの状態そして時々書かれるそしてそれぞれ。アダマールゲートは回転を実行します。軸についてブロッホ球面上にあり、したがって対合的である。これはアダマール行列で表される。


スワップゲートは2つの量子ビットを交換する。基底に関して、、、行列で表される
スワップゲートは、総和形式に分解できます。

トッフォリ門は、トマソ・トッフォリにちなんで名付けられ、CCNOT門またはドイチュ門とも呼ばれる。は、古典計算には普遍的な3ビットゲートですが、量子計算には普遍的ではありません。量子トフォリゲートは、3量子ビット用に定義された同じゲートです。入力量子ビットを のみ受け入れるように制限すると、そして、最初の 2 ビットが次の状態にある場合これは、3 ビット目にパウリX (または NOT) を適用し、そうでない場合は何も行いません。これは CC-U (制御制御ユニタリ) ゲートの一例です。これは古典ゲートの量子版であるため、真理値表によって完全に規定されます。トフォリゲートは、単一量子ビットのアダマールゲートと組み合わせるとユニバーサルになります。[ 19 ]
トフォリゲートは古典的なANDゲートに関連しています() およびXOR (マッピングを実行する際の操作計算基底における状態について。
トフォリゲートはパウリ行列を用いて次のように表現できる。

普遍量子ゲートのセットとは、量子コンピュータで可能なあらゆる操作を還元できるゲートのセット、つまり、他のあらゆるユニタリ操作をそのセットからの有限個のゲートのシーケンスとして表現できるゲートのセットのことです。技術的には、可能な量子ゲートの数は非可算であるのに対し、有限セットからの有限シーケンスの数は可算であるため、非可算ゲートのセットより少ないものではこれは不可能です。この問題を解決するために、任意の量子操作がこの有限セットからのゲートのシーケンスで近似できることだけを要求します。さらに、定数個の量子ビット上のユニタリについては、ソロベイ・キタエフの定理により、これが効率的に実行できることが保証されます。量子ゲートのセットが普遍的であるかどうかのチェックは、群論の方法[ 20 ]および/または(近似)ユニタリt-デザインとの関係[ 21 ]を使用して行うことができます。スペクトルギャップ予想が真であれば、一般的に選択された量子ゲートのセットは効率的に普遍的であることになります。
汎用量子ゲートセットには以下のようなものがあります。
パラメータ化された3量子ビットのドイチュゲートを使用して、単一ゲートのユニバーサル量子ゲートセットを定式化することもできます。[ 23 ]物理学者デイヴィッド・ドイッチュにちなんで名付けられました。これはCC-U、つまり制御制御ユニタリゲートの一般ケースであり、次のように定義されます。
残念ながら、プロトコルがないため、動作するドイッチュゲートは実現できていません。中性原子の双極子-双極子相互作用でドイッチュゲートを実現するための提案がいくつかあります。[ 24 ]
可逆的な古典計算のための普遍的な論理ゲートであるトフォリゲートは、ドイチュゲートに還元できる。これにより、すべての可逆的な古典論理演算が汎用量子コンピュータ上で実行可能であることが示された。
普遍性を満たすのに十分な単一の2量子ビットゲートも存在する。1996年、アドリアーノ・バレンコは、ドイッチュゲートは単一の2量子ビットゲート(バレンコゲート)のみを使用して分解できることを示したが、実験的に実現するのは困難である。[ 1 ] : 93この特徴は量子回路に特有のものであり、可逆性と普遍性の両方を満たす古典的な2ビットゲートは存在しない。[ 1 ] : 93普遍的な2量子ビットゲートは、高速低消費電力マイクロプロセッサにおける古典的な可逆回路を改善するために実装できる可能性がある。[ 1 ] : 93

2 つのゲートAとBがあり、どちらも量子ビット。直列回路でBがAの後に置かれると、2つのゲートの効果は単一のゲートCとして記述できます。
どこ行列乗算です。結果として得られるゲートCは、 AおよびBと同じ次元を持ちます。ゲートを乗算すると、回路図に現れるゲートの順序が逆になります。[ 4 ]: 17–18、22–23、62–64 [ 5 ]: 147–169
例えば、単一の量子ビットに作用するパウリYゲートの後にパウリXゲートを配置すると、単一の結合ゲートCとして記述できます。
製品シンボル()はしばしば省略される。
ユニタリ行列の実数指数はすべてユニタリ行列であり、すべての量子ゲートはユニタリ行列である。
正の整数指数は、直列接続されたゲートのシーケンスに相当します(例:)、そして実数指数は直列回路の一般化です。例えば、そしてこれらはどちらも有効な量子ゲートです。
任意のユニタリ行列に対して単位行列() はNOP [ 25 ] [ 26 ]のように動作し、量子回路では裸線として表現することも、まったく表示しないこともできます。
すべてのゲートはユニタリ行列なので、そして、どこは共役転置です。これは、ゲートの負の指数が、正の指数を持つ対応するゲートのユニタリ逆数であることを意味します。例えば、位相シフトゲートの負の指数には次のようなものがあります。そして。
エルミート行列の場合、そして、統一性のため、それですべてのエルミートゲートについて。それらは対合的です。エルミートゲートの例としては、パウリゲート、アダマールゲート、CNOTゲート、SWAPゲート、トフォリゲートなどがあります。各エルミートユニタリ行列特性を持つどこ
ゲートの指数は、時間発展演算子が量子状態に適用される時間の倍数です。たとえば、スピン量子ビット量子コンピュータでは、ゲートは、完全な交換相互作用の半分の時間で、 2つの電子のスピンに対する交換相互作用によって実現できる。 [ 27 ]

2つの量子ゲートのテンソル積(またはクロネッカー積)は、2つのゲートを並列に接続したゲートに等しい。[ 4 ]: 71-75 [ 5 ]: 148
図のようにパウリYゲートとパウリXゲートを並列に接続すると、次のように記述できます。
パウリXゲートとパウリYゲートはどちらも単一の量子ビットに作用する。結果として得られるゲート2つの量子ビットに作用する。
テンソル積の記号が省略され、代わりに演算子に添え字が使用される場合がある。[ 27 ]
門アダマールゲート()を2つの量子ビットに並列に適用します。これは次のように記述できます。
この「2量子ビット並列アダマールゲート」は、例えば2量子ビットゼロベクトル() 4つの可能な結果のいずれにおいても等しい確率で観測される量子状態を作り出す。、、、そしてこの操作は次のように記述できます。

ここでは、各測定可能な状態の振幅は 1/2 です。いずれかの状態を観測する確率は、測定可能な状態の振幅の絶対値の二乗であり、上記の例では、4 つの個々のケースのいずれかを観測する確率は 4 分の 1 であることを意味します。詳細は測定の項を参照してください。
2つの量子ビットに対してアダマール変換を実行する。同様にゲートレジスタに対してアダマール変換を実行する量子ビット。
レジスターに適用する場合量子ビットはすべて初期化され、アダマール変換は量子レジスタを重ね合わせ状態にし、そのどの状態でも測定される確率が等しくなる。可能な状態:
この状態は均一な重ね合わせであり、振幅増幅や位相推定などの一部の探索アルゴリズムの最初のステップとして生成されます。
この状態を測定すると、次の乱数が得られます。そして[ e ]数値のランダム性は、論理ゲートの忠実度に依存します。測定しない場合、それは等しい確率振幅を持つ量子状態です。そのそれぞれの可能な状態について。
アダマール変換はレジスタに作用すると次のような量子ビット次のように:
2つ以上の量子ビットを単一の量子状態とみなす場合、この結合状態は構成量子ビットのテンソル積に等しくなります。構成サブシステムからのテンソル積として表せる状態は、分離可能状態と呼ばれます。一方、エンタングル状態とは、テンソル分解できない状態、言い換えれば、構成量子ビットの状態のテンソル積として表せない状態のことです。エンタングル状態を構成する構成量子ビットにゲートを適用する際には、特別な注意が必要です。
エンタングル状態にあるN個の量子ビットのセットがあり、そのセット内のM < N個の量子ビットに量子ゲートを適用したい場合、ゲートをN個の量子ビットに作用するように拡張する必要があります。この適用は、ゲートを単位行列と組み合わせることで実現できます。単位行列()は、すべての状態をそれ自身にマッピングするゲート(つまり、何も行わないゲート)を表します。回路図では、恒等ゲートまたは恒等行列は、多くの場合、むき出しのワイヤとして表示されます。

例えば、アダマールゲート(は単一の量子ビットに作用しますが、もつれたベル状態を構成する2つの量子ビットのうち最初の量子ビットを入力すると、そのため、その操作を簡単に記述することはできません。アダマールゲートを拡張する必要があります。アイデンティティゲート付きこれにより、 2つの量子ビットにまたがる量子状態に対して操作を行うことができるようになります。
門このゲートは、もつれ状態であろうとなかろうと、あらゆる2量子ビット状態に適用できるようになった。2番目の量子ビットはそのままにして、1番目の量子ビットにアダマール変換を適用します。この例のベル状態に適用すると、次のように記述できます。
2つの数を掛け合わせる時間計算量-行列は少なくとも[ 28 ]古典的なマシンを使用する場合。ゲートのサイズは、キュービットとはこれは、一般的なエンタングル状態に作用する量子回路のステップをシミュレートする時間(ゲートを乗算することによって)がこのため、古典コンピュータを用いて大規模な量子もつれシステムをシミュレートすることは困難であると考えられている。しかし、クリフォードゲートなどのゲートのサブセットや、古典的なブール関数のみを実装する回路(例えば、 X、CNOT、トフォリの組み合わせ)といった自明なケースは、古典コンピュータ上で効率的にシミュレートすることができる。
量子レジスタの状態ベクトルキュービットとは複雑なエントリ。確率振幅を浮動小数点値のリストとして保存することは、大規模な場合には扱いにくい。。

量子論理ゲートはすべて可逆であるため、複数のゲートを組み合わせたものもすべて可逆です。ユニタリ行列のすべての積とテンソル積(すなわち、直列および並列の組み合わせ)もユニタリ行列です。これは、ゲートのみを含むアルゴリズムと関数であれば、すべて逆関数を構築できることを意味します。
初期化、測定、入出力、および自発的デコヒーレンスは、量子コンピュータにおける副作用である。しかし、ゲートは純粋に機能的であり、全単射である。
もしはユニタリ行列である。そして短剣() は共役転置を表します。これはエルミート随伴とも呼ばれます。
関数がは門、、関数のユニタリ逆関数構築可能:
なぜなら繰り返し適用した後、
同様に関数が2つのゲートで構成されていますそして並行して、そして。
自身のユニタリ逆元であるゲートは、エルミート演算子または自己共役演算子と呼ばれます。アダマールゲート(H)やパウリゲート(I、X、Y、Z )などの基本的なゲートはエルミート演算子ですが、位相シフトゲート(S、T、P、CPhase )などは一般的にエルミート演算子ではありません。
例えば、加算アルゴリズムは、そのユニタリ逆関数として「逆方向に実行」すれば減算に使用できます。逆量子フーリエ変換はユニタリ逆関数です。ユニタリ逆関数は、逆演算にも使用できます。MicrosoftのQ# [ 10 ]、Bernhard Ömer のQCL [ 13 ] : 61、 IBMのQiskit [ 29 ]などの量子コンピュータ用プログラミング言語には、プログラミング概念として関数反転が含まれています。

測定(観測とも呼ばれる)は不可逆であり、観測された量子状態を単一の値に割り当てるため、量子ゲートではありません。測定は量子状態を、その基底ベクトルに沿ったベクトルの長さの二乗に等しい尤度で、基底ベクトルの1つに射影します( 2ノルム[ 4 ] : 66 [ 5 ] : 56、65)。[ 1 ]: 15-17 [ 30 ] [ 31 ] [ 32 ]これはボルン規則として知られており、測定された状態を表す基底ベクトルに量子状態を確率的に設定するため、確率的不可逆操作として現れます。測定の瞬間に、状態は測定された確定した単一の値に「収縮」すると言われます。測定時に量子状態が収縮する理由と方法、あるいはそもそも収縮するかどうか[ 33 ] [ 34 ]は、測定問題と呼ばれます。
量子状態がベクトルで表される単一の量子ビットを測定する結果として確率で、そして確率で。
例えば、量子状態を持つ量子ビットを測定する等しい確率で以下のいずれかが得られるまたは。

量子状態n量子ビットにわたるものは、ベクトルとして次のように書くことができる。複雑な次元:これは、 n個の量子ビットのテンソル積がベクトルであるためです。次元。このようにして、n個の量子ビットのレジスタを測定できます。nビットのレジスターが保持できる状態と似た、異なる状態。異なる状態。古典コンピュータのビットとは異なり、量子状態は複数の測定可能な値において、同時にゼロでない確率振幅を持つことができます。これは重ね合わせと呼ばれます。
すべての結果に対するすべての確率の合計は常に等しくなければならない1. [ f ]これを別の言い方で表現すると、ピタゴラスの定理を一般化したものすべての量子状態がn個の量子ビットを持つ場合、以下の条件を満たす必要があります。[ g ]ここでは測定可能な状態の確率振幅ですこれを幾何学的に解釈すると、量子状態の可能な値空間はn個の量子ビットを持つ単位球の表面はそして、それに適用されるユニタリ変換(すなわち量子論理ゲート)は球面上での回転である。ゲートが行う回転は対称群U(2 n )を形成する。測定とは、この複素球面上の点を空間を張る基底ベクトルに確率的に投影し、(結果にラベルを付ける)ことである。
多くの場合、空間はヒルベルト空間として表現される。特定のものよりも次元複素空間。次元数(基底ベクトルによって定義され、したがって測定から得られる可能性のある結果も含む)は、多くの場合、オペランドによって暗示される。たとえば、問題を解決するために必要な状態空間などである。グローバーのアルゴリズムでは、グローバーはこの一般的な基底ベクトルセットを「データベース」と名付けた。
量子状態を測定するための基底ベクトルの選択は、測定結果に影響を与える。[ 1 ]: 30–35 [ 4 ]: 22、84–85、185–188 [ 35 ]詳細は基底変換とフォン・ノイマンエントロピーを参照。この記事では、常に計算基底を使用する。つまり、n量子ビットレジスタの基底ベクトルまたはバイナリ表現を使用する。
代替測定基準の使用例としては、BB84暗号が挙げられる。

2つの量子状態(すなわち、量子ビットまたはレジスタ)が量子もつれ状態にある場合(つまり、それらの結合状態をテンソル積で表現できない場合)、一方のレジスタを測定すると、もう一方のレジスタの状態も部分的または完全に崩壊させることで、その状態に影響を与えたり、明らかにしたりします。この効果は計算に利用でき、多くのアルゴリズムで使用されています。
アダマール-CNOTの組み合わせは、ゼロ状態に対して次のように作用します。

この結果として生じる状態はベル状態である。2つの量子ビットのテンソル積として記述することはできません。解はありません。
例えば、xwとywの場合、wはゼロ以外かつゼロである必要があります。
量子状態は2つの量子ビットにまたがっています。これはエンタングルメントと呼ばれます。このベル状態を構成する2つの量子ビットのうち1つを測定すると、論理的にもう1つの量子ビットも同じ値を持つことになります。つまり、両方とも同じ値でなければなりません。または州内で例えば、量子ビットの1つを測定した結果がすると、もう一方の量子ビットもなぜなら、それらの結合状態は一方の量子ビットを測定すると、2つの量子ビットにまたがる量子状態全体が崩壊する。
GHZ状態は、3つ以上の量子ビットにまたがる、同様の量子もつれ状態である。
この種の値割り当ては、どんな距離でも瞬時に発生し、2018 年現在、QUESSにより最大 1200 キロメートルの距離で実験的に検証されています。[ 36 ] [ 37 ] [ 38 ]量子ビット間の距離を光速で移動するのにかかる時間とは対照的に、この現象が瞬時に発生するように見えることはEPR パラドックスと呼ばれ、これをどのように解決するかは物理学における未解決問題です。当初は局所実在論の仮定を放棄することで解決されましたが、他の解釈も現れています。詳細については、ベルのテスト実験を参照してください。通信なし定理は、この現象が古典情報の超光速通信には使用できないことを証明しています。

n個の量子ビットを持つレジスタAを考えます。すべては次のように初期化されています。そしてそれを並列アダマールゲートに通す。レジスタAはその後、状態に入ります測定時にそのいずれにも等しい確率で存在する可能な状態。に2番目のレジスタBもn個の量子ビットで初期化され、そして、その量子ビットとレジスタ A の量子ビットとの間でペアワイズCNOT であり、各pに対して量子ビットがそして州を形成する。
ここでレジスタAの量子ビットを測定すると、レジスタBにはAと同じ値が含まれていることがわかります。しかし、代わりに量子論理ゲートFをAに適用してから測定すると、、どこはFのユニタリ逆関数です。
ゲートのユニタリ逆ゲートの動作原理により、例えば、、 それから。
Fの実行が完了していれば、測定の順序(レジスタAまたはB)に関わらず、等式は成り立ちます。1つの量子ビットの測定割り当てによって、他の量子ビットの可能な値空間が制限されるため、測定は量子ビットごとにランダムかつ同時にインターリーブすることも可能です。
等式は成り立つものの、量子探索アルゴリズムの意図するところであるように、Fを適用した結果、起こりうる結果を測定する確率が変化する可能性がある。
エンタングルメントによる価値共有のこの効果は、ショアのアルゴリズム、位相推定、量子計数で使用されています。フーリエ変換を使用して、ある問題の解状態の確率振幅を増幅することは、 「フーリエフィッシング」として知られる一般的な方法です。[ 39 ]

ゲートのみを使用する関数やルーチンは、より小さなゲートと同様に、それ自体を行列として記述できます。量子関数が作用する行列は、量子ビットのサイズは例えば、「キューバイト」( 8キュービットのレジスタ)に作用する関数は、次のような行列で表されます。要素。
量子コンピュータに本来備わっているゲートセット(プリミティブゲート)に含まれていないユニタリ変換は、利用可能なプリミティブゲートを回路に組み合わせることで合成または近似することができます。これを行う1つの方法は、ユニタリ変換を符号化する行列を、利用可能なプリミティブゲートのテンソル積(つまり直列回路と並列回路)の積に因数分解することです。群U(2 q )は、に作用するゲートの対称群です。量子ビット。[ 2 ]因数分解は、プリミティブゲートの生成セットから U( 2q )内のパスを見つける問題です。Solovay –Kitaev の定理は、十分なプリミティブゲートのセットが与えられた場合、任意のゲートに対して効率的な近似が存在することを示しています。多数の量子ビットを持つ一般的なケースでは、この直接的な回路合成アプローチは扱いが困難です。[ 40 ] [ 41 ]これにより、大きな関数をプリミティブ量子ゲートに総当たりで因数分解できる範囲に制限が生じます。通常、量子プログラムは、通常の古典プログラミングと同様に、比較的小さく単純な量子関数を使用して構築されます。
ゲートのユニタリ性のため、すべての関数は可逆でなければならず、入力から出力への全単射写像でなければなりません。常に関数が存在しなければなりません。そのため逆関数でない関数は、入力または出力、あるいはその両方に補助量子ビットを追加することで逆関数にすることができます。関数の実行が完了した後、補助量子ビットは計算されないか、そのままにしておくことができます。計算されていない補助量子ビットの量子状態を測定したり、その他の方法で崩壊させたり(例えば、その値を再初期化したり、自発的デコヒーレンスを起こしたり)すると、その状態がまだ計算に使用されている量子ビットとエンタングルしている可能性があるため、エラーが発生する可能性があります[ 42 ] [ 43 ] 。
論理的に不可逆な演算、例えば加算モジュロ演算2つのうち-キュービットレジスタaとb、[ h ]は出力に情報を追加することで論理的に可逆になり、入力を出力から計算できるようになります(つまり、関数が存在します)。この例では、入力レジスタの1つを出力に渡すことでこれを実現できます。出力は入力の計算に使用できます(つまり、出力が与えられた場合)。そして入力値を簡単に見つけることができます。が与えられ、)そして、その関数は全単射となる。
すべてのブール代数式は、例えばパウリXゲート、CNOTゲート、トフォリゲートの組み合わせを用いることで、ユニタリ変換(量子論理ゲート)として符号化することができる。これらのゲートは、ブール論理領域において機能的に完全である。
Q#、QCL、Qiskit、その他の量子プログラミング言語のライブラリには、多くのユニタリ変換が用意されています。文献にも記載されています。[ 44 ] [ 45 ]
例えば、、 どこはレジスタを構成する量子ビットの数です。は、 QCL では次のように実装されています。[ 46 ] [ 13 ] [ 12 ]
cond qufunct inc ( qureg x ) { // レジスタint iをインクリメントする。for i = # x - 1 to 0 step - 1 { CNot ( x [ i ], x [ 0 :: i ]); // 制御否定を適用} // MSB から LSB へ}
QCLでは、デクリメントはインクリメントを「取り消す」ことで行われます。プレフィックスは、代わりに関数のユニタリ逆関数!を実行するために使用されます。はの逆関数であり、代わりに演算を実行します。!inc(x)inc(x)キーワードは、cond関数が条件付きであることを意味します。[ 11 ]
この記事で使用されている計算モデル(量子回路モデル)では、古典コンピュータが量子コンピュータのゲート構成を生成し、量子コンピュータは、どのプリミティブゲートをどの量子ビットに適用するかについての指示を古典コンピュータから受け取るコプロセッサとして動作します。 [ 13 ]: 36-43 [ 14 ]量子レジスタの測定により、古典コンピュータが計算に使用できるバイナリ値が得られます。量子アルゴリズムには、古典部分と量子部分の両方が含まれることがよくあります。測定されないI/O(量子状態を崩壊させずに量子ビットをリモートコンピュータに送信する)を使用して、量子コンピュータのネットワークを作成できます。エンタングルメントスワッピングを使用すると、直接接続されていない量子コンピュータで分散アルゴリズムを実現できます。少数の量子論理ゲートの使用のみを必要とする分散アルゴリズムの例としては、超高密度コーディング、量子ビザンチン合意、BB84暗号鍵交換プロトコルなどがあります。