การเขียนโปรแกรมคอมพิวเตอร์ควอนตัมสำหรับวิชาเอกที่ไม่ใช่ฟิสิกส์


43

ฉันมาจากพื้นหลังที่ไม่ใช่วิชาฟิสิกส์และฉันสนใจที่จะติดตาม Quantum Computing โดยเฉพาะอย่างยิ่งวิธีการเขียนโปรแกรม คำแนะนำเกี่ยวกับวิธีการเริ่มต้นจะมีประโยชน์มาก


โปรแกรมเมอร์คลาสสิกไม่จำเป็นต้องเข้าใจถึงการทำงานของอิเล็กตรอน สิ่งนี้ใช้ได้กับ QED เช่นกัน
tgm1024

โดยวิธีการกลไกการจัดรูปแบบที่นี่ดูเหมือนจะเสียอย่างน่ากลัวเมื่อเทียบกับเว็บไซต์แลกเปลี่ยนอื่น ๆ ฉันพยายามที่จะสร้างคำตอบที่แท้จริงและต้องยอมแพ้จึงหันไปแสดงความคิดเห็นที่ง่ายมาก รายการที่นี่ไม่ทำงานภายในเครื่องหมายคำพูด ฉันคิดว่าไซต์ stackexchange ทั้งหมดใช้รหัส UI เดียวกัน
tgm1024

@ tgm1024 คุณหมายถึงอะไรกันแน่? การจัดรูปแบบใดไม่ทำงานที่นี่ แต่ทำงานบนไซต์อื่น รายการภายในเครื่องหมายคำพูดทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน
glS

คำตอบ:


22

คุณสามารถเริ่มต้นด้วยการแนะนำเกี่ยวกับคอมพิวเตอร์ควอนตัมเช่นVoxxed Days Vienna 2018 - มันมีไว้สำหรับผู้ที่มีพื้นฐานการเขียนโปรแกรม แต่ไม่มีความรู้พื้นฐานในกลศาสตร์ควอนตัมมาก่อน หลังจากนั้นคุณสามารถตรวจสอบคำแนะนำในIBM ควอนตัมประสบการณ์หรือผู้ที่สำหรับDevelopment Kit

นอกจากนั้นยังมีวิดีโอมากมายบน YouTube ที่สามารถช่วยให้คุณเข้าใจหัวข้อได้ลึกซึ้งยิ่งขึ้น


17

ฉันคิดว่าโปรแกรมเมอร์ควอนตัมไม่จำเป็นต้องรู้เกี่ยวกับฟิสิกส์ควอนตัมและพีชคณิตเชิงเส้น สิ่งเหล่านี้เป็นสิ่งที่จะช่วยเพิ่มพูนความรู้ของโปรแกรมเมอร์ควอนตัม แต่ไม่ควรพิจารณาว่าเป็นสิ่งที่จำเป็นต้องมี

ถึงกระนั้นทรัพยากรส่วนใหญ่ในการช่วยโปรแกรมเมอร์ควอนตัมรุ่นเริ่มต้นด้วยสมมติฐานของพีชคณิตเชิงเส้น อันที่ไม่เน้น QISKit, SDK สำหรับอุปกรณ์ควอนตัมของ IBM (และบางส่วนเขียนโดยฉัน)

โปรแกรมที่ง่ายที่สุดที่คุณสามารถทำได้คือ“ Hello World” คุณจะทำอย่างนั้นกับคอมพิวเตอร์ควอนตัมได้อย่างไร ข้อเสนอของเราคือการทับซ้อนของอีโมติคอน

เมื่อคุณก้าวไปไกลกว่า“ Hello World” ในการเขียนโปรแกรมควอนตัมคุณจะต้องทำอะไรที่ซับซ้อนกว่านี้ บ่อยครั้งที่คนทำเกมง่ายๆ ลองทำกับคอมพิวเตอร์ควอนตัม ฉันทำBattleships

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


5

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

นี่คือลิงค์ไปยังหัวข้อหลัก:


5

ไม่จำเป็นต้องเข้าใจควอนตัมกลศาสตร์อย่างเต็มที่เพื่อทำความเข้าใจทฤษฎีเบื้องหลังการควบคุมคุณภาพ ฉันเป็น BSc / โปรแกรมเมอร์ทางคณิตศาสตร์และฉันอ่านเกี่ยวกับหัวข้อและยังทำหลักสูตร QC edX เก่า (แต่น่าเสียดายที่มันไม่สามารถใช้ได้ แต่มีคนอื่น) ฉันคิดว่าฉันสามารถพูดได้ว่าฉันเข้าใจส่วนสำคัญของ QC แต่ฉันรู้อะไรเกี่ยวกับ Quantum Mechanics

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

