גישה לסובלנות לתקלות
נתחיל בתיאור גישה בסיסית לחישוב קוונטי עמיד לתקלות, המבוססת על מעגלים קוונטיים וקודי תיקון שגיאות.
לצורך הדיון, נבחן את הדוגמה הבאה של מעגל קוונטי. מדובר במעגל טלפורטציה, כולל הכנת ה-e-bit, אך הפונקציונליות הספציפית של המעגל אינה חשובה — זוהי רק דוגמה, ובפועל סביר שנתעניין במעגלים גדולים משמעותית.
מעגל כזה מייצג אידיאל, ומימוש בפועל שלו לא יהיה מושלם. אז מה עלול להשתבש?
האמת היא שהרבה מאוד יכול להשתבש! בפרט, אתחול המצבים, הפעולות האוניטריות והמדידות יהיו כולם לא מושלמים; והקיוביטים עצמם יהיו חשופים לרעש, כולל דקוהרנטיות, בכל שלב בחישוב — אפילו כשלא מבוצעות עליהם פעולות והם פשוט שומרים מידע קוונטי. כלומר, כמעט הכל יכול להשתבש.
יש יוצא דופן אחד, אם כי: כל חישוב קלאסי שמעורב בתהליך נחשב למושלם — כי, למעשה, חישובים קלאסיים הם מושלמים. לדוגמה, אם נחליט להשתמש בקוד שטח לתיקון שגיאות, ואלגוריתם התאמה מושלמת קלאסי מופעל לחישוב תיקונים, ממש אין צורך לדאוג לאפשרות שגיאות בחישוב הקלאסי הזה יובילו לפתרון שגוי. כדוגמה נוספת, חישובים קוונטיים מצריכים לרוב עיבוד מקדים ועיבוד לאחר מכן, וגם חישובים קלאסיים אלו ניתן להניח בבטחה שהם מושלמים.
מודלי רעש
כדי לנתח מימושים עמידים לתקלות של מעגלים קוונטיים, נדרש מודל מתמטי מדויק — מודל רעש — שדרכו ניתן לשייך הסתברויות לאירועים שונים שעלולים להשתבש. תיאורטית, ניתן לנסות לפתח מודל רעש מפורט ומסובך שמשקף את המציאות של מה שקורה במכשיר מסוים. אך אם מודל הרעש מסובך מדי או קשה לניתוח, סביר שיהיה לו שימוש מוגבל. לכן, מודלי רעש פשוטים יותר נבחנים בדרך כלל.
דוגמה אחת למודל רעש פשוט היא מודל הרעש הסטוכסטי העצמאי, שבו שגיאות או תקלות המשפיעות על רכיבים שונים בזמנים שונים — או במילים אחרות, מיקומים שונים במעגל קוונטי — נחשבות כבלתי תלויות. לדוגמה, כל Gate עשוי להיכשל בהסתברות מסוימת, שגיאה עלולה לפגוע בכל Qubit מאוחסן ליחידת זמן בהסתברות שונה, וכן הלאה, ללא קורלציות בין השגיאות האפשריות השונות.
ניתן בהחלט להתנגד למודל כזה, כיוון שכנראה יהיו קורלציות בין שגיאות במכשירים פיזיים אמיתיים. לדוגמה, ייתכן סיכוי קטן לשגיאה קטסטרופלית שמחסלת את כל הקיוביטים בבת אחת. אולי יותר סביר, עלולות להיות שגיאות מקומיות שבכל זאת משפיעות על מספר רכיבים במחשב קוונטי. אף אחד לא טוען אחרת! עם זאת, מודל הרעש הסטוכסטי העצמאי מספק בסיס פשוט הלוכד את הרעיון שהטבע אינו צפוי אך לא זדוני, ואינו מנסה בכוונה לקלקל חישובים קוונטיים.
מודלי רעש אחרים, פחות סלחניים, נחקרים גם הם לעתים קרובות. לדוגמה, הרפיה נפוצה של הנחת העצמאות בין שגיאות המשפיעות על מיקומים שונים במעגל קוונטי היא שרק המיקומים של השגיאות הם עצמאיים, אך השגיאות בפועל המשפיעות על מיקומים אלו יכולות להיות מתואמות.
ללא קשר לאיזה מודל רעש נבחר, חשוב להכיר בכך שלמידה על השגיאות המשפיעות על מכשירים ספציפיים, וניסוח מודלי שגיאות חדשים אם הישנים מובילים אותנו לכיוון שגוי, עשויה להיות חלק חשוב בפיתוח חישוב קוונטי עמיד לתקלות.
מימושי מעגלים עמי דים לתקלות
כעת נבחן אסטרטגיה בסיסית למימושים עמידים לתקלות של מעגלים קוונטיים. נשתמש במעגל הטלפורטציה שלעיל כדוגמה מנחה להמחשת האסטרטגיה, אם כי ניתן ליישמה על כל מעגל קוונטי.
הנה דיאגרמה של מימוש עמיד לתקלות של מעגל הטלפורטציה שלנו.
הרכיבים הבודדים בדיאגרמה זו וקשרם למעגל המקורי הם כדלקמן.
-
הכנות מצב, שערים אוניטריים ומדידות אינם מבוצעים ישירות, כפעולות בודדות, אלא מבוצעים על ידי מה שנקראים גאדג'טים, שכל אחד מהם עשוי לכלול קיוביטים מרובים ופעולות מרובות. בדיאגרמה, גאדג'טים מסומנים בקופסאות סגולות המתויגות לפי הכנת המצב, השער או המדידה שיש ליישם.
-
הקיוביטים הלוגיים שעליהם מופעל המעגל המקורי, האידיאלי, מוגנים באמצעות קוד תיקון שגיאות קוונטי. במקום לפעול ישירות על קיוביטים לוגיים אלו, הגאדג'טים פועלים על הקיוביטים הפיזיים שמקודדים אותם. הדיאגרמה מרמזת שחמישה קיוביטים פיזיים משמשים ל כל Qubit לוגי, כאילו נעשה שימוש בקוד ה--קיוביטים, אך המספר יכול להיות שונה באופן טבעי. חשוב להדגיש שקיוביטים לוגיים אלו לעולם אינם חשופים; הם מבלים את כל קיומם מוגנים על ידי קוד תיקון השגיאות הקוונטי שבחרנו.
-
תיקון שגיאות מבוצע שוב ושוב, כפי שמוצע על ידי הקופסאות הכחולות המסומנות "EC" בדיאגרמה, לאורך כל החישוב. חיוני ביותר שזה ייעשה גם בתדירות גבוהה וגם במקביל. כאשר שגיאות מתרחשות, אנטרופיה מצטברת, ועבודה מתמדת נדרשת להסרתה מהמערכת בקצב גבוה מספיק כדי לאפשר לחישוב לפעול כראוי.
לכן יש לבחור בחירות ספציפיות, כולל בחירת הגאדג'טים וכן קוד תיקון השגיאות הקוונטי עצמו. לאחר שנעשו בחירות אלו, ובהנחה שאומץ מודל רעש מסוים, יש שאלה בסיסית שנוכל לשאול את עצמנו: האם זה בכלל עוזר? כלומר, האם אנחנו משפרים את המצב, או שאולי בעצם מחמירים אותו?
אם קצב הרעש גבוה מדי, התהליך כולו שהוצע עלול היטב להחמיר את ה מצב, בדיוק כפי שקוד שור ה-9-קיוביטים מחמיר את המצב עבור שגיאות עצמאיות אם הסתברות השגיאה בכל Qubit עולה על נקודת שוויון הסיכויים. אם, לעומת זאת, קצב הרעש נמוך מסף מסוים, אז כל העבודה הנוספת הזו תוביל אותנו לאנשהו — וכפי שנדון לקראת סוף השיעור, נפתחות דרכים להפחתת שגיאות נוספת.