คอมพิวเตอร์ควอนตัมทำคณิตศาสตร์พื้นฐานในระดับฮาร์ดแวร์ได้อย่างไร


27

ในการอ่านเธรด Reddit นี้ฉันรู้ว่าแม้หลังจากผ่านไปสองเดือนของการเรียนรู้เกี่ยวกับการคำนวณควอนตัม

เพื่อให้คำถามมีความแม่นยำมากขึ้นสมมติว่าเรามีคอมพิวเตอร์ควอนตัมตัวนำยิ่งยวดควอต 5-qubit (เช่นคอมพิวเตอร์ควอนตัม IBM 5 ควาบิต) ฉันพิมพ์โดยใช้แป้นพิมพ์ลงบนจอภาพ (พูดในแอปเครื่องคิดเลขพื้นฐานว่าอาจมีคอมพิวเตอร์ควอนตัม) หลังจากนั้นก็ควรจะกลับฉัน5 แต่เกิดขึ้นที่ระดับฮาร์ดแวร์หรือไม่ สัญญาณไฟฟ้าบางชนิดสอดคล้องกับอินพุต2 , 3และ+ไปที่หน่วยประมวลผลของคอมพิวเตอร์หรือไม่ อย่างนั้น "เริ่มต้น" คูเปอร์คู่อิเล็กตรอนหรือไม่ เกิดอะไรขึ้นกับคูเปอร์ qubits คู่อิเล็กตรอนหลังจากนั้น (คิดว่าพวกเขาต้องการจะทำงานโดยบางควอนตัมประตูซึ่งเป็นในทางกลับกันอีกครั้ง2+3523+กล่องดำ )? ในที่สุดมันกลับมาฉันเอาท์พุทอย่างไร5

ฉันประหลาดใจที่ฉันสามารถคิดเกี่ยวกับการทำงานขั้นพื้นฐานของคอมพิวเตอร์ควอนตัมได้เพียงเล็กน้อยด้วยการค้นหาบนอินเทอร์เน็ต

คำตอบ:


26

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

คอมพิวเตอร์ควอนตัมล่ะ?

มีสองวิธีที่เป็นไปได้ที่โปรเซสเซอร์ควอนตัมได้ใช้: ด้วยตัวเองหรือร่วมกับโปรเซสเซอร์คลาสสิก อย่างไรก็ตามตัวประมวลผลควอนตัมส่วนใหญ่ (รวมถึงตัวอย่างของคุณยิ่งยวด) ไม่ได้ใช้สัญญาณไฟฟ้าแม้ว่านี่จะเป็นวิธีที่เมาส์แป้นพิมพ์และจอภาพของคุณส่งและรับข้อมูล ดังนั้นจะต้องมีวิธีในการแปลงสัญญาณไฟฟ้าเป็นสัญญาณที่โปรเซสเซอร์ควอนตัมใช้ (ซึ่งฉันจะใช้ในภายหลัง) รวมถึงวิธีบอกโปรเซสเซอร์ว่าคุณต้องการทำอะไร ทั้งปัญหาเหล่านี้สามารถแก้ไขได้ในครั้งเดียวโดยก่อนคลาสสิกและการประมวลผลการโพสต์เช่นในของไอบีเอ็มQISKit Microsoft กำลังใช้แนวทางแบบบนลงล่างอีกเล็กน้อยในQ #ซึ่งโปรแกรมสำหรับตัวประมวลผลเชิงควอนตัมเขียนขึ้นคล้ายกับโปรแกรม 'คลาสสิค' ตรงข้ามกับสคริปต์จากนั้นรวบรวมและปรับให้เหมาะสมสำหรับฮาร์ดแวร์ นั่นคือถ้าคุณมีฟังก์ชั่นก็สามารถทำการปฏิบัติการแบบคลาสสิกได้เช่นเดียวกับการโทรไปยังตัวประมวลผลควอนตัมเพื่อทำการควอนตัมที่ต้องการ สิ่งนี้ทำให้ฉันถึงจุดแรก:

2+3

ตกลงขอบอกว่าคุณกำลังบังคับให้หน่วยประมวลผลคลาสสิกที่จะใช้หน่วยประมวลผลควอนตัมซึ่งในกรณีนี้เป็นหนึ่งในของไอบีเอ็มชิปยิ่งยวดใช้transmon qubits สมมติว่าที่ไอบีเอ็ม QX4 นี่มันเล็กเกินไปที่จะแก้ไขข้อผิดพลาดดังนั้นเราจะข้ามไป มีสามส่วนในการใช้ตัวประมวลผลโมเดลวงจรคือการเริ่มต้นวิวัฒนาการแบบรวมและการวัดซึ่งอธิบายไว้ในรายละเอียดเพิ่มเติมด้านล่าง ก่อนหน้านั้น,

Transmon คืออะไร

EJ=IcΦ0/2π Φ0=h/2eIcVgCgEC=(2e)2/2CC

H=EC(nng)2EJcosϕ,
nϕng=CgVg/2e|n=|0|n=|1E0=ω0E1=ω1ω=ω1ω0EC=5EJEJEC

สุดท้ายเราก็มาถึงคำถามหลัก:

