לחלק ב' >>>
אז כמו שראינו, מעגלים בולאניים מאפשרים תיאור פשוט ונוח של חישוב. אבל יש עם התיאור הזה בעיה -- נניח שאנחנו רוצים לבנות מעגל שלוקח שני מספרים ומכפיל אותם. כמה רגלי כניסה יש למעגל כזה? ככל שהמספרים יותר גדולים צריך יותר ביטים כדי לייצג אותם ואנחנו צריכים יותר רגליים. אז כמה רגלי כניסה יש למעגל שלנו, כדי שיוכל להתמודד עם מספרים בגודל שרירותי? אינסוף? בשביל לפתור את הבעיה הזו מה שעושים הוא לא להסתכל על מעגל אחד אלא על משפחה אינסופית של מעגלים. כשמדברים על מעגל שמכפיל מספרים, בעצם מדברים על משפחה של אינסוף מעגלים, כאשר המעגל ה-n הוא מעגל שמכפיל שני מספרים באורך n ביטים. מעגל בוליאני קוונטי הוא אותו הדבר, רק שאת הביטים מחליפים קיוביטים ואת השערים הלוגיים מחליפים שערים קוונטיים.
שערים קוונטיים הם שערים לוגיים כמו שתיארנו, רק שהם עובדים עם קיוביטים ולא עם סתם ביטים. אין צורך להבין לעומק מה זה אומר כדי להבין את המשך הדיון, אבל נמליץ לסקרנים לחזור על הפוסט שלנו בנושא מחשוב קוונטי [1]. בגדול זה אומר שהם יודעים לקבל קיוביט בסופרפיזציה, ולהחזיר סופרפוזיציה של הפלט בהתאם. חלקם גם יודעים לקחת שני קיוביטים לא שזורים ולהחזיר קיוביטים שזורים.
קודם אמרנו שהמחשבים הביתיים שלנו "שקולים מתמטית" לשערים בוליאניים. המשמעות של זה היא שעל כל אלגוריתם שאנחנו מכירים, כל חישוב שאנחנו יכולים לבקש מהמחשב שלנו לבצע, אפשר לחשוב כמשפחה אינסופית של מעגלים בוליאניים, אחד לכל גודל אפשרי של קלט. למשל, אלגוריתם שמחשב את המכפלה של שני מספרים הוא בעצם משפחה של אינסוף מעגלים בוליאניים, כאשר המעגל ה-n מחשב את המכפלה של שני מספרים באורך n ביטים. כשחושבים על אלגוריתמים כמעגלים כאלו אפשר לתאר תכונות מסויימות של אלגוריתמים בעזרת התכונות של המעגלים שמייצגים אותם. אז איזו תכונה הכותבים דרשו מהמעגלים שלהם? לפני שנסביר מה היא נתייחס קצת לפיזיקה של העניין.
הבעיה ההנדסית העיקרית של מחשבים קוונטיים היא מה שנקרא "אובדן קוהרנטיות" [2]. החישובים הקוונטיים דורשים ליצור מצבים מאוד מאוד עדינים, כאלו שמורכבים מהרבה קיוביטים השזורים זה לזה במבנה מאוד מסויים. זה מאוד קשה לשמור על המבנה המדוייק הזה לאורך זמן , במיוחד כאשר מעוניינים לתמרן את המידע הזה ולעשות עליו חישובים. כל הפרעה קטנה מבחוץ יכולה לגרום לשגיאות במידע שלנו ולהשמיד לנו את החישוב.
האם יש אפשרות לתקן את השגיאות האלו יותר מהר ממה שהן מצטברות? מסתבר שכן. בשנת 1999 פרופ' דורית אהרונוב הראתה בעבודת הדוקטורט שלה (יחד עם פרופ' מיכאל בן-אור) שהדבר אפשרי עקרונית [3]. בשני העשורים שעברו מאז התיאוריה והטכניקות רק ממשיכות להשתפר, והן חלק מתחום מחקר מרתק בשם קודים קוונטיים מתקני שגיאות [6]. אבל אותם קודים מתקני שגיאות דורשים תקורה משמעותית, כלומר, על כל קיוביט שאנחנו משתמשים בו לחישוב שלנו צריך עוד כמה וכמה קיוביטים שמטרתם לשמור את המידע באופן שמאפשר לתקן שגיאות. על כן הם פשוט לא רלוונטיים לנוף המחקרי של היום, בו מערכות של כמה עשרות ספורות של קיוביטים הן חזית הטכנולוגיה.
במאמרם, בראביי-גוסט-קניג נקטו בגישה אחרת. במקום לשבור את הראש על איך אפשר להשיג זמן קוהרנטיות גבוה שרירותית, הם פשוט החליטו להגביל את הדיון לחישובים קצרים, כאלה שאם הצלחנו להגיע לזמן קוהרנטיות מסויים נוכל לבצע אותם על קלט בכל גודל. אבל מה זה בכלל אומר, "חישובים קצרים"? את זה בדיוק הם הגדירו בעזרת השפה של מעגלים בוליאניים! בגסות, מה שכותבי המאמר עשו הוא להגביל את הדיון למעגלים שיש להם "עומק קבוע", כלומר, שמספר הקופסאות שנמצאות "אחת אחרי השנייה" במעגל חסום באופן שלא תלוי בגודל של הקלט. לא משנה איזה מעגל ניקח מהמשפחה שלנו, הוא תמיד יהיה באותו העומק, בלי קשר לרוחבו (הם גם הוסיפו עוד מגבלה טכנית קטנה והיא שלכל השערים במעגל יהיה את אותו המספר של רגלי כניסה).
אז למה ההנחה הזו מוצדקת, ואיך היא עזרה לבראביי, גוסט וקניג להגיע לתוצאה מעניינת ששווה מאמר ב Science יחד עם פרסום כזה רחב?
לחלק ד' ואחרון >>>
קרדיט תמונה ראשית: An icon of chaos theory - the Lorenz attractor, by
, via Wikipedia