אלגוריתם שור
אלגוריתם שוֹר (Shor - על שם פיטר שור, ממציאו), הוא אלגוריתם קוונטי המשמש לפירוק לגורמים של מספר גדול, כלומר מציאת הגורמים הראשוניים של המספר. האלגוריתם פורסם לראשונה על ידי פיטר שור[1] בשנת 1994, ויחד עם אלגוריתם גרובר נחשב לאחד משני האלגוריתמים החשובים ביותר בתחום החישוב הקוונטי.[2] פיתוח האלגוריתם זיכה את ממציאו בפרס גדל (1999). אלגוריתם שור מבוסס על הרעיונות הקוואנטיים שהודגמו באלגוריתם סימון למציאת מחזור של פונקציה. האלגוריתם עושה שימוש בהתמרת פורייה קוונטית (QFT), על מנת לקבל מחזור שהינו כפולה של אחד מהגורמים הראשוניים של המספר אותו רוצים לפרק.
בעוד האלגוריתמים הקלאסיים של פירוק לגורמים פועלים בסיבוכיות זמן של
, אלגוריתם שור פועל בסיבוכיות זמן של
, עבור מציאת הגורמים של מספר גדול,
. אלגוריתם זה מהווה דוגמה לייתרון אקספוננציאלי בסיבוכיות הזמן של אלגוריתמים קוונטיים לעומת אלגוריתם קלאסי.
תוכן עניינים |
השלכות ומשמעויות [עריכה]
שימוש באלגוריתם זה על מנת לפרק מספרים גדולים מהווה איום על אלגוריתמים מתחום ההצפנה האסימטרית, אשר מושתתים על פעולות מתמטיות עם מספרים גדולים, כגון RSA. שיטות אלו מסתמכות על מספר גדול
בן 512–8192 סיביות (מספר בעל מאות ספרות), אשר ידוע לכלל. הגורמים הראשוניים של מספר זה מהווים את המפתח הסודי. שימוש באלגוריתם שור מאפשר מציאת המפתח באופן יעיל, כלומר, במספר "קטן" יחסית של פעולות.
עם זאת, היישום הפיזיקלי של האלגוריתם הינו קשה. בשנת 2001 בוצע אלגוריתם שור על מספר בן 5 סיביות במעבדות IBM, על ידי בניית מעגל קוונטי המכיל 7 קיוביטים.[3] בנית מחשב קוונטי בעל מספר גדול יותר של קיוביטים, נחשבת אתגר קשה מאד בטכנולוגיה בת ימינו.
תיאור האלגוריתם לפירוק המספר
[עריכה]
ניתן לחלק את פעולת האלגוריתם לשני שלבים, הראשון הינו שלב קלאסי, הניתן לביצוע על כל מחשב שהוא, והשני שלב קוונטי, אשר מבוצע על מחשב קוונטי.
השלב הקלאסי [עריכה]
- בחר מספר כלשהו
. - בדוק האם gcd(a, N) ≠ 1. אם כן - מצאנו גורם, סיים.
- אם לא, בצע את השלב הקוונטי על מנת למצוא את המספר
, שהינו המחזור של הפונקציה

- אם המספר r המתקבל הינו אי-זוגי, חזור לסעיף 1.
- אחרת, בדוק האם
.
- אם כן - חזור ל1.
- אחרת, ל
גורם ראשוני משותף עם N. חשב
וקבל גורם ראשוני של N.
-
- (הסבר: אם
מחזור של
אזי
, כלומר,
. נפתח את הביטוי:
- (הסבר: אם

-
- כאשר
, הגורמים של N).
- כאשר
השלב הקוואנטי [עריכה]
בחר מספר Q כך ש
וכן Q הינו חזקה שלמה של 2, כלומר ניתן לכתיבה
עבור q מספר טבעי.
1. אתחל שני אוגרים קוונטים, בגודל q קיוביטים כל אחד, למצב

- שהינו סופרפוזיציה של Q מצבים.
2. הפעל את הפונקציה הקוונטית
על האוגרים, לקבלת

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

4. בצע מדידה. מתקבל ערך
כלשהו וערך
כלשהו. ההסתברות למדוד את הזוג
נתונה על ידי

- הסתברות זו נובעת מקיומם של ערכים רבים של
עבורם
, כאשר כל האברים הללו תורמים להסתברות למדוד את אותו המצב
. החלק הימני של השיווין נובע מהעובדה שהפונקציה
הינה מחזורית, בעלת מחזור r (בהנחה שהאבר
הינו הקטן ביותר באותו מחזור, וb מקבל ערכים מ-0 עד
, אז הביטוי
הינו כלל ה-
ים הקטנים מ-
המקיימים
).
5. מצא מספר
ומספר
, כך ש
ו
קרוב מאד ל
, ובאופן מפורש,
.
6. קיים סיכוי גבוה מאד כי
הינו המחזור המבוקש. בדוק האם
. אם כן, סיים. אם לא - חזור על ביצוע האלגוריתם.
הערות שוליים [עריכה]
- ^ גרסה מתוקנת ומשופרת של המאמר של פיטר שור פירוק לראשוניים של מספרים בזמן פולינומי על ידי מחשב קוונטי (באנגלית)
- ^ מהו מחשב קוונטי, 01/2005
- ^
L. M. K. Vandersypen et al. (2001). "Experimental realization of Shor’s quantum factoring algorithm using nuclear magnetic resonance". Nature 414: 883–887.
קישורים חיצוניים [עריכה]
- הסבר על אלגוריתם שור, מתוך קורס בטכניון.
.
, שהינו ה
.
גורם ראשוני משותף עם N. חשב
וקבל גורם ראשוני של N.
, כלומר,
. נפתח את הביטוי:
, הגורמים של N).
עבורם
, כאשר כל האברים הללו תורמים להסתברות למדוד את אותו המצב
. החלק הימני של השיווין נובע מהעובדה שהפונקציה
הינו הקטן ביותר באותו מחזור, וb מקבל ערכים מ-0 עד
, אז הביטוי
הינו כלל ה-