Untuk presentasi dari prinsip pertama, saya suka jawaban Ryan O'Donnell . Tetapi untuk perawatan aljabar tingkat yang sedikit lebih tinggi, inilah cara saya akan melakukannya.
Fitur utama dari operasi terkontrol , untuk setiap unitary U , adalah bahwa ia (secara koheren) melakukan operasi pada beberapa qubit tergantung pada nilai beberapa qubit tunggal. Cara kita dapat menulis ini secara aljabar (dengan kontrol pada qubit pertama) adalah:
mana adalah matriks identitas dari dimensi yang sama seperti . Di sini, dan adalah proyektor ke status danUU1 U | 0 ⟩
CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1U| 1 ⟩|0⟩⟨0|| 0 ⟩ | 1 ⟩|1⟩⟨1||0⟩|1⟩ dari qubit kontrol - tetapi kami tidak menggunakannya di sini sebagai elemen pengukuran, tetapi untuk menggambarkan efek pada qubit lain tergantung pada satu atau subruang lain dari ruang-negara dari qubit pertama.
Kita dapat menggunakan ini untuk menurunkan matriks untuk gate yang melakukan operasi pada qubit 3, dikondisikan secara koheren pada keadaan qubit 1, dengan menganggap ini sebagai control- pada qubit 2 dan 3:
X( 1 2CX1,3XC X 1 , 3(12⊗X)
CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=⎡⎣⎢⎢⎢12020202021202020202X02020202X⎤⎦⎥⎥⎥,
mana yang terakhir adalah representasi matriks blok untuk menghemat ruang (dan kewarasan).
Lebih baik lagi: kita dapat mengenali bahwa - pada tingkat matematika di mana kita membiarkan diri kita menyadari bahwa urutan faktor tensor tidak harus dalam urutan tetap - kontrol dan target operasi dapat berada pada dua tensor faktor, dan kita bisa mengisi deskripsi operator di semua qubit lain dengan . Ini akan memungkinkan kita untuk melompat langsung ke representasi
C X 1 , 312C X 3 , 1
CX1,3==|0⟩⟨0|control⊗12uninvolved⊗12target⎡⎣⎢⎢⎢12020202021202020202020202020202⎤⎦⎥⎥⎥+|1⟩⟨1|control⊗12uninvolved⊗Xtarget+⎡⎣⎢⎢⎢02020202020202020202X02020202X⎤⎦⎥⎥⎥
dan juga memungkinkan kita untuk segera melihat apa yang harus dilakukan jika peran kontrol dan target dibalik:
CX3,1===12target⊗12uninvolved⊗|0⟩⟨0|control⎡⎣⎢⎢⎢⎢⎢|0⟩⟨0||0⟩⟨0||0⟩⟨0||0⟩⟨0|⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢10000000000001000010000000000001+Xtarget⊗12uninvolved⊗|1⟩⟨1|control+⎡⎣⎢⎢⎢⎢⎢|1⟩⟨1||1⟩⟨1||1⟩⟨1||1⟩⟨1|⎤⎦⎥⎥⎥⎥⎥00001000010000000000001000010000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
Tetapi yang terbaik dari semuanya: jika Anda dapat menuliskan operator ini secara aljabar, Anda dapat mengambil langkah pertama menuju pengeluaran matriks raksasa sepenuhnya, alih-alih menalar tentang operator ini secara aljabar menggunakan ekspresi seperti
dan
CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|. Akan ada batasan seberapa banyak yang dapat Anda lakukan dengan ini, tentu saja - perubahan sederhana dalam representasi tidak akan membuat algoritma kuantum yang sulit dipecahkan secara efisien, apalagi ditelusuri dengan perhitungan manual - tetapi Anda dapat menggunakan sirkuit sederhana dengan lebih efektif. menggunakan ekspresi ini daripada dengan matriks pemakan luar angkasa raksasa.