การคำนวณควอนตัม
คิวบิต การพัวพัน วงจร และ เทเลพอร์ต
ผมเป็นคนชอบคณิตศาสตร์เลยพยายามลองทำความเข้าใจกับหลักการคำนวณควอนตัมดู ก่อนนี้ผมเห็นสัญลักษณ์ต่าง ๆ ก็แอบกลัวเหมือนกัน เอาเข้าจริงส่วนใหญ่มันก็แค่แทนค่าธรรมดา (ถ้าผมเข้าใจถูกนะ 555) นี่เป็นบันทึกเท่าที่พอจะเข้าใจ
คิวบิต
เริ่มจากตัวคิวบิตเอง ที่ตามหลัก superposition เป็นได้ทั้ง 0 และ 1 เราจะใช้สัญกรณ์ เค็ท (ket) ในการเขียน เช่น คิวบิต |𝜓〉 เขียนแบบเค็ทได้ว่า
|𝜓〉 = 𝛼|0〉+ 𝛽|1〉
ซึ่งแปลว่าหากเราทำการวัดค่าของ |𝜓〉 สถานะของมันจะฟุบลงเป็นค่า 0 ด้วยความน่าจะเป็น 𝛼² และ เป็นค่า 1 ด้วยความน่าจะเป็น 𝛽² (ซึ่งแปลว่า 𝛼²+𝛽² ต้องเท่ากับ 1 ตามข้อกำหนดของความน่าจะเป็น)
เราสามารถมองคิวบิตอีกแบบในรูปเวคเตอร์ก็ได้ บางครั้งทำให้เข้าใจง่ายขึ้น
สิ่งที่สำคัญอันหนึ่งคือสถานะของระบบที่ประกอบด้วยคิวบิตหลายอันนั้นจะถูกอธิบายในรูปของผลคูณเทนเซอร์ (tensor product) เช่นในกรณีของคิวบิต 2 อัน


สังเกตว่าลำดับของคิวบิตนั้นสำคัญ เราสลับที่มันไม่ได้ ไม่เหมือนการคูณปกติ
การพัวพัน (entanglement)
สังเกตต่อว่าเราไม่สามารถหาคู่คิวบิตใด ๆ ที่ทำให้สมการข้างล่างนี้เป็นจริง (แบบฝึกหัด)

เราเรียกสถานะแบบข้างบนนี้ (คือแยกเป็นผลคูณเทนเซอร์ไม่ได้) ว่าสถานะพัวพัน (entangled state)
เมื่อเราทำการวัดค่าที่ได้จากคิวบิตทั้งสองที่อยู่ในสถานะพัวพัน เราจะได้ค่าเดียวกันเสมอ คือ 00 หรือ 11 ด้วยความน่าจะเป็น 1/2 ไม่ว่าอนุภาคทั้งสองจะอยู่ห่างกันเพียงใดก็ตาม
ไอน์สไตน์ซึ่งไม่เชื่อว่าจะมีอะไรเร็วกว่าแสงได้ พยายามอธิบายเหตุการณ์นี้อีกแบบ คือสมมติว่าเราซื้อถุงมือมาคู่หนึ่งและเราส่งถุงมือแต่ละข้างให้เพื่อนสองคน เมื่อเพื่อนคนหนึ่งเปิดดูเห็นว่าเป็นมือขวา เราก็จะรู้ทันทีว่าอีกคนได้ถุงมือข้างซ้ายไป นั่นคือสิ่งที่ไอน์สไตน์เชื่อ เป็นทฤษฎีของ hidden variable
หลังจากไอน์สไตน์ตายไป มีคนเสนอวิธีการทดลองเพื่อดูว่าทฤษฎี hidden variable หรือทฤษฎีควอนตัมนั้นถูกกันแน่ นั่นคือ จอห์น เบลล์
มีบทความออนไลน์หลายบทความที่พยายามอธิบายการทดลองแบบของเบลล์ซึ่งผมยังงง ๆ อยู่ เท่าที่เข้าใจคือ
- เบลล์เสนอให้ทำการวัดค่า spin ของอนุภาคในคู่พัวพันด้วย detector 2 ตัวแยกกัน
- สำหรับ set up นี้ เบลล์คำนวณค่า correlation สูงสุดที่เป็นไปได้ ของค่าที่วัดได้จาก detector ทั้งสอง จากทฤษฎี hidden variable
- จากนั้นเบลล์พิสูจน์ว่าตามหลักควอนตัมหากเราตั้งค่า detector บางแบบ จะทำให้ได้ค่า correlation ที่สูงกว่าค่าที่ทำนายจากทฤษฎี hidden variable
- มีคนนำแนวคิดนี้ไปทำการทดลอง ซึ่งผลที่ได้ก็ยืนยันว่าการตีความแบบควอนตัมนั้นถูกต้องแล้ว นั่นคือเจ้า ‘spooky action at a distance’ เกิดได้จริง
เมื่อเราวัดค่าของอนุภาคหนึ่งในคู่พัวพัน อนุภาคอีกอันในคู่นี้จะฟุบลงเป็นค่าเดียวกัน ไม่ว่าจะอยู่ไกลเท่าใด

