Pelaksanaan Qiskit
Dalam pelajaran ini, kita akan melaksanakan beberapa idea dari pelajaran tentang jalinan dalam tindakan, menggunakan Qiskit.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-aer
from qiskit import __version__
print(__version__)
2.1.1
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram, array_to_latex
from qiskit.result import marginal_distribution
from qiskit.circuit.library import UGate
from math import pi
import random
Berikut ialah pelaksanaan litar kuantum untuk protokol teleportasi.
qubit = QuantumRegister(1, "Q")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")
a = ClassicalRegister(1, "a")
b = ClassicalRegister(1, "b")
protocol = QuantumCircuit(qubit, ebit0, ebit1, a, b)
# Prepare ebit used for teleportation
protocol.h(ebit0)
protocol.cx(ebit0, ebit1)
protocol.barrier()
# Alice's operations
protocol.cx(qubit, ebit0)
protocol.h(qubit)
protocol.barrier()
# Alice measures and sends classical bits to Bob
protocol.measure(ebit0, a)
protocol.measure(qubit, b)
protocol.barrier()
# Bob uses the classical bits to conditionally apply gates
with protocol.if_test((a, 1)):
protocol.x(ebit1)
with protocol.if_test((b, 1)):
protocol.z(ebit1)
display(protocol.draw(output="mpl"))

Litar ini menggunakan beberapa ciri Qiskit yang belum kita lihat dalam pelajaran sebelumnya, termasuk fungsi barrier dan if_test.
Fungsi barrier mencipta pemisahan visual yang menjadikan gambar rajah litar lebih mudah dibaca, dan ia juga menghalang Qiskit daripada melakukan pelbagai penyederhanaan dan pengoptimuman merentasi penghalang semasa penyusunan apabila litar dijalankan pada perkakasan sebenar.
Fungsi if_test menerapkan operasi secara bersyarat bergantung pada bit atau daftar klasik.
Litar ini mula-mula memulakan untuk berada dalam keadaan (yang bukan sebahagian daripada protokol itu sendiri), diikuti dengan operasi Alice, kemudian pengukurannya, dan akhirnya operasi Bob. Untuk menguji bahawa protokol berfungsi dengan betul, kita akan menerapkan get satu-qubit yang dijana secara rawak pada keadaan yang dimulakan bagi untuk mendapatkan vektor keadaan kuantum rawak untuk diteleportasikan. Dengan menerapkan songsangan (iaitu, anak matrik konjugat) get tersebut pada selepas protokol dijalankan, kita boleh mengesahkan bahawa keadaan telah diteleportasikan dengan mengukur untuk melihat bahawa ia telah kembali ke keadaan .
Pertama sekali kita akan memilih secara rawak get qubit unitari.
random_gate = UGate(
theta=random.random() * 2 * pi,
phi=random.random() * 2 * pi,
lam=random.random() * 2 * pi,
)
display(array_to_latex(random_gate.to_matrix()))
Sekarang kita akan mencipta litar ujian baru yang mula-mula menerapkan get rawak kita pada kemudian menjalankan litar teleportasi, dan akhirnya menerapkan songsangan get rawak kita pada qubit dan mengukur. Hasilnya sepatutnya dengan kepastian.
# Create a new circuit including the same bits and qubits used in the
# teleportation protocol.
test = QuantumCircuit(qubit, ebit0, ebit1, a, b)
# Start with the randomly selected gate on Q
test.append(random_gate, qubit)
test.barrier()
# Append the entire teleportation protocol from above.
test = test.compose(protocol)
test.barrier()
# Finally, apply the inverse of the random unitary to B and measure.
test.append(random_gate.inverse(), ebit1)
result = ClassicalRegister(1, "Result")
test.add_register(result)
test.measure(ebit1, result)
display(test.draw(output="mpl"))

