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

קודי מייצב

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

הגדרת קודי מייצב

קוד מייצב של nn Qubit מוגדר על ידי רשימה של פעולות פאולי על nn Qubit, P1,,Pr.P_1,\ldots,P_r. פעולות אלו נקראות מחוללי מייצב בהקשר זה, והן חייבות לקיים את שלושת התנאים הבאים.

  1. כל מחוללי המייצב מתחלפים זה עם זה.

    PjPk=PkPj(for all j,k{1,,r})P_j P_k = P_k P_j \qquad \text{(for all $j,k\in\{1,\ldots,r\}$)}
  2. מחוללי המייצב מהווים קבוצה מחוללת מינימלית.

    PkP1,,Pk1,Pk+1,,Pr(for all k{1,,r})P_k \notin \langle P_1,\ldots,P_{k-1},P_{k+1},\ldots,P_r\rangle \qquad \text{(for all $k\in\{1,\ldots,r\}$)}
  3. קיים לפחות וקטור מצב קוונטי אחד שמוקבע על ידי כל מחוללי המייצב.

    InP1,,Pr-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle

    (אין זה מובן מאליו שקיומו של וקטור מצב קוונטי ψ\vert\psi\rangle שמוקבע על ידי כל מחוללי המייצב, כלומר P1ψ==Prψ=ψ,P_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle, שקול לתנאי InP1,,Pr,-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle, אך אכן כך הדבר, ונבין מדוע מעט מאוחר יותר בשיעור.)

בהנחה שיש לנו רשימה כזו P1,,Pr,P_1,\ldots,P_r, מרחב הקוד המוגדר על ידי מחוללי המייצב הללו הוא תת-המרחב C\mathcal{C} המכיל את כל וקטורי המצב הקוונטיים של nn Qubit שמוקבעים על ידי כל rr מחוללי המייצב.

C={ψ:P1ψ==Prψ=ψ}\mathcal{C} = \bigl\{ \vert\psi\rangle \,:\, P_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle \bigr\}

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

לבסוף, המייצב של הקוד המוגדר על ידי מחוללי המייצב P1,,PrP_1, \ldots, P_r הוא הקבוצה שמחוללת אותן פעולות:

P1,,Pr.\langle P_1,\ldots,P_r\rangle.

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

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

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

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

התנאי השלישי דורש שלפחות וקטור אחד שאינו אפסי מוקבע על ידי כל מחוללי המייצב, שהוא שקול ל-In-\mathbb{I}^{\otimes n} שאינו כלול במייצב. הצורך בתנאי זה נובע מכך שאכן ניתן לבחור קבוצה מחוללת מינימלית של פעולות פאולי על nn Qubit שכולן מתחלפות זו עם זו, ועם זאת אין וקטורים שאינם אפסיים שמוקבעים על ידי כל אחת מהפעולות. אנחנו לא מעוניינים ב"קודים" שאין להם קידודים תקינים, לכן אנו שוללים אפשרות זו על ידי דרישה שתנאי זה יהווה חלק מההגדרה.

דוגמאות

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

קוד החזרה של 3 סיביות

קוד החזרה של 3 סיביות הוא דוגמה לקוד מייצב, שבו מחוללי המייצב הם ZZIZ \otimes Z \otimes \mathbb{I} ו-IZZ.\mathbb{I} \otimes Z \otimes Z.

ניתן לוודא בקלות ששני מחוללי המייצב הללו מקיימים את התנאים הנדרשים. ראשית, שני מחוללי המייצב ZZIZ \otimes Z \otimes \mathbb{I} ו-IZZ\mathbb{I} \otimes Z \otimes Z מתחלפים זה עם זה.

(ZZI)(IZZ)=ZIZ=(IZZ)(ZZI)(Z \otimes Z \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) = Z \otimes \mathbb{I} \otimes Z = (\mathbb{I} \otimes Z \otimes Z)(Z \otimes Z \otimes \mathbb{I})

שנית, יש לנו קבוצה מחוללת מינימלית (בצורה טריוויאלית למדי במקרה זה).