ก่อนนี้ผมได้กล่าวถึงข่าวร้ายอันแรกของควอนตัมไปแล้ว นั่นคือเราไม่สามารถวัดค่าสถานะได้เพราะการวัดจะทำให้สถานะฟุบลง
ข่าวร้ายอันดับสองคือเราก๊อปปี้สถานะควอนตัมก็ไม่ได้ ทั้งนี้เพราะเจ้าสถานะพัวพันนี่แหละ
ในมุมมองของโปรแกรมเมอร์มันทำให้การทำงานลำบากขึ้น เหมือนเราทำงานกับ pointer ในภาษา C ที่เราไม่สามารถ print ค่ามันมาดูได้ จะ debug ดูค่าก็ทำไม่ได้ เราคงต้องออกแบบโปรแกรมดี ๆ ไม่สามารถเขียนไปคิดไปได้
อย่างไรก็ดีสถานะพัวพันนี้เองที่ทำให้เราสามารถ teleport คิวบิตได้ แต่ก่อนที่เราจะมาดูการ teleport นี้เรามาดูองค์ประกอบพื้นฐานอีกอันก่อน นั่นคือวงจรควอนตัม (quantum circuit) ที่คล้าย ๆ กับวงจรตรรกะ (logic circuit) หรือวงจรบูลีน (Boolean circuit) ในคอมพิวเตอร์ปัจจุบัน แต่การสร้างวงจรนี้ต้องคำนึงถึงหลักการผันกลับของระบบจุลภาค (microscopic reversibility) ที่เราจะมาดูกันก่อน
การผันกลับของระบบจุลภาค
สมมติว่าเรารินนมร้อนใส่กาแฟดำ เราจะได้ลาเต้ แต่เราจะไม่สามารถย้อนเหตุการณ์กลับมาเป็นกาแฟดำกับนมร้อนแยกกันได้
ปัญหามันเกิดเพราะสมการบางอย่างในฟิสิกส์นั้นย้อนกลับได้ บางสมการย้อนไม่ได้
ในฟิสิกส์ของนิวตัน หากเราพิจารณาสมการการเคลื่อนที่ S(t) ความเร่งก็คืออนุพันธ์อันดับ 2 ของมัน a(t) = S’’(t)
ถ้าเราเปลี่ยนจาก t เป็น -t จะได้ว่า a(-t)=S’’(-t)=a(t)
ในเมื่อฟิสิกส์ของนิวตันนั้นอิงความเร่ง ถ้าความเร่งเหมือนกันการเคลื่อนที่ย้อนหลังก็ต้องสามารถอธิบายได้ด้วยกฎเดียวกัน ตัวอย่างง่ายๆ เช่น ถ้าเราถ่ายวิดีโอของลูกบิลเลียดที่สะท้อนชิ่ง ถ้าเราเอามาฉายย้อนกลับ มันก็ยังดูปกติอยู่
ในฝั่งของอุณหพลศาสตร์ (thermodynamics) กลับไม่ใช่ เราไม่สามารถกลับทิศเวลาได้ เช่น ถ้าเราถ่ายวิดีโอของน้ำแข็งที่ละลาย เมื่อนำมาฉายย้อนกลับ มันจะแปลกมาก จริงๆ แล้วเหตุการณ์ที่เมื่อนำมาฉายย้อนกลับแล้วไม่ปกตินั้นมีมากกว่าแบบที่ปกติ คำถามคือฟิสิกส์ของนิวตั้นนั้นผิดหรือไม่ ทั้งที่มันใช้อธิบายการเคลื่อนที่ของดวงดาวต่างๆ ได้
หนึ่งในคนที่ศึกษาเรื่องนี้อย่างจริงจังเป็นคนแรก ๆ คือ Boltzmann โดย Boltzmann บอกว่าฟิสิกส์ของนิวตั้นนั้นไม่ผิด และเราสามารถย้อนคืนสถานะของระบบได้เช่นกัน แต่ด้วยความน่าจะเป็นที่ต่ำมาก
แนวความคิดหลักของ Boltzmann คือระบบจริงนั้นประกอบด้วยองค์ประกอบย่อยจำนวนมาก ก็คืออะตอมในปัจจุบัน ดังนั้นการพิจารณาสถานะของระบบต้องทำในเชิงสถิติ ถึงแม้ว่าสมการที่อธิบายอะตอมแต่ละตัวจะย้อนกลับได้ก็ตาม การจะให้อะตอมทุกตัวย้อนกลับพร้อม ๆ กัน นั้นเป็นเหตุการณ์ที่เกิดขึ้นได้ยาก ดังนั้นโดยรวมแล้วระบบจะอยู่ในสถานะที่เหมือนกับว่าย้อนกลับไม่ได้ แนวความคิดนี้ไม่ได้เป็นที่ยอมรับในตอนแรก เพราะยังไม่มีใครพิสูจน์ได้ว่าอะตอมมีจริง ในปัจจุบันหลักการนี้ได้รับการยอมรับ อีกทั้งยังกลายเป็นหลักการพื้นฐานที่เราต้องนำมาพิจารณา
วงจรควอนตัม
สำหรับวงจรตรรกะนั้นเราถือว่ามันมีสมบัติการผันกลับก็ต่อเมื่อมันมีจำนวน input เท่ากับ output เกณฑ์นี้ทำให้ในบรรดาประตูตรรกะมาตรฐาน AND OR และ NOT มีเพียง NOT ที่มีสมบัติการผันกลับ
AND และ OR ไม่มีสมบัติการผันกลับ นั่นแปลว่าประตูทั้งสองนี้ไม่ใช่ระบบปิด ประตูตรรกะทั้งสองนี้เป็นพื้นฐานของวงจรอิเล็กทรอนิกส์ในปัจจุบัน ผมเลยเดาว่านี่เป็นหนึ่งในสาเหตุที่อุปกรณ์อิเล็กทรอนิกส์ต่าง ๆ มีการคายความร้อนออกมา
ตัวอย่างประตูตรรกะใหม่สำหรับควอนตัมเช่น CNOT (Controlled NOT) gate ในภาพข้างล่าง สีในภาพแสดงถึงตำแหน่งในเค็ทของคิวบิต

