סיבוכיות זמן – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏ראו גם: מחיקת קישורים לדפי הפניה לגוף הערך
Yonidebot (שיחה | תרומות)
מ בוט החלפות: בעיה; תת-;
שורה 55:
עפ"י רוב, אלגוריתמים בעלי זמן ריצה מעריכי אינם נחשבים ליעילים, וזאת משום שהפונקציה המעריכית "גדלה מהר מאוד" ביחס לקלט; לכן, מועדף השימוש באלגוריתמים מזמני ריצה טובים יותר.
 
===זמן ריצה תת -מעריכי===
סיבוכיות זמן ריצה תת -מעריכית או תת -אקספוננציאלית, מוערכת על ידי <math>\ L_n[\alpha,c]</math>, כאשר:
 
::<math>\ L_n[\alpha,c]=\mbox{exp}(c\log(n)^{\alpha}\log\log(n)^{1-\alpha})</math>
שורה 62:
<math>\ \alpha</math> הוא משקל החלק [[לוגריתם|הלוגריתמי]] במעריך, בעוד שהמשלים ל-<math>\ \alpha</math> הוא משקל החלק הלוג-לוגריתמי, הקטן יותר. לכל ערך של <math>\ \alpha</math>, הפונקציה מייצגת סיבוכיות גדולה יותר ככל ש-<math>\ c</math> גדול יותר. לשם השוואה, <math>\ L_n[1,c]=n^c</math> היא סיבוכיות אקספוננציאלית, בעוד ש-<math>\ L_n[0,c]=(\log(n))^c</math> היא סיבוכיות פולינומית. על סולם זה, קל להעריך את מידת היעילות של האלגוריתם מתוך התבוננות בערך <math>\ \alpha</math> למשל <math>\ L_n[1/2,c]</math> נמצאת ב"אמצע הדרך" בין סיבוכיות אקספוננציאלית לפולינומית.
 
בעיית פירוק לגורמים נחשבה במשך שנים לבעייהלבעיה אקספוננציאלית והיא עמדה על סיבוכיות משוערת מסדר גודל <math>\ L_n[1/2,c]</math> והושגו רק שיפורים מינוריים בערכו של הקבוע <math>\ c</math>. עד שנפרץ מחסום האקספוננציאליות ב-[[1988]], כאשר המתמטיקאים [[ג'ון פולארד]], [[מארק מאנאס]], [[הנדריק לנסטרה]] ו[[ארג'ן לנסטרה]] פרסמו את שיטת [[נפת שדה מספרים]] המיוחדת לפירוק מספרים בעלי מבנה מיוחד כ[[מספר פרמה|מספרי פרמה]] ו[[מספרי קנינגהם]]. לשיטה זו סיבוכיות מהצורה <math>\ L_n[1/3,c]</math> כשהקבוע <math>\ c=(32/9)^{1/3}\approx1.526</math>. כמספר שנים לאחר מכן, פותח האלגוריתם הכללי - "נפת שדה המספרים הכללית" המתאים לפירוק כל מספר שלם ויעילותו מוערכת ב-<math>\ L_n[1/3,c]</math>, כשהקבוע <math>\ c=(64/9)^{1/3}\approx1.923</math>. בכל המקרים נוסחאות הסיבוכיות מנומקות, מוסכמות על כל המומחים, מגובות בתוצאות אמפיריות - אך אינן [[הוכחה|מוכחות]].
 
== ראו גם ==