תחילת העבודה עם Qiskit בכיתה
למודול Qiskit in Classrooms הזה, הסטודנטים צריכים סביבת Python פעילה עם החבילות הבאות מותקנות:
qiskitv2.1.0 ומעלהqiskit-ibm-runtimev0.40.1 ומעלהqiskit-aerv0.17.0 ומעלהqiskit.visualizationnumpypylatexenc
להגדרה והתקנה של החבילות הנ"ל, ראו את המדריך התקנת Qiskit. כדי להריץ עבודות על מחשבים קוונטיים אמיתיים, הסטודנטים יצטרכו להגדיר חשבון ב-IBM Quantum® על ידי ביצוע השלבים במדריך הגדרת חשבון IBM Cloud® שלך.
המודול הזה נבדק והשתמש ב-2 שניות של זמן QPU על מעבד Heron v2. זה הערכה בלבד. השימוש בפועל עשוי להשתנות.
# Added by doQumentation — required packages for this notebook
!pip install -q 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'
מבוא
במודולים של Qiskit in the Classroom, תהיה לך הזדמנות להשתמש במחשב קוונטי כדי לחקור מושגים שונים בתחומים הסמוכים למחשוב קוונטי כמו מכניקת קוונטים, מדעי המחשב, כימיה ועוד. המודול הזה משמש כתנאי מקדים לשאר המודולים — הוא מציג את יסודות המחשוב הקוונטי ואיך להשתמש ב-Qiskit להרצת Circuit קוונטי.
ראשית נספק לך סקירה קצרה על אופן הפעולה של מחשב קלאסי, ואז נראה לך איך המושגים האלה מותאמים לפרדיגמת המחשוב הקוונטי. לבסוף, נראה לך איך לחבר את המושגים האלה יחד כדי לבנות ולהריץ את ה-Circuit הקוונטי הראשון שלך.
מחשבים קלאסיים
כנראה שאתה מכיר את הבסיס של אופן הפעולה של מחשבים קלאסיים, אבל כאן נדגיש כמה מהתכונות המרכזיות כדי שנוכל לאחר מכן להשוות בין מחשבים קלאסיים לקוונטיים.
יחידות המידע הבסיסיות: ביטים
מחשבים קלאסיים מעבדים מידע קלאסי, ויחידת המידע הקלאסית הבסיסית היא ה-bit. bit בודד יכול לאחסן את התשובה לשאלת "כן/לא" אחת. בדרך כלל אנו מייצגים את שני המצבים הבינאריים של bit כ-"0" ו-"1".
סקירה של מספרים בינאריים
שילוב ביטים מאפשר לך לאחסן מידע רב יותר. לדוגמה, אם אתה רוצה לאחסן מספר מ-0 עד 15, תוכל לעשות זאת ע ם ארבעה ביטים בדרך הבאה:
| 0 = 0000 | 4 = 0100 | 8 = 1000 | 12 = 1100 |
| 1 = 0001 | 5 = 0101 | 9 = 1001 | 13 = 1101 |
| 2 = 0010 | 6 = 0110 | 10 = 1010 | 14 = 1110 |
| 3 = 0011 | 7 = 0111 | 11 = 1011 | 15 = 1111 |
בכלל, כדי להמיר ממספר בינארי של ביטים למספר מוכר בבסיס 10, מכפילים את הbit הפחות משמעותי (הימני ביותר) ב-, את הbit הבא משמאל ב-, אחר כך את הבא ב-, וכן הלאה, עד שמגיעים לbit הכי משמעותי (השמאלי ביותר), שאותו מכפילים ב-.
כלומר, ביטים יכולים להיות באחד מ- מצבים שונים אפשריים.
בדוק את ההבנה שלך
קרא את השאלה/ות למטה, חשוב על התשובה, ואז לחץ על המשולש כדי לחשוף את הפתרון.
כמה ביטים תצטרך כדי לייצג את המספר 86? כתוב את ה-bitstring שמקודד את המספר הזה בבינארי.
תשובה:
זכור, ביטים מאפשרים לך לייצג את המספרים עד , לכן שישה ביטים יגיעו לנו עד . זה לא מספיק. נוסיף עוד bit אחד כדי להגיע עד . עכשיו נפרק את 86 לחזקות של 2:
פעולות בסיסיות: Gate-ים
עכשיו, מחשב צריך להיות מסוגל לעשות משהו עם הביטים כדי, ובכן, לחשב. Gate-ים בינאריים הם הפעולות שמהוות את אבני הבניין הבסיסיות של כל האלגוריתמים והקודים המורכבים יותר.
Gate של bit בודד:
NOT
כשיש לך רק bit אחד, יש רק דרך אחת לשנות את מצבו: להפוך את המצב מ-0 ל-1 או מ-1 ל-0. אנו קוראים לזה Gate "NOT". ניתן לייצג את האפקט של Gate זה — ושל שאר ה-Gate-ים שנדון בהם למטה — בטבלת אמת, עם עמודות עבור מצבי הכניסה והפלט של ה-Qubit-ים. טבלת האמת של Gate NOT היא:
| קלט | פלט |
|---|---|
| 0 | 1 |
| 1 | 0 |
Gate-ים מרובי ביטים:
AND
AND הוא Gate של שני ביטים שלוקח שני ביטי קלט ומוציא bit בודד. הוא מוציא 1 אם שני ביטי הקלט הם 1, ו-0 אחרת:
| קלט | פלט |
|---|---|
| 00 | 0 |
| 01 | 0 |
| 10 | 0 |
| 11 | 1 |
OR
OR הוא עוד Gate של שני ביטים עם bit פלט בודד. הוא מוציא 1 אם אחד מהביטים הוא 1:
| קלט | פלט |
|---|---|
| 00 | 0 |
| 01 | 1 |
| 10 | 1 |
| 11 | 1 |
XOR
XOR מייצג "OR בלעדי" והוא כמו Gate OR, אבל מוציא 1 אם רק אחד מביטי הקלט הוא 1. הוא מוציא 0 אם שניהם 1 או שניהם 0:
| קלט | פלט |
|---|---|
| 00 | 0 |
| 01 | 1 |
| 10 | 1 |
| 11 | 0 |
מדידות:
בדרך כלל, כשלומדים על מחשוב קלאסי, לא מקדישים הרבה תשומת לב לתהליך קריאת מצב הביטים. הסיבה לכך היא שהנושא לא מורכב מבחינה קונצפטואלית. אפשר למדוד את הביטים בכל עת לפני, במהלך, או אחרי חישוב, וזה לא משפיע על התוצאה. זה לא המצב במחשוב קוונטי, כפי שנדון למטה.
Circuit-ים:
על ידי שילוב ה-Gate-ים למעלה, ניתן לבצע כל סוג של פעולה שרוצים על מחשב. ניקח דוגמה פשוטה: באמצעות Gate-ים AND ו-XOR, ניתן לבנות את ה-Circuit של חצי-מחבר, אשר מחשב את סכום שני ביטים. זה מיוצג בדיאגרמת Circuit לוגי, שבה הקווים מייצגים את הביטים וה-Gate-ים שפועלים על הביטים מוצגים כסמלים על הקווים המתאימים:
אז, שני הביטים מועתקים ומוזנים דרך Gate AND וגם Gate XOR. התוצאה של Gate XOR היא "bit הסכום" (S), שנשאר במקום האחדות של המספר הבינארי, ותוצאת Gate AND היא "bit הנשא" (C), שהוא הערך של הספרה המשמעותית הבאה במספר הבינארי. הנה טבלת האמת:
| סכום () | נש א () | ||
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
בדוק את ההבנה שלך
קרא את השאלה/ות למטה, חשוב על התשובה, ואז לחץ על המשולש כדי לחשוף את הפתרון.
אמת שטבלת האמת הנ"ל נותנת את הפתרון הנכון עבור Circuit מחבר. כלומר, עבור כל אחת מארבע האפשרויות של A ו-B, אמת ש-.
תשובה: