מיטוב אלגוריתמים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ כלל הערך: קישורים פנימיים ומעט הגהה.
רן כהן (שיחה | תרומות)
מ אין צורך בו' החיבור (זוטא)
שורה 1:
'''מיטוב''' (ב[[לעז]]: אופטימיזציה) הוא ענף ב[[מדעי המחשב]] העוסק בייעול [[אלגוריתם|אלגוריתמים]] ושיפור [[סיבוכיות זמן ריצה|זמן ריצתם]], תוך שמירה על רמה סבירה של [[דיוק ונכונות|דיוק]]. יש להבדיל בין "מיטוב אלגוריתמים" ל"אלגוריתמי [[אופטימיזציה (מתמטיקה)|מיטוב]]" שעוסקים ב[[אופטימיזציה (מתמטיקה)|מציאת פתרון מיטבי לבעיה מוגדרת]].
 
אופטימיזציה מבוצעת ברמות שונות של [[הפשטה (מתמטיקה)|הפשטה]] וראייה כוללת, ועלעל ידי גופים שונים. הרמה הבסיסית ביותר של האופטימיזציה נעשית על ידי ה[[מעבד]] עצמו. המעבד חשוף רק לקטעי ה[[קוד]] שזמן ביצועם קרוב. אופטימיזציה שתלויה במעבד היא, למשל, זכירה של היסטוריית הריצה והפעולות האחרונות שבוצעו (לדוגמה: איזה מבין ענפי משפט תנאי מסוים נלקח לעתים קרובות יותר) ופעולה על פי ניבוי המבוסס עליה.
 
ה[[מהדר]] מבצע אופטימיזציה של סידור שורות הקוד ויצירתן. למשל, המהדר יכול להחליט לשכפל קוד מסוים מספר פעמים, במקום להשאירו במבנה של [[לולאה]]. על ידי כך גדל גודל ה[[קובץ]] המכיל את הוראות הביצוע, אך מספר ה[[בקרת זרימה|קפיצות]] בתוך הקובץ קטן. המעבד יכול, בראיית-על של מספר [[שגרה (תכנות)|פונקציות]], לגלות כי לא נעשה שימוש בפונקציה מסוימת, ולא לעבדה כלל. הוא יכול להחליף [[משתנה (תכנות)|משתנים]] ב[[קבוע (תכנות)|קבועים]] או לגלות כי משתנים מסוימים אינם נחוצים.