Konstruksi umum

12

Dua negara terjerat yang paling terkenal adalah keadaan GHZ dan - , dengan .|ψ=1/2(|0n+|1n)WnW3=1/3(|100+|010+|001)

Membangun GHZ-state adalah sederhana untuk sewenang-wenang . Namun, menerapkan lebih sulit. Untuk itu mudah, dan untuk bisa kita gunakannWnn=2n=4

H q[0,3]
X q[0,3]
Toffoli q[0],q[3],q[1]
X q[0,3]
Toffoli q[0],q[3],q[2]
CNOT q[2],q[0]
CNOT q[2],q[3]

Bahkan untuk kami memiliki implementasi, lihat jawaban ini misalnya. Namun, saya belum menemukan algoritma yang, diberi , output rangkaian untuk membangun .n=3n W nnWn

Apakah algoritma semacam itu, yang didefinisikan oleh gerbang tunggal dan dua-qubit, ada? Dan jika demikian, apakah itu?

nippon
sumber

Jawaban:

8

Ya, ada beberapa implementasi dari algoritma ini dalam kata kuantum Superposisi (tugas 14 dan 15):

  • Untuk , Anda dapat menggunakan algoritma rekursif: membuat status W pada qubit , mengalokasikan qubit ancilla dalam keadaan , melakukan beberapa SWAP terkontrol untuk mengatur status kedua qubit, dan kemudian beberapa NOTs dikendalikan untuk me-reset ancilla kembali ke ( operasi).n=2k2k1|+2k1|0WState_PowerOfTwo_Reference
  • Untuk sewenang-wenang , Anda dapat menggunakan algoritma rekursif seperti yang dijelaskan oleh DaftWullie ( operasi).nWState_Arbitrary_Reference
  • Ada juga trik rapi yang dapat Anda gunakan untuk membuat status untuk sembarang menggunakan algoritma rekursif pertama. Alokasikan qubit tambahan untuk membuat diberikan menjadi , buat status padanya dan ukur qubit tambahan; jika semua qubit berukuran 0, status qubit asli adalah , jika tidak reset dan ulangi proses ( operasi).Wnnn2kW2kWnWState_Arbitrary_Postselect

Ini adalah tugas favorit saya dari kata itu, karena memungkinkan begitu banyak pendekatan yang berbeda.

Mariia Mykhailova
sumber
6

Cara yang paling sederhana secara konseptual untuk menghasilkan keadaan W agak analog dengan pengambilan sampel reservoir klasik , karena melibatkan serangkaian operasi lokal yang pada akhirnya menciptakan efek yang seragam.

Pada dasarnya, Anda melihat setiap qubit secara bergantian dan mempertimbangkan "berapa banyak amplitudo yang tersisa di status all-0s, dan berapa banyak yang ingin saya transfer ke status just-this-qubit-is-ON?". Ternyata keluarga rotasi yang Anda butuhkan adalah apa yang saya sebut "gerbang peluang" yang memiliki matriks berikut:

M(p:q)=1p+q[pqqp]

Dengan menggunakan gerbang ini, Anda bisa mendapatkan status W dengan urutan operasi yang semakin terkontrol:

transfer-out-of-0

Rangkaian ini agak tidak efisien. Ini memiliki biaya mana adalah jumlah qubit dan adalah ketepatan absolut yang diinginkan (karena, dalam konteks kesalahan yang dikoreksi, kemungkinan gerbang bukan asli dan harus diperkirakan).O(N2+Nlg(1/ϵ))Nϵ

Kita dapat meningkatkan efisiensi dengan beralih dari strategi "transfer dari apa yang tertinggal" ke strategi "transfer dari apa yang bepergian". Ini menambahkan sapuan fixup pada akhirnya, tetapi hanya membutuhkan kontrol tunggal pada setiap operasi. Ini mengurangi biaya menjadi :O(Nlg(1/ϵ))

transfer-out-of-1

Masih mungkin untuk melakukan yang lebih baik, tetapi mulai menjadi rumit. Pada dasarnya, Anda dapat menggunakan langkah parsial Grover tunggal untuk mendapatkan amplitudo sama dengan tetapi mereka akan dikodekan ke dalam register biner (kami ingin register satu-panas dengan set bit tunggal). Untuk memperbaikinya, diperlukan sirkuit konversi biner ke unary. Alat yang diperlukan untuk melakukan ini tercakup dalam "Pengkodean Spektrum Elektronik dalam Sirkuit Quantum dengan Kompleksitas T Linear" ). Berikut adalah angka-angka yang relevan.N1/N

Langkah grover parsial:

Mempersiapkan distribusi yang seragam dengan langkah grover parsial

Cara melakukan operasi yang diindeks (well ... semacam. Angka terdekat memiliki akumulator yang tidak tepat untuk kasus ini):

operasi yang diindeks

Menggunakan pendekatan yang lebih rumit ini mengurangi biaya dari ke .O(Nlg(1/ϵ))O(N+lg(1/ϵ))

Craig Gidney
sumber
4

Anda dapat menentukan urutan secara rekursif. Secara konseptual, yang ingin Anda lakukan adalah:

  • Buat status awal|0N

  • Pada qubit 1, terapkan gerbang

    1N(1N1N11)

  • Dikendalikan dari qubit 1, terapkan "make " pada qubit 2 hingga (mis. Lakukan ini jika qubit 1 dalam keadaan , jika tidak lakukan apa-apa)|WN1N|1

  • Terapkan gerbang bit-flip pada qubit 1.

Algoritma ini, seperti yang diungkapkan, tidak hanya terdiri dari gerbang satu dan dua-qubit, tetapi dapat dipecah dengan demikian oleh konstruksi universalitas standar.

Selain itu, ini mungkin bukan algoritma paling efisien yang bisa Anda buat. Misalnya, jika , Anda bisa menggunakan hanya lapisan akar kuadrat dari gerbang swap untuk menghasilkan apa yang Anda inginkan - mulai dengan pada satu qubit. Root-swap dengan qubit kedua, dan Anda punya (hingga fase yang harus Anda urus). Letakkan ancilla di sebelah keduanya, dan lakukan root swap antara pasangan W-ancilla, dan Anda punya , ulangi dan Anda punya , dan seterusnya. Saya percaya ini pada dasarnya adalah apa yang mereka lakukan secara eksperimental di sini . Anda harus dapat memasukkan algoritma ini ke yang pertama untuk membuatnya lebih efisien (N=2nn|1|W2|W4|W8O ( log N ) O(logN) ) untuk ukuran sembarang, tetapi saya tidak pernah berhenti untuk mengerjakan detailnya dengan sangat hati-hati.

DaftWullie
sumber