Akhir sekali, mari jalankan simulator Aer pada litar ini dan plot histogram output. Kita akan melihat statistik untuk ketiga-tiga bit klasik: bit bawah/paling kiri sepatutnya sentiasa menunjukkan bahawa qubit berjaya diteleportasikan ke dalam manakala dua bit yang lain sepatutnya lebih kurang seragam.
result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))
Kita juga boleh menapis statistik untuk memberi tumpuan semata-mata pada qubit keputusan ujian jika kita mahu, seperti ini:
filtered_statistics = marginal_distribution(statistics, [2])
display(plot_histogram(filtered_statistics))
Pengekodan superpadu
Pengekodan superpadu ialah protokol yang, dalam ertikata tertentu, mencapai matlamat yang saling melengkapi dengan teleportasi. Daripada membenarkan penghantaran satu qubit menggunakan dua bit komunikasi klasik (dengan kos satu e-bit jalinan), ia membenarkan penghantaran dua bit klasik menggunakan satu qubit komunikasi kuantum (sekali lagi, dengan kos satu e-bit jalinan).
Secara lebih terperinci, kita ada seorang penghantar (Alice) dan penerima (Bob) yang berkongsi satu e-bit jalinan. Mengikut konvensyen yang digunakan untuk pelajaran ini, ini bermakna Alice memegang qubit Bob memegang qubit dan bersama-sama pasangan berada dalam keadaan Alice ingin menghantar dua bit klasik kepada Bob, yang kita tandakan sebagai dan dan dia akan mencapai ini dengan menghantar satu qubit kepadanya.
Adalah munasabah untuk melihat pencapaian ini sebagai kurang menarik berbanding yang dicapai oleh teleportasi. Menghantar qubit kemungkinan besar akan jauh lebih sukar daripada menghantar bit klasik pada masa hadapan yang dapat dijangkau sehingga menukar satu qubit komunikasi kuantum dengan dua bit komunikasi klasik, dengan kos e-bit pula, nampaknya tidak berbaloi. Walau bagaimanapun, ini tidak bermakna pengekodan superpadu tidak menarik, kerana ia sememangnya menarik.
Sesuai dengan tema pelajaran, salah satu sebab mengapa pengekodan superpadu menarik ialah ia menunjukkan penggunaan jalinan yang konkrit dan (dalam konteks teori maklumat) agak mengejutkan. Teorem terkenal dalam teori maklumat kuantum, dikenali sebagai teorem Holevo, membawa maksud bahawa tanpa penggunaan keadaan jalinan yang dikongsi, adalah mustahil untuk menyampaikan lebih daripada satu bit maklumat klasik dengan menghantar satu qubit tunggal. (Teorem Holevo lebih umum daripada ini. Pernyataan tepatnya adalah teknikal dan memerlukan penjelasan, tetapi ini adalah salah satu akibatnya.) Jadi, melalui pengekodan superpadu, jalinan yang dikongsi secara berkesan membenarkan penggandaan kapasiti membawa maklumat klasik daripada penghantaran qubit.
Protokol
Gambar rajah litar kuantum berikut menerangkan protokol pengekodan superpadu:

Dalam kata-kata, inilah yang Alice lakukan:
-
Jika Alice melakukan get pada qubitnya (dan jika dia tidak melakukannya).
-
Jika Alice melakukan get pada qubitnya (dan jika dia tidak melakukannya).
Alice kemudian menghantar qubitnya kepada Bob.
Apa yang Bob lakukan apabila menerima qubit ialah mula-mula melakukan get NOT terkawal, dengan sebagai kawalan dan sebagai sasaran, dan kemudian dia menerapkan get Hadamard pada Dia kemudian mengukur untuk mendapatkan dan untuk mendapatkan dengan pengukuran asas standard dalam kedua-dua kes.
Analisis
Idea di sebalik protokol ini adalah mudah: Alice secara berkesan memilih keadaan Bell mana yang dia ingin kongsi dengan Bob, dia menghantar qubitnya kepada Bob, dan Bob mengukur untuk menentukan keadaan Bell mana yang dipilih oleh Alice.
Iaitu, mereka pada mulanya berkongsi dan bergantung pada bit dan Alice sama ada membiarkan keadaan ini atau menganjak ke salah satu keadaan Bell yang lain dengan menerapkan atau pada qubitnya
Tindakan Bob memberi kesan berikut pada keempat-empat keadaan Bell:
Ini boleh disemak secara langsung, dengan mengira hasil operasi Bob pada keadaan-keadaan ini satu persatu.
Jadi, apabila Bob melakukan pengukurannya, dia dapat menentukan keadaan Bell mana yang dipilih oleh Alice. Untuk mengesahkan bahawa protokol berfungsi dengan betul adalah dengan menyemak setiap kes:
-
Jika maka keadaan apabila Bob menerima ialah Dia mentransformasi keadaan ini menjadi dan mendapat
-
Jika maka keadaan apabila Bob menerima ialah Dia mentransformasi keadaan ini menjadi dan mendapat
-
Jika maka keadaan apabila Bob menerima ialah Dia mentransformasi keadaan ini menjadi dan mendapat
-
Jika maka keadaan apabila Bob menerima ialah Dia mentransformasi keadaan ini menjadi dan mendapat (Faktor fasa negatif-satu tidak memberi kesan di sini.)
Pelaksanaan pengekodan superpadu
Berikut ialah pelaksanaan mudah pengekodan superpadu di mana kita menentukan litar itu sendiri bergantung pada bit yang hendak dihantar. Pertama kita akan memilih dua bit untuk dihantar. (Kemudian kita akan memilihnya secara rawak, tetapi buat masa ini kita hanya membuat pilihan sewenang-wenangnya.)
c = "1"
d = "0"
Sekarang kita akan membina litar mengikutnya. Di sini kita akan membenarkan Qiskit menggunakan nama lalai untuk qubit: untuk qubit atas dan untuk qubit bawah.
protocol = QuantumCircuit(2)
# Prepare ebit used for superdense coding
protocol.h(0)
protocol.cx(0, 1)
protocol.barrier()
# Alice's operations
if d == "1":
protocol.z(0)
if c == "1":
protocol.x(0)
protocol.barrier()
# Bob's actions
protocol.cx(0, 1)
protocol.h(0)
protocol.measure_all()
display(protocol.draw(output="mpl"))

