מחשב קוונטי

מחשב קוונטי הוא מכונה המעבדת נתונים תוך שימוש ישיר בתכונות של מכניקת הקוונטים כגון סופרפוזיציה קוונטית ושזירה קוונטית. מחשב קוונטי שונה ממחשב רגיל, בכך שהוא משתמש בקיוביט (ביט קוונטי) במקום ביט כיחידת המידע הבסיסית, והפעולות הבסיסיות שניתן לבצע על קיוביטים שונות מהשערים הלוגיים העומדים בבסיסו של מחשב קלאסי. ישנן בעיות שמחשב קוונטי מסוגל לפתור ביעילות גבוהה יותר מאשר האלגוריתם המיטבי האפשרי עבור מחשב קלאסי רגיל, אולם מבחינה חישובית הכרעתית הם שקולים, וכל בעיה שניתן לפתור (כלומר, להכריע או להכריע חלקית) באמצעות מחשב קוונטי ניתן לפתור גם באמצעות מחשב קלאסי, גם אם יידרש לשם כך זמן ארוך בהרבה.

המחקר התאורטי בתחום המחשוב הקוונטי החל בשנות השבעים של המאה ה-20 ומהווה מוקד עניין הן באקדמיה והן בגופי ממשל וצבא ברחבי העולם, בזכות ההבטחות לשיפור משמעותי בביצועים של חישובים שונים. נבנו מספר דגמים שמימשו מחשבים קוונטיים בני קיוביטים בודדים לפרקי זמן קצרים, ובשנת 2011 נעשה שימוש במחשב קוונטי על מנת לפרק לגורמים את המספר 143 בעזרת אלגוריתם שור; המספר הגדול ביותר שפורק אי-פעם לגורמים באמצעות מחשב קוונטי הוא 56,153. עם זאת, הטכנולוגיה הקיימת היום עדיין אינה מאפשרת בניית מחשב קוונטי שיוכל לפרק לגורמים מספרים ראשוניים גדולים המשמשים לצפנים במערכות מסחריות או צבאיות. יכולת לפרק מספר בן 2,048 ביטים (שעדיין אינה פרקטית ב-2023) תאפשר<ref></ref><ref></ref> פיצוח של המסרים המוצפנים בשיטת RSA, שהיא השיטה הנפוצה היום ביישומים פיננסיים ומסחריים.

אחת השאיפות המרכזיות בפיתוח מחשב קוונטי היא להגיע ל, היינו נקודת הזמן בהיסטוריה בה מחשב קוונטי יבצע משימה חישובית, ששום מחשב קלאסי לא יכול לבצע בזמן סביר. ב-23 באוקטובר 2019, גוגל הכריזה כי הצליחה להשיג עליונות קוונטית<ref></ref>. IBM חולקת על טענה זו<ref></ref>.

ב-22 בפברואר 2023 הכריזה גוגל על פריצת דרך שנייה (אם כי, כאמור, IBM חולקת על הטענה של פריצת הדרך הראשונה) והודיעה כי חוקרים של החברה הצליחו לראשונה להוכיח בניסוי כי ניתן להקטין את שיעור השגיאות במחשבים קוונטים באמצעות שימוש בקוד לתיקון שגיאות והגדלת מספר הקיוביטים (יחידות החישוב הבסיסיות במחשוב קוונטי) בקידוד<ref></ref>.

== רקע ==

המחקר בנוגע לעיבוד אינפורמציה ולמחשבים קוונטיים החל בשנות השבעים של המאה העשרים. בשנת 1973 פרסם את המאמר הראשון בתחום, ובו ההבחנה שעל אף ההבדלים ביניהם, n קיוביטים אינם יכולים לייצג יותר מ-n ביטים קלאסיים. אחד החלוצים בתחום היה הפיזיקאי ריצ'רד פיינמן, שבשנת 1981 ניסח את ההבחנה הבאה - כאשר מנסים לחשב את חיזויי מכניקת הקוונטים עבור מערכות פיזיקליות גדולות, נראה שמחשב רגיל לא יכול לעשות זאת ביעילות בגלל המשאבים המעריכיים הנדרשים לייצוג פונקציית הגל. ואולם, הטבע עצמו הרי מבצע חישובים אלו, במובלע, כאשר המערכת הפיזיקאלית מתקיימת במציאות. מכאן, נראה שלטבע, הפועל על פי מכניקת הקוונטים, יש יתרון ביכולת החישוב שלו מול מחשב "קלאסי". אם כך, נוכל אולי לבנות סוג חדש של מחשב, המנצל אפקטים קוונטיים לביצוע חישוב באופן יעיל יותר. מחשב כזה יוכל לחשב את חיזויי מכניקת הקוונטים ביעילות - ואולי אף לבצע חישובים אחרים באופן יעיל יותר מכל מחשב "קלאסי".

