דלג לתוכן הראשי

דיסקרטיזציה של שגיאות

עד כה בחנו שגיאות XX ושגיאות ZZ בהקשר של קוד שור בן 9 ה-Qubit, ובחלק זה נבחן שגיאות שרירותיות. מה שנגלה הוא שכדי לטפל בשגיאות כאלה, אין צורך לעשות דבר שונה ממה שכבר דיברנו עליו; היכולת לתקן שגיאות XX, שגיאות ZZ, או שתיהן, מבטיחה גם תיקון של שגיאות שרירותיות. תופעה זו נקראת לעיתים דיסקרטיזציה של שגיאות.

שגיאות Qubit יוניטריות

נתחיל עם שגיאות יוניטריות על Qubit בודד. למשל, שגיאה כזו יכולה להתאים לסיבוב קטן מאוד של כדור בלוך, שאולי מייצג שגיאה שנגרמה מ-Gate לא מושלם. או שזו יכולה להיות כל פעולה יוניטרית אחרת על Qubit, שלא בהכרח קרובה לאופרטור היחידה.

אולי נדמה שתיקון שגיאות כאלה קשה. הרי יש אינסוף שגיאות אפשריות מסוג זה, ולא יעלה על הדעת שנוכל לזהות כל שגיאה במדויק ואז לבטל אותה. אולם, כל עוד נוכל לתקן היפוך סיביות, היפוך פאזה, או שניהם, נצליח לתקן שגיאה יוניטרית שרירותית על Qubit בודד תוך שימוש בנהלים שתוארו קודם לכן בשיעור.

כדי להבין מדוע זה כך, נזהה תחילה שניתן לבטא מטריצה יוניטרית שרירותית 2×22 \times 2 U,U, המייצגת שגיאה על Qubit בודד, כצירוף לינארי של ארבע מטריצות פאולי (כולל מטריצת היחידה).

U=αI+βX+γY+δZU = \alpha \mathbb{I} + \beta X + \gamma Y + \delta Z

כפי שנראה, כאשר מריצים את מעגלי גילוי השגיאות, המדידות שנותנות לנו את ביטי הסינדרום מקריסות ביעילות את מצב הקידוד בצורה הסתברותית למצב שבו שגיאה (או היעדר שגיאה) המיוצגת על ידי אחת מארבע מטריצות פאולי התרחשה. (מהעובדה ש-UU יוניטרית נובע שהמספרים α,\alpha, β,\beta, γ,\gamma, ו-δ\delta חייבים לקיים α2+β2+γ2+δ2=1,\vert\alpha\vert^2 + \vert\beta\vert^2 + \vert\gamma\vert^2 + \vert\delta\vert^2 = 1, ואכן, הערכים α2,\vert\alpha\vert^2, β2,\vert\beta\vert^2, γ2,\vert\gamma\vert^2, ו-δ2\vert\delta\vert^2 הם ההסתברויות שבהן מצב הקידוד קורס לאחד שבו התרחשה שגיאת פאולי המתאימה.)

כדי להסביר כיצד זה עובד ביתר פירוט, יהיה נוח להשתמש בכתבי עילית לציון על איזה Qubit פועלת פעולה יוניטרית נתונה. למשל, תוך שימוש במוסכמת מספור ה-Qubit של Qiskit (Q8,Q7,,Q0)(\mathsf{Q}_8,\mathsf{Q}_7,\ldots,\mathsf{Q}_0) לנומרציה של 9 ה-Qubit בקוד שור, יש לנו ביטויים אלה לפעולות יוניטריות שונות על Qubit בודד, שבכל מקרה לוקחים את המטריצה היוניטרית ומכפילים בה בצורת מכפלה טנזורית עם מטריצת היחידה על כל שאר ה-Qubit.

X0=IIIIIIIIXZ4=IIIIZIIIIU7=IUIIIIIII\begin{aligned} X_0 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes X \\[1.5mm] Z_4 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \\[1.5mm] U_7 & = \mathbb{I} \otimes U \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \end{aligned}

אז, בפרט, עבור פעולה יוניטרית נתונה UU על Qubit, ניתן לציין את פעולת UU המוחלת על Qubit kk על פי הנוסחה הבאה, הדומה לקודמת אך כשכל מטריצה מייצגת פעולה המוחלת על Qubit k.k.