Tidak banyak yang baharu di sini, kecuali fungsi measure_all, yang mengukur semua qubit dan meletakkan hasilnya ke dalam satu daftar klasik (dan oleh itu mempunyai dua bit dalam kes ini).
Menjalankan simulator Aer menghasilkan output yang dijangkakan.
result = AerSimulator().run(protocol).result()
statistics = result.get_counts()
for outcome, frequency in statistics.items():
print(f"Measured {outcome} with frequency {frequency}")
display(plot_histogram(statistics))
Measured 10 with frequency 1024
Sekarang mari gunakan qubit tambahan sebagai penjana bit rawak — pada dasarnya untuk membalik syiling yang adil. Kita akan gunakannya untuk memilih dan secara rawak, dan kemudian jalankan protokol pengekodan superpadu.
rbg = QuantumRegister(1, "coin")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")
Alice_c = ClassicalRegister(1, "Alice c")
Alice_d = ClassicalRegister(1, "Alice d")
test = QuantumCircuit(rbg, ebit0, ebit1, Alice_d, Alice_c)
# Initialize the ebit
test.h(ebit0)
test.cx(ebit0, ebit1)
test.barrier()
# Use the 'coin' qubit twice to generate Alice's bits c and d.
test.h(rbg)
test.measure(rbg, Alice_c)
test.h(rbg)
test.measure(rbg, Alice_d)
test.barrier()
# Now the protocol runs, starting with Alice's actions, which depend
# on her bits.
with test.if_test((Alice_d, 1), label="Z"):
test.z(ebit0)
with test.if_test((Alice_c, 1), label="X"):
test.x(ebit0)
test.barrier()
# Bob's actions
test.cx(ebit0, ebit1)
test.h(ebit0)
test.barrier()
Bob_c = ClassicalRegister(1, "Bob c")
Bob_d = ClassicalRegister(1, "Bob d")
test.add_register(Bob_d)
test.add_register(Bob_c)
test.measure(ebit0, Bob_d)
test.measure(ebit1, Bob_c)
display(test.draw(output="mpl"))

Menjalankan simulator Aer menunjukkan hasilnya: bit klasik Alice dan Bob sentiasa bersetuju.
result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

Permainan CHSH
Contoh terakhir yang akan dibincangkan dalam pelajaran ini bukan protokol, tetapi sebuah permainan yang dikenali sebagai permainan CHSH.
Apabila kita bercakap tentang permainan dalam konteks ini, kita bukan bercakap tentang sesuatu yang dimaksudkan untuk dimainkan untuk keseronokan atau sukan, tetapi sebaliknya abstraksi matematik dalam erti kata teori permainan. Abstraksi matematik permainan dikaji dalam bidang ekonomi dan sains komputer, misalnya, dan ia sangat menarik serta berguna.
Huruf CHSH merujuk kepada para pengarang — John Clauser, Michael Horne, Abner Shimony, dan Richard Holt — dalam kertas kerja 1969 di mana contoh ini pertama kali diterangkan. Mereka tidak menerangkan contoh ini sebagai permainan, tetapi sebagai eksperimen. Namun begitu, perihalannya sebagai permainan adalah semula jadi dan intuitif.
Permainan CHSH termasuk dalam kelas permainan yang dikenali sebagai permainan tak setempat. Permainan tak setempat sangat menarik dan mempunyai hubungan mendalam dengan fizik, sains komputer, dan matematik — menyimpan misteri yang masih belum terpecahkan. Kita akan mulakan bahagian ini dengan menerangkan apa itu permainan tak setempat, dan kemudian kita akan fokus pada permainan CHSH dan apa yang menjadikannya menarik.
Permainan tak setempat
Permainan tak setempat ialah permainan koperatif di mana dua pemain, Alice dan Bob, bekerjasama untuk mencapai hasil tertentu. Permainan ini dijalankan oleh seorang pengadil, yang berkelakuan mengikut garis panduan yang ketat yang diketahui oleh Alice dan Bob.
Alice dan Bob boleh bersiap sedia untuk permainan sesuka hati, tetapi sebaik sahaja permainan bermula mereka dilarang daripada berkomunikasi. Kita mungkin membayangkan permainan yang berlaku di sebuah kemudahan selamat sejenis — seolah-olah pengadil memainkan peranan sebagai detektif dan Alice dan Bob adalah suspek yang disoal siasat di bilik berasingan. Tetapi cara lain untuk memikirkan persediaan ini ialah Alice dan Bob dipisahkan oleh jarak yang sangat jauh, dan komunikasi dilarang kerana kelajuan cahaya tidak membenarkannya dalam masa permainan berlangsung. Iaitu, jika Alice cuba menghantar mesej kepada Bob, permainan akan berakhir sebelum dia menerimanya, dan begitu juga sebaliknya.
Cara permainan tak setempat berfungsi ialah pengadil terlebih dahulu bertanya kepada Alice dan Bob satu soalan masing-masing. Kita akan menggunakan huruf untuk merujuk kepada soalan Alice dan untuk merujuk kepada soalan Bob. Di sini kita menganggap dan sebagai keadaan klasik, dan dalam permainan CHSH dan adalah bit.
Pengadil menggunakan kerawakan untuk memilih soalan-soalan ini. Lebih tepat lagi, ada kebarangkalian yang berkaitan dengan setiap pasangan soalan yang mungkin, dan pengadil telah berjanji untuk memilih soalan secara rawak, pada masa permainan, dengan cara ini. Semua orang, termasuk Alice dan Bob, mengetahui kebarangkalian ini — tetapi tiada siapa yang mengetahui pasangan mana yang akan dipilih sehingga permainan bermula.
Selepas Alice dan Bob menerima soalan mereka, mereka perlu memberikan jawapan: jawapan Alice ialah dan jawapan Bob ialah Sekali lagi, ini adalah keadaan klasik secara umum, dan bit dalam permainan CHSH.
Pada ketika ini pengadil membuat keputusan: Alice dan Bob sama ada menang atau kalah bergantung pada sama ada pasangan jawapan dianggap betul untuk pasangan soalan mengikut satu set peraturan tetap. Peraturan yang berbeza bermakna permainan yang berbeza, dan peraturan untuk permainan CHSH khususnya diterangkan dalam bahagian yang berikut ini. Seperti yang telah dicadangkan, peraturan ini diketahui oleh semua orang.
Gambar rajah berikut memberikan gambaran grafik interaksi.