ZZIIZZ={III,IZZ}IZZZZI={III,ZZI}\begin{aligned} Z \otimes Z \otimes \mathbb{I} \notin \langle\mathbb{I} \otimes Z \otimes Z\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, \mathbb{I} \otimes Z \otimes Z\}\\[1mm] \mathbb{I} \otimes Z \otimes Z \notin \langle Z \otimes Z \otimes \mathbb{I}\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z \otimes Z \otimes \mathbb{I}\} \end{aligned}

ושלישית, כבר ידוע לנו ש-000\vert 000\rangle ו-111,\vert 111\rangle, וכן כל צירוף לינארי של וקטורים אלו, מוקבעים על ידי ZZIZ \otimes Z \otimes \mathbb{I} ועל ידי IZZ.\mathbb{I} \otimes Z \otimes Z. לחלופין, ניתן להסיק זאת באמצעות התנאי השקול מההגדרה.

IIIZZI,IZZ={III,ZZI,ZIZ,IZZ}-\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\notin \langle Z \otimes Z \otimes \mathbb{I}, \mathbb{I} \otimes Z \otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

תנאים אלו יכולים להיות הרבה יותר קשים לאימות עבור קודי מייצב מורכבים יותר.

קוד החזרה המשונה של 3 סיביות

בשיעור הקודם ראינו שניתן לשנות את קוד החזרה של 3 סיביות כך שיגן מפני שגיאות היפוך פאזה במקום שגיאות היפוך סיבית. כקוד מייצב, הקוד החדש הזה קל לתיאור: מחוללי המייצב שלו הם XXIX \otimes X \otimes \mathbb{I} ו-IXX.\mathbb{I} \otimes X \otimes X.

הפעם מחוללי המייצב מייצגים אובייקטים XXX\otimes X במקום אובייקטים ZZZ\otimes Z, כך שהם בעצם בדיקות זוגיות בבסיס פלוס/מינוס במקום הבסיס הסטנדרטי. שלושת התנאים הנדרשים ממחוללי המייצב קלים לאימות, בדומה לקוד החזרה הרגיל של 3 סיביות.

קוד שור של 9 Qubit

הנה קוד שור של 9 Qubit, שהוא גם קוד מייצב, מבוטא על ידי מחוללי מייצב.

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{gathered} Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z\\[1mm] X \otimes X \otimes X \otimes X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\otimes X \otimes X \otimes X \otimes X \otimes X \otimes X \end{gathered}

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

דרך חלופית לחשוב על שני מחוללי המייצב האחרונים היא שהם נוטלים את אותה הצורה כמו לקוד החזרה של 3 סיביות עבור היפוך פאזה, אלא ש-XXXX\otimes X\otimes X מוחלף ב-XX, וזה עקבי עם העובדה ש-XXXX\otimes X\otimes X מתאים לפעולת XX על Qubit לוגי המקודד באמצעות קוד החזרה של 3 סיביות.

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

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{array}{ccccccccc} Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z\\[1mm] X & X & X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I}& X & X & X & X & X & X \end{array}

קוד סטין של 7 Qubit

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

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

לעת עתה, בואו פשוט נשים לב שזהו קוד מייצב תקין. שלושת מחוללי המייצב הראשונים ברור שמתחלפים זה עם זה, מכיוון ש-ZZ מתחלף עם עצמו והיחידה מתחלפת עם הכול, והמצב דומה עבור שלושת מחוללי המייצב האחרונים. נותר לבדוק שאם נבחר אחד ממחוללי ה-ZZ (כלומר, אחד משלושת הראשונים) ואחד ממחוללי ה-XX (כלומר, אחד משלושת האחרונים), אז שני המחוללים הללו מתחלפים, וניתן לעבור על 9 הצמדים האפשריים לבדיקה. בכל המקרים הללו, מטריצת פאולי XX ומטריצת פאולי ZZ תמיד מתיישרות באותה עמדה מספר זוגי של פעמים, כך ששני המחוללים יתחלפו, בדיוק כמו ש-XXX\otimes X ו-ZZZ\otimes Z מתחלפים. זוהי גם קבוצה מחוללת מינימלית, והיא מגדירה מרחב קוד לא טריוויאלי — עובדות שמוטלות עליך לחשוב עליהן.

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

קוד 5 Qubit

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

