מה זה MathOpt
MathOpt היא ספרייה של מודלים ופתרון של בעיות אופטימיזציה מתמטיות, לדוגמה, בעיות תכנות לינארי (LPs) או בעיות תכנות עם מספרים שלמים (MIPs). ב-MathOpt מפרידים בין המודלים לבין פתרון, ומאפשרים למשתמשים להחליף בין שיטות הפתרון על ידי שינוי של טיפוסים בני מנייה (enum) (ותלות של build) כדי לבחור את הפותר שלהם.
כדאי לצפות בסרטון הזה למבוא קצר של MathOpt ממצגת המכירות של JuMP Conference 2023.
תכונות MathOpt
מודלים של MathOpt יכולים להכיל:
- משתנים רציפים או מספרים שלמים
- מגבלות ליניאריות או ריבועיות
- יעדים ליניאריים או ריבועיים
- יעדים היררכיים מרובים
- אילוצי MIP מיוחדים (SOS, אינדיקטור, ועוד)
- כמה אילוצים חרוטים (קונוסים מסדר שני, בהמשך נוסיף עוד)
המודלים מוגדרים בנפרד מכל פותר, ואפשר להחליף בין הפותרים שלהם. MathOpt תומך בפתרון הבעיות הבאות:
חברת MathOpt מספקת ספריות לקוח ב-C++ וב-Python כדי לבנות מודל אופטימיזציה.
MathOpt תומך בתכונות מתקדמות רבות, כולל:
- Infeasibility Analysis ((סדרה בלתי הפיכה או IIS), Gurobi בלבד
- פתרון מצטבר
- התקשרות חזרה
- דוא"ל
- קרניים ראשוניות וקרניים כפולות
- פתרונות ראשוניים לא אופטימליים ופתרונות כפולים
- מחיקות של משתנים ואילוצים
- התחלות חמימות (לפי פתרון או בסיס)
- פירוט הסיבה לסיום החוזה
- עדיפות הסתעפות
- הפרעה
- פרמטרים עצמאיים רבים של פותר