หากคุณรู้สึกสะดวกสบายกับหัวข้อคณิตศาสตร์ระดับปริญญาตรีเหล่านี้คุณสามารถดูกลไกควอนตัมของ Susskind : ขั้นต่ำตามทฤษฎี - มันไม่ได้เกี่ยวกับกลไกควอนตัม 'จริง' จริง ๆ มันเป็นสิ่งที่มีประโยชน์สำหรับ QC BTW ชุดหนังสือขั้นต่ำตามทฤษฎีทั้งหมดมุ่งเป้าไปที่ผู้ที่รู้คณิตศาสตร์ (เช่นนักวิทยาศาสตร์คอมพิวเตอร์หรือสาขาวิชาวิศวกรรมศาสตร์) และต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับฟิสิกส์ นอกจากนี้ยังมีหลักสูตรออนไลน์อีกมากมายเช่นมีหลักสูตรใหม่ใน edX แต่ฉันไม่ได้ทำหลักสูตรใดเลยดังนั้นฉันจึงไม่แนะนำ


4

หากคุณต้องการเรียนรู้วิธีการเขียนวงจรควอนตัมในกรอบการเขียนโปรแกรมควอนตัมต่าง ๆ เช่นQ # , pyQuilและQISKitฉันขอแนะนำบทความล่าสุดที่มีชื่อเรื่องการใช้อัลกอริทึม Quantum สำหรับผู้เริ่มต้นจากห้องปฏิบัติการแห่งชาติ Los Alamos เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการทำความเข้าใจวิธีการรวบรวมและใช้อัลกอริธึมควอนตัมต่าง ๆ รวมถึงออราเคิลและรูทีนย่อยเฉพาะเป็นวงจรควอนตัมกับ IBM Q Experience ฉันขอแนะนำให้คุณใช้มันในกรอบการเขียนโปรแกรมดังกล่าวข้างต้นและเรียนรู้รายละเอียด nitty-gritty ที่คุณไป


4

คอมพิวเตอร์ควอนตัมถูกตั้งโปรแกรมโดย (การพัฒนาภาษาโปรแกรมแทน) ที่เรียกว่าวงจรควอนตัม นี่คือลำดับของประตูควอนตัมบวกกับข้อมูลที่บิตควอนตัม (qubits) ทำหน้าที่

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

ประตูควอนตัมหมุนคืออะไร? มันเป็น hyperspheres ที่ผิวสถานะ qubit อาศัยอยู่ แต่ละสถานะของพื้นฐานการคำนวณ ( , , ,|00|01|10|11สำหรับระบบ 2-qubit ตามปกติ Dirac notation) ได้จำนวนเชิงซ้อนเป็นสัมประสิทธิ์หรือเป็นแอมพลิจูดความน่าจะเป็น เวกเตอร์พื้นฐานเป็นมุมฉากและขยายพื้นที่ฮิลแบร์ตของรัฐความกว้างของความน่าจะเป็นสามารถมองเห็นได้ว่าเป็นพิกัดในนั้น นี่คือภาพที่ประตูควอนตัมหมุนผล คุณจะพบว่านักฟิสิกส์มักจะใช้ภาพที่แตกต่างกันคือทรงกลม Bloch สำหรับระบบ qubit เดียวซึ่งประตูควอนตัมยังทำให้เกิดการหมุน (แต่บางครั้งก็เป็นมุมที่ใหญ่กว่า

ตรรกะทั่วไปทั้งหมดสามารถนำมาใช้โดยคอมพิวเตอร์ควอนตัมโดยการแสดงครั้งแรกในตรรกะย้อนกลับได้ (ซึ่งอาจต้องใช้บิตบิต) ประตูคลาสสิกไม่ตรงกับประตูควอนตัม X แต่แตกต่างจากกรณีคลาสสิกที่ประตูย้อนกลับเพียง 1 บิตเท่านั้นเป็นตัวตนและประตูไม่ได้คอมพิวเตอร์ควอนตัมมีประตูที่สอดคล้องกันสี่ (X, Y, Z ตามการหมุนบน Bloch sphere รวมถึงตัวตน) นอกจากนี้คุณสามารถมีการหมุนที่หมุนเพียงเศษเสี้ยวของการหมุนของประตูเหล่านี้ มีชื่อและตัวย่อพิเศษที่น่าสนใจเป็นพิเศษเช่นประตู Hadamard หรือประตู H ที่สร้างการซ้อนทับที่เท่าเทียมกันในทุกรัฐ

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


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