ข้ามไปยังเนื้อหาหลัก
โครงการนี้อยู่ในช่วงเบต้า พบข้อผิดพลาด? สร้าง GitHub Issue มีคำถามหรือไอเดีย? ถามใน Discussions — ยินดีรับฟังความคิดเห็น!
คุณภาพการแปลในหน้านี้เป็นอย่างไร?

Qiskit Fermions

qiskit-fermions ขยาย Qiskit SDK ด้วยเครื่องมือสำหรับทำงานกับระบบเฟอร์มิออน ภายในขอบเขตของมัน มีสิ่งต่อไปนี้:

  • โครงสร้างข้อมูลที่มีประสิทธิภาพสำหรับการแทนและจัดการตัวดำเนินการเฟอร์มิออนในรูปแบบต่าง ๆ

  • เฟรมเวิร์กสำหรับ implement วิธีการแปลงตัวดำเนินการ (รวมถึงการเข้ารหัสเฟอร์มิออนเป็นคิวบิต)

  • ไลบรารีของการ implement ที่มีประสิทธิภาพสำหรับวิธีการแปลงทั่วไป

  • เฟรมเวิร์กและไลบรารีของ Gate สำหรับแสดงวงจรเฟอร์มิออน

  • ไปป์ไลน์การทรานสไพล์ที่ผสานรวมกับกระบวนการทรานสไพล์เลอร์ของ Qiskit เพื่อสังเคราะห์วงจรเฟอร์มิออนเป็นวงจรที่อิงคิวบิต

นอกจากนี้ qiskit-fermions ยังทำงานร่วมกับเครื่องมืออื่น ๆ ในระบบนิเวศ เช่น:

เริ่มต้นใช้งาน​

Schematic description of Qiskit Fermions

แผนภาพในภาพด้านบนให้ภาพรวมของความสามารถและขั้นตอนการทำงานโดยทั่วไปที่แพ็กเกจนี้มีให้ คุณทำงานในโหมด fermionic ได้ทั้งแบบตัวดำเนินการและแบบ circuit ก่อนจะกำหนดการเข้ารหัส fermion-to-qubit ที่เชื่อมเข้ากับ pipeline ของ Transpiler แบบหลายการแทนค่าของ Qiskit

ฟีเจอร์เหล่านี้ทั้งหมดอธิบายไว้ใน คู่มือหลายเล่ม เพื่อช่วยให้คุณเริ่มต้นได้ หากต้องการภาพรวมที่ไล่ตาม pipeline ที่แสดงด้านบนพอดี ให้เริ่มที่ คู่มือ 1D Fermi-Hubbard

ตัวอย่างกรณีการใช้งาน​

ส่วนประกอบของแพ็กเกจนี้ถูกนำไปใช้ในงานวิจัยที่เกี่ยวข้องกับบทความต่อไปนี้:

  • การคอมไพล์ circuit แบบสุ่ม qDRIFT ใน [1]

  • การสังเคราะห์ fermion-to-qubit ระหว่างกระบวนการ transpile ใน [2]

การอภิปรายทางเทคนิค​

เจตนารมณ์ในการออกแบบ​

แพ็กเกจนี้ออกแบบมาให้สอดคล้องกับ Qiskit โดยตั้งใจ: สร้างบนแกนหลักที่เขียนด้วย Rust และมี language binding ทางการสำหรับ Python และ C โดย API ถูกออกแบบให้คล้ายกับ Qiskit เพื่อให้ผสานเข้ากับ workflow ของผู้ใช้ที่มีประสบการณ์เขียนโปรแกรม Qiskit ได้อย่างราบรื่น

หลักการสำคัญในการออกแบบ qiskit-fermions คือการแยกการแทนค่า fermionic circuit ออกจากรูปแบบ qubit อย่างเด็ดขาด กล่าวให้ชัดคือ fermionic circuit มีความหมายในตัวเองและไม่จำเป็นต้องแมปไปยังปริภูมิ qubit เพื่อให้ตีความได้ นอกจากนี้ การแทนค่า fermionic circuit ต้องไม่สมมติอะไรเกี่ยวกับการเข้ารหัส fermion-to-qubit ที่นำมาใช้ภายหลัง ดังนั้น แม้ Jordan-Wigner จะยังมีตำแหน่งและบทบาทหลัก แต่ก็ไม่ถูกสมมติให้เป็นการเข้ารหัส fermion-to-qubit _default_

ความสัมพันธ์กับ ffsim​