בשנת 1985 ניסח דייוויד דויטש מודל תאורטי אוניברסלי למחשב קוונטי, מכונת טיורינג קוונטית. בדומה למכונת טיורינג קלאסית מדובר במודל תאורטי פשוט המגלם בתוכו את כל העצמה החישובית של מחשב קוונטי, בלי תלות באופן המימוש שלו. דויטש הראה שעל אף ההבדלים בין המודלים השונים, מבחינה חישובית מכונת טיורינג קוונטית שקולה למכונת טיורינג קלאסית ולמעשה מחשב קוונטי לא מפר את תזת צ'רץ'-טיורינג.

==קיוביט==

כדור בלוך של קיוביט. המצב <math>| \psi \rangle = \alpha |0 \rangle + \beta |1 \rangle</math> הוא נקודה על פני הכדור, והקטבים מייצגים את המצבים <math>|0 \rangle</math> ו- <math> |1 \rangle</math>.]]
יחידת המידע הבסיסית במחשב קלאסי נקראת סיבית או "ביט". ביט קלאסי יכול להיות בהגדרה בשני מצבים פיזיקליים, שמסומנים בדרך כלל ב-0 או 1. יחידת המידע הבסיסית במחשב קוונטי נקראת קיוביט (ביט קוונטי). הקיוביט מתואר על ידי מצב, ושני המצבים מסומנים בדרך כלל כ
<math>|0\rangle </math> ו-<math>|1\rangle </math> שמהווים את האנלוגים הקוונטים למצבים הקלאסיים 0 ו-1. המצבים <math>|0\rangle </math> ו-<math>|1\rangle </math> שייכים למרחב וקטורי, כך שגם "סופרפוזיציה" שלהם תהווה מצב קוונטי.

סופרפוזיציה של קיוביט בודד מיוצגת על ידי <math>\alpha |0\rangle + \beta |1\rangle</math>, כאשר <math>\alpha,\ \beta</math> הם מספרים מרוכבים, המקיימים <math>|\alpha |^2 + |\beta |^2 = 1</math>. המשמעות היא שבעת מדידה קוונטית יש הסתברות של <math>|\alpha |^2</math> למצוא את הקיוביט במצב <math>|0\rangle </math> והסתברות של <math>|\beta |^2</math> למצוא את הקיוביט במצב <math>|1\rangle </math>. קיוביט בודד מיוצג לצרכים תאורטיים על ידי שני מספרים מרוכבים, ולכן יכול לכאורה לייצג כמות אינסופית של מידע. אכן ניתן לבצע חישובים ומניפולציות שונות על קיוביט המייצג סופרפוזיציה בין מספר מצבים, אך בסופו של דבר מדידה קוונטית שלו תגרום לקריסה של פונקציית הגל ולאחריה במקום סופרפוזיציה של שני המצבים יתקבל מצב אחד ויחיד. תכונה זו של סופרפוזיציה מאפשרת לבצע חישובים בצורה שונה מהאופן שבו הם מתבצעים במחשב קלאסי, ועם זאת קריסת פונקציית הגל בעת המדידה מגבילה את העצמה החישובית.