เราจะเริ่มต้นพัฒนาและวัดทรานส์ได้อย่างไร

  • E(t)=Ex(t)cos(ωdt)+Ey(t)sin(ωdt)0<t<tgωd
    H=(ω1ωd12Ex(t)i2Ey(t)12Ex(t)+i2Ey(t)ω22ωd)
  • ωrgωωr±g2/(ωωr) ขึ้นอยู่กับสถานะของ qubit ดังนั้นการใช้คลื่นไมโครเวฟและวิเคราะห์การส่งผ่านและการสะท้อน (โดยคอมพิวเตอร์) สามารถนำมาใช้ในการวัด qubit
  • |2|0|1|1. การหลีกเลี่ยงการข้ามระหว่างสถานะเหล่านี้หมายความว่าสามารถสร้างเกตเฟส 2-qubit ได้แม้ว่าโดยทั่วไปแล้วประตูเกต 2-qubit จะถูกนำมาใช้น้อยกว่า (มีความเที่ยงตรงต่ำกว่า) กว่าควิบิตเดี่ยว
  • X|1|0

เพิ่ม 2 และ 3 ตอนนี้เป็นเรื่อง 'ง่าย' ในการเริ่มต้น qubits ดำเนินการประตูเทียบเท่ากับ adder ย้อนกลับแบบคลาสสิกและการวัดผลลัพธ์ทั้งหมดดำเนินการโดยอัตโนมัติ ผลการวัดจะถูกส่งคืนโดยคอมพิวเตอร์แบบดั้งเดิมตามปกติ

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


15

นี่คือกระบวนการของฉันสำหรับการคำนวณทางคณิตศาสตร์บนคอมพิวเตอร์ควอนตัม

ขั้นตอนที่ 1: ค้นหาวงจรแบบคลาสสิกที่ทำสิ่งที่คุณสนใจ

ในตัวอย่างนี้ adder เต็ม

งูเห่าเต็มคลาสสิก

ขั้นตอนที่ 2: แปลงเกทคลาสสิกแต่ละตัวให้เป็นเกทแบบพลิกกลับได้

ให้บิตเอาต์พุตของคุณมีอยู่ตั้งแต่เริ่มต้นแล้วเริ่มต้นด้วย CNOTs, CCNOTs และอื่น ๆ

adder เต็มกลับได้กึ่ง

ขั้นตอนที่ 3: ใช้ผลชั่วคราว

หากคุณกำลังทำสิ่งนี้เพิ่มเติมเช่นควบคุมว่าเฟสของ Grover oracle โดย -1 หรือไม่ตอนนี้เป็นเวลาที่จะใช้ Z gate กับ qubit เอาต์พุตของคุณ

ขั้นตอนที่ 4: กำจัดค่ากลางโดยทำสิ่งตรงข้ามกับสิ่งที่คุณทำเพื่อคำนวณ

สิ่งนี้อาจหรือไม่รวมถึงการกำจัดบิตเอาท์พุทขึ้นอยู่กับว่าวงจรเหมาะสมกับอัลกอริทึมโดยรวมของคุณอย่างไร

adder เต็มรูปแบบกึ่งกลับได้ 2

ขั้นตอนที่ 5: (บางครั้ง) สำหรับแต่ละบิตเอาต์พุตที่คุณเก็บไว้ให้กำจัดบิตอินพุต

และฉันไม่ได้หมายถึง "วางมันลงบนพื้น" ฉันหมายถึงใช้การดำเนินการที่ทำให้พวกเขากลายเป็น 0 อย่างแน่นอน

เมื่อคุณคำนวณc+=aให้ทิ้งสำเนาต้นฉบับที่cมีแนวโน้มว่าจะไม่ดี มันทำลายการเชื่อมโยงกัน ดังนั้นคุณต้องดูวงจรบวกของคุณ (หรืออะไรก็ตาม) และคิดให้ถี่ถ้วนหากมีวิธีใช้บิตเอาต์พุตของคุณเพื่อกำจัดบิตอินพุตของคุณ ตัวอย่างเช่นหลังจากคำนวณc+aคุณสามารถทำการลบออกนอกสถานที่ชั่วคราวลงใน register r หรือ xor r ใน register ที่เก็บสำเนาที่ไม่ต้องการจากcนั้นเปลี่ยนกลับการลบชั่วคราว

(ข้อยกเว้นที่น่าสังเกต "ถ้าคุณเก็บเอาท์พุทอย่าเก็บข้อมูลมากนัก" คืออัลกอริธึมของชอร์อัลกอริธึมของชอร์ตกแต่งการป้อนข้อมูลตามวัตถุประสงค์แต่ในวิธีที่เฉพาะเจาะจงมาก

ขั้นตอนที่ 6: มีประสิทธิภาพ

ในขั้นตอนที่ 5 ฉันบอกว่าคุณไม่สามารถคำนวณอินพุตของการเพิ่ม inplace ได้โดยทำการเพิ่มออกนอกสถานที่แล้วตามด้วยการลบนอกสถานที่ชั่วคราว นี่มันโง่ไปหน่อย กระบวนการเพิ่มโดยรวมกำลังจะขยาย 4n qubits (n to hold a, n to hold c, n to hold c+a, n to hold (c+a)-a) หากคุณฉลาดกว่านี้คุณสามารถใส่ทุกอย่างลงใน2nqubitsหรือ (ง่ายขึ้นเล็กน้อย) เป็น2n+1qubits :

Adder cuccaro

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.