XZZXIIXZZXXIXZZZXIXZ\begin{array}{ccccc} X & Z & Z & X & \mathbb{I} \\[1mm] \mathbb{I} & X & Z & Z & X \\[1mm] X & \mathbb{I} & X & Z & Z \\[1mm] Z & X & \mathbb{I} & X & Z \\[1mm] \end{array}

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

קודי מייצב חד-ממדיים

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

ZZXX\begin{array}{cc} Z & Z \\[1mm] X & X \end{array}

ספציפית, מרחב הקוד הוא המרחב החד-ממדי הנפרש על ידי e-bit ϕ+.\vert\phi^+\rangle.

הנה דוגמה קשורה לקוד מייצב שמרחב הקוד שלו הוא המרחב החד-ממדי הנפרש על ידי מצב GHZ (000+111)/2.(\vert 000\rangle + \vert 111\rangle)/\sqrt{2}.

ZZIIZZXXX\begin{array}{cc} Z & Z & \mathbb{I} \\[1mm] \mathbb{I} & Z & Z \\[1mm] X & X & X \end{array}

ממד מרחב הקוד

נניח שיש לנו קוד מייצב, המתואר על ידי מחוללי מייצב של nn Qubit: P1,,Pr.P_1,\ldots,P_r. אולי השאלה הראשונה שעולה בנוגע לקוד זה היא, "כמה Qubit הוא מקודד?"

לשאלה זו יש תשובה פשוטה. בהנחה שמחוללי המייצב של nn Qubit, P1,,PrP_1, \ldots, P_r, מקיימים את שלושת הדרישות של ההגדרה (כלומר, שכל מחוללי המייצב מתחלפים זה עם זה, שזוהי קבוצה מחוללת מינימלית, ושמרחב הקוד אינו ריק), הרי שמרחב הקוד לקוד מייצב זה חייב לקיים ממד 2nr2^{n-r}, כך שניתן לקודד nrn-r Qubit באמצעות קוד זה.

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

לדוגמה, עבור קוד החזרה של 3 סיביות ועבור הגרסה המשונה שלו לשגיאות היפוך פאזה, יש לנו n=3n=3 Qubit ו-r=2r=2 מחוללי מייצב, ולכן כל אחד מהקודים הללו יכול לקודד Qubit אחד. לדוגמה נוספת, שקול את קוד 5 Qubit: יש לנו 5 Qubit ו-4 מחוללי מייצב, ולכן שוב מרחב הקוד הוא בעל ממד 2, כלומר ניתן לקודד Qubit אחד באמצעות קוד זה. לדוגמה אחרונה, הקוד שמחוללי המייצב שלו הם XXX\otimes X ו-ZZZ\otimes Z הוא בעל מרחב קוד חד-ממדי, הנפרש על ידי המצב ϕ+\vert\phi^+\rangle, וזה עקבי עם n=2n=2 Qubit ו-r=2r=2 מחוללי מייצב.

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

P1a1Prar,P_1^{a_1} \cdots P_r^{a_r},

שבה a1,,ar{0,1}.a_1,\ldots,a_r\in\{0,1\}. שקולה לכך, כל איבר במייצב מתקבל על ידי הכפלת תת-קבוצה כלשהי של מחוללי המייצב. אכן, כל איבר מייצב יכול להיכתב בצורה יחידה כך, בשל התנאי ש-{P1,,Pr}\{P_1,\ldots,P_r\} הוא קבוצה מחוללת מינימלית.

לאחר מכן, הגדר את Πk\Pi_k להיות ההיטל על מרחב הווקטורים העצמיים של +1+1 של PkP_k, לכל k{1,,r}.k\in\{1,\ldots,r\}. ניתן לקבל היטלים אלו על ידי ממוצע פעולות פאולי המתאימות עם פעולת היחידה כדלקמן.

Πk=In+Pk2\Pi_k = \frac{\mathbb{I}^{\otimes n} + P_k}{2}

מרחב הקוד C\mathcal{C} הוא תת-המרחב של כל הוקטורים שמוקבעים על ידי כל rr מחוללי המייצב P1,,PrP_1,\ldots,P_r, או שקולה לכך, על ידי כל rr ההיטלים Π1,,Πr.\Pi_1,\ldots,\Pi_r.