Uk=αIk+βXk+γYk+δZkU_k = \alpha \mathbb{I}_k + \beta X_k + \gamma Y_k + \delta Z_k

נניח כעת ש-ψ\vert\psi\rangle הוא הקידוד ב-9 Qubit של מצב Qubit. אם השגיאה UU מתרחשת על Qubit kk, מקבלים את המצב UkψU_k \vert\psi\rangle, שניתן לבטא כצירוף לינארי של פעולות פאולי הפועלות על ψ\vert\psi\rangle כדלקמן.

Ukψ=αψ+βXkψ+γYkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + \gamma Y_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

בשלב זה נבצע את ההצבה Y=iXZ.Y = iXZ.

Ukψ=αψ+βXkψ+iγXkZkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + i \gamma X_kZ_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

נשקול כעת את שלבי גילוי השגיאות ותיקונן שתוארו קודם לכן. ניתן לחשוב על תוצאות המדידה עבור שלושת בדיקות הזוגיות של הקוד הפנימי יחד עם זו של הקוד החיצוני כסינדרום יחיד המורכב מ-8 סיביות. מיד לפני מדידות הבסיס הרגיל שמייצרות את ביטי הסינדרום, למצב יש הצורה הבאה.

αI syndromeψ+βXk syndromeXkψ+iγXkZk syndromeXkZkψ+δZk syndromeZkψ\begin{gathered} \alpha\,\vert \mathbb{I} \text{ syndrome}\rangle \otimes \vert\psi\rangle \\ + \beta\,\vert X_k \text{ syndrome}\rangle \otimes X_k\vert\psi\rangle \\ + i \gamma\,\vert X_k Z_k \text{ syndrome}\rangle \otimes X_k Z_k\vert\psi\rangle \\ + \delta\,\vert Z_k \text{ syndrome}\rangle \otimes Z_k\vert\psi\rangle \end{gathered}

כדי להבהיר, יש לנו שתי מערכות בשלב זה. המערכת בצד שמאל היא 8 ה-Qubit שנמדוד כדי לקבל את הסינדרום, כאשר I syndrome,\vert \mathbb{I} \text{ syndrome}\rangle, Xk syndrome,\vert X_k \text{ syndrome}\rangle, וכן הלאה, מתייחסים לכל מצב בסיס רגיל בן 8 Qubit שעקבי עם השגיאה המתאימה (או העדרה). המערכת בצד ימין היא 9 ה-Qubit שבהם אנו משתמשים לקידוד.

שימו לב ששתי המערכות הללו מתואמות כעת (באופן כללי), וזה המפתח לכך שזה עובד. על ידי מדידת הסינדרום, מצב 9 ה-Qubit בצד ימין קורס ביעילות לאחד שבו שגיאת פאולי העקבית עם הסינדרום שנמדד הוחלה על אחד מה-Qubit. יתרה מכך, הסינדרום עצמו מספק מספיק מידע כדי שנוכל לבטל את השגיאה ולשחזר את הקידוד המקורי ψ.\vert\psi\rangle.

בפרט, אם קוראים את ה-Qubit של הסינדרום ומבצעים את התיקונים המתאימים, מקבלים מצב שניתן לבטאו כמטריצת צפיפות,

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

כאשר

ξ=α2I syndromeI syndrome+β2Xk syndromeXk syndrome+γ2XkZk syndromeXkZk syndrome+δ2Zk syndromeZk syndrome.\begin{aligned} \xi = & \vert\alpha\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[1mm] & + \vert\beta\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[1mm] & + \vert\gamma\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[1mm] & + \vert\delta\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert. \end{aligned}

חשוב במיוחד שזהו מצב מכפלה: יש לנו את הקידוד המקורי, הבלתי פגום, כגורם הטנזורי הימני, ובצד שמאל יש לנו מטריצת צפיפות ξ\xi המתארת סינדרום שגיאה אקראי. אין עוד כל מתאם עם המערכת בצד ימין, שהיא זו שמעניינת אותנו, מכיוון שהשגיאות תוקנו. בשלב זה ניתן לזרוק את ה-Qubit של הסינדרום או לאפס אותם כדי שנוכל להשתמש בהם שוב. כך מוסרת האקראיות — או האנטרופיה — שנוצרת על ידי שגיאות מהמערכת.

זוהי דיסקרטיזציה של שגיאות עבור המקרה המיוחד של שגיאות יוניטריות. למעשה, על ידי מדידת הסינדרום, אנו מקרינים ביעילות את השגיאה לשגיאה המתוארת על ידי מטריצת פאולי.

