Saya bertanya-tanya apakah ada cara untuk menyusun program dengan beberapa sirkuit kuantum tanpa register diinisialisasi ulang pada untuk setiap sirkuit.
Secara khusus, saya ingin menjalankan sirkuit kuantum kedua setelah menjalankan yang pertama, seperti dalam contoh ini:
qp = QuantumProgram()
qr = qp.create_quantum_register('qr',2)
cr = qp.create_classical_register('cr',2)
qc1 = qp.create_circuit('B1',[qr],[cr])
qc1.x(qr)
qc1.measure(qr[0], cr[0])
qc1.measure(qr[1], cr[1])
qc2 = qp.create_circuit('B2', [qr], [cr])
qc2.x(qr)
qc2.measure(qr[0], cr[0])
qc2.measure(qr[1], cr[1])
#qp.add_circuit('B1', qc1)
#qp.add_circuit('B2', qc2)
pprint(qp.get_qasms())
result = qp.execute()
print(result.get_counts('B1'))
print(result.get_counts('B2'))
Sayangnya, apa yang saya dapatkan adalah hasil yang sama untuk dua kali berjalan (yaitu hitungan 11
untuk B1
dan B2
bukannya 11
dan 00
untuk yang kedua, seolah-olah B2
dijalankan pada keadaan yang sama sekali baru diinisialisasi 00
setelah B1
.
algorithm
programming
qiskit
asdf
sumber
sumber
Jawaban:
Di Qiskit Anda dapat membuat dua sirkuit untuk membuat sirkuit yang lebih besar. Anda dapat melakukan ini hanya dengan menggunakan
+
operator di sirkuit.Berikut adalah program Anda yang ditulis ulang untuk menggambarkan hal ini (catatan: Anda memerlukan versi terbaru Qiskit untuk ini, tingkatkan dengan
pip install -U qiskit
).Anda dapat melihat bahwa qc3 adalah gabungan dari q1 dan q2.
Hasil:
Sekarang, Anda tampaknya ingin menyelidiki keadaan dua kali: sekali di mana qc1 berakhir, dan satu kali ketika qc2 berakhir. Anda dapat melakukan ini di simulator dengan memasukkan
snapshot
perintah. Ini akan menyimpan statevector pada titik tertentu di sirkuit. Itu tidak runtuh negara.Anda sekarang dapat mengeksekusi
qc3
di simulator.Hasil: [0. + 0.j 0. + 0.j 0. + 0.j 1. + 0.j] [1. + 0.j 0. + 0.j 0. + 0.j 0. + 0.j] {'00': 1024}
Jadi negara kembali ke | 00> seperti yang diharapkan.
sumber
Setelah Anda melakukan pengukuran, fungsi gelombang negara kuantum / register runtuh dan kehilangan sifat kuantumnya. Tidak masuk akal untuk menerapkan sirkuit lain di atasnya.
sumber