מהר יותר מאי פעם, העולם משתנה עקב שינוי דיגיטלי.
עם הופעתו הממשמשת ובאה של עוד גל חדש לגמרי של טכנולוגיה המסוגלת לשנות באופן דרסטי פרדיגמות נוכחיות במהירות ובעוצמה מדהימות: מחשוב קוונטי, הבנת הרעיונות הבסיסיים של העידן הדיגיטלי יהפוך חשוב עוד יותר.
טכניקה פורצת דרך הנקראת מחשוב קוונטי עושה שימוש בפיזיקה קוונטית כדי לפתור בעיות שהן מעבר לתחום של מחשבים קונבנציונליים.
עקרונות תורת הקוונטים מראים כיצד חומר ואנרגיה מתנהגים בקנה מידה אטומי ותת-אטומי, ו-Qiskit של IBM היא ערכת פיתוח תוכנה קוונטית בקוד פתוח המסייעת ביצירת מערכות מחשוב קוונטי.
מאמר זה מבקש להסביר זאת ולספק לכם סקירה כללית של מחשוב קוונטי.
נסביר לקוראים שלנו בעזרת מחשוב קוונטי בקוד פתוח SDK, כלומר. Qiskit ואפשר להם לחקור באמצעות מחברות Jupyter מתארח במעבדת קוונטים של IBM.
מהו מחשוב קוונטי?
מחשוב קוונטי הוא ענף של מדעי המחשב המתמקד בפיתוח טכנולוגיית מחשב באמצעות רעיונות מתורת הקוונטים.
הוא מנצל את היכולת יוצאת הדופן של חלקיקים תת-אטומיים להתקיים בו זמנית במצבים רבים, כמו 0 ו-1.
הם מסוגלים לעבד הרבה יותר נתונים ממחשבים רגילים.
בתהליכי מחשוב קוונטי, קיוביט נעשה באמצעות המצב הקוונטי של אובייקט. חלקי המידע החיוניים במחשוב קוונטי הם קיוביטים.
הם מבצעים את אותה פונקציה כמו ביטים במחשוב קונבנציונלי במחשוב קוונטי, אבל הם פועלים אחרת לגמרי. מחשוב קוונטי הוא תחום שצמח בשנות ה-1980.
ואז התגלה שאלגוריתמים קוונטיים היו יעילים יותר בביצוע כמה משימות מחשב מאשר עמיתיהם הקלאסיים.
סופרפוזיציה והסתבכות, שני מושגים מפיזיקה קוונטית, הם היסודות שעליהם מבוססים מחשבי העל הללו.
בהשוואה למחשבים קונבנציונליים, מחשבים קוונטיים יכולים כיום לבצע עבודות בסדרי גודל מהר יותר תוך צריכת הרבה פחות אנרגיה.
עלינו להמשיך עם פעולתם של מחשבי קוונטים כדי להבין זאת במלואה. בוא נתחיל עכשיו.
איך באמת עובד מחשב קוונטי?
בהשוואה למחשבים המסורתיים שאנו רגילים אליהם, מחשבים קוונטיים ניגשים לפתרון בעיות בצורה שונה. עבור כמה משימות, מחשבים קוונטיים עדיפים על המסורתיים במספר דרכים.
היכולת שלהם להתקיים במספר מדינות בו-זמנית נחשבת לגורם. מצד שני, מחשבים רגילים יכולים להיות רק במצב בודד בו-זמנית.
ישנם שלושה מושגי מפתח שאתה חייב להבין כדי להבין כיצד פועלים מחשבים קוונטיים:
- חֲפִיפָה.
- הִסתַבְּכוּת.
- הַפרָעָה.
חֲפִיפָה
ביטים הם המרכיבים הבסיסיים של מחשבים מסורתיים. סיביות קוונטיות, או קוביטים, הן היחידות הבסיסיות של מחשבים קוונטיים.
ביסודו של דבר, סיביות קוונטיות פועלות אחרת. ביט בינארי, המכונה לפעמים ביט מסורתי, הוא מתג שיכול להיות 0 או 1.
אנו מקבלים את המצב הנוכחי של הביט בחזרה כאשר אנו מודדים אותו. קוויביטים הם חריגים לכך. ניתן להשוות קוויביטים לחצים המצביעים בתלת מימד.
הם נמצאים בתנאים 0 אם הם מצביעים כלפי מעלה. הם נמצאים במצב 1 אם הם מצביעים כלפי מטה. אותו הדבר נכון לגבי קטעים קלאסיים.
עם זאת, הם יכולים גם לבחור להיות במצב סופרפוזיציה.
חץ נמצא במצב שבו הוא מצביע לכל כיוון אחר. הסופרפוזיציה של 0 ו-1 גורמת למצב זה. קוביט עדיין יפיק 1 או 0 כתוצאה כשהוא נמדד.
עם זאת, כיוון החץ קובע הסתברות רלוונטית.
סביר יותר שתקבל 1 אם החץ מצביע בעיקר כלפי מטה ו-0 אם הוא מצביע בעיקר כלפי מעלה.
יהיה לך סיכוי של 50% לזכות עבור כל אחד אם החץ נמצא במרכז. בקיצור, זו סופרפוזיציה.
הסתבכות
הביטים במחשב מסורתי אינם תלויים זה בזה. למצב של סיביות אחת אין כל השפעה על מצב הסיביות האחרות.
הקיוביטים במחשבים קוונטיים יכולים להסתבך אחד עם השני. זה מרמז שהם מתמזגים למצב קוונטי אחד גדול.
לשם המחשה, שקול שני קיוביטים שנמצאים במצבי סופרפוזיציה שונים אך עדיין לא הסתבכו. בשלב זה, ההסתברות שלהם אינה מסתמכת זה על זה.
כאשר אנו מסתבכים אותם, עלינו להשליך את ההסתברויות הבלתי תלויות הללו ולקבוע את ההסתברויות של כל המצבים החלופיים שאנו יכולים לברוח מהם, כלומר 00, 01, 10 ו-11.
התפלגות ההסתברות של המערכת כולה משתנה אם כיוון החץ על קיוביט אחד משתנה מכיוון שהקיוביטים מסתבכים.
עצמאות הקיוביטים זה מזה אבדה. כל אחד מהם הוא מרכיב של אותו מצב גדול. לא משנה כמה קיוביטים יש לך, זה עדיין המצב.
יש שילוב אפשרי של 2n מצבים עבור מחשב קוונטי עם n קיוביטים.
יש לך התפלגות הסתברות על פני שני מצבים, למשל, עבור קיוביט אחד. יש לך התפלגות הסתברות על פני ארבעה מצבים עבור שני קיוביטים וכו'. ההבחנה העיקרית בין מחשבים קלאסיים למחשבים קוונטיים היא זו.
אתה יכול לשים מחשבים קלאסיים בכל מצב שתבחר, אבל רק אחד בכל פעם. כל המצבים הללו יכולים להתקיים במקביל במחשבים קוונטיים כסופרפוזיציה.
איך המחשב יכול להפיק תועלת מלהיות בכל אותם מדינות בבת אחת? האלמנט האחרון של ההפרעה נכנס בשלב זה.
התערבות
ניתן להשתמש בפונקציית גל קוונטי כדי לתאר את המצב של קיוביט.
התיאור המתמטי הבסיסי של כל דבר בפיזיקה הקוונטית מסופק על ידי פונקציות גל.
כאשר קיוביטים רבים מסתבכים, פונקציות הגל הבודדות שלהם משולבות יחד ליצירת פונקציית גל יחידה המתארת את המצב הכללי של המחשב הקוונטי.
הפרעה היא תוצאה של חיבור פונקציות הגל הללו יחד. כאשר גלים מתווספים יחד, הם עשויים לקיים אינטראקציה בונה ולהתאחד כדי ליצור גל גדול יותר, בדיוק כמו אדוות מים.
הם יכולים גם לקיים אינטראקציה הרסנית כדי לנטרל אחד את השני. ההסתברות המגוונת של המצבים השונים נקבעת על ידי פונקציית הגל הכוללת של המחשב הקוונטי.
אנו יכולים לשנות את הסבירות שמצבים מסוימים יופיעו כאשר אנו מודדים את המחשב הקוונטי על ידי שינוי המצבים של קיוביטים שונים.
למרות שהמחשב הקוונטי יכול להתקיים במספר סופרפוזיציות של מצבים בו-זמנית, מדידות חושפות רק אחד מאותם מצבים.
לכן, תוך שימוש במחשב קוונטי להשלמת עבודת חישוב, יש צורך בהפרעות בונות כדי להעלות את הסבירות לקבלת התשובה הנכונה והפרעה הרסנית כדי להוריד את הסבירות לקבל תשובה שגויה.
עכשיו, בואו נתחיל עם ה-Qiskit.
מה קיסקיט?
Qiskit היא מסגרת תוכנה במימון IBM שנועדה להקל על כל אחד להיכנס לתחום המחשוב הקוונטי.
מכיוון שקשה להשיג מחשבים קוונטיים, אתה יכול להשיג אחד דרך ספק ענן, כמו IBM, באמצעות ארגז הכלים Qiskit שלהם.
זה זמין בחינם, וכל הקוד שלו כן קוד פתוח.
יש ספר לימוד מקוון שמלמד אותך את כל היסודות של פיזיקת הקוונטים, וזה מאוד שימושי למי שלא מכיר את הנושא. Python משמש לפיתוח ערכת הכלים Qiskit.
לכן, אם אתה מכיר את שפת התכנות Python, תזהה הרבה קוד.
מסגרת התוכנה מתאימה למי שרוצה למד על מחשוב קוונטי תוך רכישת ניסיון מעשי.
ההיבט הבסיסי ביותר של Qiskit הוא שהיא פועלת בשני שלבים. אחד השלבים הוא שלב הבנייה, בו אנו יוצרים מספר מעגלים קוונטיים ומשתמשים במעגלים אלה כדי לפתור את הבעיה.
לאחר מכן, לאחר השלמת שלב הבנייה או הגעה לפתרון, אנו ממשיכים לשלב הבא, הידוע כשלב הביצוע, בו אנו מנסים להפעיל את ה-build או הפתרון שלנו ב-backends השונים (מצב וקטור backend, unitary backend, פתוח ASM backend), ולאחר השלמת הריצה, אנו מעבדים את הנתונים ב-build עבור הפלט הרצוי.
תחילת העבודה עם Qiskit
במחשב האישי שלך או ב-Jupyter Notebook ש-IBM מארחת, תוכל להתקין אותו באופן מקומי. כתוב את הקוד הבא להתקנה מקומית במחשב Windows:
עלינו להירשם כאן כדי לגשת לאסימון ה-API המאפשר לנו להשתמש במכשירים הקוונטים של IBM, ואז נוכל להתחיל לעבוד עם אתר האינטרנט של החברה. אתה יכול לדמיין לעשות זאת על ידי שימוש במחשב מחברת Jupyter מותקן Qiskit הפועל באינטרנט.
אתה יכול לגשת אליו על ידי בחירת הפרופיל שלך מהתפריט בפינה השמאלית העליונה של הדף, ולאחר מכן בחירה בפרטי חשבון. אתה יכול למצוא את אסימון ה-API שלך תחת הסעיף על אסימוני API בצורה של ***. הוא מועתק ואז מוכנס לקוד הבא:
לאחר ביצוע הקוד הזה, אסימון ה-API שלך יישמר במחשב שלך, מה שיאפשר לך להשתמש בהתקנים הקוונטיים של יבמ. הזן את הפרטים הבאים כדי לקבוע אם יש לך גישה למכשיר כזה:
אם הקוד הנ"ל פועל, אתה אמור להיות מסוגל להריץ קוד לא רק במחשב שלך אלא גם על ידי שליחת המעגלים הקוונטיים המובנים להתקנים הקוונטיים של יבמ וקבלת תוצאות.
אז, באמצעות ספריית המעגלים, נוכל להתחיל לפתח את האלגוריתם הקוונטי הראשון שלנו. אנו מתחילים בייבוא התלות החיונית מ-Qiskit לפרויקט שלנו.
לאחר מכן אנו בונים אוגר קוונטי של שני קוויביט ואוגר קונבנציונלי של שני סיביות.
אז עכשיו יש לנו גם רישום קלאסי וגם קוונטי. באמצעות שני אלה, נוכל לבנות את המעגל ואם, בכל עת במהלך השינוי של המעגל, אתה רוצה לשרטט איך נראה המעגל הקוונטי, כתוב את הקוד הבא:
אנו יכולים לראות מהתמונה שהמעגל מורכב משתי סיביות קוונטיות ושתי סיביות קלאסיות.
כפי שהוא, המעגל הזה חסר שערים, מה שהופך אותו ללא מעניין. עכשיו בואו נבנה את המעגל באמצעות השערים הקוונטיים. כמו קלאסי שערים לוגיים (ו, OR שערים) מיועדים למעגלים דיגיטליים רגילים, שערים קוונטיים הם המרכיבים הבסיסיים של מעגלים קוונטיים.
החלת שער האמרד על הקיוביט הראשון הוא השלב הראשון ביצירת הסתבכות. לאחר מכן, באמצעות הקוד הבא, נוסיף פעולת x מבוקרת של שני קיוביטים:
כעת, כששני האופרטורים הללו שימשו לבניית המעגל הקוונטי שלנו, הגיע הזמן למדוד את הסיביות הקוונטיות (קיוביטים), לקחת את המדידות הללו ולאחסן אותן בסיביות הקלאסיות. בואו ניצור את הקוד הדרוש כדי להשיג זאת:
התרשים שלהלן מתאר את הפריסה של המעגל שלנו:
לאחר מכן יש להפעיל את המעגל בסימולטור מחשב מסורתי. המעגל הושלם. ולבחון את התוצאות של אותה ביצוע.
המידע המתקבל מביצוע אותו מעגל מאוחסן במשתנה התוצאה. הבה נציג את התוצאות הללו באמצעות היסטוגרמה עלילה.
זה מה שקורה כשאנחנו מפעילים את המעגל הקוונטי שלנו. עבור המספרים 00 ו-11, אנו מקבלים הסתברויות של כ-50%. מעגל המחשב הקוונטי הראשוני שלך נבנה. מזל טוב!
יישומים של Qiskit Quantum Computing
Qiskit Finance
אוסף של כלים ויישומים להדגמה מוצעים על ידי Qiskit Finance. אלה כוללים מתרגמי Ising לאופטימיזציה של תיקים, ספקי נתונים לנתונים ממשיים או אקראיים, והטמעות לתמחור אפשרויות פיננסיות שונות או הערכות סיכוני אשראי.
Qiskit Nature
יישומים כמו קיפול חלבון ומבנה אלקטרוני/ויברוני חישובים עבור מצבים נרגשים וקרקעיים כאחד נתמכים על ידי Qiskit Nature.
הוא מציע את כל החלקים הנדרשים לחיבור קודים קלאסיים והמרה אוטומטית לייצוגים שונים הדרושים למחשבים קוונטיים.
Qiskit Machine Learning
קוונטית למידת מכונה שיטות המשתמשות בהן כדי לטפל בבעיות שונות, כגון רגרסיה וסיווג, מסופקות על ידי Qiskit Machine Learning וכן גרעינים קוונטיים בסיסיים ורשתות עצביות קוונטיות (QNNs) כאבני בניין.
זה גם מאפשר חיבור של QNNs ל- PyTorch לצורך שילוב אלמנטים קוונטיים בפעולות קלאסיות.
אופטימיזציה של Qiskit
Qiskit Optimization מציעה את כל הספקטרום של שירותי אופטימיזציה, כולל מידול ברמה גבוהה של בעיות אופטימיזציה, תרגום אוטומטי של בעיות לייצוגים נדרשים שונים, ואוסף של שיטות אופטימיזציה קוונטית פשוטות.
סיכום
לסיכום, בעוד שמחשב העל המהיר ביותר שזמין כעת לוקח שנים, מחשבים קוונטיים יכולים לפרוץ במהירות את שיטות ההצפנה הנוכחיות.
למרות העובדה שמחשבים קוונטיים יוכלו לשבור רבות מטכניקות ההצפנה המשמשות כיום, צפוי שהם ייצרו תחליפים חסיני פריצה.
אופטימיזציה של בעיות היא כוחם של מחשבים קוונטיים. לפרטים נוספים, בקר ב- Qiskit GitHub.
השאירו תגובה