יסודות מכניקת הקוונטים
מבוא
בסרטון הבא, אוליביה ליינס מובילה אותך דרך התוכן של השיעור הזה. לחלופין, תוכל לפתוח את סרטון YouTube לשיעור זה בחלון נפרד.
בשיעור הקודם, למדנו כיצד לייצר מצב שזור של שני Qubits, הידוע בשם "מצב בל". כשמדדנו את המצב, ראינו שהמדידות של שני ה-Qubits היו מתואמות: כשאחד נמדד כ-0 גם השני נמדד כ-0, וכשאחד היה 1 גם השני נמדד כ-1. ראינו שזהו סימן ההיכר של שזירה קוונטית. היום נעמיק במצב הזה ובמה שהוא חושף על הפיזיקה הקוונטית שביסוד החישוב הקוונטי.
מצב בל
רבים מהתופעות הקוונטיות שגורמות למחשבים קוונטיים להתנהג אחרת ממחשבים קלאסיים כבר קיימות במצב בל הפשוט לכאורה שייצרנו בשיעור הקודם. בואו נחזיר את ה-Circuit של מצב בל הזה:
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
from qiskit import QuantumCircuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
qc.draw("mpl")
התמונה למעלה מייצגת את ה-Circuit הקוונטי ליצירת מצב בל . שתי הקווים האופקיים השחורים מייצגים את שני ה-Qubits שלנו, והמשבצות והסמלים האחרים על הקווים האלה מייצגים Gates או פעולות המבוצעות על ה-Qubits המתאימים. הקו הכפול האפור הוא אפיק מידע קלאסי שמאפשר לנו לאחסן את המידע הקלאסי שאנו מקבלים על ידי מדידת שני ה-Qubits. אנחנו הולכים לחקור את הפרטים של ה-Circuit הזה ומצב בל המתקבל כדי להבין את יסודות החישוב הקוונטי.
המתמטיקה של החישוב הקוונטי
ייצוג מצב קוונטי
ראשית, אנחנו צריכים שפה משותפת לדיון במצבים קוונטיים וב-Circuits. יש כמה דרכים שונות לייצג מצבים קוונטיים. הראשונה היא סימון דיראק. בסימון דיראק, המצב נראה כך:
כאן, המצב נכתב בתוך סוגריים זוויתיים ומקפים אנכיים. שני האיברים מייצגים כל אחד את שני תוצאות המדידה האפשריות של המצב. אז כשאנחנו מודדים מצב זה, נמצא שאם שני ה-Qubits נמצאים במצב 0, או ששניהם נמצאים במצב 1. ה- נקרא "קבוע נרמול". הוא נמצא שם כדי להבטיח שסכום ריבועי כל המקדמים במצב יסתכם ל-. נדון מדוע זה כך בהמשך, בחלק על מדידות.
הדרך השנייה לייצג מצב היא בשפה הסטנדרטית של האלגברה הלינארית: כוקטור, שבו כל כניסה בוקטור מייצגת תוצאת מדידה אפשרית שונה. בסימון זה, מצב בל שלנו ייכתב כך:
לפי המוסכמה, הכניסות בוקטור מסודרות כך:
- הכניסה הראשונה מתאימה למצב דו-Qubit
- השנייה ל-
- השלישית ל-
- הרביעית ל-
כצפוי, בוקטור מצב בל , הכניסות הראשונה והרביעית אינן אפס, בעוד הכניסות השנייה והשלישית הן אפס. קבוע הנרמול מבטיח שאורך הוקטור הוא .
הערה לגבי סדר ה-Qubits
Qiskit משתמשת בסדר little endian. כלומר, ה-Qubit השמאלי ביותר נחשב לראשון (או הפחות משמעותי), וה-Qubit השמאלי ביותר הוא ה-Qubit המשמעותי ביותר. לכן, כשאנחנו כותבים מצב כמו :
- הסיבית הימנית ביותר מתאימה ל-Qubit , ונמצאת במצב .
- הסיבית השמאלית ביותר מתאימה ל-Qubit , ונמצאת במצב .
ייצוג Gate
בדיוק כמו שמצבים יכולים להיות מיוצגים כוקטורים, Gates יכולים להיות מיוצגים כמטריצות. Gate פועל על מצב על ידי הפיכת הוקטור שלו לוקטור חדש.
כל Gate מתאים למטריצה ספציפית שמכתיבה כיצד המצב יעבור שינוי. אנחנו מבצעים את ההתמרה הזו על ידי כפל מטריצת ה-Gate בוקטור המצב המקורי, כאשר מטריצת ה-Gate נמצאת משמאל לוקטור המצב, כך:
כאשר מייצג את מטריצת ה-Gate ו- מייצג את וקטור המצב.
בואו נסתכל על ה-Hadamard Gate כדוגמה. ה-Hadamard Gate הוא Gate של Qubit בודד (המשבצת האדומה עם התווית "H" בתרשים ה-Circuit למעלה) שמשנה את המצב ל- ואת המצב ל-. בסימון מטריצות, ה-Hadamard נראה כך:
בדוק את ההבנה שלך
השתמש בכפל מטריצות כדי להראות שמטריצת Hadamard משנה את המצבים כצפוי. (אם צריך, תוכל ללמוד כיצד לבצע כפל מטריצות.)
תשובה
יש כמה דברים שצריך לזכור לגבי מטריצות Gate:
- הן תמיד מטריצות ריבועיות , כאשר הוא גם מימד וקטור המצב עליו הן מופעלות. לדוגמה, כשיש לך Qubit בודד בלבד, וקטור המצב הוא דו-ממדי, ומייצג את שני המצבים האפשריים 0 ו-1 של ה-Qubit. במקרה זה, ממדי מטריצת ה-Gate המוחלת על מערכת זו יהיו .
- Gates קוונטיים הם הפיכים. במילים אחרות, אפשר למצוא מטריצה אחרת שהיא ההופכי של ה-Gate, שמבטל את פעולת ה-Gate ומחזיר את ה-Qubits למצבם המקורי.
- Gates קוונטיים גם שומרים על אורך הוקטורים שהם משנים. וקטורי מצב קוונטי תמיד יהיו באורך (מובטח על ידי קבועי הנרמול שדנו בהם קודם). ה-Gates לא מאריכים או מקצרים אותם, אלא פשוט מסובבים אותם.
אלה כולם תכונות של מטריצות אוניטריות. אם אתה סקרן לגבי יותר מהתכונות המתמטיות של מטריצות אוניטריות, תוכל לקרוא עליהן עוד בשיעור של ג'ון ווטראוס על מערכות מרובות בקורס יסודות המידע הקוונטי.
כיצד עובדות מדידות
כשאנחנו מודדים מצב קוונטי, התוצאה היא תמיד אחת מהתוצאות האפשריות (עבור Qubit בודד, 0 או 1). איזו תוצאה מתקבלת היא אקראית, אבל המצב הקוונטי אומר לנו את ההסתברויות של כל תוצאה.
הכניסות בוקטור המצב קובעות את ההסתברויות האלה. כדי לקבל את ההסתברות של תוצאה מסוימת, אנחנו לוקחים את ריבוע הכניסה המתאימה לאותה תוצאה. לדוגמה, אם Qubit נמצא במצב:
הכניסה הראשונה (המתאימה ל-0) היא , והכניסה השנייה (המתאימה ל-1) היא גם . ריבוע המספרים האלה נותן
כלומר יש סיכוי של 50% למדוד 0 וסיכוי של 50% למדוד 1.
זכור שסכום כל הכניסות בריבוע תמיד מסתכם ל-1. זה הגיוני כי כשאנחנו מודדים, מובטח לנו לקבל תוצאה כלשהי, כך שהסתברויות כל התוצאות האפשריות חייבות להסתכם ל-100%.
לאחר המדידה, ה-Qubit מתמוטט לתוצאה שנצפתה, וכל סופרפוזיציה קודמת אובדת. ה-Qubit מתנהג עכשיו כמו סיבית קלאסית. מדידות שונות באופן יסודי מ-Gates קוונטיים. בעוד ש-Gates משנים מצבים קוונטיים באופן דטרמיניסטי והפיך, מדידה היא בטבעה אקראית ובלתי הפיכה.
מדידה בבסיסים שונים
כברירת מחדל, כשאתה מודד Qubit ב-Circuit קוונטי, אתה מודד את מצב ה-Qubit רק לאורך ציר אחד. זה נקרא הבסיס החישובי, או בסיס , שמוגדר על ידי המצבים ו-. אפשר לחשוב על מצב כוקטור המצביע ישר למעלה, ועל מצב כוקטור המצביע ישר למטה. לכן, מדידה בבסיס עונה על השאלה, "האם מצב ה-Qubit מצביע למעלה או למטה?"
אבל זה לא הסוג היחיד של שאלה שאנחנו יכולים לשאול על Qubit. וקטור המצב של Qubit לא מצביע רק למעלה או למטה. סופרפוזיציה של ו- תוביל לוקטור מצב שמצביע בכל כיוון בחלל התלת-ממדי — באיזה כיוון בדיוק תלוי בגדלים ובפאזות היחסיות של שני חלקי הסופרפוזיציה. לכן, בעוד שמדידה סטנדרטית בבסיס שואלת "למעלה או למטה?", אפשר גם לשאול "שמאלה או ימינה?" או "קדימה או אחורה?"
השאלות האלה מתאימות למדידה בבסיסים שונים. לכל בסיס יש קבוצה משלו של שני וקטורי בסיס, שמגדירים את שתי תוצאות המדידה האפשריות בבסיס הזה (כמו או לבסיס ).
- תוצאות מדידת בסיס Z מתמוטטות ל- או
- תוצאות מדידת בסיס X מתמוטטות ל- או
- תוצאות מדידת בסיס Y מתמוטטות ל- או