דיסקרטיזציה של שגיאות
עד כה בחנו שגיאות ושגיאות בהקשר של קוד שור בן 9 ה-Qubit, ובחלק זה נבחן שגיאות שרירותיות. מה שנגלה הוא שכדי לטפל בשגיאות כאלה, אין צורך לעשות דבר שונה ממה שכבר דיברנו עליו; היכולת לתקן שגיאות , שגיאות , או שתיהן, מבטיחה גם תיקון של שגיאות שרירותיות. תופעה זו נקראת לעיתים דיסקרטיזציה של שגיאות.
שגיאות qubit יוניטריות
נתחיל עם שגיאות יוניטריות על qubit בודד. למשל, שגיאה כזו יכולה להתאים לסיבוב קטן מאוד של כדור בלוך, שאולי מייצג שגיאה שנגרמה מ-Gate לא מושלם. או שזו יכולה להיות כל פעולה יוניטרית אחרת על qubit, שלא בהכרח קרובה לאופרטור היחידה.
אולי נדמה שתיקון שגיאות כאלה קשה. הרי יש אינסוף שגיאות אפשריות מסוג זה, ולא יעלה על הדעת שנוכל לזהות כל שגיאה במדויק ואז לבטל אותה. אולם, כל עוד נוכל לתקן היפוך סיביות, היפוך פאזה, או שניהם, נצליח לתקן שגיאה יוניטרית שרירותית על qubit בודד תוך שימוש בנהלים שתוארו קודם לכן בשיעור.
כדי להבין מדוע זה כך, נזהה תחילה שניתן לבטא מטריצה יוניטרית שרירותית המייצגת שגיאה על qubit בודד, כצירוף לינארי של ארבע מטריצות פאולי (כולל מטריצת היחידה).
כפי שנראה, כאשר מריצים את מעגלי גילוי השגיאות, המדידות שנותנות לנו את ביטי הסינדרום מקריסות ביעילות את מצב הקידוד בצורה הסתברותית למצב שבו שגיאה (או היעדר שגיאה) המיוצגת על ידי אחת מארבע מטריצות פאולי התרחשה. (מהעובדה ש- יוניטרית נובע שהמספרים ו- חייבים לקיים ואכן, הערכים ו- הם ההסתברויות שבהן מצב הקידוד קורס לאחד שבו התרחשה שגיאת פאולי המתאימה.)
כדי להסביר כיצד זה עובד ביתר פירוט, יהיה נוח להשתמש בכתבי עילית לציון על איזה qubit פועלת פעולה יוניטרית נתונה. למשל, תוך שימוש במוסכמת מספור ה-Qubit של Qiskit לנומרציה של 9 ה-Qubit בקוד שור, יש לנו ביטויים אלה לפעולות יוניטריות שונות על qubit בודד, שבכל מקרה לוקחים את המטריצה היוניטרית ומכפילים בה בצורת מכפלה טנזורית עם מטריצת היחידה על כל שאר ה-Qubit.
אז, בפרט, עבור פעולה יוניטרית נתונה על qubit, ניתן לציין את פעולת המוחלת על qubit על פי הנוסחה הבאה, הדומה לקודמת אך כשכל מטריצה מייצגת פעולה המוחלת על qubit
נניח כעת ש- הוא הקידוד ב-9 qubit של מצב qubit. אם השגיאה מתרחשת על qubit , מקבלים את המצב , שניתן לבטא כצירוף לינארי של פעולות פאולי הפועלות על כדלקמן.
בשלב זה נבצע את ההצבה
נשקול כעת את שלבי גילוי השגיאות ותיקונן שתוארו קודם לכן. ניתן לחשוב על תוצאות המדידה עבור שלושת בדיקות הזוגיות של הקוד הפנימי יחד עם זו של הקוד החיצוני כסינדרום יחיד המורכב מ-8 סיביות. מיד לפני מדידות הבסיס הרגיל שמייצרות את ביטי הסינדרום, למצב יש הצורה הבאה.
כדי להבהיר, יש לנו שתי מערכות בשלב זה. המערכת בצד שמאל היא 8 ה-Qubit שנמדוד כדי לקבל את הסינדרום, כאשר וכן הלאה, מתייחסים לכל מצב בסיס רגיל בן 8 qubit שעקבי עם השגיאה המתאימה (או העדרה). המערכת בצד ימין היא 9 ה-Qubit שבהם אנחנו משתמשים לקידוד.
שימו לב ששתי המערכות הללו מתואמות כעת (באופן כללי), וזה המפתח לכך שזה עובד. על ידי מדידת הסינדרום, מצב 9 ה-Qubit בצד ימין קורס ביעילות לאחד שבו שגיאת פאולי העקבית עם הסינדרום שנמדד הוחלה על אחד מה-Qubit. יתרה מכך, הסינדרום עצמו מספק מספיק מידע כדי שנוכל לבטל את השגיאה ולשחזר את הקידוד המקורי
בפרט, אם קוראים את ה-Qubit של הסינדרום ומבצעים את התיקונים המתאימים, מקבלים מצב שניתן לבטאו כמטריצת צפיפות,
כאשר
חשוב במיוחד שזהו מצב מכפלה: יש לנו את הקידוד המקורי, הבלתי פגום, כגורם הטנזורי הימני, ובצד שמאל יש לנו מטריצת צפיפות המתארת סינדרום שגיאה אקראי. אין עוד כל מתאם עם המערכת בצד ימין, שהיא זו שמעניינת אותנו, מכיוון שהשגיאות תוקנו. בשלב זה ניתן לזרוק את ה-Qubit של הסינדרום או לאפס אותם כדי שנוכל להשתמש בהם שוב. כך מוסרת האקראיות — או האנטרופיה — שנוצרת על ידי שגיאות מהמערכת.
זוהי דיסקרטיזציה של שגיאות עבור המקרה המיוחד של שגיאות יוניטריות. למעשה, על ידי מדידת הסינדרום, אנחנו מקרינים ביעילות את השגיאה לשגיאה המתוארת על ידי מטריצת פאולי.
במבט ראשון זה עשוי להיראות טוב מכדי להיות אמיתי שניתן לתקן שגיאות יוניטריות שרירותיות כך, אפילו שגיאות זעירות שבקושי ניכרות בפני עצמן. אולם, מה שחשוב להבין כאן הוא שזוהי שגיאה יוניטרית על qubit בודד, ולפי עיצוב הקוד, פעולה על qubit בודד לא יכולה לשנות את מצב ה-Qubit הלוגי שקודד. כל מה שהיא יכולה לעשות הוא להוציא את המצב מהתת-מרחב של קידודים תקינים, אך אז גילוי השגיאות מקריס את המצב והתיקונים מחזירים אותו לנקודת ההתחלה.
שגיאות qubit שרירותיות
לבסוף, נבחן שגיאות שרירותיות שאינן בהכרח יוניטריות. ליתר דיוק, נתייחס לשגיאה המתוארת על ידי ערוץ qubit שרירותי למשל, זה יכול להיות ערוץ דיפאזינג או ערוץ דפולריזציה, ערוץ איפוס, או ערוץ מוזר שמעולם לא חשבנו עליו.
הצעד הראשון הוא לשקול ייצוג קראוס כלשהו של
זהו ערוץ qubit, אז כל הוא מטריצה , שניתן לבטא כצירוף לינארי של מטריצות פאולי.
זה מאפשר לנו לבטא את פעולת השגיאה על qubit נבחר במונחי מטריצות פאולי כדלקמן.
בקצרה, פשוט פרסנו את כל מטריצות הקראוס שלנו כצירופים לינאריים של מטריצות פאולי.
אם כעת נחשב ונמדוד את סינדרום השגיאה, ונתקן שגיאות שנחשפות, נקבל מצב דומה למה שהיה לנו במקרה של שגיאה יוניטרית:
כאשר הפעם יש לנו
הפרטים קצת יותר מסובכים ואינם מוצגים כאן. מבחינה קונספטואלית, הרעיון זהה למקרה היוניטרי.
הכללה
דיסקרטיזציה של שגיאות מתכללת לקודים אחרים לתיקון שגיאות קוונטיות, כולל קודים שיכולים לגלות ולתקן שגיאות על מספר qubit. במקרים כאלה, שגיאות על מספר qubit ניתן לבטא כמכפלות טנזוריות של מטריצות פאולי, ובהתאם סינדרומים שונים מציינים תיקוני פעולת פאולי שאפשר לבצע על מספר qubit ולא רק על אחד.
שוב, על ידי מדידת הסינדרום, שגיאות מוקרנות ביעילות או קורסות לקבוצה דיסקרטית של אפשרויות המיוצגות על ידי מכפלות טנזוריות של מטריצות פאולי, ועל ידי תיקון שגיאות פאולי אלו, ניתן לשחזר את המצב המקודד המקורי. בינתיים, כל האקראיות שנוצרת בתהליך עוברת אל ה-Qubit של הסינדרום, שנזרקים או מאופסים, ובכך מוסרת האקראיות שנוצרה בתהליך זה מהמערכת שמאחסנת את הקידוד.