เราสามารถอธิบายประตู CNOT อีกแบบในรูปเมตริกซ์คือ

นอกจากจำนวนของ input และ output แล้ว ผลที่ออกจากประตูตรรกะทั้งหลายต้องให้ค่าความน่าจะเป็นที่ถูกต้องด้วย (นั่นคือผลรวมกำลังสองของสถานะต้องเป็นเป็นหนึ่ง) เราพิสูจน์ได้ไม่ยากว่าประตูที่ให้ค่าถูกต้องนี้ต้องอยู่ในรูปเมตริกซ์หนึ่งหน่วย (unitary matrix)
ดูเหมือนกับว่าการใช้เมตริกซ์หนึ่งหน่วยยังทำให้เราได้ประตูควอนตัมที่มีสมบัติผันกลับได้ตามต้องการอีกด้วย
อีกประตูหนึ่งที่พบบ่อยคือประตูฮาดามาร์ด (Hadamard gate)

เราเขียนการทำงานของประตูนี้แบบย่อได้ว่า (ผมยังไม่เคยเห็นแบบเป็นวงจร)

สังเกตว่าหากเราทำการวัด |+〉 หรือ |-〉ต่างก็จะให้ค่า 0 และ 1 ด้วยความน่าจะเป็น 1/2 เท่ากัน
สังเกตต่อว่าหากเราใช้ประตูฮาดามาร์ด 2 รอบ เราจะกลับมาได้ค่าตั้งต้นค่าเดิม เช่น

อีกกรณีก็ทำคล้าย ๆ กัน
ปล. อันนี้ผมดูคร่าว ๆ ตามเอกสารประกอบการสอนที่เจอบนเน็ต ประตูควอนตัมทั้งหลายคงเป็น linear operator แต่ไม่แน่ใจว่าทำไม
การสร้างคู่พัวพัน
เราใช้ประตูฮาดามาร์ดในวงจรข้างล่างเพื่อสร้างคู่พัวพัน

