Qiskit Fermions
qiskit-fermions מרחיב את ה-SDK של Qiskit בכלים לעבודה עם מערכות פרמיוניות. במסגרת התחום שלו הוא מספק את הדברים הבאים:
-
מבני נתונים יעילים לייצוג ולטיפול באופרטורים פרמיוניים בצורות שונות
-
מסגרת למימוש שיטות המרה של אופרטורים (כולל קידודי פרמיון-לקיוביט)
-
ספרייה של מימושים יעילים לשיטות המרה נפוצות
-
מסגרת וספרייה של שערים לביטוי מעגלים פרמיוניים
-
צינור טרנספילציה שמשולב בתהליך הטרנספילר של Qiskit כדי לסנתז מעגלים פרמיוניים למעגלים מבוססי קיוביטים
בנוסף, qiskit-fermions משתלב עם כלים אחרים באקוסיסטם, כמו:
- ffsim עבור אופרטורי ansatz ברמה גבוהה וסימולציה יעילה של מעגלים פרמיוניים (ראו Relationship to ffsim)
תחילת העבודה
התיאור הסכמטי בתמונה שלמעלה נותן הצצה לרוחב היכולות ולזרימת העבודה הכללית שהחבילה הזו מספקת. אפשר לעבוד במשטר הפרמיוני גם עם ייצוג של אופרטורים וגם עם ייצוג של מעגלים, ואז להגדיר קידוד של פרמיון לקיוביט שמתחבר לצינור ה-Transpiler הרב-ייצוגי של Qiskit.
כל היכולות האלה מוסברות בכמה מדריכים שיעזרו לכם להתחיל. לסקירה שעוברת בדיוק על הצינור שמוצג למעלה, התחילו במדריך Fermi-Hubbard החד-ממדי.
דוגמאות לשימוש
רכיבים של החבילה הזו שימשו במחקר שקשור למאמרים הבאים:
דיון טכני
כוונות התכנון
החבילה הזו תוכננה במכוון להתאים ל-Qiskit: היא בנויה על ליבה שמומשה ב-Rust ומספקת קישורי שפה רשמיים ל-Python ול-C. ה-API שלה שואף ליצור הקבלות ל-Qiskit כדי להשתלב בצורה חלקה בזרימות העבודה של משתמשים עם ניסיון בתכנות ב-Qiskit.
עיקרון מרכזי בתכנון של qiskit-fermions היה ההפרדה בין ייצוג המעגל הפרמיוני לבין הצורה שלו אחרי המרה לקיוביטים. ליתר דיוק: המעגלים הפרמיוניים בעלי משמעות בפני עצמם ואינם דורשים מיפוי למרחב הקיוביטים כדי להיות ניתנים לפרשנות. יתרה מזו, ייצוג המעגל הפרמיוני אינו יכול להניח דבר על קידוד הפרמיון לקיוביט שיוחל מאוחר יותר. לכן, אף ש-Jordan-Wigner שומר על מעמד ותפקיד דומיננטיים, הוא אינו מוגדר כקידוד ה-_default_ של פרמיון לקיוביט.
הקשר ל-ffsim
ffsim ו-qiskit-fermions מחלקים ביניהם את העבודה ולא חופפים. ffsim אחראית על אופרטורי ה-ansatz ברמה גבוהה ועל הסימולציה המהירה שלהם: היא בונה אופרטור UCJ או UCCSD מאמפליטודות coupled-cluster או מווקטור פרמטרים, ומדמה מצבים פרמיוניים במרחב קומפקטי עם מספר חלקיקים קבוע. qiskit-fermions אחראית על צד המעגלים: היא מבטאת את האופרטור הזה כ-FermionicCircuit על מודים פרמיוניים, ועושה לו transpilation למעגל קיוביטים דרך כל קידוד של פרמיון לקיוביט.
הנקודה האחרונה הזו היא הסיבה להביא לכאן אופרטור של ffsim. השערים של ffsim ב-Qiskit ספציפיים להמרת Jordan-Wigner, ולכן הורדת ansatz דרך קידוד אחר (למשל קידוד מקומי שמחליף קיוביטים במעגלים רדודים יותר) היא התוספת של החבילה הזו. מנגד, החבילה הזו לא מממשת מחדש את המתמטיקה של ה-ansatz, ולכן UCJ ו-UCC מקבלים אופרטור של ffsim ישירות כקלט.
בצד הסימולציה, ffsim היא ה-Backend. השערים והאופרטורים של החבילה הזו מממשים את מתודות הפרוטוקול שפונקציות הסימולציה של ffsim צורכות (_apply_unitary_, _linear_operator_ ו-_trace_; ראו qiskit_fermions.protocols), ולכן הכלים של ffsim עובדים עליהם באופן טבעי, בלי שלב המרה. בניית אופרטורים, מיפוי שלהם ו-transpilation של המעגלים שנוצרו לא דורשים את ffsim בכלל.
לתמונה המלאה, קראו את מדריך הקשר ל-ffsim.
בעיות ידועות
כל עוד ה-C API של Qiskit עדיין לא הגיע לשוויון יכולות עם ה-API של Python, חלק מרכיבי החבילה הזו נשארים זמינים רק ב-API של Python. זה כולל את כל ספריית המעגלים (qiskit_fermions.circuit) וכן את מעברי ה-Transpiler (qiskit_fermions.transpiler).
עבודה עתידית
-
להעביר את ספריית המעגלים ואת מעברי ה-Transpiler אל ליבת ה-Rust (ולספק C API לעבודה איתם)
-
להרחיב את ספריית המימושים היעילים להמרת אופרטורים
-
להרחיב את ספריית מבני הנתונים היעילים של אופרטורים
תרומה לפרויקט
קוד המקור זמין ב-GitHub.
מדריך המפתחים נמצא ב-CONTRIBUTING.md בשורש המאגר של הפרויקט. מי שמשתתף מצופה לכבד את קוד ההתנהגות של Qiskit.
ציטוט החבילה
אם אתם משתמשים בחבילה הזו במחקר שלכם, השתמשו בקובץ CITATION.bib במאגר של הפרויקט כדי לצטט את ההפניות המתאימות.
רישיון
מדיניות הוצאה משימוש
החבילה הזו עוקבת אחר semantic versioning. שינויים שוברים נעשים רק מדי פעם, כדי לשפר את חוויית המשתמש. כשאפשר, ממשקים ישנים נשמרים ומסומנים כמיושנים (deprecated) כל עוד הם יכולים להתקיים לצד החדשים. כל שיפור משמעותי, שינוי שובר או הוצאה משימוש מתועדים ב-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].