במבט ראשון זה עשוי להיראות טוב מכדי להיות אמיתי שניתן לתקן שגיאות יוניטריות שרירותיות כך, אפילו שגיאות זעירות שבקושי ניכרות בפני עצמן. אולם, מה שחשוב להבין כאן הוא שזוהי שגיאה יוניטרית על Qubit בודד, ולפי עיצוב הקוד, פעולה על Qubit בודד לא יכולה לשנות את מצב ה-Qubit הלוגי שקודד. כל מה שהיא יכולה לעשות הוא להוציא את המצב מהתת-מרחב של קידודים תקינים, אך אז גילוי השגיאות מקריס את המצב והתיקונים מחזירים אותו לנקודת ההתחלה.

שגיאות Qubit שרירותיות

לבסוף, נבחן שגיאות שרירותיות שאינן בהכרח יוניטריות. ליתר דיוק, נתייחס לשגיאה המתוארת על ידי ערוץ Qubit שרירותי Φ.\Phi. למשל, זה יכול להיות ערוץ דיפאזינג או ערוץ דפולריזציה, ערוץ איפוס, או ערוץ מוזר שמעולם לא חשבנו עליו.

הצעד הראשון הוא לשקול ייצוג קראוס כלשהו של Φ.\Phi.

Φ(σ)=jAjσAj\Phi(\sigma) = \sum_j A_j \sigma A_j^{\dagger}

זהו ערוץ Qubit, אז כל AjA_j הוא מטריצה 2×22\times 2, שניתן לבטא כצירוף לינארי של מטריצות פאולי.

Aj=αjI+βjX+γjY+δjZA_j = \alpha_j \mathbb{I} + \beta_j X + \gamma_j Y + \delta_j Z

זה מאפשר לנו לבטא את פעולת השגיאה Φ\Phi על Qubit נבחר kk במונחי מטריצות פאולי כדלקמן.

Φk(ψψ)=j(αjIk+βjXk+γjYk+δjZk)ψψ(αjIk+βjXk+γjYk+δjZk)\Phi_k \bigl( \vert\psi\rangle\langle\psi\vert\bigr) = \sum_j (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k) \vert\psi\rangle\langle\psi\vert (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k)^{\dagger}

בקצרה, פשוט פרסנו את כל מטריצות הקראוס שלנו כצירופים לינאריים של מטריצות פאולי.

אם כעת נחשב ונמדוד את סינדרום השגיאה, ונתקן שגיאות שנחשפות, נקבל מצב דומה למה שהיה לנו במקרה של שגיאה יוניטרית:

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

כאשר הפעם יש לנו

ξ=j(αj2I syndromeI syndrome+βj2Xk syndromeXk syndrome+γj2XkZk syndromeXkZk syndrome+δj2Zk syndromeZk syndrome).\begin{aligned} \xi = & \sum_j \Bigl(\vert\alpha_j\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[-3mm] & \qquad + \vert\beta_j\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\gamma_j\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\delta_j\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert \Bigr). \end{aligned}

הפרטים קצת יותר מסובכים ואינם מוצגים כאן. מבחינה קונספטואלית, הרעיון זהה למקרה היוניטרי.

הכללה

דיסקרטיזציה של שגיאות מתכללת לקודים אחרים לתיקון שגיאות קוונטיות, כולל קודים שיכולים לגלות ולתקן שגיאות על מספר Qubit. במקרים כאלה, שגיאות על מספר Qubit ניתן לבטא כמכפלות טנזוריות של מטריצות פאולי, ובהתאם סינדרומים שונים מציינים תיקוני פעולת פאולי שאפשר לבצע על מספר Qubit ולא רק על אחד.

שוב, על ידי מדידת הסינדרום, שגיאות מוקרנות ביעילות או קורסות לקבוצה דיסקרטית של אפשרויות המיוצגות על ידי מכפלות טנזוריות של מטריצות פאולי, ועל ידי תיקון שגיאות פאולי אלו, ניתן לשחזר את המצב המקודד המקורי. בינתיים, כל האקראיות שנוצרת בתהליך עוברת אל ה-Qubit של הסינדרום, שנזרקים או מאופסים, ובכך מוסרת האקראיות שנוצרה בתהליך זה מהמערכת שמאחסנת את הקידוד.