מאחר שמחוללי המייצב כולם מתחלפים זה עם זה, ההיטלים Π1,,Πr\Pi_1,\ldots,\Pi_r חייבים גם הם להתחלף. זה מאפשר לנו להשתמש בעובדה מאלגברה לינארית, שלפיה המכפלה של היטלים אלו היא ההיטל על החיתוך של תת-המרחבות המתאימות להיטלים הבודדים. כלומר, המכפלה Π1Πr\Pi_1\cdots\Pi_r היא ההיטל על מרחב הקוד C.\mathcal{C}.

כעת נוכל לפתח את המכפלה Π1Πr\Pi_1\cdots\Pi_r באמצעות הנוסחאות להיטלים אלו כדי לקבל את הביטוי הבא.

Π1Πr=(In+P12)(In+Pr2)=12ra1,,ar{0,1}P1a1Prar\Pi_1\cdots\Pi_r = \biggl(\frac{\mathbb{I}^{\otimes n} + P_1}{2}\biggr)\cdots\biggl(\frac{\mathbb{I}^{\otimes n} + P_r}{2}\biggr) = \frac{1}{2^r}\sum_{a_1,\ldots,a_r \in \{0,1\}} P_1^{a_1}\cdots P_r^{a_r}

במילים, ההיטל על מרחב הקוד של קוד מייצב שווה, כמטריצה, לממוצע על כל האיברים במייצב של הקוד הזה.

לבסוף, ניתן לחשב את ממד מרחב הקוד באמצעות העובדה שממד כל תת-מרחב שווה לעקבה של ההיטל על אותו תת-מרחב. לכן, ממד מרחב הקוד C\mathcal{C} ניתן על ידי הנוסחה הבאה.

dim(C)=Tr(Π1Πr)=12ra1,,ar{0,1}Tr(P1a1Prar)\operatorname{dim}(\mathcal{C}) = \operatorname{Tr}(\Pi_1\cdots\Pi_r) = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r})

ניתן לחשב ביטוי זה באמצעות כמה עובדות בסיסיות.

  • יש לנו P10Pr0=InP_1^0 \cdots P_r^0 = \mathbb{I}^{\otimes n} ולכן

    Tr(P10Pr0)=2n.\operatorname{Tr}(P_1^{0}\cdots P_r^{0}) = 2^n.
  • עבור (a1,,ar)(0,,0),(a_1,\ldots,a_r) \neq (0,\ldots,0), המכפלה P1a1PrarP_1^{a_1}\cdots P_r^{a_r} חייבת להיות ±1\pm 1 כפול פעולת פאולי — אך אי אפשר לקבל In\mathbb{I}^{\otimes n} כי זה יסתור את המינימליות של הקבוצה {P1,,Pr},\{P_1,\ldots,P_r\}, ואי אפשר לקבל In-\mathbb{I}^{\otimes n} כי התנאי השלישי על מחוללי המייצב אוסר זאת. לכן, מכיוון שעקבת כל פעולת פאולי שאינה יחידה היא אפס, מקבלים

    Tr(P1a1Prar)=0.\operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) = 0.

ממד מרחב הקוד הוא אפוא 2nr2^{n-r} כפי שנטען:

dim(C)=12ra1,,ar{0,1}Tr(P1a1Prar)=12rTr(P10Pr0)=2nr.\begin{aligned} \operatorname{dim}(\mathcal{C}) & = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) \\ & = \frac{1}{2^r} \operatorname{Tr}(P_1^{0}\cdots P_r^{0}) \\ & = 2^{n-r}. \end{aligned}

כהערת אגב, ניתן כעת להבין שהנחת העדר In-\mathbb{I}^{\otimes n} במייצב מרמזת שמרחב הקוד חייב להכיל לפחות וקטור מצב קוונטי אחד. זאת מכיוון שכפי שאמתנו זה עתה, הנחה זו מרמזת שמרחב הקוד הוא בעל ממד 2nr2^{n-r}, שלא יכול להיות אפס. הרמיזה ההפוכה טריוויאלית: אם In-\mathbb{I}^{\otimes n} כלול במייצב, אז מרחב הקוד לא יכול להכיל שום וקטורי מצב קוונטיים, כי אין וקטורים שאינם אפסיים שמוקבעים על ידי פעולה זו.

פעולות קליפורד וקידוד

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

