פירוק לגורמים של מספר שלם – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שוחזר מעריכות של 2A01:6500:A042:FD35:56DF:A748:3A7C:C419 (שיחה) לעריכה האחרונה של KotzBot
שורה 26:
==יעילות אלגוריתמים שונים לפירוק לגורמים==
{{בעיה פתוחה|מדעי המחשב|האם ניתן לבצע פירוק לגורמים של מספר שלם בזמן פולינומי?}}
לבעיית הפירוק לגורמים לא ידוע פתרון [[יעילות אלגוריתמית|יעיל אלגוריתמית]], כלומר כזה ש[[סיבוכיות זמן|זמן ריצתו]] [[פולינום|פולינומי]] ביחס למספר הספרות במספר שמפרקים. נחשדההשערה הרווחת היא שפתרון כזה לא קיים (משמע בעיית הפירוק לגורמים אינה ב-[[P (מחלקת סיבוכיות)|P]]) ועל חשדהשערה זהזו מבוססות שיטות הצפנה רבות כגון [[RSA]]. עם זאת, מבין הבעיות שאינן ניתנות לפתרון יעיל, בעיית הפירוק לגורמים נחשבת ל"קלה באופן יחסי". בפרט סבורים שהיא אינה [[בעיה NP-קשה]]. עדות לסברה זו היא [[אלגוריתם שור]], [[אלגוריתם קוונטי]] שפותר את בעיית הפירוק לגורמים בזמן פולינומי (מכאן שאילו בעיית הפירוק לגורמים הייתה NP-קשה, אזי [[NP (מחלקת סיבוכיות)|NP]] הייתה מוכלת ב-[[BQP]] בניגוד לסברהלהשערה הרווחת). כמו כן ידוע שבעיית הפירוק לגורמים שייכת ל-[[co-NP]], ולכן אילו היא הייתה NP-קשה הדבר היה גורר NP=co-NP, תוצאה הנחשבת מאוד לא סבירה.
 
מבין כל האלגוריתמים הידועים לפירוק לגורמים עד [[1988]], נחשב אלגוריתם [[נפה ריבועית|הנפה הריבועית]] כאלגוריתם היעיל ביותר לפירוק מספרים גדולים, טוב יותר מ[[פירוק לגורמים באמצעות עקום אליפטי]] (שיטה שהציע [[קרל פומרנץ]] ב-[[1984]]) ומ[[אלגוריתם הנפה הרציונלית של דיקסון]], אולם עם פרסומו של אלגוריתם [[נפת שדה מספרים]] על ידי פולרד, התגלה האחרון כאלגוריתם הטוב ביותר בכל הזמנים לפירוק לגורמים. בשיטה זו פורק המספר RSA-130 בקרוב ל-15 אחוז מהזמן שלקח לנפה הריבועית. נכון לשנת 2007, נפת שדה המספרים נחשבת לשיטה היעילה ביותר הידועה כיום לפירוק מספרים גדולים מאוד לגורמים ונמצאת בעיצומו של תהליך מחקר ופיתוח.