Dressed boxes
מנגנוני רעש פיזיקליים שמתרחשים במהלך הרצת מעגלים קוונטיים תלויי הקשר. כשמפעילים פעולות על קבוצות זרות של qubits בו-זמנית, פרופיל הרעש של הפעולה הכוללת עשוי להיות שונה מפרופילי הרעש של חלקיה אילו הופעלו בנפרד. באופן דומה, בפעולות שבאופן אידאלי מתחלפות זו עם זו על אותם qubits, פרופיל הרעש של כל פעולה בנפרד עשוי לא להתחלף, ואף להיות שונה לגמרי אם סדר הפעולות משתנה. לכן פרוטוקולים לדיכוי, הפחתה ותיקון של רעש צריכים להכיר את ההקשר שבו הוא נוצר.
Samplomatic משתמש בהוראות box כדי לנמק לגבי אוספים של פעולות במעגל שצריך להתייחס אליהם כבעלי הקשר רעש יציב, ומשתמש בהערות (annotations) על boxes כדי לאפשר למשתמשים להצהיר על הכוונה הזו ולהגדיר אותה. כל box הוא scope שמחזיק קבוצת qubits, פעולות שפועלות על אותם qubits, ורשימת הערות. הערות של Samplomatic מגדירות directives ו-dressings. Directives מגדירים מה לעשות עם ה-box, למשל לבצע twirl ל-box. Dressings הם קבוצות של שערים עם פרמטרים שמוסיפים לצד השמאלי או הימני של ה-box, למשל שכבה של שערי qubit בודד. השערים ב-dressing משלבים שערים מה-box ופעולות הנדרשות למימוש ה-directives, כגון הבאות:
-
שערים ב-box שתואמים לשערים עם הפרמטרים ונמצאים באותו צד שלהם.
-
שערי twirling שנדגמים מתוך קבוצה כדי לבצע רנדומיזציה של ה-box.
-
שערי הזרקת רעש שנדגמים ממפת Pauli Lindblad.
-
שערים לשינוי בסיס שמוגדרים על ידי המשתמש.
שימו לב ש-directives יכולים לשנות dressings של boxes אחרים.
דוגמה
נניח שאנחנו רוצים לבצע twirl למעגל הבא, ולהוסיף שערי Pauli אקראיים לפני ואחרי שערי ההסתבכות המקבילים, כך שהתוכן הלוגי של המעגל לא ישתנה, אבל מודל הרעש האפקטיבי כן ישתנה.
מעגל לביצוע Pauli twirl.
זה מושג על ידי חלוקת המעגל לשכבות בתוך boxes והוספת הערות twirl.
מעגל עם directives של Pauli twirling. הסימן @ משמש להגדרת directives, וה-dressing כברירת מחדל נמצא בצד שמאל.
כל dressed box מכיל שכבה של שערי qubit בודד ושכבה של שערי הסתבכות בני שני qubits על זוגות זרים של qubits. שכבת שערי ההסתבכות מוקפת בשכבות של שערי Pauli אקראיים, כך שהפעולה הלוגית של ה-box לא משתנה. שכבות ה-Pauli האקראיות האלה הן וירטואליות באותו אופן כמו שער Z וירטואלי. הן לא מוסיפות פעולות למעגל, אלא פועלות כ-directive שמשנה את אופן המימוש של שערי qubit בודד סמוכים.
מעגל עם dressings ושערים מ-directives. ה-dressings הם התיבות המקווקוות. שכבות Pauli שמחוברות בחצים מבטלות זו את זו. שכבת ה-Pauli האחרונה תיושם כהיפוכי ביטים (bit flips) על תוצאות המדידה.
שכבת ה-Pauli האקראית שבין שערי ההסתבכות לשערי ה-qubit הבודד מורכבת לתוך שכבת שערי ה-qubit הבודד ומיושמת ב-dressing שלה. שכבת ה-Pauli האקראית האחרת תורכב לתוך ה-dressing של ה-dressed box הבא.
לסיכום, ה-directive של twirl שמאלי (או ימני) מממש Pauli אקראי ב-dressing של ה-box הזה, ומפעיל את ה-Pauli שמבטל אותו ב-dressing של ה-box הבא (או הקודם). ה-directives של הזרקת רעש ושל שינוי בסיס פועלים באופן אנלוגי.
רנדומיזציה של מעגלים עם שערים וירטואליים
Samplomatic משתמש במסגרת של שערים וירטואליים כדי לנמק לגבי מעגלים עם dressed boxes. מבחינה מושגית, וכפי שמיושם במופע Samplex שנוצר בתהליך build(), שערים וירטואליים נוצרים בגבול ה-box שמנוגד ל-dressing שלו. השערים הווירטואליים האלה מועברים דרך המעגל בדרך מוגדרת וצריך להרכיב אותם לתוך dressing. אם אפשר להרכיב את כל השערים הווירטואליים לתוך dressing, אפשר לבנות רנדומיזציות של המעגל באופן תהליכי.
מעגל עם directives של twirl, שינוי בסיס והזרקת רעש.
שערים בצד של ה-dressing שתואמים לפרמטריזציית התבנית של ה-dressing אפשר להרכיב לתוכו, וכך לצמצם את מספר השערים הפיזיים. שערים כאלה נקראים שערים קלים. שאר ה-box נקרא קשה ומיושם כמות שהוא.
דוגמאות למעגלים עם שערים וירטואליים תלויים. לשערים הווירטואליים בצד הנגדי של ה-dressing אין איפה להתממש.
דוגמאות למעגלים שבהם כל השערים הווירטואליים מורכבים לתוך dressings. במדידות, שערי Pauli מורכבים תוך התחשבות בהיפוך הביט שהם גורמים לו.
דוגמה מורכבת שבה כל השערים הווירטואליים נאספים. שערים וירטואליים שנוצרו על ידי box אחד יכולים להיות מורכבים לתוך dressings שונים.
זה מאפשר מבנים שבהם ל-dressed boxes לא חייב להיות אותו רוחב.