פעולות קליפורד

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

  • Gate של הדמר
  • Gate של SS
  • Gate של CNOT

שימו לב ש-Gate של TT אינו כלול, וכך גם Gate של טופולי ו-Gate של פרדקין. לא רק שה-Gateים האלה לא כלולים ברשימה — למעשה, לא ניתן לממש אותם באמצעות ה-Gateים הרשומים כאן; הם אינם פעולות קליפורד. פעולות פאולי, לעומת זאת, הן פעולות קליפורד, כי ניתן לממש אותן עם רצפים של Gate של הדמר ו-Gate של SS.

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

UPU=±QU P U^{\dagger} = \pm Q

עבור פעולת פאולי QQ כלשהי על nn Qubitים.

(שימו לב שאי-אפשר שיתקיים UPU=αQU P U^{\dagger} = \alpha Q כאשר α{+1,1}\alpha\notin\{+1,-1\} כשש-UU אוניטרית ו-PP ו-QQ הן פעולות פאולי. זה נובע מהעובדה שהמטריצה בצד שמאל של המשוואה היא גם אוניטרית וגם הרמיטית, ו-+1+1 ו-1-1 הם הערכים היחידים ל-α\alpha שמאפשרים לצד ימין להיות אוניטרי והרמיטי גם כן.)

קל לאמת את תכונת הצימוד שתוארה כאשר UU הוא Gate של הדמר, Gate של SS, או Gate של CNOT. בפרט, קל לראות זאת עבור Gate של הדמר,

HXH=Z,HYH=Y,HZH=X,H X H^{\dagger} = Z, \qquad H Y H^{\dagger} = -Y, \qquad H Z H^{\dagger} = X,

ועבור Gate של SS,

SXS=Y,SYS=X,SZS=Z.S X S^{\dagger} = Y, \qquad S Y S^{\dagger} = -X, \qquad S Z S^{\dagger} = Z.

עבור Gate של CNOT, יש 15 פעולות פאולי לא-טריוויאליות על שני Qubitים לבדוק. כמובן, ניתן לבדוק אותן אחת-אחת — אך הקשרים בין Gate של CNOT ל-Gate של XX ו-ZZ המפורטים (בצורה של Circuit) בשיעור הקודם, יחד עם כללי הכפל של מטריצות פאולי, מציעים קיצור דרך לאותה מסקנה.

ברגע שאנחנו יודעים שתכונת הצימוד נכונה עבור Gate של הדמר, Gate של SS, ו-Gate של CNOT, נוכל להסיק מיד שהיא נכונה גם עבור Circuitים המורכבים מ-Gateים אלה — כלומר, עבור כל פעולות קליפורד.

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

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

מקודדים לקודי מייצב

קוד מייצב מגדיר מרחב קוד בממד מסוים, ויש לנו חופש להשתמש במרחב זה כרצוננו — שום דבר אינו מכריח אותנו לקדד Qubitים למרחב הקוד הזה בדרך ספציפית. תמיד אפשרי, עם זאת, להשתמש בפעולת קליפורד כמקודד, אם בוחרים לעשות זאת. ליתר דיוק, עבור כל קוד מייצב המאפשר קידוד של mm Qubitים ל-nn Qubitים, קיימת פעולת קליפורד UU על nn Qubitים כך שעבור כל וקטור מצב קוואנטי ϕ\vert\phi\rangle על mm Qubitים, מתקיים

ψ=U(0nmϕ)\vert\psi\rangle = U \bigl(\vert 0^{n-m} \rangle \otimes \vert \phi\rangle\bigr)

הוא וקטור מצב קוואנטי במרחב הקוד שלנו שניתן לפרש כקידוד של ϕ\vert\phi\rangle.

זה טוב כי פעולות קליפורד הן פשוטות יחסית, בהשוואה לפעולות אוניטריות שרירותיות, ויש דרכים לבצע אופטימיזציה של מימושן באמצעות טכניקות דומות לאלה שנמצאות בהוכחת משפט גוטסמן-קניל. כתוצאה מכך, Circuitים לקידוד מצבים באמצעות קודי מייצב לעולם אינם צריכים להיות גדולים מדי. בפרט, תמיד אפשרי לבצע קידוד עבור קוד מייצב על nn Qubitים באמצעות פעולת קליפורד הדורשת O(n2/log(n))O(n^2/\log(n)) Gateים. זאת מפני שכל פעולת קליפורד על nn Qubitים ניתנת לממוש על ידי Circuit בגודל זה.

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

