制御およびターゲットqbitが隣接していない3 qbitシステムのCNOTマトリックスを導出する方法は?


12

3 qbitシステムでは、制御およびターゲットqbitの有意性が隣接している場合、CNOT演算子を簡単に導出できます。2ビットCNOT演算子を、未処理のqbitの有意性の位置にある単位行列でテンソルします。

C10|ϕ2ϕ1ϕ0⟩=(I2⊗C10)|ϕ2ϕ1ϕ0⟩

ただし、コントロールとターゲットのqbitの有意性が隣接していない場合にCNOT演算子を導出する方法は明らかではありません。

C20|ϕ2ϕ1ϕ0⟩

これはどのように行われますか?

回答:


9

最初の原則からのプレゼンテーションについては、Ryan O'Donnellの回答が好きです。しかし、少し高いレベルの代数的処理のために、ここでそれをどのように行うかを示します。

ユニタリに対する制御操作の主な特徴は、単一のキュービットの値に応じて、いくつかのキュービットに対して(コヒーレントに)操作を実行することです。これを明示的に代数的に(最初のキュービットを制御して)書く方法は次のとおりです。 ここで、はと同じ次元の単位行列です。ここで、およびは、状態およびへのプロジェクターですU C UUU1 U | 0 ⟩

CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1U| 1 ⟩|0⟩⟨0|| 0 ⟩ | 1 ⟩|1⟩⟨1||0⟩|1⟩ 制御キュービットの—しかしここではそれらを測定の要素として使用するのではなく、最初のキュービットの状態空間のいずれかのサブスペースに依存する他のキュービットへの影響を説明するために使用します。

