טלפורטציה קוונטית
עבור מודול Qiskit in Classrooms הזה, על הסטודנטים להיות עם סביבת Python עובדת עם החבילות הבאות מותקנות:
qiskitv2.1.0 או חדש יותרqiskit-ibm-runtimev0.40.1 או חדש יותרqiskit-aerv0.17.0 או חדש יותרqiskit.visualizationnumpypylatexenc
להגדרה ולהתקנה של החבילות שלמעלה, ראה את המדריך התקנת Qiskit. כדי להריץ עבודות על מחשבים קוונטיים אמיתיים, הסטודנטים יצטרכו להגדיר חשבון ב-IBM Quantum® על ידי ביצוע השלבים במדריך הגדרת חשבון IBM Cloud שלך.
המודול הזה נבדק ועשה שימוש ב-14 שניות של זמן QPU. זהו הערכה בלבד. השימוש בפועל שלך עשוי להשתנות.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
צפה בהדרכת המודול של ד"ר קייטי מקורמיק למטה, או לחץ כאן לצפייה ב-YouTube.
מבוא ורקע
טלפורטציה קוונטית היא טכניקה בפיזיקה קוונטית המאפשרת העברת מידע קוונטי ממיקום אחד לאחר מבלי להזיז חלקיקים פיזית. בניגוד למושג הטלפורטציה מדמיון מדע בדיוני, תהליך זה אינו כולל הובלת חומר. במקום זאת, הוא מסתמך על עקרון ההסתבכות הקוונטית, שבו שני חלקיקים הופכים לקשורים ללא קשר למרחק. באמצעות סדרה של מדידות מדויקות ותקשורת קלאסית, ניתן לשחזר את המצב הקוונטי של חלקיק אחד בחלקיק אחר במיקום רחוק, ובכך "לטלפורט" את המידע הקוונטי. במודול הזה, נראה איך זה עובד מתמטית, ואז נממש טלפורטציה קוונטית על מחשב קוונטי אמיתי. המבוא כאן יהיה קצר; לרקע נוסף על מידע קוונטי והסבר נוסף על טלפורטציה, אנחנו ממליצים על הקורס של ג'ון ווטרוס על יסודות המידע הקוונטי, ובפרט הסעיף על טלפורטציה.
ביטים קלאסיים יכולים להיות במצבים 0 או 1. Qubit יכולים להיות במצבים קוונטיים המסומנים ו- וגם בצירופים לינאריים של מצבים אלה, הנקראים "סופרפוזיציות", כמו , עם ו- למרות שהמצבים יכולים להתקיים בסופרפוזיציה זו, מדידה של המצב "תקרוס" אותו למצב או . הפרמטרים ו- קשורים להסתברות של כל תוצאת מדידה לפי
ומכאן האילוץ ש-
תכונה מרכזית נוספת היא ש-Qubit יכולים להיות "מסובכים", כלומר המדידה של Qubit אחד יכולה להשפיע על תוצאת המדידה של Qubit אחר, מסובך. הבנה של ההבדל בין הסתבכות לבין מתאמים קלאסיים פשוטים היא מעט מסובכת. בואו נסביר תחילה את הסימון שלנו. נקרא לשני Qubit השייכים לחבר 0 (אליס) ולחבר 1 (בוב), כאשר כל אחד נמצא במצב
או
שמתקצר לפעמים פשוט ל
שים לב ש-Qubit עם המספר הנמוך ביותר (או האות) נמצא הכי ימינה. זוהי מוסכמה הנקראת סימון "little-endian", המשמשת בכל Qiskit. אם המצב הדו-Qubit של החברים הוא והם מודדים את המצב של ה-Qubit שלהם בהתאמה, כל אחד ימצא 0. באופן דומה אם ה-Qubit היו במצב כל אחת מהמדידות שלהם תניב 1. זה לא שונה מהמקרה הקלאסי. עם זאת, בחישוב קוונטי, אנחנו יכולים לשלב זאת עם סופרפוזיציה כדי לקבל מצבים כמו
במצב כזה, האם ה-Qubit של אליס ובוב נמצאים במצב 0 או 1 עדיין לא ידוע, עדיין לא נקבע על ידי הטבע, ובכל זאת אנחנו יודעים שהם ימדדו את אותו המצב עבור ה-Qubit שלהם. לדוגמה, אם בוב מודד את ה-Qubit שלו ומוצא שהוא במצב הדרך היחידה לזה לקרות היא שהמדידה קרסה את המצב הדו-Qubit לאחד משני המצבים האפשריים, ספציפית ל- זה משאיר את ה-Qubit של אליס גם במצב .
ההסתבכות של Qubit בדרך זו אינה מצריכה ש-Qubit יישארו קרובים פיזית זה לזה. במילים אחרות, נוכל לסבך Qubit, ואז להפריד אותם למרחק גדול, ולהשתמש בהסתבכותם לשליחת מידע. מצב מסובך כמו זה שלמעלה הוא יחידה בסיסית של הסתבכות, ולעתים מכונה "e-bit", סיביות הסתבכות בודדת. ה-e-bits האלה ניתן לחשוב עליהם כמשאבים בתקשורת קוונטית, שכן כל e-bit המשותף בין שותפים מרוחקים ניתן לשימוש, כפי שאנו מתארים כאן, להזזת מידע ממיקום אחד לאחר.
המחשבה הראשונה של אנשים רבים שלומדים על זה לראשונה היא על הפרת תורת היחסות: האם אנחנו יכולים להשתמש בזה לשליחת מידע מהר יותר מאור? בכל אופן, המשיכו לשאול ולבדוק כללים מדעיים, אבל לצערנו זה לא יאפשר לנו לשלוח מידע מהר יותר מאור, מסיבות שיתבהרו במהלך המודול הזה. ספויילר: מפליא אבל זה לא קשור למהירות שבה קריסה זו מתפשטת, שנראה שקורה מהר יותר מאור [1]. אנחנו מתחילים עם שני משתפי פעולה אליס ובוב, שנמצאים בתחילה באותו מ יקום ויכולים לעבוד יחד על אותם Qubit. משתפי פעולה אלה יסבכו את ה-Qubit שלהם. לאחר מכן הם יתרחקו לשני מיקומים גאוגרפיים שונים, עם ה-Qubit שלהם בהתאמה. אליס תקבל לאחר מכן מידע קוונטי על Qubit חדש Q. אנחנו לא מניחים כלום לגבי המידע על Q. המצב של Q יכול להיות סוד שאינו ידוע לאליס; הוא יכול להיות בלתי ידוע לכל. אבל אליס מקבלת את המשימה להעביר את המידע על Q לבוב. היא תעשה זאת באמצעות טלפורטציה קוונטית.
כדי לממש זאת, נצטרך לדעת כמה פעולות קוונטיות או "Gates".
אופרטורים קוונטיים (Gates)
אתה מוזמן לדלג על חלק זה אם אתה כבר מכיר את ה-Gates הקוונטיים. אם אתה רוצה להבין את ה-Gates האלה טוב יותר, בדוק את יסודות המידע הקוונטי, במיוחד שתי השיעורים הראשונים, ב-IBM Quantum Learning.
לפרוטוקול טלפורטציה זה נשתמש בעיקר בשני סוגים של Gates קוונטיים: Gate ה-Hadamard וה-Gate CNOT. כמה אחרים ימלאו תפקיד פחות משמעותי: ה-Gate , Gate , ו-Gate SWAP.
ניתן להשלים את המודול הזה עם רקע מוגבל מאוד באלגברה לינארית, אבל לפעמים ויזואליזציה של Gates מכניקת קוונטום באמצעות מטריצות וקטורים יכולה להיות מועילה. לכן אנחנו מציגים כאן את הצורות המטריציות/וקטוריות של Gates/מצבים קוונטיים, גם כן.
המצבים שכבר הצגנו נבחרו (חלקית על ידי מוסכמה וחלקית על ידי אילוצים) לקבל צורות וקטוריות:
בדרך זו, מצב שרירותי ניתן לכתיבה כ
יש בחירה כיצד להרחיב את הסימון למצבים של Qubit מרובים, אבל הבחירה למטה היא די סטנדרטית:
עם בחירת סימון הוקטור הזה בראש, אנחנו יכולים להכיר את ה-Gates הקוונטיים הנחוצים לנו, את השפעותיהם על המצבים הקוונטיים, ואת הצורות המטריציות שלהם.
Gate H Hadamard: יוצר מצב סופרפוזיציה. Gate של Qubit יחי ד.
Circuit עם Gate Hadamard נבנה כך:
from qiskit import QuantumCircuit
qc = QuantumCircuit(1)
qc.h(0)
qc.draw("mpl")
Gate CNOT Controlled-NOT: Gate זה משתמש בשני Qubit: שליטה ומטרה. בודק את המצב של Qubit השליטה שאינו משתנה. אבל אם Qubit השליטה נמצא במצב , ה-Gate משנה את המצב של Qubit המטרה; אם המצב של Qubit השליטה הוא לא נעשה שינוי כלל. בסימון שלמטה, נניח ש-Qubit (הימני ביותר) הוא השליטה, ו-Qubit (השמאלי ביותר) הוא המטרה. למטה, הסימון המשמש הוא