מחשב קוונטי – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏קיוביט: הגהה, replaced: למצא ← למצוא (3) באמצעות AWB
הסרת קישורים עודפים, החלפה (אף על פי ש)
שורה 5:
== רקע ==
 
המחקר בנוגע לעיבוד אינפורמציה ולמחשבים קוונטיים החל בשנות השבעים של המאה העשרים. בשנת [[1973]] פרסם [[אלכסנדר חולבו]] את המאמר הראשון בתחום, ובו ההבחנה שעל אף ההבדלים ביניהם, n [[קיוביט|קיוביטים]]ים אינם יכולים לייצג יותר מ-n ביטים קלאסיים. אחד החלוצים בתחום היה ה[[פיזיקאי]] [[ריצ'רד פיינמן]], שבשנת [[1981]] ניסח את ההבחנה הבאה - כאשר מנסים לחשב את חיזויי [[מכניקת הקוונטים]] עבור מערכות פיזיקליות גדולות, נראה שמחשב רגיל לא יכול לעשות זאת ביעילות בגלל המשאבים ה[[פונקציה מעריכית|מעריכיים]] הנדרשים לייצוג [[פונקציית הגל]]. ואולם, הטבע עצמו הרי מבצע חישובים אלו, במובלע, כאשר המערכת הפיזיקאלית מתקיימת במציאות. מכאן, נראה שלטבע, הפועל על פי [[מכניקת הקוונטים]], יש יתרון ביכולת החישוב שלו מול מחשב "קלאסי". אם כך, נוכל אולי לבנות סוג חדש של מחשב, המנצל אפקטים קוונטיים לביצוע [[חישוב (מדעי המחשב)|חישוב]] באופן יעיל יותר. מחשב כזה יוכל לחשב את חיזויי מכניקת הקוונטים ביעילות - ואולי אף לבצע חישובים אחרים באופן יעיל יותר מכל מחשב "קלאסי".
 
בשנת [[1985]] ניסח [[דיוויד דויטש]] מודל תאורטי אוניברסלי למחשב קוונטי, [[מכונת טיורינג קוונטית]]. בדומה ל[[מכונת טיורינג]] קלאסית מדובר במודל תאורטי פשוט המגלם בתוכו את כל העצמה החישובית של מחשב קוונטי, בלי תלות באופן המימוש שלו. דויטש הראה שעל אף ההבדלים בין המודלים השונים, מבחינה [[חישוביות|חישובית]] מכונת טיורינג קוונטית שקולה למכונת טיורינג קלאסית ולמעשה מחשב קוונטי לא מפר את [[תזת צ'רץ'-טיורינג]].
שורה 13:
יחידת המידע הבסיסית במחשב קלאסי נקראת [[סיבית]] או "ביט", כל ביט יכול להיות באחד משני מצבים: 0 או 1. לעומת זאת, יחידת המידע הבסיסית במחשב קוונטי נקראת [[קיוביט]] (ביט קוונטי), כל קיוביט יכול להיות במצב 0 או 1, אך גם בכל [[סופרפוזיציה]] קוונטית שלהם. באופן דומה, [[אוגר (מחשבים)|רגיסטר]] קלאסי בן n ביטים יכול לייצג כל אחד מ-<math>2^n</math> מצבים שונים, רגיסטר קוונטי יכול לייצג כל סופרפוזיציה של <math>2^n</math> מצבים שונים.
 
סופרפוזיציה של קיוביט בודד מיוצגת על ידי - <math>\alpha |0\rangle + \beta |1\rangle</math> כאשר המשמעות היא שבעת [[בעיית המדידה|מדידה קוונטית]] יש הסתברות של <math>|\alpha |^2</math> למצוא את הקיוביט במצב 0 והסתברות של <math>|\beta |^2</math> למצוא את הקיוביט במצב 1. כיוון שניתן למצוא את הקיוביט רק באחד מבין שני המצבים, <math>\alpha,\ \beta</math> שהם [[מספר מרוכב|מספרים מרוכבים]], מקיימים <math>|\alpha |^2 + |\beta |^2 = 1</math>. קיוביט בודד מיוצג לצרכים תאורטיים על ידי שני מספרים מרוכבים, ולכן יכול לכאורה לייצג כמות אינסופית של מידע. אכן ניתן לבצע חישובים ומניפולציות שונות על קיוביט המייצג סופרפוזיציה בין מספר מצבים, אך בסופו של דבר [[בעיית המדידה|מדידה קוונטית]] שלו תגרום לקריסה של [[פונקציית גל|פונקציית הגל]] ולאחריה במקום סופרפוזיציה של שני המצבים יתקבל מצב אחד ויחיד. תכונה זו של סופרפוזיציה מאפשרת לבצע חישובים בצורה שונה מהאופן שבו הם מתבצעים במחשב קלאסי, ועם זאת קריסת פונקציית הגל בעת המדידה מגבילה את העצמה החישובית.
 
==שערים קוונטיים==
שורה 19:
במחשב קלאסי, הפעולות הבסיסיות שניתן לבצע על ביטים מיוצגות באמצעות [[שער לוגי|שערים לוגיים]], ואלו יכולים לממש כל פונקציה בוליאנית שהקלט שלה הוא מספר כלשהו של ביטים, והפלט שלה יכול להיות כל מספר אחר של ביטים. המנגנון המקביל במחשב קוונטי נקרא [[שער קוונטי]], שער כזה יכול לממש כל [[אופרטור יוניטרי]] על מספר קיוביטים, והתוצאה שלו תהיה בת מספר זהה של קיוביטים. נהוג לייצג שערים קוונטיים כ[[מטריצה|מטריצות]] יוניטריות, כאשר שער קוונטי הפועל על <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> הוא אורך המפתח). מסתבר שבאופן כללי, לא ניתן לבצע את החיפוש מהר יותר, כלומר, למחשב הקוונטי יש יתרון (ריבועי) על פני מחשב קלאסי בפתרון בעיות חיפוש כלליות, אך לא יותר מכך.
שורה 29 ⟵ 28:
=== מציאת גורמים ראשוניים ===
 
אחת הבעיות החשובות שניתנות לפתרון באמצעות מחשב קוונטי היא מציאת [[מספר ראשוני|הגורמים הראשוניים]] של מספר גדול. הדבר חשוב בין השאר כי משמעו שמי שברשותו מחשב קוונטי יוכל לפצח את שיטת ההצפנה [[RSA]]: בהצפנת RSA המפתח הסודי הוא שני מספרים ראשוניים גדולים מאוד <math>p</math> ו-<math>q </math>, ורק מכפלתם <math>N = p \times q </math> מתפרסמת. השערה מקובלת היא שהחישוב ההפוך, כלומר מציאת הגורמים הסודיים <math>p</math> ו-<math>q </math> בהינתן מכפלתם N, מהווה בעיה שאינה ניתנת לפתרון יעיל במחשב קלאסי. בטיחות שיטת ההצפנה מסתמכת על קושי זה. ב-[[1994]] פיתח [[מדען מחשב|מדען המחשב]] [[פיטר שור]] [[אלגוריתם שור|אלגוריתם קוונטי למציאת גורמים ראשוניים]] של מספר נתון. הוא עשה זאת על ידי המרה של בעיית הפירוק לגורמים לבעיה של מציאת מחזור עבור פונקציה מסוימת, והראה שמחשב קוונטי יכול למצוא את המחזור ביעילות רבה (בעזרת גרסה קוונטית של [[התמרת פורייה]]). הרעיון הוא שמחשב קוונטי "רואה" בו זמנית את כל נקודות הפונקציה ולכן יכול לבצע [[התאבכות]] על מנת לקבל את המחזור של הפונקציה.
 
=== מגבלות עקרוניות ===
 
למרותאף על פי שידועות בעיות שמחשב הקוונטי יכול לפתור ביעילות גדולה יותר ממחשב קלאסי, יכולתו של מחשב קוונטי אינה בלתי מוגבלת והוא אינו "פתרון קסם" לכל בעיה חישובית. בראש ובראשונה, ידוע כי ההבדל העקרוני בין מחשבים קוונטיים וקלאסיים הוא ביעילות (דהיינו, [[סיבוכיות]]) בלבד; כלומר, כל בעיה הניתנת לפתרון על מחשב קוונטי ניתנת לפתרון גם על כל מחשב קלאסי, אם כי ייתכן שהדבר ידרוש משאבים גדולים יותר. גם הפרש היעילות אינו שרירותי - הוא לכל היותר [[פונקציה מעריכית|מעריכי]], וישנן בעיות אותן מחשב קוונטי אינו יכול לפתור באופן יעיל הרבה יותר ממחשב קלאסי. לא ידוע אם מחשב קוונטי מסוגל לפתור בעיות [[NP-שלמה|NP-שלמות]] ב[[זמן ריצה פולינומי]], ומדענים רבים משערים שאין כך הדבר.
 
== ראו גם ==
{{קישורי פורטל|מדעי המחשב}}
* [[מכניקת הקוונטים]]
* [[תורת האינפורמציה]]
* [[אינפורמציה קוונטית]]