我々は、ゲートのための行列を導出するためにこれを使用することができ行う量子ビット3の操作を、コヒーレント制御-として本の考え方によって、量子ビット1の状態を条件量子ビット2および3の操作: X( 1 2CX1,3XC X 1 、3(12⊗X)

CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=[12020202021202020202X02020202X],
ここで、後者の2つは、スペース(および健全性)を節約するためのブロック行列表現です。

さらに良いこと:テンソル因子の順序が一定の順序である必要がないことを自分で認識できる数学的レベルでは、操作の制御とターゲットは任意の2つのテンソル上にあることが認識できます。そして、他のすべてのキュービットの演算子の説明を埋めることができること。これにより、表現に直接ジャンプできます C X 1 、312

CX1,3=|0⟩⟨0|⏟control⊗12⏟uninvolved⊗12⏟target+|1⟩⟨1|⏟control⊗12⏟uninvolved⊗X⏟target=[12020202021202020202020202020202]+[02020202020202020202X02020202X]
また、コントロールとターゲットの役割が逆になった場合の対処方法をすぐに確認できます。
CX3,1=12⏟target⊗12⏟uninvolved⊗|0⟩⟨0|⏟control+X⏟target⊗12⏟uninvolved⊗|1⟩⟨1|⏟control=[|0⟩⟨0||0⟩⟨0||0⟩⟨0||0⟩⟨0|]+[|1⟩⟨1||1⟩⟨1||1⟩⟨1||1⟩⟨1|]=[1000000000100000000001000000000100000100000000011000000000100000].
しかし何よりも、これらの演算子を代数的に書き留めることができれば、ような式を使用して代数的にこれらの演算子について推論する代わりに、巨大な行列を完全に省くための最初のステップを取ることができます および CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|。もちろん、これらを使ってできることには制限があります—表現の単純な変更は、困難な量子アルゴリズムを効率的に解ける可能性は低く、手作業による計算も扱いにくいですが、単純な回路をはるかに効果的に推論できます巨大な空間を食べる行列よりもこれらの式を使用します。

そうそう、私はMerminの本の初期からプロジェクターを思い出します。プロジェクターとマトリックスの追加は、マトリックスの条件ロジックをエンコードする方法です!
— ahelwer

「表現の単純な変更が困難な量子アルゴリズムを効率的に解ける可能性は低い」-芯の回転の場合はどうですか?
— meowzz

1
@meowzz:時々、このような表記法の変更により、概念の進歩が可能になり、問題をより簡単に解決できるようになります。しかし、それほど頻繁ではなく、おそらく、この特定の表記法の変更の場合はそうではありません。しかし、ウィックローテーションの特定のケースに関して、私が尋ねる質問は、それが問題を解決するためにどのような具体的な進歩を可能にし、どのような問題に役立ったのかということです。
— ニールドボードラップ

6

これはいい質問です。それは教科書がこっそりと思われるものです。数日前に量子コンピューティングの講義を準備したときに、私はこの正確な質問に達しました。

私が知る限り、行列のクロネッカー積表記を使用して目的の8x8行列を取得する方法はありません。本当に言えるのは、CNOTを3つのキュービットに適用する操作で、コントロールが最初でターゲットが3番目であるため、次のような効果があります。⊗

|000⟩↦|000⟩

|001⟩↦|001⟩

|010⟩↦|010⟩

|011⟩↦|011⟩

|100⟩↦|101⟩

|101⟩↦|100⟩

|110⟩↦|111⟩

|111⟩↦|110⟩

したがって、次のマトリックスで与えられます。

U=[1000000001000000001000000001000000000100000010000000000100000010]

この行列は、実際にはでもでもありません。簡潔なクロネッカーベースの表記法はありません。それはまさにそれです。UI2⊗CNOTCNOT⊗I2


1

一般的な考え方として、CNOTは制御に基づいてターゲットを反転します。コントロールが場合、ターゲットを反転することを選択します。も選択できます。したがって、一般的な多粒子状態ます。ここで、コントロールとターゲットを選択しますがコントロールで、がターゲットだとしましょう。 CNOTを適用すると、 ↑(=[1 0]T)↓(=[0 1]T)|ϕ⟩=|↑1↓2↓3....↑n−1↓n⟩i′thk′th|ϕ⟩

CNOT|ϕ⟩=CNOT|↑1↓2...↑i...↑k...↑n−1↓n⟩=|↑1↓2...↑i...↓k...↑n−1↓n⟩

このようなCNOTゲートのマトリックスを作成するには、状態がアップの場合は sigma_x ( -Pauliマトリックス)を適用し、状態がダウンの場合は( Identity)を適用します。これらの行列をターゲットである位置に適用します。数学的には、 σxxi′thI2×2i′thk′th

CNOT=[|↑1...↑i...↑k−1⟩⟨↑1...↑i...↑k−1|⊗σx⊗|↑k+1...↑n⟩⟨↑k+1...↑n|+all permutations of states other then i′th]+[|↑1...↓i...↑k−1⟩⟨↑1...↓i...↑k−1|⊗I⊗|↑k+1...↑n⟩⟨↑k+1...↑n|+all permutations of states other then i′th]

注置換行列の作成中に状態(ターゲット)が除外され、位置に演算子またはが書き込まれます。k′thk′thσxI

キュービットがターゲットで、が制御である5つのキュービットの例を考えてみましょう。の順列行列を。コントロールが場合、ターゲットをフリップします。その逆も可能です。2nd4thCNOT↑

CNOT=|↑1⟩⟨↑1|⊗σx⊗|↑3↑4↑5⟩⟨↑3↑4↑5|+|↑1⟩⟨↑1|⊗σx⊗|↑3↑4↓5⟩⟨↑3↑4↓5|+|↑1⟩⟨↑1|⊗σx⊗|↓3↑4↑5⟩⟨↓3↑4↑5|+|↑1⟩⟨↑1|⊗σx⊗|↓3↑4↓5⟩⟨↓3↑4↓5|+|↓1⟩⟨↓1|⊗σx⊗|↑3↑4↑5⟩⟨↑3↑4↑5|+|↓1⟩⟨↓1|⊗σx⊗|↑3↑4↓5⟩⟨↑3↑4↓5|+|↓1⟩⟨↓1|⊗σx⊗|↓3↑4↑5⟩⟨↓3↑4↑5|+|↓1⟩⟨↓1|⊗σx⊗|↓3↑4↓5⟩⟨↓3↑4↓5|+|↑1⟩⟨↑1|⊗I⊗|↑3↓4↑5⟩⟨↑3↓4↑5|+|↑1⟩⟨↑1|⊗I⊗|↑3↓4↓5⟩⟨↑3↓4↓5|+|↑1⟩⟨↑1|⊗I⊗|↓3↓4↑5⟩⟨↓3↓4↑5|+|↑1⟩⟨↑1|⊗I⊗|↓3↓4↓5⟩⟨↓3↓4↓5|+|↓1⟩⟨↓1|⊗I⊗|↑3↓4↑5⟩⟨↑3↑4↓5|+|↓1⟩⟨↓1|⊗I⊗|↑3↓4↓5⟩⟨↑3↓4↓5|+|↓1⟩⟨↓1|⊗I⊗|↓3↓4↑5⟩⟨↓3↓4↑5|+|↓1⟩⟨↓1|⊗I⊗|↓3↓4↓5⟩⟨↓3↓4↓5|
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.