Ketidakpastian mengenai soalan mana yang akan ditanya, dan khususnya hakikat bahawa setiap pemain tidak tahu soalan pemain lain, itulah yang menjadikan permainan tak setempat mencabar bagi Alice dan Bob — sama seperti suspek bersubahat di bilik berasingan cuba memastikan cerita mereka konsisten.
Perihalan tepat pengadil mentakrifkan satu contoh permainan tak setempat. Ini termasuk spesifikasi kebarangkalian untuk setiap pasangan soalan bersama-sama dengan peraturan yang menentukan sama ada setiap pasangan jawapan menang atau kalah untuk setiap pasangan soalan yang mungkin.
Kita akan melihat permainan CHSH sebentar lagi, tetapi sebelum itu marilah kita sebentar mengakui bahawa mempertimbangkan permainan tak setempat yang lain juga menarik. Malah, ia sangat menarik; ada beberapa permainan tak setempat yang agak mudah yang setakat ini tidak diketahui seberapa baik Alice dan Bob boleh bermain menggunakan jalinan. Persediaannya mudah, tetapi terdapat kerumitan yang bekerja — dan untuk sesetengah permainan ia boleh menjadi mustahil sukar untuk mengira strategi terbaik atau hampir terbaik untuk Alice dan Bob. Inilah sifat model permainan tak setempat yang mengejutkan secara tidak intuitif.
Perihalan permainan CHSH
Berikut ialah perihalan tepat permainan CHSH, di mana (seperti di atas) ialah soalan Alice, ialah soalan Bob, ialah jawapan Alice, dan ialah jawapan Bob:
-
Soalan dan jawapan semuanya bit:
-
Pengadil memilih soalan secara seragam rawak. Iaitu, setiap daripada empat kemungkinan, dan dipilih dengan kebarangkalian
-
Jawapan menang untuk soalan jika dan kalah sebaliknya. Jadual berikut menyatakan peraturan ini dengan menyenaraikan syarat menang dan kalah pada jawapan untuk setiap pasangan soalan
Had strategi klasik
Sekarang mari kita pertimbangkan strategi untuk Alice dan Bob dalam permainan CHSH, bermula dengan strategi klasik.
Strategi deterministik
Kita akan mulakan dengan strategi deterministik, di mana jawapan Alice adalah fungsi soalan yang dia terima, dan begitu juga jawapan Bob adalah fungsi soalan yang dia terima. Jadi, sebagai contoh, kita boleh menulis untuk mewakili jawapan Alice apabila soalannya ialah dan untuk mewakili jawapan Alice apabila soalannya ialah
Tiada strategi deterministik yang dapat memenangi permainan CHSH setiap kali. Salah satu cara untuk memahami ini ialah dengan menyemak satu persatu semua strategi deterministik yang mungkin dan mengesahkan bahawa setiap satu daripadanya kalah untuk sekurang-kurangnya satu daripada empat pasangan soalan yang mungkin. Alice dan Bob masing-masing boleh memilih daripada empat fungsi yang mungkin dari satu bit ke satu bit — yang kita temui dalam pelajaran tentang Sistem tunggal — jadi terdapat strategi deterministik yang berbeza untuk diperiksa secara keseluruhannya.
Kita juga boleh membuat alasan ini secara analitik. Jika strategi Alice dan Bob menang apabila maka mestilah jika strategi mereka menang apabila maka dan begitu juga, jika strategi menang untuk maka Jadi, jika strategi mereka menang untuk ketiga-tiga kemungkinan, maka
Ini bermakna strategi kalah dalam kes terakhir dan untuk menang di sini memerlukan Oleh itu, tiada strategi deterministik yang dapat menang setiap kali.
Di sisi lain, mudah untuk mencari strategi deterministik yang menang dalam tiga daripada empat kes, seperti Dari sini kita menyimpulkan bahawa kebarangkalian maksimum untuk Alice dan Bob menang menggunakan strategi deterministik ialah
Strategi probabilistik
Seperti yang baru kita simpulkan, Alice dan Bob tidak boleh melakukan lebih baik daripada memenangi permainan CHSH 75% daripada masa menggunakan strategi deterministik. Tetapi bagaimana pula dengan strategi probabilistik? Adakah penggunaan kerawakan boleh membantu Alice dan Bob — termasuk kemungkinan kerawakan yang dikongsi, di mana pilihan rawak mereka berkorelasi?
Ternyata strategi probabilistik tidak membantu sama sekali untuk meningkatkan kebarangkalian Alice dan Bob menang. Ini kerana setiap strategi probabilistik secara alternatif boleh dilihat sebagai pemilihan rawak strategi deterministik, sama seperti (seperti yang disebutkan dalam pelajaran Sistem tunggal) operasi probabilistik boleh dilihat sebagai pemilihan rawak operasi deterministik. Purata tidak pernah lebih besar daripada maksimum, jadi berikutnya strategi probabilistik tidak menawarkan sebarang kelebihan dari segi kebarangkalian menang keseluruhannya.
Oleh itu, menang dengan kebarangkalian adalah yang terbaik yang boleh dilakukan oleh Alice dan Bob menggunakan sebarang strategi klasik, sama ada deterministik atau probabilistik.
Strategi permainan CHSH
Soalan semula jadi yang perlu ditanya pada ketika ini ialah sama ada Alice dan Bob boleh melakukan lebih baik menggunakan strategi kuantum. Khususnya, jika mereka berkongsi keadaan kuantum yang terjala seperti yang dicadangkan oleh gambar rajah berikut, yang boleh mereka siapkan sebelum bermain, bolehkah mereka meningkatkan kebarangkalian menang mereka?

