ธรรมชาติของสถานะควอนตัม: ตัวแปรซ่อนเร้นกับอสมการของเบลล์
สำหรับโมดูล Qiskit in Classrooms นี้ นักเรียนต้องมีสภาพแวดล้อม Python ที่ใช้งานได้พร้อมแพ็กเกจต่อไปนี้:
qiskitv2.1.0 หรือใหม่กว่าqiskit-ibm-runtimev0.40.1 หรือใหม่กว่าqiskit-aerv0.17.0 หรือใหม่กว่าqiskit.visualizationnumpypylatexenc
สำหรับการตั้งค่าและติดตั้งแพ็กเกจข้างต้น ดูคู่มือ ติดตั้ง Qiskit เพื่อรันงานบนคอมพิวเตอร์ควอนตัมจริง นักเรียนจะต้องสร้างบัญชีกับ IBM Quantum® โดยทำตามขั้นตอนในคู่มือ ตั้งค่าบัญชี IBM Cloud ของคุณ
โมดูลนี้ผ่านการทดสอบและใช้เวลา QPU 12 วินาที ตัวเลขนี้เป็นการประมาณเท่านั้น การใช้งานจริงของคุณอาจแตกต่างออกไป
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
ดูวิดีโอแนะนำโมดูลโดย Dr. Katie McCormick ด้านล่าง หรือคลิก ที่นี่ เพื่อดูบน YouTube
พื้นฐาน
ในการคำนวณหลาย ๆ อย่างในกลศาสตร์ควอนตัม เราเริ่มต้นด้วยสถานะที่ทราบของระบบ ซึ่งโดยทั่วไปจะทราบได้จากการวัด วันนี้เราต้องการตอบคำถามว่า "สามารถพูดอะไรได้บ้างเกี่ยวกับสถานะของอนุภาคก่อนที่จะมีการวัดใด ๆ?" คำถามเสริมที่ชัดเจนคือ "เราจะรู้ได้อย่างไร ถ้าเราไม่อนุญาตให้วัด?"
คำถามนี้ย้อนกลับไปถึงยุคแรกเริ่มของกลศาสตร์ควอนตัม บรรดาผู้บุกเบิกในสาขาวิชาแบ่งเป็นกลุ่ม โดยไอน์สไตน์และคนอื่น ๆ อีกมากบอกว่าอนุภาคอยู่ในสถานะที่ไม่ทราบก่อนการวัด ส่วนคนอื่น ๆ โดยเฉพาะ Max Born และต่อมา Niels Bohr ยืนยันอย่างสุดโต่งยิ่งกว่า โดยบอกว่าสถานะของอนุภาคนั้นธรรมชาติยังไม่กำหนดไว้จริง ๆ ก่อนการวัด ไม่ใช่แค่ไม่รู้ แต่ไม่ได้ถูกนิยามทางกายภาพ จากนั้นการวัดจะยุบอนุภาคแบบความน่าจะเป็นไปสู่สถานะที่แน่นอน ไอน์สไตน์ไม่พอใจกับคำอธิบายนี้ จึงแสดงความเห็นอย่างโด่งดังว่า "Gott würfelt nicht" ซึ่งแปลโดยประมาณว่า "พระเจ้าไม่เล่นลูกเต๋า"
หลายทศวรรษหลังจากที่ความขัดแย้งนี้เกิดขึ้น หลายคนคิดว่าอาจไม่มีคำตอบ หรืออาจเป็นเรื่องของมุมมอง แต่แล้วในปี 1964 John Bell นักฟิสิกส์จากไอร์แลนด์เหนือ เขียนเอกสารที่สำรวจสถิติของการทดลองบางอย่างที่สามารถตอบคำถามนี้ได้อย่างแน่ชัด เขาแสดงให้เห็นว่าในการทดสอบเฉพาะอย่างหนึ่ง จะได้ชุดสถิติหนึ่งจากสถานะควอนตัมที่กำหนด (แต่ไม่ทราบ) และชุดสถิติต่างออกไปจากสถานะควอนตัมที่ธรรมชาติยังไม่กำหนด
ในช่วงเวลาที่เขียนเอกสารของเบลล์ การทดสอบเชิงทดลองที่เกี่ยวข้องกับสถิติดังกล่าวเข้าไม่ถึงสำหรับทุกคนยกเว้นนักวิจัยแถวหน้าสุดของฟิสิกส์ แต่ปัจจุบัน IBM Quantum ทำให้นักเรียนทั่วโลกสามารถใช้อุปกรณ์ควอนตัมจริงจากระยะไกลผ่านคลาวด์ได้ฟรี เพื่อสำรวจธรรมชาติของสถานะควอนตัม นั่นคือสิ่งที่คุณจะทำในวันนี้
การตั้งค่าของการทดลองทางความคิด: การพัวพันของสปิน
มีกระบวนการที่อนุภาคไม่มีสปินสลายตัวเป็นสองอนุภาคที่แต่ละอนุภาคมีสปิน เนื่องจากสปินเป็นชนิดหนึ่งของโมเมนตัมเชิงมุม กฎการอนุรักษ์โมเมนตัมเชิงมุมจะชี้ว่าอนุภาคสองตัวที่ออกมาต้องมีสปินที่ต่อต้านกันพอดี ซึ่งสังเกตได้จากการทดลองจริง
ตัวอย่าง: pi meson ที่เป็นกลางบางครั้งสลายตัวเป็นโพซิตรอนและอิเล็กตรอน: ไม่ต้องกังวลถ้าไม่รู้ว่าอนุภาคเหล่านั้นคืออะไร และไม่ต้องกังวลถ้ารู้ดีจนทราบว่าการสลายตัวประเภทนี้ค่อนข้างไม่น่าจะเกิด แค่รู้ว่าถ้าอนุภาคตัวหนึ่งที่ออกมามีสปินขึ้น อีกตัวต้องมีสปินลง และกลับกัน แน่นอนว่าไม่มีอะไรพิเศษเกี่ยวกับ "ขึ้น" และ "ลง" การต่อต้านแบบเดียวกันนี้สังเกตได้ถ้าวัดตามที่เรามักเรียกว่า หรือ การสลายตัวนี้เป็นบริบทที่น่าสนใจสำหรับเรา เพราะเราสามารถข้ามคำถามเกี่ยวกับการวัดที่เกิดขึ้นในอดีต โพซิตรอนและอิเล็กตรอนไม่ได้มีอยู่เลยจนกระทั่งถึงช่วงเวลาของการสลายตัว
เราสามารถให้ mesons สลายตัวและสังเกตการเบี่ยงเบนของอนุภาคที่ออกมาภายใต้อิทธิพลของสนามแม่เหล็กที่ไม่สม่ำเสมอ สนามที่ไม่สม่ำเสมอที่ใช้เบี่ยงเบนสปินมักเรียกว่าอุปกรณ์ Stern-Gerlach ตามชื่อนักวิจัยที่ใช้มันเป็นคนแรกเพื่อ (โดยบังเอิญ) รวบรวมหลักฐานการมีอยู่ของสปินเชิงกลศาสตร์ควอนตัม โปรดทราบว่าเรื่องราวที่นี่ซับซ้อนกว่าการทดลองดั้งเดิม เนื่องจากอิเล็กตรอนและโพซิตรอนมีประจุด้วย (ต่างจากอะตอมเงินในการทดลอง Stern Gerlach) แต่เราทราบว่าอนุภาคที่มีประจุเคลื่อนที่อย่างไรในสนามแม่เหล็ก และเราสามารถหักออกจากเอฟเฟกต์นั้นได้ ในสิ่งที่ตามมา เราจะสมมติว่าการเบี่ยงเบนที่ใช้ในการคำนวณของเรามาจากสปินของอนุภาค ไม่ใช่ประจุ ดังนั้นสำหรับจุดประสงค์ของเรา ไม่สำคัญว่าผู้สังเกตคนไหนได้โพซิตรอนและคนไหนได้อิเล็กตรอน การตั้งค่าการทดลองมีลักษณะดังนี้:

เมื่อ meson สลายตัว อิเล็กตรอนถูกดีดออกในทิศทางหนึ่ง และโพซิตรอนในอีกทิศทาง อนุภาคทั้งสองตัวจะเดินทางผ่านสนามแม่เหล็กที่ไม่สม่ำเสมอ ทำให้เบี่ยงเบนไปในทิศทางของสนามแม่เหล็ก หรือตรงข้ามสนามแม่เหล็ก
ถ้าเรามีแหล่งกำเนิด meson จำนวนมาก เราสามารถรวบรวมสถิติเกี่ยวกับเรื่องนี้ได้ ถ้าผู้สังเกตทางซ้ายและทางขวา (เรียกว่า Lucas และ Rihanna ตามลำดับ) วัดตามแกนเดิมเสมอ สถิตินี้จะไม่น่าสนใจ: ทุกครั้งที่คนหนึ่งวัดขึ้น อีกคนวัดลง ทุกครั้งที่คนหนึ่งวัดเข้าหน้า อีกคนจะวัดออกหน้า และอื่น ๆ แต่ถ้าผู้เล่นเป็นอิสระที่จะวัดสปินตามทิศทางใดก็ได้ที่ต้องการ เราอาจพบสิ่งที่น่าสนใจกว่านี้
การทดลองที่อธิบายข้างต้น ซึ่งอนุภาคบินออกไปพร้อมโมเมนตัมเชิงมุมสปินที่วัดโดยผู้สังเกตสองคน ถูกเสนอครั้งแรกโดย Einstein, Podolsky และ Rosen (EPR) ในเอกสารนี้ และบางครั้งเรียกว่า "การทดลอง EPR"
ตัวเลือกของเรา
ขอระบุมุมมองทางประวัติศาสตร์สองอย่างซ้ำอีกครั้งเพื่อความชัดเจน:
ตัวเลือกที่ 1 (ไอน์สไตน์): สปินทั้งสอง (อิเล็กตรอนและโพซิตรอน) ถูกกำหนดแล้ว ในความหมายที่ว่าผลลัพธ์ของการวัดใด ๆ ตามแกนใด ๆ ถูกกำหนดไว้ล่วงหน้าโดยธรรมชาติ แม้เราจะไม่รู้ว่าเป็นอะไร อาจนึกถึงสิ่งนี้ว่าสปินมีทิศทางจริง ๆ ที่กำหนดไว้ในอวกาศ ซึ่งเราไม่รู้ แต่มันมีอยู่ หรืออาจนึกถึงว่าเป็นชุดข้อมูลหรือคำสั่งที่กำหนดผลลัพธ์ของการวัดตามแกน , , หรืออะไรก็ตามระหว่างนั้น การวัดสปินของโพซิตรอน (เช่น ตามแกน z) บังคับให้มันจัดทิศทางและจัดเรียงในทิศทาง z หรือ -z ซึ่งไม่มีผลเชิงสาเหตุต่อสปินของอิเล็กตรอน แม้ว่าเราทราบว่าสปินของอิเล็กตรอนเริ่มต้นตรงข้ามกับสปินของโพซิตรอน ดังนั้นถ้าสปินของโพซิตรอนวัดได้ตาม +z สปินของอิเล็กตรอนจะวัดตาม -z นอกจากเงื่อนไขเริ่มต้นของคำสั่งที่อนุรักษ์โมเมนตัมเชิงมุม (สปินต่อต้านกัน) ไม่มีการเชื่อมต่อระหว่างสปินทั้งสอง ตัวเลือกนี้บางครั้งเรียกว่า "ตัวแปรซ่อนเร้น" หมายความว่า การฉายตามแกนต่าง ๆ ถูกกำหนดไว้ แต่ซ่อนจากเรา
ตัวเลือกที่ 2 (Born): สปินทั้งสองอยู่ในสถานะที่ยังไม่กำหนดในสถานะเริ่มต้น... ไม่ใช่แค่ไม่รู้ แต่ไม่ได้ถูกนิยามทางกายภาพ ไม่มีทิศทางที่แน่นอนหรือคำสั่งเกี่ยวกับผลการทดลอง จนกว่าจะถูกวัด การวัดสปินของโพซิตรอน "ยุบ" พื้นที่ของความเป็นไปได้ทั้งหมดลงสู่สถานะที่กำหนดเดี่ยว ไม่ว่าจะเป็นตาม +z หรือ -z การวัดโพซิตรอนนี้บังคับให้สปินของอิเล็กตรอนยุบเป็นการฉายที่กำหนดไว้ตาม z ด้วย ตรงข้ามกับของโพซิตรอนพอดี เอฟเฟกต์นี้เกิดขึ้นกระจายตัวในอวกาศระหว่างโพซิตรอนและอิเล็กตรอน สิ่งนี้ถูกเรียกว่า "การกระทำผีปีศาจจากระยะไกล" แต่อาจเรียกอย่างเรียบง่ายกว่าว่า "ฟิสิกส์แบบไม่ท้องถิ่น"
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
การแยกแยะระหว่างตัวเลือกของไอน์สไตน์กับ Born ในเชิงทดลองคงดีมาก มีการทดลองอะไรบ้างที่จะให้ผลลัพธ์เดิมไม่ว่าตัวเลือกไหนจะเป็นจริง? คุณคิดการทดลองที่จะให้ผลต่างกันสำหรับสองตัวเลือกได้ไหม? หมายเหตุ คงน่าประทับใจมากถ้าคุณคิดการทดลองที่จะให้ผลต่างกันระหว่างตัวเลือกของไอน์สไตน์กับ Born ได้ เพราะมนุษย์ใช้เวลาหลายทศวรรษถึงจะคิดออก
คำตอบ:
ยึดกับการทดลองที่อธิบายไว้จนถึงตอนนี้ (กล่าวคือ สปินสุทธิเป็นศูนย์โดยโพซิตรอนและอิเล็กตรอนต่อต้านกัน) การวัดสปินทั้งสองตาม , หรือ จะให้เครื่องหมายตรงข้ามเสมอเนื่องจากการอนุรักษ์โมเมนตัมเชิงมุม โดยไม่ขึ้นกับว่าตัวเลือกไหนถูก การวัดสปินของอนุภาคตัวหนึ่ง (เช่น อิเล็กตรอน) ตามทิศทางหนึ่ง (เช่น ) หมายความว่าสปินของอนุภาคอีกตัว โพซิตรอน จะวัดตาม ถ้าแทนที่คุณวัดสปินของโพซิตรอนตามทิศทาง มันจะมีโอกาสเท่ากันที่จะออกมาเป็น หรือ ซึ่งอาจเป็นเพราะนั่นคือสิ่งที่คำสั่งซ่อนเร้นบอก (ตัวเลือกที่ 1 ของไอน์สไตน์) หรือเพราะการกระจายความน่าจะเป็นของสปินโพซิตรอนอัปเดตหลังจากวัดสปินอิเล็กตรอน และการกระจายความน่าจะเป็นใหม่สอดคล้องกับการแบ่ง 50-50 ระหว่าง (ตัวเลือกที่ 2 ของ Born) ประเด็นเหล่านี้อธิบายละเอียดเพิ่มเติมด้านล่าง
คำตอบแตกต่างเล็กน้อยถ้าคุณพิจารณาการสลายตัวของอนุภาคที่มีสปิน-1 ทำให้อนุภาคสองตัวที่ออกมา (เช่น โพซิตรอนและอิเล็กตรอน) ต้องมีสปินจัดในทิศทางเดียวกัน แทนที่จะต่อต้านกัน ถ้าตัวหนึ่งถูกวัดตาม การวัดอนุภาคอีกตัวตามแกน ต้องให้ ด้วย เป็นต้น เช่นเดิม ผลนี้อาจมาจากตัวเลือกใดก็ได้
ส่วนที่เหลือของบทเรียนนี้อุทิศให้กับการทดลองที่สามารถแยกแยะระหว่างตัวเลือกของไอน์สไตน์และ Born ดังนั้นเราจะไม่ลงรายละเอียดมากที่นี่ แต่ส่วนหนึ่งของเคล็ดลับคือการวัดอนุภาคสองตัวตามทิศทางต่างกัน (เช่น และ หรือแม้แต่ทิศทางระหว่างแกน Cartesian ดั้งเดิม) ส่วนที่เหลือมาจากการพิจารณาอย่างรอบคอบถึงความน่าจะเป็นที่แม่นยำของการได้ผลลัพธ์ต่างกันตามการทำนายของกลศาสตร์ควอนตัมและของข้อมูลคลาสสิกในตัวแปรซ่อนเร้น
ในทั้งสองตัวเลือก ถ้าผู้สังเกตทั้งสอง Lucas และ Rihanna วัดตามแกนเดียวกัน เราจะคาดว่าจะได้สปินต่อต้านกัน ไม่ว่าตัวเลือกไหนจะเป็นจริง เพื่อดูว่าเป็นเพราะอะไร พิจารณาแผนภาพด้านล่าง

รูปข้างต้นแสดงตัวเลือกของไอน์สไตน์ ทิศทางของสปินตรงข้ามและถูกกำหนดแล้ว ถ้าวัดตามแกน ตัวหนึ่งจะอยู่ตาม และอีกตัวตาม เราไม่มีเหตุผลที่จะสมมติว่าโพซิตรอนจะอยู่ตาม และอิเล็กตรอนตาม รูปเพียงแสดงว่าสปินจะถูกวัดให้อยู่ในทิศทางตรงข้ามกัน ในความเป็นจริง สปินที่กำหนดไม่จำเป็นต้องมีส่วนประกอบตามทิศทางที่วัดในที่สุดในกรณีของตัวเลือกไอน์สไตน์ ข้อความที่อ่อนแอที่สุดของตัวเลือกไอน์สไตน์คือมีชุดคำสั่งบางชุดที่เก็บอยู่ในสปินที่กำหนดผลลัพธ์ของการวัดเมื่อวัดตามแกนใด ๆ เราไม่จำเป็นต้องนึกภาพว่าคำสั่งเหล่านี้อยู่ในรูปแบบของเวกเตอร์ง่าย ๆ (ดูแผนภาพด้านล่าง) เราจะกลับมาที่เรื่องนี้ภายหลัง

รูปด้านล่างแสดงตัวเลือกของ Born ซึ่งทิศทางของสปินโพซิตรอนและอิเล็กตรอนกระจายออกในการกระจายความน่าจะเป็นและไม่มีทิศทางที่แน่นอน อย่าอ่านมากเกินไปในรูปร่างของการกระจาย สปินแต่ละตัวสามารถมีความน่าจะเป็นที่ไม่ใช่ศูนย์ที่จะชี้ไปในทิศทางใด ๆ ตราบใดที่มันตรงข้ามกัน เราเพียงแค่วาดเป็นเศษส่วนของวงกลมเพื่อให้มองเห็นได้สำหรับการสนทนา โปรดสังเกตว่าในกรณีของตัวเลือก Born ยังคงเป็นความจริงที่ว่าโมเมนตัมเชิงมุมต้องได้รับการอนุรักษ์ ดังนั้นถ้าคลื่นความน่าจะเป็นตัวหนึ่ง "ยุบ" ให้สปินชี้ตาม อีกตัวจะชี้ตาม และเบี่ยงเบนในทิศทางตรงข้าม ตัวเลือกดูเหมือนกัน

แต่จะเกิดอะไรขึ้นเมื่อผู้สังเกต L และ R สามารถวัดตามแกนใดก็ได้จากสามแกน โดยแต่ละคู่ห่างกัน 120 องศา ดังแสดงในรูปที่ 4 & 5 ผู้สังเกตแต่ละคนสามารถตัดสินใจโดยสุ่มว่าจะวัดสปินตามแกนใด (a, b หรือ c) ทั้งสองไม่จำเป็นต้องวัดตามแกนเดียวกัน เมื่อผู้สังเกตแต่ละคนวัด อาจพบการฉายเป็นบวกตามแกนที่เลือก หรืออาจพบการฉายเป็นลบ ตัวอย่างเช่น Lucas และ Rihanna อาจวัด +a และ -b หรือ +b และ +c โปรดสังเกตว่าถ้าเผอิญเลือกวัดตามแกนเดียวกัน พวกเขาต้องได้เครื่องหมายตรงข้ามในการฉาย: +a และ -a, +b และ -b หรือ +c และ -c ไม่สามารถทั้งคู่พบ เช่น +a ได้ ในส่วนถัดไป เราจะคำนวณความน่าจะเป็นที่ Lucas และ Rihanna จะได้เครื่องหมายเดียวกันบนแกนที่วัด (++ หรือ --) และเครื่องหมายตรงข้าม (+- หรือ -+)

รูปสองรูปข้างต้นแสดงการตีความตัวแปรซ่อนเร้นที่เป็นไปได้ในสถานการณ์การวัดสามแกนใหม่นี้ กล่าวคือ สปินถูกกำหนดแล้วเป็นเวกเตอร์ หรือมีชุดคำสั่งทางกายภาพฝังอยู่ในระบบเพื่อให้ผลลัพธ์ของการวัดทั้งหมดที่เป็นไปได้ถูกกำหนดไว้ล่วงหน้า แม้ว่านักทดลองจะไม่สามารถรู้ได้ก่อนการวัด ทางเลือกแสดงไว้ด้านล่าง มีการกระจายความน่าจะเป็นของผลลัพธ์ และการกระจายนี้สามารถบอกเราบางอย่างเกี่ยวกับความน่าจะเป็นของผลลัพธ์การวัดต่าง ๆ แต่ผลลัพธ์ยังไม่ได้ถูกกำหนดโดยธรรมชาติก่อนการวัด