ลองดูการทำงานของวงจรนี้ทีละขั้น
- เราตั้งค่าเริ่มต้นให้คิวบิตทั้ง 2 อยู่ในสถานะ |0〉
- เราเอาคิวบิตแรกผ่าน H จะได้ |+〉
- เมื่อนำมารวมกับคิวบิตที่สองผ่านผลคูณเทนเซอร์จะได้สถานะรวมของระบบคือ

- เมื่อนำไปผ่าน CNOT จะได้สถานะพัวพันที่ต้องการคือ

Quantum teleportation
การเทเลพอร์ตสถานะควอนตัมก็ทำโดยอาศัยคู่พัวพันเช่นกัน วงจรข้างล่างนี้ใช้ในการส่งสถานะของคิวบิต |𝜓〉 จาก Alice ไปให้ Bob
(EPR ย่อมาจากชื่อ Einstein Podolsky และ Rosen ที่ร่วมกันเขียนบทความที่กล่าวถึงสถานะพัวพันนี้)

ลองศึกษาการทำงานของวงจรนี้ทีละขั้น
- สถานะตั้งต้นของวงจรคือ |𝜓〉 และ |+〉ซึ่งผลคูณเทนเซอร์คือ

- เมื่อเอาคิวบิตสองอันแรกผ่าน CNOT จะได้

- เมื่อเอาคิวบิตแรกผ่านฮาดามาร์ดจะได้

- จัดรูปใหม่โดยการกรุ๊ปตามค่า 2 คิวบิตแรกจะได้

- หากเราให้ Alice ทำการวัดค่าของคิวบิต 2 อันแรกจะได้ทั้งหมด 4 กรณี และการวัดนี้จะทำให้สถานะของระบบฟุบลงตามตารางข้างล่าง

- หาก Alice โทรบอก Bob ว่าค่าทั้ง 2 ที่ตนวัดได้คืออะไร Bob ก็จะรู้ว่าตนเองต้องนำคิวบิต EPR ของตนไปแปลงเช่นใดให้ได้สถานะของ |𝜓〉 ตามต้องการ
กระบวนการข้างบนนี้ใช้ในการส่งสถานะของ |𝜓〉 จาก Alice ไป Bob
สังเกตว่าเมื่อ Alice ทำการวัด สถานะของ |𝜓〉 ที่ Alice ถือไว้ก็จะฟุบหายไป ดังนั้นจึงถือว่า Alice และ Bob ไม่ได้ถือ 2 ก๊อปปี้ของสถานะเดียวกันไว้พร้อม ๆ กัน
ถ้า Bob ทำการวัดโดยไม่สนใจ Alice ล่ะ?
ถ้า Bob วัดก่อน Alice ความน่าจะเป็นที่จะได้ 0 และ 1 ก็เป็น 1/2 เพราะ Bob ถือหนึ่งในคู่พัวพัน EPR
ถ้า Bob วัดหลัง Alice ความน่าจะเป็นที่จะได้ 0 และ 1 ก็ยังคงเป็น 1/2 เหมือนเดิม (แบบฝึกหัด)
นั่นคือตราบใดที่ Bob ไม่ได้ข้อมูลจาก Alice เขาก็ยังสร้างคืนสถานะของ |𝜓〉 ไม่ได้
อ่านถึงตรงนี้บางคนอาจจะงง ๆ ว่าถ้าเรามีสถานะพัวพันแล้วทำไมยังต้องการเทเลพอร์ตอีก?
เท่าที่ผมเข้าใจ สถานะพัวพันนั้นทำให้เมื่อเราวัดค่าคิวบิตหนึ่ง ๆ ค่าของคิวบิตอีกอันจะถูก instantiate ไปเป็นค่าเดียวกัน แต่ไม่ได้แปลว่าเราจะสามารถกำหนดค่าหรือสถานะให้กับคิวบิตทั้งสองนี้ได้ ต่างจากการเทเลพอร์ตที่ทำให้เรากำหนดค่าสถานะคิวบิตที่เราต้องการได้จากคิวบิตตั้งต้น
พอก่อนละกัน เริ่มยาวแล้ว ไว้ถ้ามีเวลาอ่านควอนตัมต่อค่อยมาสรุปภาคถัดไป