מקודד קליפורד לקוד שטיין בן 7 Qubitים

איתור שגיאות

עבור קוד מייצב על nn Qubitים המתואר על ידי מחוללי מייצב P1,,PrP_1,\ldots, P_r, איתור שגיאות פועל כדלקמן.

לאיתור שגיאות, כל מחוללי המייצב נמדדים כאובסרבבלות. יש rr מחוללי מייצב, ולכן rr תוצאות מדידה, כל אחת +1+1 או 1-1 (או ערך בינארי אם בוחרים לשייך 00 ל-+1+1 ו-11 ל-1-1, בהתאמה). אנחנו מפרשים את rr התוצאות ביחד, כוקטור או מחרוזת, בתור תסמין. התסמין (+1,,+1)(+1,\ldots,+1) מציין שלא זוהתה שגיאה, בעוד לפחות 1-1 אחד איפשהו בתסמין מציין שזוהתה שגיאה.

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

מקרי איתור שגיאות

  1. הפעולה EE פרופורציונית לאיבר במייצב.

    E=±Q  for some  QP1,,PrE = \pm Q \; \text{for some}\; Q \in \langle P_1,\ldots,P_r\rangle

    במקרה זה, EE חייבת להתחלף עם כל מחולל מייצב, ולכן מקבלים את התסמין (+1,,+1)(+1,\ldots,+1). משמע ש-EE אינה מזוהה כשגיאה.

  2. הפעולה EE אינה פרופורציונית לאיבר במייצב, אך בכל זאת מתחלפת עם כל מחולל מייצב.

    E±Q  for  QP1,,Pr,  but  EPk=PkE  for every  k{1,,r}E\neq \pm Q\; \text{for} \; Q \in \langle P_1,\ldots,P_r\rangle, \;\text{but}\; E P_k = P_k E \;\text{for every}\; k\in\{1,\ldots,r\}

    זוהי שגיאה שמשנה וקטורים במרחב הקוד בדרך לא-טריוויאלית. אך מכיוון ש-EE מתחלפת עם כל מחולל מייצב, התסמין הוא (+1,,+1)(+1,\ldots,+1), כך ש-EE אינה מזוהה על ידי הקוד.

  3. הפעולה EE אנטי-מתחלפת עם לפחות אחד ממחוללי המייצב.

    PkE=EPk  for at least one  k{1,,r}P_k E = -E P_k \; \text{for at least one} \; k\in\{1,\ldots,r\}

    התסמין שונה מ-(+1,,+1)(+1,\ldots,+1), ולכן השגיאה EE מזוהה על ידי הקוד.

במקרה הראשון, השגיאה EE אינה מדאיגה כי פעולה זו אינה עושה דבר לוקטורים במרחב הקוד, פרט אולי להזרקת פאזה גלובלית לא-רלוונטית: Eψ=±ψE \ket{\psi} = \pm\ket{\psi} עבור כל מצב מקודד ψ\ket{\psi}. למעשה, זה בכלל לא שגיאה — כל פעולה לא-טריוויאלית ש-EE עשויה לבצע קורה מחוץ למרחב הקוד — לכן טוב ש-EE אינה מזוהה כשגיאה, כי אין צורך לעשות שום דבר בנידון.

המקרה השני הוא, אינטואיטיבית, המקרה הרע. האנטי-התחלפות של שגיאה עם מחולל מייצב היא שגורמת ל-1-1 להופיע איפשהו בתסמין ולאותת על שגיאה, אך זה לא קורה במקרה זה. לכן, יש לנו שגיאה EE שאכן משנה וקטורים במרחב הקוד בדרך לא-טריוויאלית, אך היא אינה מזוהה על ידי הקוד. לדוגמה, עבור קוד החזרה על 3 סיביות, הפעולה E=XXXE = X\otimes X\otimes X נופלת לתוך קטגוריה זו.

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

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

מרחק של קוד מייצב

