Katakanlah kita memiliki fungsi yang memetakan n bit ke m bit (di mana m < n ).fnmm<n
f:{0,1}n→{0,1}m
Kita tentu saja dapat merancang sirkuit klasik untuk melakukan operasi ini. Sebut saja . Dibutuhkan sebagai input n- bit. Katakanlah dibutuhkan sebagai input X dan menghasilkan f ( X ) .CfnXf(X)
Sekarang, kami ingin melakukan hal yang sama menggunakan rangkaian kuantum. Mari kita menyebutnya , yang mengambil sebagai masukan | X ⟩ dan output | f ( X ) ⟩ . Sekarang ingat bahwa karena mekanika kuantum linier, qubit input tentu saja bisa berada di superposisi dari semua string n- bit. Jadi input bisa dalam keadaan tertentu ∑ X ∈ { 0 , 1 } n α X | X ⟩ . Dengan linearitas output akan menjadi Σ X ∈ { 0 ,Uf|X⟩|f(X)⟩n∑X∈{0,1}nαX|X⟩ .∑X∈{0,1}nαX|f(X)⟩
Evolusi dalam mekanika kuantum adalah kesatuan . Dan karena itu adalah kesatuan, itu dapat dibalik. Ini pada dasarnya berarti bahwa jika Anda menerapkan gerbang kuantum pada status masukan | x ⟩ dan negara ouput U | x ⟩ , Anda dapat selalu menerapkan gerbang terbalik U † untuk kembali ke negara | x ⟩ .U|x⟩U|x⟩U†|x⟩
Perhatikan, dengan hati-hati dalam gambar di atas bahwa jumlah jalur input (yaitu enam) persis sama dengan jumlah jalur output di setiap langkah. Ini karena kesatuan operasi. Bandingkan ini dengan operasi klasik seperti logika AND di mana memberikan output bit tunggal 0 . Anda tidak dapat merekonstruksi bit awal 0 dan 1 dari output, karena bahkan 0 ∧ 0 dan 1 ∧ 0 akan dipetakan ke output yang sama 0 . Tapi, pertimbangkan gerbang NOT klasik. Jika inputnya 0 maka akan keluar 1 , sedangkan jika inputnya adalah0∧10010∧01∧00011 itu menghasilkan . Karena pemetaan ini adalah satu-satu, ia dapat dengan mudah diimplementasikan sebagai gerbang kesatuan yang reversibel, yaitu, gerbang Pauli-X . Namun, untuk mengimplementasikan gerbang AND klasik atau OR klasik kita perlu berpikir lebih banyak.0
Pertimbangkan gerbang CSWAP . Berikut diagram kasar yang menunjukkan skema:
Di gerbang SWAP tergantung pada bit kontrol, kami dua lainnya mungkin atau mungkin tidak ditukar. Perhatikan bahwa ada tiga jalur input dan tiga jalur output. Jadi, itu dapat dimodelkan sebagai gerbang kuantum kesatuan. Sekarang, jika : Jika x = 0 , output adalah 0 , sedangkan jika x = 1 , output adalah y .z=0x=00x=1y
Jika Anda perhatikan, jika , kami mengeluarkan ˉ x ∧ y sedangkan jika x = 1 kami menghasilkan x ∧ y . Jadi kita bisa berhasil menghasilkan output x ∧ y yang kita inginkan walaupun kita berakhir dengan beberapa output "sampah" ˉ x ∧ y dan x . Fakta menarik adalah bahwa kebalikan dari gerbang CSWAP adalah gerbang CSWAP itu sendiri (centang!).x=0x¯∧yx=1x∧yx∧yx¯∧yx
Itu saja! Ingat bahwa semua gerbang klasik dapat dibangun dengan gerbang NAND , yang tentu saja dapat dibangun sebuah gerbang AND dan NOT. Kami secara efektif memodelkan BUK klasik dan gerbang AND klasik menggunakan gerbang kuantum yang dapat dibalik. Agar aman, kami juga dapat menambahkan gerbang CNOT qauntum ke daftar kami, karena menggunakan CNOT kami dapat menyalin bit.
Oleh karena itu, pesan dasarnya adalah bahwa menggunakan CSWAP kuantum, CNOT dan gerbang BUKAN kita dapat meniru gerbang klasik mana pun . BTW, ada trik pintar untuk menyingkirkan bit "sampah" yang diproduksi ketika gerbang kuantum digunakan, tapi itu cerita lain.
PS: Sangat penting untuk menyingkirkan bit "sampah" atau mereka dapat menyebabkan kesalahan komputasi!
Referensi & Kredit Gambar: Mekanika Quantum dan Komputasi Quantum MOOC ditawarkan oleh UC Berkeley di edX.