אופטימיזציה (Optimization) היא ערך מרכזי במדעי המחשב ובתחום המתמטיקה, המתייחס לשיפור הביצועים של מערכות, תהליכים ואלגוריתמים על ידי חיפוש אחר הפתרון הטוב ביותר מתוך קבוצת הפתרונות האפשריים. באופן כללי, אופטימיזציה מתייחסת לכלל הדרכים למצוא את הפתרון הטוב ביותר לבעיה מסוימת, תוך עליית הביצועים או ירידה בעלויות. אופטימיזיציה נמצאת בשימוש נרחב במגוון רחב של תחומים כגון אינג'יניריה, תכנון ויצור, רכבת, אינטרנט ועוד.
בתחום המחשבים, אופטימיזציה משמשת תתי תחומים רבים כגון:
– אופטימיזציה מתמטית: מחקר פורמלי של אלגוריתמים ושיטות למציאת פתרונות אופטימליים לבעיות מתמטיות.
– אופטימיזציה קומבינטורית: אחד מתתי התחומים של אופטימיזציה המתעסק בחיפוש הפתרון הטוב ביותר בתוך קבוצה מוגבלת של פתרונות. הבעיות שבתחום זה נמצאות בצורתו הכללית ולא מוגדרות מראש.
– אופטימיזציה מתמטית רוחבית: מונח המשמש לתת תחום של אופטימיזציה שמתעסק בפתרון של מערכות או תהליכים על בסיס מדבך של השלכות וקשרים מתמטיים ביניהם.
– אופטימיזציה עם אילץ' (Optimization with Constraints): אופטימיזיה שמתעסקת במציאת פתרון הטוב ביותר לבעיה שבה ישנם אילציות מוגבלים.
– ביצועים ובנאי אופטימלי: התחום שמתעסק בפתרונות אופטימים עבור בנאי וביצועים של תהליכים מחשוביים. לדוגמה, תוכנה אופטימית עשויה לשפר את מהירות תגובה של אפליקציה ולהפחית את צריכת המשאבים שלה.
– אינדקסים ורשתות: התחום שמתעסק בכלל השיפורים השונים במערכות ספציפיות במובני האינדקסים והרשתות.
– סימולציה ומודלים אנליטיים: במקרים שבהם אי אפשר להשיג את הפתרון האופטימלי ידנית (למשל, מחשבונים מתמטיים מורכבים מדי), אפשר לנסות למצוא פתרון מבין הפתרונות האופטימליים על פי מודל סטטיסטי או מתמטי.