כנקודת מינוח, כאשר אנחנו מתייחסים למרחק של קוד מייצב, הכוונה למשקל המינימלי של פעולת פאולי EE הנופלת לקטגוריה השנייה לעיל — כלומר, שמשנה את מרחק הקוד בדרך לא-טריוויאלית, אך הקוד אינו מזהה זאת. כאשר אומרים שקוד מייצב הוא קוד מייצב [[n,m,d]][[n,m,d]], עם סוגריים מרובעים כפולים, הכוונה היא:

  1. קידודים הם באורך nn Qubitים,
  2. הקוד מאפשר קידוד של mm Qubitים, ו-
  3. מרחק הקוד הוא dd.

כדוגמה, ניקח את קוד שטיין בן 7 Qubitים. הנה מחוללי המייצב לקוד זה:

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

לקוד זה יש מרחק 3, וניתן לטעון זאת כדלקמן.

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

E=PQIIIIIE = P \otimes Q \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}

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

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

ZIZIZIZXIXIXIX\begin{gathered} Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z\\[1mm] X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \end{gathered}

גורם המכפלה הטנזורית QQ בשגיאה EE שלנו מתיישר עם מטריצת הזהות בשני מחוללי המייצב הללו (ולכן הם נבחרו). בהינתן שיש לנו מטריצות זהות ב-5 המיקומים הימניים של EE, נסיק ש-PP חייבת להתחלף עם XX ועם ZZ, אחרת EE תאנטי-תתחלף עם אחד משני המחוללים. אולם, מטריצת הפאולי היחידה המתחלפת גם עם XX וגם עם ZZ היא מטריצת הזהות, ולכן P=IP = \mathbb{I}.

עכשיו שיודעים זאת, ניתן לבחור שני מחוללי מייצב נוספים שיש להם XX ו-ZZ במיקום השני משמאל, ונגיע למסקנה דומה: Q=IQ = \mathbb{I}. לכן, EE היא פעולת הזהות.

כך, אין שום דרך לשגיאה בעלת משקל של לכל היותר 2 להיות בלתי מזוהה על ידי קוד זה, אלא אם השגיאה היא פעולת הזהות (שנמצאת במייצב ולכן אינה שגיאה בפועל). מצד שני, קיימות פעולות פאולי ממשקל 3 המתחלפות עם כל ששת מחוללי המייצב הללו, אך אינן פרופורציונליות לאיברי מייצב, כגון IIIIXXX\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes X\otimes X\otimes X ו-IIIIZZZ\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes Z\otimes Z\otimes Z. זה מוכיח שלקוד זה יש מרחק 3, כפי שנטען.

תיקון שגיאות

הנושא האחרון לדיון בשיעור זה הוא תיקון שגיאות בקודים מייצבים. כרגיל, נניח שיש לנו קוד מייצב המוגדר על ידי מחוללי מייצב של n-Qubit — P1,,Pr.P_1, \ldots, P_r.

פעולות הפאולי על nn Qubit, כשגיאות שיכולות לפגוע במצבים המקודדים בעזרת קוד זה, מחולקות לאוספים שווים בגודלם לפי הסינדרום שהן גורמות. יש 2r2^r סינדרומים שונים ו-4n4^n פעולות פאולי, כלומר יש 4n/2r4^n/2^r פעולות פאולי הגורמות לכל סינדרום. כל אחת מהשגיאות הללו עשויה להיות האחראית לסינדרום המתאים.

עם זאת, בין 4n/2r4^n/2^r פעולות הפאולי הגורמות לכל סינדרום, יש כאלה שיש לראות בהן כשקולות. בפרט, אם המכפלה של שתי פעולות פאולי פרופורציונלית לאיבר מייצב, אז שתי הפעולות הללו שקולות למעשה כשגיאות.

דרך נוספת לומר זאת היא שאם נחיל פעולת תיקון CC כדי לנסות לתקן שגיאה E,E, הרי שהתיקון מצליח כל עוד הרכב CECE פרופורציונלי לאיבר מייצב. בהינתן שיש 2r2^r איברים במייצב, כל פעולת תיקון CC מתקנת 2r2^r שגיאות פאולי שונות. נשארות 4nr4^{n-r} מחלקות בלתי שקולות של פעולות פאולי, הנחשבות כשגיאות, התואמות לכל סינדרום אפשרי.