ישנן כמה טכנולוגיות (שונות מאד) למימוש קיוביט:
* superconducting qubits המתבסס על צומת Josephson 
* Quantum dot 
* [https://pennylane.ai/qml/demos/tutorial_trapped_ions trapped ion] - מלכודת יונים
* [https://pennylane.ai/qml/demos/tutorial_photonics Photonic qubits]
* [https://physics.aps.org/articles/v12/s104 Diamond spin]
* NMR qubits 

לכל שיטה יש יתרונות וחסרונות<ref></ref>. השיטות המבוססות על מוליכים למחצה מאפשרות אינטגרציה גבוהה אך מצריכות טמפרטורות קרובות לאפס המוחלט, מוגבלות בקישוריות, בעלות אורך חיים מוגבל ורגישות לרעש. בשיטות אופטיות ניתן לעבוד בטמפרטורת החדר וניתן לייצר קישוריות גבוהה, אך האינטגרציה מוגבלת. רוב החברות המסחריות מעדיפות את השימוש במוליכים למחצה. במחקר נבחנות גם אפשרויות אחרות.

==שערים קוונטיים==

במחשב קלאסי, הפעולות הבסיסיות שניתן לבצע על ביטים מיוצגות באמצעות שערים לוגיים, ואלו יכולים לממש כל פונקציה בוליאנית שהקלט שלה הוא מספר כלשהו של ביטים, והפלט שלה יכול להיות כל מספר אחר של ביטים. המנגנון המקביל במחשב קוונטי נקרא שער קוונטי, שער כזה יכול לממש כל אופרטור אוניטרי על מספר קיוביטים, והתוצאה שלו תהיה בת מספר זהה של קיוביטים. נהוג לייצג שערים קוונטיים כמטריצות אוניטריות, כאשר שער קוונטי הפועל על <math>n</math> קיוביטים ייוצג על ידי מטריצה מגודל <math>2^n\times 2^n</math> (כאמור, מצב אוגר קוונטי המכיל <math>n</math> קיוביטים מיוצג על ידי וקטור במרחב ממימד <math>2^n</math>).

== הכח החישובי של מודלים קוונטיים ==
=== חיפוש ===

נניח שנרצה למצוא מספר העומד בקריטריון מסוים. לדוגמה, נאמר שקלטנו תשדורת המוצפנת בשיטת ההצפנה DES, ואנו מחפשים את מפתח ההצפנה, שהוא מספר אקראי שאורכו 56 ביטים. קל לבדוק אם מספר נתון הוא המפתח הנכון, אבל כדי למצוא את המפתח הנכון (באופן ישיר) נאלץ לבדוק <math>2^{56}</math> אפשריות, וזהו תהליך ארוך מאוד. אם ברשותנו מחשב קוונטי, נוכל לתכנת אותו לפתור את בעיית החיפוש באופן יעיל יותר. ניקח 56 קיוביטים, ונפעיל עליהם פעולה אשר תביא אותם למצב של סופרפוזיציה אחידה של כל <math>2^{56}</math> האפשרויות. כעת נורה למחשב לבדוק את נכונות המפתח, ועפ"י עקרון הסופרפוזיציה הוא יעשה זאת במקביל עבור כל המפתחות האפשריים, באותו זמן שמחשב קלאסי היה דורש לביצוע בדיקה עבור מפתח בודד.

במבט ראשון נראה שהשגנו שיפור אדיר במהירות (מעריכי באורך המפתח שמחפשים). ואולם, נשאר אתגר נוסף - כיצד נחלץ את המפתח הנכון, כלומר זה שעבורו הבדיקה הצליחה, מתוך הסופרפוזיציה? בשנת 1996 פיתח לוב גרובר אלגוריתם חיפוש קוונטי המאפשר לעשות זאת בעזרת כ-<math>2^{28}</math> פעולות קוונטיות (ובאופן כללי <math>2^{k/2}</math> פעולות, כאשר <math>k</math> הוא אורך המפתח). מסתבר שבאופן כללי, לא ניתן לבצע את החיפוש מהר יותר, כלומר, למחשב הקוונטי יש יתרון (ריבועי) על פני מחשב קלאסי בפתרון בעיות חיפוש כלליות, אך לא יותר מכך.

=== מציאת גורמים ראשוניים ===

אחת הבעיות החשובות שניתנות לפתרון באמצעות מחשב קוונטי היא מציאת הגורמים הראשוניים של מספר גדול. הדבר חשוב בין השאר כי משמעו שמי שברשותו מחשב קוונטי יוכל לפצח את שיטת ההצפנה RSA: בהצפנת RSA המפתח הסודי הוא שני מספרים ראשוניים גדולים מאוד <math>p</math> ו-<math>q </math>, ורק מכפלתם <math>N = p \times q </math> מתפרסמת. השערה מקובלת היא שהחישוב ההפוך, כלומר מציאת הגורמים הסודיים <math>p</math> ו-<math>q </math> בהינתן מכפלתם N, מהווה בעיה שאינה ניתנת לפתרון יעיל במחשב קלאסי. בטיחות שיטת ההצפנה מסתמכת על קושי זה<ref></ref>. ב-1994 פיתח מדען המחשב פיטר שור אלגוריתם קוונטי למציאת גורמים ראשוניים של מספר נתון. הוא עשה זאת על ידי המרה של בעיית הפירוק לגורמים לבעיה של מציאת מחזור עבור פונקציה מסוימת, והראה שמחשב קוונטי יכול למצוא את המחזור ביעילות רבה (בעזרת גרסה קוונטית של התמרת פורייה). הרעיון הוא שמחשב קוונטי "רואה" בו זמנית את כל נקודות הפונקציה ולכן יכול לבצע התאבכות על מנת לקבל את המחזור של הפונקציה.

=== מגבלות עקרוניות ===

אף על פי שידועות בעיות שמחשב קוונטי יכול לפתור ביעילות גדולה יותר ממחשב קלאסי, יכולתו של מחשב קוונטי אינה בלתי מוגבלת והוא אינו "פתרון קסם" לכל בעיה חישובית. בראש ובראשונה, ידוע כי ההבדל העקרוני בין מחשבים קוונטיים וקלאסיים הוא ביעילות (דהיינו, סיבוכיות) בלבד; כלומר, כל בעיה הניתנת לפתרון על מחשב קוונטי ניתנת לפתרון גם על כל מחשב קלאסי, אם כי ייתכן שהדבר ידרוש משאבים גדולים יותר. גם הפרש היעילות אינו שרירותי - הוא לכל היותר מעריכי, וישנן בעיות אותן מחשב קוונטי אינו יכול לפתור באופן שהוא יעיל מהותית מהפתרון שלהן באמצעות מחשב קלאסי. לא ידוע אם מחשב קוונטי מסוגל לפתור בעיות NP-שלמות בזמן ריצה פולינומי, ומדענים רבים משערים שאין כך הדבר.

=== אלגוריתמים קוונטיים ===
במשך השנים הציעו החוקרים רשימה של בעיות עבורם ידועים אלגוריתמים קוונטיים שהם יותר יעילים מהאלגוריתמים הקלאסיים.

== מחשבים קוונטיים קיימים ==
כיום קיימים מחשבים קוונטיים פרימיטיביים ביותר ובעלי ביצועים נמוכים. אך כבר ניתן להריץ עליהם אלגוריתמים קוונטיים ולחוות את השוני המהותי בין המחשבים הקלאסיים למחשבים הקוונטיים. מעת לעת אף מתפרסמים מחקרים שמראים שעם מאמץ והרצות חוזרות ונשנות של אלגוריתמים ניתן להגיע להישגים מרשימים<ref></ref>.

=== ספקי מחשבים ===
חברות המחזיקות במחשבים קוונטיים, או בסימולטורים קלאסיים של מחשבים קוונטיים, נותנות גישה למשתמשים מכל רחבי העולם למחשבים הקוונטיים שלהם על מנת לחקור, ללמוד ולחוות את השימושים במחשבים מסוג זה. להלן רשימה של מחשבים קוונטיים או סימולטורים שניתן להשתמש בהם:
* IBM Quantum - ספקית מובילה של מערכות, תוכנות ושירותים של מחשוב קוונטי, במטרה לאפשר לעולם לפתור את הבעיות המורכבות ביותר. IBM מציעה מחשבים קוונטיים שכוללים שערים המבוססים על קיוביטים מוליכי-על. מעבדי מודל שער מבצעים מעגלים קוונטיים. סוג זה של QPU הוא הצעד הראשון לקראת מחשוב קוונטי אוניברסלי ומיועד למניפולציה של מידע קוונטי<ref></ref>.
* Amazon Bracket -הוא שירות AWS מנוהל במלואו המספק סביבת פיתוח לחקירה והתנסות במחשוב קוונטי. הוא מאפשר למפתחים, חוקרים ומדענים לתכנן, לבדוק ולהפעיל אלגוריתמים קוונטיים על מחשבים קוונטיים מספקי חומרה שונים<ref></ref>.
* Azure Quantum - שירות מבוסס ענן המסופק על ידי Microsoft Azure המספק למפתחים ולחוקרים גישה למשאבי מחשוב קוונטי ולכלים. מציעה מגוון טכנולוגיות מחשוב קוונטי, לרבות מערכות מבוססות קיוביטים, מערכות מבוססות חישול וסימולטורים, מספקי חומרה שונים, כגון Honeywell ו-IonQ<ref></ref>.

=== כלי פיתוח ===
כמו כן קיימים כלים לפיתוח וכתיבת תוכנות ואלגוריתמים קוונטיים, להלן רשימה כלים לכתיבת אלגוריתמים קוונטיים והרצתם על סימולטורים שונים:
* Qiskit - SDK בקוד פתוח לעבודה עם מחשבים קוונטיים ברמה של פולסים, מעגלים ומודולי יישומים<ref></ref>.
* Cirq - ספרייה בשפת Python לכתיבה, מניפולציה ואופטימיזציה של מעגלים קוונטיים, ולאחר מכן הפעלתם במחשבי קוונטים ובסימולטורים קוונטיים. Cirq מספקת הפשטות שימושיות להתמודדות עם המחשבים הקוונטים הרועשים של ימינו בקנה מידה בינוני, שבהם פרטי החומרה חיוניים להשגת תוצאות מתקדמות<ref></ref>.
* Amazon Brcket Python SDK - מסופק על ידי Amazon Web Services (AWS) עבור מפתחים וחוקרים שרוצים לבנות יישומים קוונטיים בשירות המחשוב הקוונטי של Amazon Braket. הוא מספק קבוצה של כלים וספריות לפיתוח, בדיקה והרצה של אלגוריתמים ומעגלים קוונטיים על סימולטורים וחומרה קוונטית.
* Rigetti PyQuil - כרכיב של Rigetti Forest SDK, המסגרת של pyQuil מאפשרת לבנות ולהפעיל תוכניות Quil באמצעות Python. השימוש ב-pyQuil דורש התקנה של שאר הרכיבים של Forest SDK, כלומר מהדר Quil (quilc) וה-Quantum Virtual Machine (QVM), המשמשים להדמיית מחשבים קוונטיים<ref></ref>.
* Q# and the QDK - השפה #Q היא שפת תכנות המהווה חלק מ-Quantum Development Toolkit (QDK) מבית מיקרוסופט. ה-Quantum Development Toolkit (QDK) היא ה-SDK הנדרש להתממשק עם Azure Quantum service. עם ה-QDK, ניתן לבנות תוכניות הפועלות על חומרה קוונטית או לנסח בעיות הפועלות על פותרי אופטימיזציה בהשראת קוונטים ב-Azure Quantum<ref></ref>.
* D-Wave Ocean - חבילה של כלי Python בקוד פתוח הנגישים דרך ערכת פיתוח התוכנה של Ocean (SDK) הן במאגר D-Wave GitHub<ref></ref> והן בשירות הענן הקוונטי של Leap. התוכנה Ocean מאפשרת למפתחים להתנסות, לפתח במהירות ולנצל את הכוח של המחשב הקוונטי של Advantage כדי לפתור בעיות מורכבות<ref></ref>.

==בישראל==

באוניברסיטאות בישראל מתקיימת פעילות מחקר ענפה בתחום של מדע וטכנולוגיה קוונטיים, שמחשוב קוונטי הוא חלק ממנו.

בישראל פועלות חברות הזנק אחדות בתחום החומרה והתוכנה למחשב קוונטי, בהן קוונטום מאשינז,, קוונט-אל–אר (הצפנה קוונטית), קדמה מחשוב קוונטי (מערכת הפעלה למחשב קוונטי), קלאסיק טכנולוגיות (פיתוח תוכנה למחשוב קוונטי) ועוד.

ביוני 2024 נפתח באוניברסיטת תל אביב המרכז הישראלי למחשוב קוונטי, שהוקם על ידי חברת קוונטום מאשינז במימון חלקי מרשות החדשנות, וכולל שילוב של מחשבים קוונטיים ומחשבי-על.

== ראו גם ==

* תורת האינפורמציה
* הצפנה קוונטית

==קישורים חיצוניים==

* 
* שחר דולב, [http://dolevim.org/shahar/QC.php#_ftnref2 מהו מחשב קוונטי?], "גלילאו" 77, ינואר 2005.
* 
* פרופ' טל מור מהמחלקה למדעי המחשב בטכניון בהרצאה על [http://www.youtube.com/watch?v=nv_YixxKd6g מחשוב קוונטי], כפי שהוצגה בכנס ה-HPC בסדנת יובל נאמן למדע, טכנולוגיה וביטחון, באוניברסיטת ת"א, דצמבר 2011.
* 
* 
* 
* 
* 
* 
* [https://www.ibm.com/quantum-computing/ המחשב הקוונטי המסחרי הראשון של IBM - עמוד הבית]
* עליונות קוונטית שהושגה על ידי גוגל
* [https://lbscience.org/2018/10/26/עליונות-קוונטית-חלק-א/ עליונות קוונטית - מדע גדול, בקטנה]
* 
* 
* 
* 
* 
* [https://www.gov.il/he/departments/general/quantum_computing היערכות ארגונית בסייבר לעידן פוסט-קוונטי (Post-Quantum Age), מערך הסייבר הלאומי, ינואר 2022]
* 
<div class="mw-content-ltr">
* 
</div>

==הערות שוליים==

קטגוריה:חישוב קוונטי
קוונטי, מחשב
קטגוריה:מכניקת הקוונטים