Jawapannya ya, dan inilah inti pati contoh ini dan sebab ia sangat menarik. Jadi mari kita lihat dengan tepat bagaimana Alice dan Bob boleh melakukan lebih baik dalam permainan ini menggunakan jalinan.
Vektor dan matriks yang diperlukan
Perkara pertama yang perlu kita lakukan ialah mentakrifkan vektor keadaan qubit untuk setiap nombor nyata (yang kita anggap sebagai sudut yang diukur dalam radian) seperti berikut.
Berikut adalah beberapa contoh mudah:
Kita juga mempunyai contoh-contoh berikut, yang timbul dalam analisis di bawah:
Melihat pada bentuk umum, kita dapati bahawa hasil darab pedalaman antara mana-mana dua vektor ini mempunyai formula ini:
Secara terperinci, hanya ada entri nombor nyata dalam vektor-vektor ini, jadi tiada konjugat kompleks yang perlu dirisaukan: hasil darab pedalaman ialah hasil darab kosinus ditambah hasil darab sinus. Menggunakan salah satu formula penambahan sudut dari trigonometri membawa kepada penyederhanaan di atas. Formula ini mendedahkan tafsiran geometri hasil darab pedalaman antara vektor unit nyata sebagai kosinus sudut di antara mereka.
Jika kita mengira hasil darab pedalaman hasil darab tensor mana-mana dua vektor ini dengan keadaan kita mendapat ungkapan yang serupa, kecuali ia mempunyai dalam penyebutnya:
Minat kita pada hasil darab pedalaman tertentu ini akan menjadi jelas tidak lama lagi, tetapi buat masa ini kita hanya memerhatikannya sebagai sebuah formula.
Seterusnya, takrifkan matriks unitari untuk setiap sudut seperti berikut.
Secara intuitif, matriks ini mentransformasi menjadi dan menjadi Untuk menyemak bahawa ini adalah matriks unitari, pemerhatian utama ialah vektor dan adalah ortogon untuk setiap sudut :
Oleh itu, kita dapati bahawa
Kita boleh menulis matriks ini secara eksplisit sebagai
Ini adalah contoh matriks putaran, dan khususnya ia memutar vektor dua dimensi dengan entri nombor nyata sebanyak sudut mengelilingi titik asal. Jika kita mengikut konvensyen standard untuk penamaan dan pemparametrean putaran pelbagai bentuk, kita mempunyai di mana
Perihalan strategi
Sekarang kita boleh menerangkan strategi kuantum.
-
Persediaan: Alice dan Bob memulakan permainan dengan berkongsi satu e-bit: Alice memegang qubit Bob memegang qubit dan bersama-sama dua qubit berada dalam keadaan .
-
Tindakan Alice:
- Jika Alice menerima soalan dia menerapkan pada qubitnya
- Jika Alice menerima soalan dia menerapkan pada qubitnya
Operasi yang Alice lakukan pada boleh diterangkan secara alternatif seperti ini:
Selepas Alice menerapkan operasi ini, dia mengukur dengan pengukuran asas standard dan menetapkan jawapannya sebagai hasil pengukuran.
-
Tindakan Bob:
- Jika Bob menerima soalan dia menerapkan pada qubitnya
- Jika Bob menerima soalan dia menerapkan pada qubitnya
Seperti yang kita lakukan untuk Alice, kita boleh menyatakan operasi Bob pada seperti ini:
Selepas Bob menerapkan operasi ini, dia mengukur dengan pengukuran asas standard dan menetapkan jawapannya sebagai hasil pengukuran.
Berikut ialah gambar rajah litar kuantum yang menerangkan strategi ini:

Dalam gambar rajah ini kita melihat dua get terkawal biasa, satu untuk di bahagian atas dan satu untuk di bahagian bawah. Kita juga mempunyai dua get yang kelihatan seperti get terkawal, satu untuk di bahagian atas dan satu untuk di bahagian bawah, kecuali bulatan yang mewakili kawalan tidak diisi. Ini menandakan jenis get terkawal yang berbeza di mana get dilakukan jika kawalan ditetapkan kepada (dan bukannya seperti get terkawal biasa). Jadi, secara berkesan, Bob melakukan pada qubitnya jika dan jika dan Alice melakukan pada qubitnya jika dan jika yang konsisten dengan perihalan protokol dalam kata-kata di atas.
Ia masih perlu ditentukan seberapa baik strategi Alice dan Bob ini berfungsi. Kita akan melakukan ini dengan melalui empat pasangan soalan yang mungkin satu persatu.
Analisis kes demi kes
-
Kes 1:
Dalam kes ini Alice melakukan pada qubitnya dan Bob melakukan pada qubitnya, jadi keadaan dua qubit selepas mereka melakukan operasi mereka ialah
Kebarangkalian untuk keempat-empat pasangan jawapan yang mungkin adalah seperti berikut.
Kita kemudiannya boleh mendapatkan kebarangkalian bahawa dan dengan menjumlahkan.
Untuk pasangan soalan Alice dan Bob menang jika dan oleh itu mereka menang dalam kes ini dengan kebarangkalian
-
Kes 2:
Dalam kes ini Alice melakukan pada qubitnya dan Bob melakukan pada qubitnya, jadi keadaan dua qubit selepas mereka melakukan operasi mereka ialah
Kebarangkalian untuk keempat-empat pasangan jawapan yang mungkin adalah seperti berikut.
Sekali lagi, kita boleh mendapatkan kebarangkalian bahawa dan dengan menjumlahkan.
Untuk pasangan soalan Alice dan Bob menang jika dan oleh itu mereka menang dalam kes ini dengan kebarangkalian
-
Kes 3:
Dalam kes ini Alice melakukan pada qubitnya dan Bob melakukan pada qubitnya, jadi keadaan dua qubit selepas mereka melakukan operasi mereka ialah
Kebarangkalian untuk keempat-empat pasangan jawapan yang mungkin adalah seperti berikut.
Kita dapati, sekali lagi, bahawa kebarangkalian bahawa dan adalah seperti berikut.
Untuk pasangan soalan Alice dan Bob menang jika jadi mereka menang dalam kes ini dengan kebarangkalian
-
Kes 4:
Kes terakhir agak berbeza, seperti yang mungkin kita jangkakan kerana syarat kemenangan berbeza dalam kes ini. Apabila dan kedua-duanya Alice dan Bob menang apabila dan adalah berbeza. Dalam kes ini Alice melakukan pada qubitnya dan Bob melakukan pada qubitnya, jadi keadaan dua qubit selepas mereka melakukan operasi mereka ialah
Kebarangkalian untuk keempat-empat pasangan jawapan yang mungkin adalah seperti berikut.
Kebarangkalian telah bertukar tempat secara berkesan berbanding tiga kes yang lain. Kita mendapat kebarangkalian bahawa dan dengan menjumlahkan.
Untuk pasangan soalan Alice dan Bob menang jika dan oleh itu mereka menang dalam kes ini dengan kebarangkalian
Mereka menang dalam setiap kes dengan kebarangkalian yang sama:
Ini oleh itu adalah kebarangkalian mereka menang secara keseluruhannya. Itu jauh lebih baik daripada mana-mana strategi klasik yang boleh dilakukan untuk permainan ini; strategi klasik mempunyai kebarangkalian kemenangan yang terhad kepada Dan itulah yang menjadikan ini contoh yang sangat menarik.
Ini kebetulan merupakan kebarangkalian kemenangan optimum untuk strategi kuantum; kita tidak boleh melakukan lebih baik daripada ini, tidak kira keadaan terjala atau pengukuran mana yang kita pilih. Fakta ini dikenali sebagai ketaksamaan Tsirelson, dinamakan sempena Boris Tsirelson yang pertama kali membuktikannya — dan yang pertama kali menerangkan eksperimen CHSH sebagai permainan.
Gambaran geometri
Adalah mungkin untuk memikirkan strategi yang diterangkan di atas secara geometri, yang mungkin membantu untuk memahami hubungan antara pelbagai sudut yang dipilih untuk operasi Alice dan Bob.
Apa yang Alice lakukan secara berkesan ialah memilih sudut bergantung pada soalannya dan kemudian menerapkan pada qubitnya dan mengukur. Begitu juga, Bob memilih sudut bergantung pada dan kemudian dia menerapkan pada qubitnya dan mengukur. Kita telah memilih dan seperti berikut.
Buat masa ini, walau bagaimanapun, mari kita ambil dan sebagai sewenang-wenangnya. Dengan memilih Alice secara berkesan mentakrifkan asas ortonormal vektor yang kelihatan seperti ini:

Bob melakukan perkara yang sama, kecuali sudutnya ialah :

Warna vektor sepadan dengan jawapan Alice dan Bob: biru untuk dan merah untuk
Sekarang, jika kita menggabungkan dan kita mendapat formula
ini berlaku untuk semua nombor nyata dan
Mengikut jenis analisis yang sama yang kita lalui di atas, tetapi dengan dan sebagai pemboleh ubah, kita dapati ini:
Kita menyimpulkan dua formula ini:
Persamaan-persamaan ini boleh dikaitkan dengan gambar rajah di atas dengan membayangkan kita bertindih asas-asas yang dipilih oleh Alice dan Bob.
Teroka strategi
Apabila Alice dan Bob memilih dan dan dengan menindih asas mereka kita mendapat gambar rajah ini:

Sudut antara vektor merah ialah yang sama dengan sudut antara dua vektor biru. Kebarangkalian bahawa hasil Alice dan Bob bersetuju ialah kosinus-kuasa-dua sudut ini,
manakala kebarangkalian mereka tidak bersetuju ialah sinus-kuasa-dua sudut ini,
Apabila Alice dan Bob memilih dan dan dengan menindih asas mereka kita mendapat gambar rajah ini:

Sudut antara vektor merah sekali lagi ialah begitu juga sudut antara vektor biru. Kebarangkalian bahawa hasil Alice dan Bob bersetuju sekali lagi ialah kosinus-kuasa-dua sudut ini,
manakala kebarangkalian mereka tidak bersetuju ialah sinus-kuasa-dua sudut ini,
Apabila Alice dan Bob memilih dan dan dengan menindih asas mereka kita mendapat gambar rajah ini:

Asas telah berubah tetapi sudut tidak berubah — sekali lagi sudut antara vektor dengan warna yang sama ialah Kebarangkalian bahawa hasil Alice dan Bob bersetuju ialah
dan kebarangkalian mereka tidak bersetuju ialah
Apabila Alice dan Bob memilih dan Apabila kita menindih asas mereka, kita nampak sesuatu yang berbeza telah berlaku:

Disebabkan cara sudut dipilih, kali ini sudut antara vektor yang mempunyai warna yang sama ialah dan bukannya Kebarangkalian bahawa hasil Alice dan Bob bersetuju masih merupakan kosinus-kuasa-dua sudut ini, tetapi kali ini nilainya ialah
Kebarangkalian hasil tidak bersetuju ialah sinus-kuasa-dua sudut ini, yang dalam kes ini ialah:
Catatan
Idea asas eksperimen seperti permainan CHSH, di mana jalinan menghasilkan keputusan statistik yang tidak konsisten dengan penaakulan klasik semata-mata, adalah daripada John Bell, yang namanya diabadikan dalam keadaan Bell. Atas sebab ini, orang sering merujuk kepada eksperimen jenis ini sebagai ujian Bell. Kadang-kadang orang juga merujuk kepada teorem Bell, yang boleh diformulasikan dalam pelbagai cara — tetapi intipatinya ialah mekanik kuantum tidak serasi dengan apa yang dipanggil teori pemboleh ubah tersembunyi setempat. Permainan CHSH ialah contoh ujian Bell yang sangat bersih dan mudah, dan boleh dilihat sebagai bukti, atau demonstrasi, teorem Bell.
Permainan CHSH menawarkan cara untuk menguji secara eksperimental teori maklumat kuantum. Kita boleh melakukan eksperimen yang melaksanakan permainan CHSH, dan menguji jenis strategi berdasarkan jalinan yang diterangkan di atas. Ini memberi kita keyakinan yang tinggi bahawa jalinan adalah nyata — dan tidak seperti cara-cara yang kadangkala kabur atau puitis yang kita kemukakan untuk menerangkan jalinan, permainan CHSH memberi kita cara yang konkrit dan boleh diuji untuk memerhati jalinan. Hadiah Nobel Fizik 2022 mengakui kepentingan bidang kerja ini: hadiah tersebut diberikan kepada Alain Aspect, John Clauser (C dalam CHSH), dan Anton Zeilinger, kerana memerhati jalinan melalui ujian Bell pada foton yang terjala.
Pelaksanaan Qiskit
Kita boleh melaksanakan permainan CHSH, bersama-sama dengan strategi kuantum yang ditakrifkan di atas, dalam Qiskit seperti berikut.
Pertama, berikut ialah definisi permainan itu sendiri, yang membenarkan strategi sewenang-wenang dimasukkan sebagai argumen.
def chsh_game(strategy):
# This function runs the CHSH game, using the strategy (a function
# from two bits to two bits), returning 1 for a win and 0 for a loss.
# Choose x and y randomly
x, y = random.randint(0, 1), random.randint(0, 1)
# Use the strategy to determine a and b
a, b = strategy(x, y)
# Decide if the strategy wins or loses
if (a != b) == (x & y):
return 1 # Win
return 0 # Lose
Sekarang kita akan mencipta fungsi yang menghasilkan litar bergantung pada soalan untuk Alice dan Bob. Kita akan membiarkan qubit mempunyai nama lalai mereka untuk kesederhanaan, dan kita akan menggunakan get terbina dalam untuk tindakan Alice dan Bob.
def chsh_circuit(x, y):
# This function creates a `QuantumCircuit` implementing the quantum
# strategy described above (including the e-bit preparation).
qc = QuantumCircuit(2, 2)
# Prepare an e-bit
qc.h(0)
qc.cx(0, 1)
qc.barrier()
# Alice's actions
if x == 0:
qc.ry(0, 0)
else:
qc.ry(-pi / 2, 0)
qc.measure(0, 0)
# Bob's actions
if y == 0:
qc.ry(-pi / 4, 1)
else:
qc.ry(pi / 4, 1)
qc.measure(1, 1)
return qc
Berikut ialah keempat-empat litar yang mungkin, bergantung pada soalan mana yang ditanya.
# Draw the four possible circuits
print("(x,y) = (0,0)")
display(chsh_circuit(0, 0).draw(output="mpl"))
print("(x,y) = (0,1)")
display(chsh_circuit(0, 1).draw(output="mpl"))
print("(x,y) = (1,0)")
display(chsh_circuit(1, 0).draw(output="mpl"))
print("(x,y) = (1,1)")
display(chsh_circuit(1, 1).draw(output="mpl"))
(x,y) = (0,0)

(x,y) = (0,1)

(x,y) = (1,0)

(x,y) = (1,1)

Sekarang kita akan mencipta tugas menggunakan simulator Aer yang menjalankan litar sekali untuk pasangan input yang diberikan.
def quantum_strategy(x, y):
# This function runs the appropriate quantum circuit defined above
# one time and returns the measurement results
# Setting `shots=1` to run the circuit once
result = AerSimulator().run(chsh_circuit(x, y), shots=1).result()
statistics = result.get_counts()
# Determine the output bits and return them
bits = list(statistics.keys())[0]
a, b = bits[0], bits[1]
return a, b
Akhir sekali, kita akan memainkan permainan 1000 kali dan mengira pecahan yang dimenangi oleh strategi tersebut.
NUM_GAMES = 1000
TOTAL_SCORE = 0
for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(quantum_strategy)
print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.867
Kita juga boleh mentakrifkan strategi klasik dan melihat seberapa baik ia berfungsi. Ini hanyalah satu strategi — yang lain boleh diuji dengan menukar kod — tetapi ia adalah antara strategi klasik yang optimum.
def classical_strategy(x, y):
# This function implements just one example of an optimal classical
# strategy for the CHSH game. Other classical strategies can be
# implemented by changing the bit values assigned to a and b.
# Alice's answer
if x == 0:
a = 0
elif x == 1:
a = 1
# Bob's answer
if y == 0:
b = 1
elif y == 1:
b = 0
return a, b
Sekali lagi mari kita mainkan permainan 1000 kali untuk melihat seberapa baik ia berfungsi.
NUM_GAMES = 1000
TOTAL_SCORE = 0
for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(classical_strategy)
print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.747
Walaupun terdapat kerawakan yang terlibat, statistik sangat tidak mungkin menyimpang terlalu jauh selepas 1000 pusingan. Strategi kuantum menang kira-kira 85% daripada masa manakala strategi klasik tidak boleh menang lebih daripada kira-kira 75% daripada masa.