משמעות הדבר היא שאלא אם n=rn=r (מקרה בו יש לנו מרחב קוד טריוויאלי חד-ממדי), איננו יכולים לתקן כל שגיאה שמתגלה בקוד מייצב. מה שעלינו לעשות במקום זאת הוא לבחור פעולת תיקון אחת בלבד לכל סינדרום, בתקווה לתקן רק מחלקה אחת של שגיאות שקולות הגורמות לסינדרום זה.

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

עבור קוד מייצב ממרחק d,d, אסטרטגיה זו של בחירת פעולת תיקון שהיא פעולת הפאולי בעלת המשקל הנמוך ביותר התואמת לסינדרום שנמדד, מאפשרת תמיד את תיקון השגיאות בעלות משקל קטן ממחצית d,d, כלומר משקל של לכל היותר (d1)/2.(d-1)/2. כך מוכח, למשל, שקוד סטין בן 7 ה-Qubit יכול לתקן כל שגיאת פאולי ממשקל אחד, ועקב דיסקרטיזציה של שגיאות, משמעות הדבר היא שקוד סטין יכול לתקן שגיאה שרירותית על Qubit אחד.

כדי להבין כיצד זה עובד, בחן את הדיאגרמה שלהלן. המעגל בצד שמאל מייצג את כל פעולות הפאולי שמניבות את הסינדרום (+1,,+1),(+1,\ldots,+1), שהוא הסינדרום המרמז שלא אירעו שגיאות וכל תקין. בין הפעולות הללו יש איברי מייצב (או פעולות פרופורציונליות לאיברי מייצב, ביתר דיוק), וגם שגיאות לא טריוויאליות שמשנות את מרחב הקוד בצורה כלשהי אך אינן מתגלות על ידי הקוד. מהגדרת המרחק, לכל פעולת פאולי בקטגוריה זו חייב להיות משקל של לפחות d,d, שכן dd מוגדר כמשקל המינימלי של פעולות אלה.

המעגל בצד ימין מייצג את פעולות הפאולי שמניבות סינדרום שונה s(+1,,+1),s\neq(+1,\ldots,+1), לרבות שגיאה EE בעלת משקל קטן ממש מ-d/2d/2 שנשקול.

Lowest-weight error correction diagram

פעולת התיקון CC שנבחרה לסינדרום ss היא פעולת הפאולי בעלת המשקל הנמוך ביותר באוסף המיוצג על ידי המעגל הימני בדיאגרמה (או כל אחת מהן במקרה של שוויון). לכן, יכול להיות ש-C=E,C = E, אך לאו דווקא. מה שאפשר לומר בוודאות הוא ש-CC אינו יכול להיות בעל משקל גדול ממשקלו של E,E, מכיוון ש-CC בעל משקל מינימלי בין הפעולות באוסף זה — ולכן משקלו של CC קטן ממש מ-d/2.d/2.

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

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

PkE=αEPkandPkC=αCPkP_k E = \alpha E P_k \quad\text{and}\quad P_k C = \alpha C P_k

עבור אותה ערך α{+1,1},\alpha\in\{+1,-1\}, מכיוון שזהו הרכיב ה-kk בסינדרום ss שגם CC וגם EE מייצרים. לכן, מתקיים

Pk(CE)=αCPkE=α2(CE)Pk=(CE)Pk,P_k (CE) = \alpha C P_k E = \alpha^2 (CE) P_k = (CE) P_k,

כך ש-PkP_k מתחלף עם CE.CE. הראנו אפוא ש-CECE נמצא במעגל השמאלי בדיאגרמה, מכיוון שהוא מייצר את הסינדרום (+1,,+1).(+1,\ldots,+1).

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

עם זאת, יש בעיה אחת. עבור קודים מייצבים בכלל, זוהי בעיה קשה מבחינה חישובית לחשב את פעולת הפאולי בעלת המשקל הנמוך ביותר הגורמת לסינדרום נתון. (אכן, הדבר נכון אפילו לגבי קודים קלאסיים, שבהקשר זה ניתן לחשוב עליהם כקודים מייצבים שבהם רק מטריצות I\mathbb{I} ו-ZZ מופיעות כגורמי טנסור בתוך מחוללי המייצב.) לכן, בשלב זה, פעולות קליפורד לא יבואו להצילנו.

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