เราสามารถถามตัวเองว่า "ผู้เล่นสองคนควรพบเครื่องหมายเดียวกันของการฉายสปินบ่อยแค่ไหน?" กล่าวคือ เราไม่ได้บันทึกว่าวัดตามแกนใด เราแค่บันทึกว่าพบเครื่องหมายเดียวกันหรือต่างกัน ไม่ชัดเจนว่าตัวเลือกของไอน์สไตน์กับ Born จะให้ผลลัพธ์เดียวกันในรูปแบบการวัดที่ซับซ้อนกว่านี้หรือไม่ แต่ควรชัดเจนจากรูปที่ 4 และ 5 ว่า ที่จะมีความแตกต่าง สำหรับกรณีที่แสดงในตัวเลือกของไอน์สไตน์ การวัดการฉายของสปิน บนแกน จะให้ แน่นอน และการฉายของสปิน บนแกน จะให้ (แค่เล็กน้อย) แต่ในตัวเลือกของ Born ความเป็นไปได้กว้างมาก เป็นความจริงที่โมเมนตัมเชิงมุมยังคงได้รับการอนุรักษ์ แต่เนื่องจากสนามแม่เหล็กทั้งสองไม่ได้หันตามแกนเดียวกัน เราบังคับให้อนุภาคอยู่ในสถานการณ์ที่ต้องยุบบนแกนต่างกัน (ผ่านการโต้ตอบกับสนาม) ในส่วนถัดไป เราจะใช้กลศาสตร์ควอนตัมเพื่อกำหนดว่าความน่าจะเป็นควรเป็นเท่าใด ตามตัวเลือกของ Born ที่ Lucas และ Rihanna จะได้เครื่องหมายเดียวกันบนแกนที่วัด (++ หรือ --) และความน่าจะเป็นที่จะได้เครื่องหมายตรงข้าม (+- หรือ -+)
การทำนาย
ตัวเลือกของไอน์สไตน์ (ตัวแปรซ่อนเร้น) ทำนายอะไร?
ถ้าตัวเลือกของไอน์สไตน์เป็นจริง คู่ใด ๆ ของ และ จะมีชุดส่วนประกอบเวกเตอร์สำหรับสปิน ตัวอย่างเช่น อิเล็กตรอนอาจมีส่วนประกอบ ในกรณีนี้โพซิตรอนต้องมีส่วนประกอบ เราระบุเฉพาะเครื่องหมายของการฉายบนแต่ละแกน ไม่ใช่ขนาด ลองให้การสลายตัว ครั้งจำนวนมากเกิดขึ้น และรวบรวมการวัดเพื่อเติมตารางด้านล่าง
| ประชากร | อนุภาค 1 | อนุภาค 2 |
|---|---|---|
สำหรับแต่ละกรณีในตารางข้างต้น มีตัวเลือก 9 อย่างสำหรับแกนของ Lucas และ Rihanna: , , , , , , , และ จากการอ่านตาราง ความน่าจะเป็นที่ผู้สังเกตสองคนจะวัดได้เครื่องหมายเดียวกันสำหรับแถวที่ 1 และ 8 คือศูนย์ สำหรับแถว 2-7 มี 4 วิธีในการได้เครื่องหมายเดียวกัน ซึ่งเราจะแสดงเฉพาะแถวที่ 2:
เครื่องหมายเดียวกัน: , , , เครื่องหมายตรงข้าม: , , , ,
ดังนั้น ถ้าตัวเลือกของไอน์สไตน์เป็นการตีความที่ถูกต้องของสถานะควอนตัม ความน่าจะเป็นรวมที่รวมจากประชากรทั้งหมดที่เป็นไปได้ของ Lucas และ Rihanna ที่ได้เครื่องหมายเดียวกันของการฉายสปินบนแกนที่เลือกโดยสุ่มคือ: ซึ่งความเท่ากันเกิดขึ้นเฉพาะเมื่อ
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
สำหรับแถวที่ 2 ของตารางข้างต้น เราได้ระบุวิธีทั้งหมดที่ Lucas และ Rihanna สามารถได้เครื่องหมายเดียวกันสำหรับการวัดของพวกเขา และวิธีทั้งหมดที่พวกเขาสามารถได้เครื่องหมายต่างกัน ทำซ้ำสำหรับแถวที่สาม
คำตอบ:
เครื่องหมายเดียวกัน: , , ,
เครื่องหมายตรงข้าม: , , , ,
ตารางข้างต้นอ้างถึง "ประชากร" หมายความว่าเราไม่รู้ว่าธรรมชาติผลิตคำสั่งแต่ละประเภทจำนวนเท่าใด ถ้าการปฏิบัติตัวแปรซ่อนเร้นถูกต้อง แสดงให้เห็นว่าไม่ว่าการกระจายของ ถึง จะเป็นอย่างไร ความน่าจะเป็นของการได้เครื่องหมายเดียวกันจากการวัดจะน้อยกว่าหรือเท่ากับ 4/9 เสมอ
คำตอบ:
ขอเริ่มด้วยการสมมติจำนวนการทดลองทั้งหมดที่คงที่ เพื่อให้ คงที่ โปรดสังเกตว่าในกรณีพิเศษที่ นิพจน์จะลดเหลือ
สมมติว่า หรือ แล้ว
ผลรวมของการทดลองทั้งหมด ยังคงเหมือนเดิม แต่เนื่องจาก หรือ เพิ่มขึ้นจาก 0 ผลรวมของ ถึง ต้องต่ำกว่าเดิม โดยเฉพาะอย่างยิ่ง ผลรวมของ ถึง น้อยกว่า ดังนั้น
รวมทุกกรณีที่เป็นไปได้ เราได้
การทำให้เป็นกรณีทั่วไป
ในการปฏิบัติข้างต้น เราพิจารณาการวัดตามแกนเฉพาะ แน่นอนว่าสามารถวัดตามแกนใดก็ได้ ให้เรียกเวกเตอร์สปินสองตัวของสองอนุภาคว่า และ ให้ เป็นตัวแปรซ่อนเร้นบางตัวเพื่อให้สถานะของระบบสองอนุภาคสอดคล้องกับค่าที่กำหนดไว้ของ ให้ เป็นความหนาแน่นความน่าจะเป็นใน สุดท้าย เราเลือกสัญลักษณ์ และ ให้เป็นผลลัพธ์ที่กำหนดไว้ล่วงหน้าของการวัดที่ทำบนอนุภาคใดก็ได้ (A หรือ B) ตามเวกเตอร์สปินและตัวแปรซ่อนเร้น สำคัญคือ โปรดสังเกตว่า เป็นอิสระจาก และ เป็นอิสระจาก ตอนนี้สามารถตั้งคำถามจำนวนหนึ่งที่เกี่ยวข้องกับความสัมพันธ์ระหว่างการวัดบน A และ B โดยเฉพาะอย่างยิ่ง สามารถถามเกี่ยวกับค่าคาดหวังที่ให้โดย
ตามสมมติฐานมาตรฐานบางประการเกี่ยวกับค่าเหล่านี้ เช่น , และการนอร์มัลไลซ์ตาม สามารถแสดงได้ว่าความสัมพันธ์ระหว่างอนุภาคสองตัวเป็นไปตามความสัมพันธ์
โดยที่ และ คือสถานะสปินของระบบคุณ และ และ คือสถานะสปินอ้างอิง (สถานะสปินอื่น ๆ ที่เป็นไปได้ของระบบ) นี่คือหนึ่งในกลุ่มอสมการทั้งหมดที่รู้จักกันในชื่อ "อสมการเบลล์" เราจะไม่ใช้รูปแบบทั่วไปนี้ที่นี่ แต่จะมุ่งเน้นที่การตั้งค่าการทดลองเฉพาะหนึ่งอย่าง เพื่อให้เราสามารถแมปการตั้งค่านั้นบน Circuit ควอนตัมได้
ตัวเลือกของ Born (กลศาสตร์ควอนตัมแบบไม่กำหนดตายตัว) ทำนายอะไร?
Lucas จะเลือกแกนหนึ่งและพบว่าสปินของอนุภาคหนึ่งอยู่ในทิศทางบวกหรือลบ ไม่ว่าจะได้อะไร ให้เราจัดแกนของเราเพื่อให้แกน เป็นทิศทางนั้น จากนั้นเราสามารถเขียนสถานะเริ่มต้นหลังจากการสลายตัวของ meson และก่อนการวัดใด ๆ ว่า
Rihanna จะวัดสปินของอนุภาคของเธอตามทิศทางอื่นในมุม เทียบกับของ Lucas ตัวดำเนินการสปินตามทิศทางตามอำเภอใจ กำหนดโดย
สถานะลักษณะเฉพาะของตัวดำเนินการนี้คือ
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
ตรวจสอบว่า เป็น eigenstate ของตัวดำเนินการ ข้างต้น และหาค่า eigenvalue
คำตอบ:
โดยใช้ และ เราได้
ซึ่งแสดงให้เห็นว่า เป็น eigenstate และค่า eigenvalue ที่สอดคล้องกันคือ
ความน่าจะเป็นที่ Lucas จะวัดสปินในทิศทางบวกตามแกนที่เขาเลือก Rihanna ก็วัดสปินบวกตามทิศทางที่เธอเลือก คือ
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
ทำแบบเดิมสำหรับ ตรวจสอบว่ามันเท่ากับ ด้วย
คำตอบ:
เมื่อบวกผลลัพธ์เหล่านี้ เราพบว่าความน่าจะเป็นที่เครื่องหมายของแกนที่วัดทั้งสองจะเหมือนกันคือ
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
จะทำอย่างไรเพื่อตรวจสอบคณิตศาสตร์ของผลลัพธ์นี้? เพื่อความชัดเจน เราไม่ได้ขอให้คุณตรวจสอบว่ามันตรงกับธรรมชาติ แค่ต้องการให้แน่ใจว่าไม่มีอะไรผิดพลาดในคณิตศาสตร์ทั้งหมด
คำตอบ:
(1) ทำการคำนวณเดิมสำหรับ เพื่อตรวจสอบการอนุรักษ์ความน่าจะเป็น
(2) ตรวจสอบกรณีที่ทราบ แทนค่า แล้ว สอดคล้องกับผู้สังเกตสองคนที่วัดสปินตามแกนเดียวกัน ซึ่งจะละเมิดการอนุรักษ์โมเมนตัมเชิงมุม ดังนั้นคุณจะคาดว่าความน่าจะเป็นนั้นจะเป็นศูนย์ และจริง ๆ แล้วการแทนค่า ให้
(3) ตรวจสอบกรณีที่ทราบอีกกรณี ลอง ควรได้อะไร ระวัง นั้นด้วย
เราสร้างภาพเฉพาะกรณีที่แกนอยู่ห่างกัน เราจำได้ว่าไม่ว่า Lucas จะได้ทิศทางใด (, หรือ ) เราเรียกทิศทางนั้นว่า แล้ว Rihanna เลือกโดยสุ่มว่าจะวัดตาม , หรือ ถ้าการเลือกของเธอเหมือนกับของ Lucas (ต่างกันแค่เครื่องหมาย) พวกเขาทั้งคู่จะวัดตาม และความน่าจะเป็นที่ Rihanna จะวัด ด้วยเป็นศูนย์ เหตุการณ์นี้ควรเกิดขึ้น 1/3 ของเวลา เนื่องจากการเลือกแกนของ Rihanna เป็นอิสระจากของ Lucas สำหรับตัวเลือกอื่น ๆ Rihanna จะวัดตามแกนที่ห่าง เรเดียนจาก (1/3 ของเวลา) หรือ เรเดียนจาก (1/3 ของเวลา) และแน่นอนว่าตามแกนใด ๆ เหล่านั้น สปินอาจถูกวัดว่าอยู่ในทิศทางบวกหรือลบ ทำให้เราได้ความน่าจะเป็นรวมที่ Lucas และ Rihanna จะได้เครื่องหมายเดียวกัน:
ว้าว
เราเพิ่งแสดงให้เห็นว่า
ขอถอยหลังสักก้าว
ตัวเลือกของไอน์สไตน์กับ Born ดูเหมือนจะให้ผลลัพธ์เดียวกันเสมอ เนื่องจากมันต่างกันเฉพาะในคำอธิบายของสิ่งที่เกิดขึ้นก่อนการวัด แต่เมื่อสมมติว่ามีคำสั่งที่กำหนดเครื่องหมายของการวัดสปินตามแกนบางแกนไว้ล่วงหน้า เราได้ข้อจำกัดของความน่าจะเป็นที่การวัดจะให้เครื่องหมายเดียวกัน จากนั้นเมื่อสมมติการกระจายความน่าจะเป็นตามกลศาสตร์ควอนตัม... เราได้ค่าต่างออกไปสำหรับ การทำนายจากกลศาสตร์ควอนตัมสูงกว่าที่ตัวแปรซ่อนเร้นอนุญาต ดังนั้นเราสามารถทำการทดลองจริงและค้นหาว่าสถานะกลศาสตร์ควอนตัมถูกกำหนดโดยธรรมชาติก่อนการวัดหรือไม่ หรือว่ามันอยู่ในซูเปอร์โพซิชันแบบความน่าจะเป็นของสถานะที่เป็นไปได้อย่างแท้จริง
การทดลองนี้ถูกทำหลายครั้งโดยใช้ระบบทางกายภาพหลายชนิด บ่อยครั้งเป็นโฟตอน มีการพิจารณาอันละเอียดอ่อนมากมาย เช่น ความลำเอียงในการวัด เวลา (simultaneity) ของการวัด และอื่น ๆ อีกมากมาย ตลอดหลายทศวรรษ ความกังวลเกี่ยวกับความละเอียดอ่อนเหล่านี้ค่อย ๆ ลดลง การทดสอบยังคงดำเนินการอยู่ขณะที่เราเรียนรู้เพิ่มเติมเกี่ยวกับความเป็นจริง แต่ตอนนี้มีความเห็นพ้องกันอย่างกว้างขวางว่าคำตอบที่คุณจะได้ที่นี่ โดยใช้คอมพิวเตอร์ควอนตัมของ IBM® นั้นถูกต้อง
ทดสอบโดยใช้คอมพิวเตอร์ควอนตัมจริง!
ตามการปฏิบัติข้างต้นของเรา ให้กำหนดทิศทางของการวัดของ Lucas เป็น ซึ่งสะดวกแม้ในแนวทางพีชคณิต แต่สะดวกเป็นพิเศษสำหรับการคำนวณควอนตัม เนื่องจากสิ่งที่วัดโดยทั่วไปคือการฉาย Qubit ตาม เราต้องการสร้าง Circuit ควอนตัมที่ให้เงื่อนไขความน่าจะเป็นเดียวกับข้างต้นสำหรับ เราเป็นอิสระที่จะหันระนาบเพื่อให้ และเราได้
เราต้องรู้บางอย่างเกี่ยวกับคอมพิวเตอร์ควอนตัมของ IBM เพื่อนำทางการสนทนาของเรา ประการแรก Qubit เริ่มต้นในสถานะ ดังที่กล่าวก่อนหน้า เมื่อวัด จะวัดตามแกน ดังนั้นเป้าหมายคือการกำหนดว่าตัวดำเนินการอะไรที่เราสามารถแทรกระหว่างสถานะ basis การวัด และสถานะเริ่มต้นของ Qubit เพื่อได้นิพจน์ที่ซับซ้อนข้างต้น สำหรับสิ่งนั้น เราต้องทบทวน Gate พื้นฐานบางอย่างในการคำนวณควอนตัม
Gate : เทียบเท่ากับการดำเนินการ NOT เป็น Gate เดี่ยว Qubit
ใน Qiskit การสร้าง Circuit ที่มี Gate มีลักษณะดังนี้:
from qiskit import QuantumCircuit
qc = QuantumCircuit(1)
qc.x(0)
qc.draw("mpl")
Gate Hadamard : สร้างสถานะ superposition เป็น Gate เดี่ยว Qubit
Circuit ที่มี Gate Hadamard สร้างดังนี้:
qc = QuantumCircuit(1)
qc.h(0)
qc.draw("mpl")
Gate CNOT (Controlled-NOT): Gate นี้ใช้ Qubit สอง: ตัวควบคุมและตัวเป้าหมาย ตรวจสอบสถานะของ Qubit ควบคุมซึ่งไม่เปลี่ยนแปลง แต่ถ้า Qubit ควบคุมอยู่ในสถานะ Gate จะเปลี่ยนสถานะของ Qubit เป้าหมาย ถ้าสถานะของ Qubit ควบคุมเป็น จะไม่มีการเปลี่ยนแปลงใด ๆ ในสัญลักษณ์ด้านล่าง สมมติว่า Qubit ตัวแรกเป็นตัวควบคุม และตัวที่สองเป็นเป้าหมาย
Gate CNOT มีลักษณะต่างออกไปใน Circuit เนื่องจากต้องใช้ Qubit สอง นี่คือวิธีนำไปใช้:
qc = QuantumCircuit(2)
qc.cx(0, 1)
qc.draw("mpl")
โปรดสังเกตว่า Qubit แรกที่ระบุใน qc.cx(0,1) คือตัวควบคุม และตัวที่สองคือเป้าหมาย ในแผนภาพ เป้าหมายคือตัวที่มีเครื่องหมาย "+" หรือกากบาทบนมัน
Gate หมุน Y : หมุนสถานะรอบแกน y เป็น Gate เดี่ยว Qubit
สุดท้าย Gate การหมุนนำไปใช้โดยระบุประเภทของ Gate ปริมาณการหมุน และ Qubit ที่วาง Gate ตามลำดับนั้น:
import numpy as np
pi = np.pi
qc = QuantumCircuit(2)
qc.ry(pi / 2, 0)
qc.draw("mpl")
ชื่อของ Gate ry ระบุแกนที่การหมุนเกิดขึ้น อาร์กิวเมนต์แรก หมายถึงปริมาณของการหมุน และอาร์กิวเมนต์ที่สองระบุ Qubit ที่จะวาง Gate
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
โดยใช้ syntax ที่แนะนำหรือทบทวนข้างต้น สร้าง Circuit ควอนตัมใด ๆ ที่ประกอบด้วย Gate ควอนตัมสี่ประเภทที่ต่างกัน
คำตอบ:
แน่นอนว่ามีความเป็นไปได้มากมายไม่สิ้นสุด นี่คือตัวอย่างหนึ่ง:
qc=QuantumCircuit(2)
qc.ry(pi/2,0)
qc.cx(1,0)
qc.x(1)
qc.h(0)
qc.cx(0,1)
qc.draw("mpl")
จากการทดลองทางกายภาพสู่ Circuit ควอนตัม
จากการดำเนินการของ Gate เหล่านี้ เราสามารถเห็นได้ว่า ตัวอย่างเช่น kets ในนิพจน์สำหรับ :
น่าจะเกี่ยวข้องกับ Gate Hadamard เพื่อให้ได้ superposition และ Gate CNOT เพื่อสร้าง entanglement
ตอนนี้เราจะใช้ Gate H, X และ CNOT เพื่อแปลง เป็น :
ที่นี่ หมายถึง Gate CNOT ที่ใช้ L เป็นตัวควบคุมและ R เป็นเป้าหมาย ตอนนี้เราสามารถแยกส่วน R ของสถานะออกมาได้:
ตอนนี้เราเขียน ket ทั้งหมดเป็น Gate ควอนตัมที่ทำงานบนสถานะเริ่มต้นของ Qubit
ตอนนี้เราสามารถใช้ ที่ทำงานบน เพื่อได้ bra ในนิพจน์สำหรับ
เมื่อรวมผลลัพธ์เหล่านี้ เราสามารถเขียนความน่าจะเป็น ได้ว่า
ซึ่งให้คำสั่งที่ชัดเจนสำหรับวิธีสร้าง Circuit ควอนตัมของเรา เราจะใช้ Gate X, H, CNOT และ กับ Qubit ที่แทนสถานะควอนตัมของอนุภาคที่วัดโดย Lucas และ Rihanna และทำการวัดเพื่อได้ความน่าจะเป็น
IBM Quantum แนะนำให้แก้ปัญหาการคำนวณควอนตัมโดยใช้กรอบงานที่เราเรียกว่า Qiskit patterns ซึ่งประกอบด้วยขั้นตอนต่อไปนี้
- ขั้นตอนที่ 1: แมปปัญหาของคุณกับ Circuit ควอนตัม
- ขั้นตอนที่ 2: ปรับปรุง Circuit ของคุณให้เหมาะสมสำหรับการรันบน hardware ควอนตัมจริง
- ขั้นตอนที่ 3: รันงานบนคอมพิวเตอร์ควอนตัมของ IBM โดยใช้ Runtime Primitives
- ขั้นตอนที่ 4: ประมวลผลผลลัพธ์
โดยพื้นฐานแล้ว งานทั้งหมดที่เราทำข้างต้นคือขั้นตอนที่ 1 มาสร้าง Circuit ผลลัพธ์โดยใช้ Qiskit กัน!
ขั้นตอนที่ 1: แมปผลลัพธ์ของเรากับ Circuit ควอนตัม
# We'll begin by importing qiskit and a visualization module so that we can plot a
# histogram of our results.
from qiskit.visualization import plot_histogram
จำไว้ว่า 1/3 ของเวลา แกนที่ Rihanna เลือกจะห่าง เรเดียนจากของ Lucas, 1/3 ของเวลาจะห่าง เรเดียนจากของ Lucas และ 1/3 ของเวลาพวกเขาจะเลือกแกนเดียวกัน ดังนั้นเราจริง ๆ ต้องสร้าง Circuit ควอนตัม 3 Circuit สำหรับ 3 กรณีเหล่านี้ และรวมผลลัพธ์ เราจะอธิบาย Circuit แรกอย่างละเอียด และสองตัวสุดท้ายเราจะระบุไว้เท่านั้น
# We start by declaring our first quantum circuit, and giving it two qubits (the first "2") and two
# classical bits for storing outputs (the second "2")
# Define registers
from qiskit import ClassicalRegister, QuantumRegister
qr = QuantumRegister(2, "q")
cr = ClassicalRegister(2, "c")
qc1 = QuantumCircuit(qr, cr)
# We know from our analysis above that we need an X gate acting on each of the qubits (L and R)
qc1.x([0, 1])
# We need a Hadamard gate acting on Lucas's qubit, which we're calling the 0th qubit.
qc1.h(0)
# The controlled-NOT gate uses the 0th qubit (Lucas's) as the control and the 1st qubit (Rihanna's)
# as the target.
qc1.cx(0, 1)
# The rotation gate acts on the 1st qubit (Rihanna's) and has an argument of -2 pi/3
qc1.ry(-2 * pi / 3, 1)
# Finally, we want to measure all the qubits in the circuit to obtain measurement probabilities, and
# store the results in the classical bits.
qc1.measure([0, 1], [0, 1])
# Now we can draw the first of the three circuits that will check Bell's inequality for us.
qc1.draw(output="mpl")
code ด้านล่างสร้าง Circuit ทั้งสามอย่างรวดเร็วในรูปแบบที่กระชับยิ่งขึ้น โปรดสังเกตว่าความแตกต่างเพียงอย่างเดียวระหว่าง Circuit ทั้งสามคือระยะการหมุน Qubit ทั้งสองรอบแกน
qcs = [QuantumCircuit(2, 2), QuantumCircuit(2, 2), QuantumCircuit(2, 2)]
for i in range(0, len(qcs)):
qcs[i].x([0, 1])
qcs[i].h(0)
qcs[i].cx(0, 1)
qcs[0].ry(-2 * pi / 3, 1)
qcs[1].ry(-4 * pi / 3, 1)
qcs[2].ry(-2 * pi / 3, 1)
qcs[2].ry(-4 * pi / 3, 1)
for i in range(0, len(qcs)):
qcs[i].barrier()
qcs[i].measure([0, 1], [0, 1])
counts_list = [None] * len(qcs)
qcs[0].draw(output="mpl")
ตอนนี้เราจะใช้ Qiskit primitive ที่เรียกว่า StatevectorSampler Sampler เป็น primitive ที่ออกแบบมาเพื่อสุ่มตัวอย่างสถานะที่เป็นไปได้ทั้งหมดของระบบและส่งคืนความน่าจะเป็น (หรือในบางกรณี quasiprobabilities) ของการได้แต่ละสถานะ เราสามารถระบุจำนวน "shots" และดู "counts" สำหรับแต่ละสถานะ
from qiskit.primitives import StatevectorSampler
sampler = StatevectorSampler()
# Start a job that will return shots for all 100 parameter value sets.
for i in range(0, len(qcs)):
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result = job.result()
data_pub = result[0].data
counts = data_pub.c.get_counts()
counts_list[i] = counts
# plot_histogram(counts)
ถ้าเราดู counts จากแต่ละ Circuit เราจะเห็นว่าสองตัวนั้นเหมือนกันโดยพื้นฐาน และตัวที่สามค่อนข้างแตกต่าง
plot_histogram(counts_list)
ให้เราสร้างรายการผลลัพธ์ที่เป็นไปได้และรวม counts ของแต่ละสถานะจากแต่ละ Circuit ทั้งสามเพื่อได้ความน่าจะเป็นโดยรวม
outcomes = ("00", "01", "10", "11")
# Here we convert "None"s into 0's so that we can sum.
for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if counts_list[i].get(outcomes[j]) is None:
counts_list[i].update({outcomes[j]: 0})
# Here we create a dictionary that holds all the outcomes and sums over their appearances
# in each of the circuits.
total_counts = {}
for i in range(0, len(outcomes)):
total_counts[outcomes[i]] = sum(
counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)
ตอนนี้เราสามารถพิมพ์ counts รวมสำหรับแต่ละผลลัพธ์ และสร้าง histogram
print(total_counts)
plot_histogram(total_counts)
{'00': 7493, '01': 7432, '10': 7605, '11': 7470}
ตรวจสอบความเข้าใจ
อ่านคำถามด้านล่าง คิดคำตอบ แล้วคลิกสามเหลี่ยมเพื่อเปิดเผยคำตอบ
รูปข้างต้นสอดคล้องกับผลลัพธ์ที่ทำนายโดยตัวแปรซ่อนเร้นและความกำหนดตายตัวหรือไม่? หรือสอดคล้องกับกลศาสตร์ควอนตัมแบบความน่าจะเป็น (และไม่ท้องถิ่น)?
คำตอบ:
สอดคล้องกับกลศาสตร์ควอนตัมแบบความน่าจะเป็นและไม่ท้องถิ่น การปฏิบัติตัวแปรซ่อนเร้นทำนายว่าความน่าจะเป็นของการได้เครื่องหมายเดียวกันน้อยกว่าหรือเท่ากับ 4/9 กลศาสตร์ควอนตัมทำนายความน่าจะเป็น 50% Histogram ข้างต้นอธิบายความน่าจะเป็นของ 00 หรือ 11 เท่ากับ 49.97% ซึ่งใกล้เคียงมากกับการทำนายของกลศาสตร์ควอนตัมแบบความน่าจะเป็น แต่ที่สำคัญที่สุด มันมากกว่าช่วงที่อนุญาตในการปฏิบัติตัวแปรซ่อนเร้น
สิ่งนี้พิสูจน์อะไรเกี่ยวกับธรรมชาติหรือไม่?
คำตอบ:
ไม่! เราใช้ simulator! นั่นคือคอมพิวเตอร์ที่โปรแกรมให้ทำงานตามกฎของกลศาสตร์ควอนตัมแบบความน่าจะเป็น ถ้าเราเสนอกฎ แล้วโปรแกรมคอมพิวเตอร์ให้ทำตามกฎนั้น ความสามารถในการทำตามกฎไม่ใช่หลักฐานว่ากฎนั้นถูกต้อง! วิธีเดียวที่จะพิสูจน์ได้คือการใช้คอมพิวเตอร์ควอนตัมจริง!
ขั้นตอนที่ 2: ปรับปรุง Circuit ควอนตัมของคุณสำหรับการรันบน hardware จริง
แม้เราใช้ simulator เพื่อดีบัก code ในตอนแรก เราต้องการรันบน hardware จริง ท้ายที่สุดแล้ว simulator เป็นเพียงแค่การแกล้งทำเป็นว่ามีกลศาสตร์ควอนตัม ตามสมการข้างต้น ถ้า simulator บอกเราว่าสมการเหล่านั้นถูกต้อง นั่นจะไม่ช่วยให้เราเชื่อมากนัก เราต้องการให้คอมพิวเตอร์ควอนตัมจริงบอกเราว่าเกิดอะไรขึ้น! ดังนั้นเราจะเลือกคอมพิวเตอร์ควอนตัมที่ต้องการใช้ บางครั้งอาจสำคัญที่จะเลือกอุปกรณ์เฉพาะที่มีคุณสมบัติที่คุณต้องการ แต่บ่อยครั้งเราแค่ต้องการใช้อุปกรณ์ที่ไม่ยุ่งที่สุด
มี code ด้านล่างสำหรับบันทึก credentials ในการใช้งานครั้งแรก ต้องแน่ใจว่าลบข้อมูลนี้ออกจาก notebook หลังจากบันทึกไปยังสภาพแวดล้อมของคุณแล้ว เพื่อให้ credentials ของคุณไม่ถูกแชร์โดยบังเอิญเมื่อแชร์ notebook ดู ตั้งค่าบัญชี IBM Cloud ของคุณ และ เริ่มต้นใช้บริการในสภาพแวดล้อมที่ไม่น่าเชื่อถือ สำหรับคำแนะนำเพิ่มเติม
from qiskit_ibm_runtime import QiskitRuntimeService
# Syntax for first saving your token. Delete these lines after saving your credentials.
# QiskitRuntimeService.save_account(channel='ibm_quantum_platform',
# instance = '<YOUR_IBM_INSTANCE_CRN>', token='<YOUR-API_KEY>', overwrite=True, set_as_default=True)
# service = QiskitRuntimeService(channel='ibm_quantum_platform')
# Load saved credentials
service = QiskitRuntimeService()
backend = service.least_busy(
operational=True, min_num_qubits=qcs[0].num_qubits, simulator=False
)
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
target = backend.target
pm = generate_preset_pass_manager(target=target, optimization_level=3)
qcs_isa = qcs
for i in range(0, len(qcs)):
qcs_isa[i] = pm.run(qcs[i])
qcs_isa[i].draw(output="mpl", idle_wires=False, style="iqp")
qcs_isa[2].draw(output="mpl", idle_wires=False, style="iqp")
ขั้นตอนที่ 3: รันงานบนคอมพิวเตอร์ควอนตัมของ IBM โดยใช้ Runtime primitives
ตอนนี้เราปรับปรุง Circuit ของเราให้เหมาะสมสำหรับการรันบน hardware ควอนตัมจริง และดีบัก code โดยใช้ simulator แล้ว เราพร้อมที่จะรวบรวมสถิติจากคอมพิวเตอร์ควอนตัมจริง และยุติข้อขัดแย้งระหว่างไอน์สไตน์กับ Born
from qiskit_ibm_runtime import SamplerV2 as Sampler
# from qiskit_ibm_runtime import Session
# sampler.options.default_shots = 1000
# Start a job that will return shots for all 100 parameter value sets.
# The best practice is to use a session as shown below. This is available to Premium Plan, Flex
# Plan, and On-Prem (IBM Quantum Platform API) Plan users.
# result_list = [None] * len(qcs)
# real_counts_list = [None] * len(qcs)
# with Session(backend=backend) as session:
# sampler = Sampler(mode=session)
# for i in range(0, len(qcs)):
# # Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# # Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# real_counts_list[i] = counts
# # plot_histogram(counts)
# Open users can still carry out this experiment, but without reserving a session of use, meaning
# repeated queuing is possible.
from qiskit_ibm_runtime import Batch
batch = Batch(backend=backend)
sampler = Sampler(mode=batch)
result_list = [None] * len(qcs)
real_counts_list = [None] * len(qcs)
for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result_list[i] = job.result()
data_pub = result_list[i][0].data
counts = data_pub.c.get_counts()
real_counts_list[i] = counts
# Close the batch because no context manager was used.
batch.close()
outcomes = ("00", "01", "10", "11")
# Here we convert "None"s into 0's so that we can sum.
for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if real_counts_list[i].get(outcomes[j]) is None:
real_counts_list[i].update({outcomes[j]: 0})
# Here we create a dictionary that holds all the outcomes and sums over their appearances
# in each of the circuits.
real_total_counts = {}
for i in range(0, len(outcomes)):
real_total_counts[outcomes[i]] = sum(
real_counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)
print(real_total_counts)
plot_histogram(real_total_counts)
{'00': 7542, '01': 7503, '10': 7304, '11': 7651}
# This syntax allows you to run the job on a simulator, in case you have exhausted your allotted
# time on real IBM quantum computers.
# But we strongly advise running this on real quantum computers, since this is meant to be a check
# of the behavior of real quantum systems.
# This uses a local simulator
# from qiskit_aer import AerSimulator
# This generates a simulator that mimics the real quantum system
# backend_sim = AerSimulator.from_backend(backend)
# Import an estimator, this time from qiskit (we import from Runtime for real hardware)
# from qiskit.primitives import BackendSamplerV2
# sampler = BackendSamplerV2(backend = backend_sim)
# result_list = [None] * len(qcs)
# counts_list = [None] * len(qcs)
# for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# counts_list[i] = counts
# data_pubs = (result_list[0][0].data,result_list[1][0].data,result_list[2][0].data)
# outcomes = ("00", "01", "10", "11")
# Here we convert "None"s into 0's so that we can sum.
# for i in range(0, len(qcs)):
# for j in range(0, len(outcomes)):
# if counts_list[i].get(outcomes[j]) is None:
# counts_list[i].update({outcomes[j]: 0})
# Here we create a dictionary that holds all the outcomes and sums over their appearances
# in each of the circuits.
# total_counts = {}
# for i in range(0, len(outcomes)):
# total_counts[outcomes[i]] = sum(
# counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
# )
# print(total_counts)
# plot_histogram(total_counts)
counts_list
[None, None, None]
ขั้นตอนที่ 4: ประมวลผลและวิเคราะห์
ขอถอยหลังสักก้าวและสรุป: โดยใช้การปฏิบัติตัวแปรซ่อนเร้น และแกนที่เหลื่อมกัน 3 แกน เราได้ข้อจำกัดของความน่าจะเป็นที่การวัดจะให้เครื่องหมายเดียวกัน จากนั้นเราสมมติการกระจายความน่าจะเป็นตามกลศาสตร์ควอนตัมและได้ ค่าต่างออกไป สำหรับความน่าจะเป็นนั้น: การทำนายจากกลศาสตร์ควอนตัมสูงกว่าที่ตัวแปรซ่อนเร้นอนุญาต ดังนั้นจึงสามารถทราบจากการทดลองได้ว่าสถานะกลศาสตร์ควอนตัมถูกกำหนดโดยธรรมชาติก่อนการวัดหรือไม่ หรือว่ามันอยู่ใน superposition แบบความน่าจะเป็นของสถานะที่เป็นไปได้อย่างแท้จริง
เราออกแบบ Circuit ควอนตัมของเราให้มีผลลัพธ์ที่เป็นไปได้สี่อย่างสอดคล้องกับ Lucas และ Rihanna ที่วัดเครื่องหมายหนึ่งของการฉายสปินหรืออีกเครื่องหมาย: 00, 01, 10 และ 11 ในกรณีของ 00 และ 11 Lucas และ Rihanna วัดเครื่องหมายเดียวกัน และในกรณีของ 01 และ 10 พวกเขาวัดเครื่องหมายตรงข้าม เราเห็นว่าโดยประมาณที่ดีมาก โอกาสที่ Lucas และ Rihanna จะได้เครื่องหมายเดียวกันอยู่ที่ประมาณ 50% ซึ่งมากกว่า อย่างแน่นอน ซึ่งหมายความว่าไม่มีชุดของตัวแปรซ่อนเร้นที่สามารถอธิบายการกระจายความน่าจะเป็นนั้นได้ และการปฏิบัติตัวแปรซ่อนเร้นไม่สอดคล้องกับการทดลอง
มีการตีความผลการทดลองกลศาสตร์ควอนตัมต่างกันออกไป และมีความละเอียดอ่อนมากมายในการตั้งค่าการทดลองที่มีการทบทวนเป็นระยะ ๆ แต่จนถึงตอนนี้ หลักการของกลศาสตร์ควอนตัมและการตีความความน่าจะเป็นของสถานะควอนตัมได้อธิบายผลลัพธ์ได้อย่างแม่นยำ Max Born ดูเหมือนจะถูกต้อง
ขอใช้เวลาสักครู่เพื่อสะท้อนถึงความสำคัญของสิ่งนี้ อนุภาคสองตัวออกมาจากเหตุการณ์การสลายตัว และอนุภาคสองตัวเดินทางในทิศทางต่างกัน อาจนานมาก สปินของพวกมันไม่อยู่ในสถานะที่กำหนดไว้ใด ๆ และพวกมันไม่ได้พกคำสั่งตัวแปรซ่อนเร้นติดตัวไปเพื่อกำหนดผลลัพธ์ของการวัดในอนาคต แต่การวัดของตัวหนึ่ง (ตาม เช่น ) จำเป็นต้องกำหนดผลลัพธ์ของการทดลองบนสปินของอนุภาคอีกตัวตามทิศทาง (ต้องเป็น ) ซึ่งหมายความว่าบางอย่างเกี่ยวกับฟิสิกส์ของอนุภาคตัวหนึ่งถูกกำหนดโดยสิ่งที่ทำกับอนุภาคอีกตัว ซึ่งอาจอยู่ห่างออกไป นี่คือสถานการณ์หนึ่งที่ทำให้ผู้คนอ้างถึงความเป็นจริงว่าเป็น "ไม่ท้องถิ่น"
อนุภาคสองตัวอย่างที่เราอธิบายมาตลอดนั้น "เชื่อมต่อกัน" ในความหมายที่ว่าการวัดบนตัวหนึ่งสามารถส่งผลต่ออีกตัว เราเรียกอนุภาคดังกล่าวว่า "พัวพัน" (entangled) Entanglement มากกว่าแค่ความสัมพันธ์ ตัวอย่างเช่น เราสามารถสร้างเครื่องจักรคลาสสิกที่พ่นแม่เหล็กไปทางหนึ่งโดยขั้วเหนือชี้ขึ้นและแม่เหล็กไปอีกทางโดยขั้วเหนือชี้ลง แม่เหล็กดังกล่าวสามารถต่อต้านกันได้อย่างสมบูรณ์แบบ แต่การวัดตัวหนึ่งจะไม่ทำอะไรกับอีกตัว ใน entanglement ของกลศาสตร์ควอนตัม อนุภาค A สามารถอยู่ในสถานะที่ไม่ได้กำหนด (หรือ mixture ของหลายสถานะ) และเราสามารถกำหนดให้มันอยู่ในสถานะที่กำหนดผ่านการวัดบนอนุภาคที่ต่างกันโดยสิ้นเชิง (เช่น B) ไม่มีอะไรแบบนั้นในโลกคลาสสิก
สิ่งนี้มักจะก่อให้เกิดคำถามและความเป็นไปได้ใหม่ทั้งโลก แนวคิดบางอย่างที่มันชวนนึกถึงนั้นเป็นความจริง เช่น การใช้ entanglement เพื่อคำนวณ อย่างในคอมพิวเตอร์ควอนตัม! บางอย่างดึงดูดใจอย่างหลอกลวง แต่กลับล้มเหลว เช่น การพยายามใช้ entanglement เพื่อส่งข้อมูลเร็วกว่าแสง เราขอแนะนำให้ถามคำถามทั้งหมดที่เกิดขึ้นกับคุณ และอ่านว่าคนอื่นสืบสวนปรากฏการณ์เหล่านี้อย่างไร มีโลกทั้งใบของกลศาสตร์ควอนตัมรออยู่ให้สำรวจ แต่นี่คือแหล่งข้อมูลบางส่วนที่คุณอาจตรวจสอบได้:
หลักสูตร IBM Quantum:
เอกสารกลศาสตร์ควอนตัมที่น่าสนใจ:
- ความขัดแย้ง Einstein Podolsky and Rosen
- เอกสารต้นฉบับของ John Bell จากปี 1964
- เอกสารปี 2019 เกี่ยวกับการจับและย้อนกลับ "quantum jump" ระหว่างการเปลี่ยนผ่าน
แหล่งทรัพยากรการสอนกลศาสตร์ควอนตัม:
- เอกสารหลักสูตร Quantum I จากมหาวิทยาลัยโคโลราโด
การวิจัยทางการศึกษากลศาสตร์ควอนตัม:
- บทวิจารณ์ความยากของนักเรียนในกลศาสตร์ควอนตัมระดับสูง โดย C. Singh และ E. Marshman
คำถาม
ผู้สอนสามารถขอเวอร์ชันของ notebook เหล่านี้พร้อมเฉลยและคำแนะนำเกี่ยวกับการวางในหลักสูตรทั่วไปโดยกรอก แบบสำรวจสั้น ๆ นี้เกี่ยวกับวิธีการใช้ notebook
แนวคิดสำคัญ:
- มีข้อขัดแย้งทางประวัติศาสตร์ว่าสถานะควอนตัมเป็นเพียงแค่ไม่ทราบหรือยังไม่ได้ถูกกำหนดโดยธรรมชาติก่อนการวัด ว่ากลศาสตร์ควอนตัมมีความกำหนดตายตัวหรือแบบความน่าจะเป็น
- ตัวแปรซ่อนเร้นและดังนั้น local realism ไม่สอดคล้องกับการสังเกตของกลศาสตร์ควอนตัม กล่าวคือ ความสัมพันธ์ที่สังเกตได้ในกลศาสตร์ควอนตัมไม่สามารถอธิบายได้ด้วยตัวแปรที่กำหนดไว้ซึ่งเราเพียงไม่รู้เท่านั้น
- กลศาสตร์ควอนตัมมีความน่าจะเป็น
- Entanglement เป็นจริงและสังเกตได้
- Entanglement ไม่ใช่แค่ความสัมพันธ์
- เราสามารถแมปสถานการณ์ในโลกจริงกับคอมพิวเตอร์ควอนตัมได้
- ตัวแปรซ่อนเร้นหมายถึงปริมาณที่ถูกระบุโดยธรรมชาติแต่ไม่เป็นที่รู้จักของมนุษย์ ไม่มีในบริบทนี้
คำถาม T/F:
- T/F Albert Einstein โต้แย้งว่ากลศาสตร์ควอนตัมไม่สมบูรณ์ในฐานะทฤษฎี เพราะมันอธิบายเฉพาะความน่าจะเป็นของผลลัพธ์ ไม่ใช่กลไกพื้นฐานที่กำหนดผลลัพธ์เหล่านั้น
- T/F "ตัวแปรซ่อนเร้น" หมายถึงแนวคิดที่ว่าอนุภาคกลศาสตร์ควอนตัมสองอนุภาคสามารถพัวพันกันได้
- T/F ระบบสัมพันธ์กันสองระบบใด ๆ จะพัวพันกันในทางกลศาสตร์ควอนตัม
- T/F Entanglement ของกลศาสตร์ควอนตัมสำคัญสำหรับการทำคณิตศาสตร์ให้ถูกต้อง แต่คุณไม่สามารถเห็นมันในการทดลองได้
- T/F ในกรณีส่วนใหญ่ กลศาสตร์ควอนตัมไม่สามารถบอกผลลัพธ์ที่แน่นอนของการทดลองได้ มีแค่ความน่าจะเป็นที่ผลลัพธ์บางอย่างจะถูกวัด
- T/F ในกลศาสตร์ควอนตัม ภายใต้เงื่อนไขบางอย่าง สถานะของอนุภาค A สามารถได้รับผลกระทบจากสถานะของอนุภาค B แม้ว่าอนุภาค A และ B จะไม่ได้สัมผัสกันและไม่แลกเปลี่ยนอนุภาคใด ๆ
- T/F เราสามารถแมปการทดลองในโลกจริงกับ Circuit ควอนตัมได้
คำถาม MC:
-
สมมติว่าอนุภาคสปิน-0 สลายตัวเป็นอนุภาคสปิน-1/2 สองตัว A และ B ทำการวัดบนอนุภาค A ที่เผยว่าสปินของมันมีการฉายตาม ตอนนี้อนุภาค B
- a. แน่นอนว่ามีการฉายสปินตาม
- b. แน่นอนว่ามีการฉายสปินตาม
- c. แน่นอนว่ามีการฉายสปินตาม
- d. แน่นอนว่ามีการฉายสปินเป็นลบตามแกนที่วัด
-
อนุภาคสปิน-0 สลายตัวเป็นอนุภาคสปิน-1/2 สองตัว A และ B ถ้าอนุภาค A วัดได้ว่ามีการฉายตาม การฉายใดต่อไปนี้เป็นไปได้สำหรับการวัดอนุภาค B? เลือกทั้งหมดที่ใช้ได้
- a.
- b.
- c.
- d.
- e.
- f.
-
สมมติว่าอนุภาคสปิน-0 สลายตัวเป็นอนุภาคสปิน-1/2 สองตัว A และ B อะไรอธิบายสถานะของอนุภาค A ได้ดีที่สุดก่อนการวัดใด ๆ
- a. สปินของอนุภาค A อยู่ตาม
- b. สปินของอนุภาค A อยู่ตาม
- c. สปินของอนุภาค A อยู่ตาม
- d. ทิศทางสปินของอนุภาค A ถูกกำหนดตามบางทิศทาง แต่ไม่ใช่ทุกทิศทาง
- e. ทิศทางสปินของอนุภาค A ยังไม่ได้ถูกกำหนดโดยธรรมชาติก่อนการวัดใด ๆ
-
ข้อใดต่อไปนี้เป็นจริงของ Gate Hadamard? เลือกทั้งหมดที่ใช้ได้
- a.
- b.
- c.
- d.
-
ข้อใดต่อไปนี้เป็นจริงของ Gate X? เลือกทั้งหมดที่ใช้ได้
- a.
- b.
- c.
- d.
- e.
-
ข้อใดต่อไปนี้คือ Gate สอง Qubit?
- a. X
- b.
- c. H
- d. CNOT
-
สมมติว่า Qubit อยู่ในสถานะ ความน่าจะเป็นที่จะวัดได้ว่าอยู่ในสถานะ คือเท่าใด?
- a. 100% แน่นอนบน simulator ที่ไม่มี noise ใกล้ 100% บนคอมพิวเตอร์ควอนตัมจริง
- b. ใกล้ 100% บน simulator ที่ไม่มี noise, 100% แน่นอนบนคอมพิวเตอร์ควอนตัมจริง
- c. 0% แน่นอนบน simulator ที่ไม่มี noise ใกล้ 0% บนคอมพิวเตอร์ควอนตัมจริง
- d. ใกล้ 0% บน simulator ที่ไม่มี noise, 0% แน่นอนบนคอมพิวเตอร์ควอนตัมจริง
คำถามอภิปราย:
-
เพื่อน A, B และ C กำลังอภิปรายผลลัพธ์จากปฏิบัติการนี้ที่เกี่ยวข้องกับอสมการของเบลล์ โดยเฉพาะอย่างยิ่ง พวกเขากำลังดูรูปที่แสดงว่าความน่าจะเป็นกลศาสตร์ควอนตัมของการวัดเครื่องหมายเดียวกันตามแกนสูงกว่าที่อนุญาตโดยการปฏิบัติตัวแปรซ่อนเร้น: เพื่อน A พูดว่า "ซึ่งหมายความว่าเราไม่ทราบสถานะสปินก่อนการวัด" เพื่อน B พูดว่า "ไม่ มันมากกว่านั้น ซึ่งหมายความว่าสปินไม่ได้ชี้ในทิศทางใดทิศทางหนึ่งอยู่แล้วก่อนการวัด แม้ว่าสถานะสปินอาจถูกกำหนดหรือเก็บบางวิธี" เพื่อน C พูดว่า "ไม่ มันมากกว่านั้นอีก ซึ่งหมายความว่าสถานะสปินในอนาคตยังไม่ได้ถูกกำหนดโดยธรรมชาติก่อนการวัด" คุณเห็นด้วยกับใคร และเพราะอะไร?
-
อธิบายว่าปรากฏการณ์กลศาสตร์ควอนตัมอย่าง entanglement บ่งชี้อย่างไรว่าความเป็นจริงไม่ท้องถิ่น
-
คุณต้องการทำการทดลองเพิ่มเติมอะไรเพื่อให้เชื่อมั่นในผลลัพธ์ที่ได้ที่นี่?
-
อสมการของเบลล์สามารถสำรวจได้เฉพาะกับแกนที่เว้นระยะเท่ากัน 3 แกน , และ เท่านั้นหรือ? สามารถทำกับจำนวนแกนอื่น ๆ ได้หรือไม่? จะมีลักษณะอย่างไร? จะยังให้ความแตกต่างในความน่าจะเป็นที่ทำนายโดยตัวแปรซ่อนเร้นเทียบกับกลศาสตร์ควอนตัมแบบความน่าจะเป็นหรือไม่?