ffsim และ qiskit-fermions แบ่งงานกันมากกว่าที่จะซ้ำซ้อนกัน ffsim ดูแลตัวดำเนินการ ansatz ระดับสูงและการจำลองที่รวดเร็ว: สร้างตัวดำเนินการ UCJ หรือ UCCSD จาก coupled-cluster amplitude หรือเวกเตอร์พารามิเตอร์ และจำลองสถานะ fermionic ในปริภูมิกะทัดรัดที่มีจำนวนอนุภาคคงที่ ส่วน qiskit-fermions ดูแลฝั่ง circuit: แสดงตัวดำเนินการนั้นเป็น FermionicCircuit บนโหมด fermionic และ transpile เป็น qubit circuit ผ่านการเข้ารหัส fermion-to-qubit แบบใดก็ได้

นั่นคือเหตุผลที่ควรนำตัวดำเนินการ ffsim มาใช้ที่นี่ Gate ของ Qiskit ที่มากับ ffsim เองใช้ได้เฉพาะกับการแปลง Jordan-Wigner ดังนั้นการแปลง ansatz ผ่านการเข้ารหัสอื่น (เช่น การเข้ารหัสแบบ local ที่แลกจำนวน qubit กับ circuit ที่ตื้นกว่า) จึงเป็นสิ่งที่แพ็กเกจนี้เพิ่มเข้ามา ในทางกลับกัน แพ็กเกจนี้ไม่ได้implement คณิตศาสตร์ของ ansatz ซ้ำ ดังนั้น UCJ และ UCC จึงรับตัวดำเนินการ ffsim เป็นอินพุตได้โดยตรง

ในด้านการจำลอง ffsim คือ Backend Gate และตัวดำเนินการของแพ็กเกจนี้ implement เมธอดตามโปรโตคอลที่ฟังก์ชันจำลองของ ffsim เรียกใช้ (_apply_unitary_, _linear_operator_ และ _trace_; ดู qiskit_fermions.protocols) เครื่องมือของ ffsim จึงทำงานกับสิ่งเหล่านี้ได้โดยตรง โดยไม่ต้องมีขั้นตอนแปลง ส่วนการสร้างตัวดำเนินการ การแมป และการ transpile circuit ที่ได้ ไม่ต้องใช้ ffsim เลย

หากต้องการภาพรวมทั้งหมด ให้อ่าน คู่มือความสัมพันธ์กับ ffsim

ปัญหาที่ทราบ​

ตราบใดที่ Qiskit C API ยังไม่มีฟีเจอร์ครบเท่า Python API ส่วนประกอบบางอย่างของแพ็กเกจนี้ก็ยังใช้ได้เฉพาะใน Python API เช่นกัน ซึ่งรวมถึงไลบรารี circuit ทั้งหมด (qiskit_fermions.circuit) และ transpiler pass (qiskit_fermions.transpiler)

งานในอนาคต​

  • ย้ายไลบรารี circuit และ transpiler pass เข้าไปในแกนหลัก Rust (และจัดเตรียม C API สำหรับใช้งาน)

  • ขยายไลบรารีของการแปลงตัวดำเนินการที่มีประสิทธิภาพ

  • ขยายไลบรารีของโครงสร้างข้อมูลตัวดำเนินการที่มีประสิทธิภาพ

การมีส่วนร่วม​

ซอร์สโค้ดอยู่ บน GitHub

คู่มือนักพัฒนาอยู่ที่ CONTRIBUTING.md ในรากของ repository ของโปรเจกต์นี้ เมื่อเข้าร่วม คุณจะต้องปฏิบัติตาม จรรยาบรรณ ของ Qiskit

การอ้างอิงแพ็กเกจนี้​

หากคุณใช้แพ็กเกจนี้ในงานวิจัย ให้ใช้ไฟล์ CITATION.bib ใน repository ของโปรเจกต์นี้เพื่ออ้างอิงเอกสารที่เหมาะสม

สัญญาอนุญาต​

Apache License 2.0

นโยบายการเลิกใช้​

แพ็กเกจนี้ใช้ semantic versioning การเปลี่ยนแปลงที่ทำให้ใช้งานเดิมไม่ได้จะทำเพียงนาน ๆ ครั้งเพื่อปรับปรุงประสบการณ์ผู้ใช้ เมื่อเป็นไปได้ อินเทอร์เฟซเก่าจะถูกเก็บไว้และทำเครื่องหมายว่าเลิกใช้ตราบเท่าที่ยังอยู่ร่วมกับอินเทอร์เฟซใหม่ได้ การปรับปรุงที่สำคัญ การเปลี่ยนแปลงที่ทำให้ใช้งานเดิมไม่ได้ หรือการเลิกใช้ทุกครั้งจะบันทึกไว้ใน Release Notes

เอกสารอ้างอิง​

[1]

Samuele Piccinelli, et al., Quantum chemistry with provable convergence via randomized sample-based Krylov quantum diagonalization, arXiv:2508.02578 [quant-ph].

[2]

Anthony Gandon, et al., Stabilizer-based quantum simulation of fermion dynamics with local qubit encodings, arXiv:2512.11418 [quant-ph].