Table of Contents
מבוא
תכנות Integer הוא טכניקת אופטימיזציה מתמטית שהפכה חיונית לקבלת החלטות בהנדסה.כאשר החל פרויקטים הנדסיים בקנה מידה קטן - פיתוח מסוג, ייצור מפונק, או רטרופיטות תשתיות - מודל תכנות מותאם אישית יכול לשפר באופן דרמטי הקצאת משאבים, להפחית עלויות, ולעמוד בלוח זמנים הדוקים של ניהול פרויקטים, מודל מותאם לחשבונות מודלים ייחודיים, כגון מגבלות מהירות, כדי לפתח פתרונות מעשיים או יישום של תוכנית אופטימיזציה של צוותים.
מה זה Integer Programming?
תכנות Integer (IP) הוא מעמד מיוחד של תכנות ליניארי שבו כמה או כל משתנים ההחלטה מוגבלים לערכים integer. הגבלה זו חיונית בפרויקטים הנדסיים הכוללים כמויות דיסקרטיות - לדוגמה, מספר המכונות לרכוש, מספר העובדים להקצות, או ההחלטה בינארית לקבל או לדחות חוזה מוכר.
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
שלושה סוגים עיקריים של מודלים תכנות integer משמשים בדרך כלל בהנדסה:
- (FLT:0) תכנות של פורגר:FLT:1 כל המשתנים חייבים להיות אינטגרטיביים עבור ספירת פריטים פיזיים, כגון מספר צינורות או מזרזים.
- (FLT:0)Mixed-Integer Programming (MIPIR): 1:1 כמה משתנים הם רצופים, אחרים הם integer.לדוגמה, כמות חומר גלם (מעקב) ומספר אצילות (integer).
- (FLT:0)Binary Integer Programming:FreaLT:1) Variables יכול להיות רק 0 או 1. בשימוש עבור כן / ללא החלטות, כגון בחירת ספק או בחירה בין שתי חלופות עיצוב.
מכיוון שמגבלות אינסטלגר הופכות את הבעיה לא-קונבוקס, פתרון מודלים IP הוא בדרך כלל מורכב יותר מאשר פתרון תוכניות ליניאריות.עם זאת, עבור פרויקטים בקנה מידה קטן, מספר המשתנים והמגבלות הוא צנוע, ומאפשר לפתירים מודרניים למצוא פתרונות אופטימליים או קרובים לפתרונות ביעילות.
שלב-בי-Step: פיתוח מודל מותאם אישית
בניית מודל תכנות integer לפרויקט הנדסי בקנה מידה קטן דורש גישה ממושמעת כי מאזן הקפדה מתמטית עם רלוונטיות מעשית. השלבים הבאים, מותאם משיטות המחקר הטובות ביותר, להבטיח כי המודל נשאר ממוקד, מחוספס ושימושי.
1.ההגנה על המטרה ברורה
כל בעיה באופטימיזציה חייבת לציין פונקציה אובייקטיבית אחת שלוכדת את מטרת הפרויקט העיקרית.מטרות נפוצות בפרויקטים הנדסיים קטנים כוללות:
- מינימום עלות כוללת (חומרים, עבודה, ראש)
- מקסמת ייצור באמצעות חישוב או יעילות
- זמן השלמת פרוייקט Minimizing Project
- מקסם את הציון האיכותי בכפוף לתקציב
אם מספר מטרות סותרות - לדוגמה, עלות מול מהירות - אנשים לעתים קרובות להמיר מטרות משניות למגבלות או להשתמש בשיטות סכום מואצות.לדוגמה, "למזער עלויות בהתאם למשך פרויקט מקסימלי של 30 יום" לכתוב את המטרה בביטוי ליניארי יחיד, כגון "(\min\sum i i i i i i i\) להימנע מתנאים לא לינאריים אלא אם כן הכרחיים לחלוטין; הם מגבירים את הזמן באופן דרמטי.
2.זיהוי החלטות משתנות
משתנים החלטות מייצגים את הניגרים שאתה יכול למשוך.הם צריכים להיות דיסקרטיים, אמין, ובאופן ישיר נשלט על ידי פרויקטים בקנה מידה קטן, להגביל את מספר המשתנים לכמה עשרות כדי לשמור על המודל שקוף.
- (FLT:0) משתנה: FLT:1 מספר יחידות של מוצר A לייצר, מספר עובדים שהוקצו לשנות B.
- (ב) ,0) משתנה: ⁇ 1= 1\(i k= 1\) אם נבחר הספק k, 0 אחרת.
- (ב) ,0) משתנה: כמות המשאבים שהוקצה למשימות.
תמיד להגדיר את התחום של כל משתנה - אינפורטר, רציף או בינארי - ומעדכנים את יחידותיו (למשל, שעות, ק"ג, דולרים) הגדרה משתנה ברורה היא הבסיס של מודל שניתן לתקן.
3.הקימו קומוניסטמיסטים
הקונסטרינטים מגדירים את גבולות האזור האפשרי.במיזמים קטנים, מגבלות מגיעות לעתים קרובות מתקציבים, זמינות חומרית, יכולת כלי ומפרטים הנדסיים.
- (ב) ,0) מגבלות של מקורות: 1.10.10.10.10.10.10.10.10.10.05.7.05.05.10.10.10.10.10.10.10.10.10.10.
- (ב) יש להעביר לפחות 10 יחידות של מוצר X.
- (ב) ,0) מגבלות טכניות: 1FLT:1 למשל, אם בחירת עיצוב A, הטמפרטורה חייבת להישאר מתחת ל 100 מעלות צלזיוס.
- (ב) ניתן לבחור ב[[המאה ה-20]], ו[[1924]], [[1924]], [[1924]], [[1924]], [[1924]], [[1924]]]], [[1924]]]]]]
עבור משתנים בינאריים, מגבלות הגיוניות מובעות באמצעות אי-שוויון ליניארי.לדוגמה, הדרישה "אם הספק 1 נבחר, עלינו לרכוש לפחות 100 יחידות מהם" הופכת ל-(100 y 1 - x {1\>\0\) שבה (x 1\) היא כמות הרכישה.
פורמולה מודל מתמטי
עכשיו לשלב את האובייקטיבי, המשתנים והמגבלות לניסוח מתמטי אחיד. השתמש בהבחנה סטנדרטית כך שעמיתים או תוכנה יכולים לפרש אותה.מודל MIP טיפוסי עשוי להיראות:
(ב) ויקרא י"א): "וַיְהִיא רָאוּ רָאוּ רָאוּ הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא" (ב)
השתמש בנוסחאות גדולות כדי לקשר משתנים רצופים ו בינאריים.בחר M קטן ככל האפשר כדי למנוע בעיות יציבות מספריות.בשלב זה, לאמת את המודל על ידי בדיקות עם כמה מקרים של קלט טריוויאלי (למשל, אפס דרישות, תקציבים גדולים מאוד) כדי להבטיח את המגבלות להתנהג כמתוכנן.
5. יישום ופתרון
לתרגם את המודל המתמטי לקוד באמצעות ממשק סלולר. עבור פרויקטים בקנה מידה קטן, קוד פתוח ופתרונות מסחריים הם גם אפשרויות נאותות.
- (ב) ⁇ (ב) ⁇ (ב) ⁇ (ב) ⁇ פשוטה, טוב ללמידה.
- (ב) ,0) ,U-UbersFLT:1 (Google) תומך ב- MIP, CP ו- routing; היטב .
- (ב) ,0)GurobiveFLT:1 - בעל ביצועים גבוהים של סוחר מסחרי עם רישיון אקדמי חינם.
- (ב) ⁇ 0 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
לאחר כתיבת הקוד, להפעיל את המפת ולבחון את הפלט.בדוק את האפשרות - אם המודל לא יכול למצוא פתרון, לזהות אילו מגבלות הן מתוחות מדי או אילו הנחות סותרות. השתמש בזיהוי הסכסוך של הפתר או להירגע מגבלות אחד על ידי אחד.לאחר פתרון אפשרי נמצא, לנתח את הערך האובייקטיבי ואת ערכי משתנה ההחלטה לבצע ניתוח על ידי ניתוח מטרידה על ידי הפרמטרים המרכזיים (למשל, כיצד שינוי תקציבי הוא גורם).
מודלים לפרוייקטים קטנים
(הנדסה בקנה מידה קטן שונה מפעילות תעשייתית גדולה במספר דרכים המשפיעות ישירות על עיצוב המודל.ראשון, ⁇ 0) נתונים הוא לעתים קרובות בקושי או בלתי-וודאות FLT:1 (במקום הערכות בעלות מדויקות, ייתכן שיש לך ציטוטים קשים או ממוצעים היסטוריים.במקרים כאלה, לבנות מודל שניתן להחזירו מחדש כמידע טוב יותר - שימוש בתרחישים או אופטימיזציה חזקים במידת הצורך.
כדי להתאים אישית ביעילות, בצע את העקרונות האלה:
- (FLT:0)Start עם מודל ליבה מינימלי.FreaLT:1) כולל רק את המשתנים והמגבלות החיוניים ביותר.הוספת מורכבות רק כאשר המלצות המודל הליבה מערערערות על ידי אינטואיציה.
- (ב) כל משתנה בינארי יכול להכפיל את העץ-וקודש-ואם ניתן להציג החלטה על ידי זרם לא-מחדש במקום בינארי, מעדיף את ה-Integer.
- (ב) אם מאריך את הערך הידוע (Pre-solve and Fix Values.FIRLT:1), אם מאריך את המשתנים לערך ידוע (למשל, מספר הוורלדרים הוא תמיד 1 בשל הניקוד), לתקן אותו כפרמטר, לא משתנה.
- (FLT:0) מינוף מגבלות פורצות-סימטריה.I.R.E.R.E.R.E.R.E.R.E.R.E.R.1 במכונות זהות או עובדים, להוסיף מגבלות סדר (למשל, להקצות מכונה 1 לפני מכונה 2) כדי להפחית פתרונות כפולים.
- (FLT:0)Validate עם מומחי דומיין.FLT:1 הולך דרך הפתרון עם הפרויקט מוביל.אם המודל מציע לקנות חמש יחידות של חלק מיוחד כאשר רק שלוש הן ניתנות למדידה, מחסינות חסרה.
דוגמא
שלוש הדוגמאות הבאות ממחישות כיצד תכנות אינטגרטור מותאם לפרויקטים הנדסיים בקנה מידה קטן.כל אחת מציגה סוג אחר של החלטה ומערכת של מגבלות.
דוגמה: אופטימיזציה של חנות מכונות קטנה
חנות מכונות חד-אדם חייבת להציב ארבעה יצירות (lathe, מילימטר, קידוח), × 8m מלבן הרצפה.המטרה היא למזער את העלות הכוללת של טיפול חומרי, המוגדרת כסכום של מרחקים בין תחנות משקל הקיים על ידי מספר הנסיעות בשבוע.משתנים בינאריים: (i {i,p) אם אני ממוקם ב קיבולת של 20 סיביות ו- CLP כולל תאים פתוחים.
דוגמה 2: תחזוקה Shift Scheduling עם שני Technicians
במתקן יש שני טכנאים זמינים לפרויקט שבועי אחד.יש 12 משימות תחזוקה, כל אחד הדורש טכנאי יחיד ו לוקח בין 2 ל 6 שעות.המשימות יש סדרי עדיפויות שונים ויש להשלים בתוך חלון זמן מסוים (למשל, שום עבודה חשמלית לאחר 4 PM) המטרה היא למקסם את הסכום המכובד של משימות השלמת (פריטיטור) תוך שמירה על שעות עבודה של 8 שעות / יום, לא יכול לכלול דרישות בינאריות ל- 30 שניות).
דוגמה: בחירת חומרים עבור פרוטוטיפ
צוות הנדסי מעצב אבטיפוס פועל וחייב לבחור חומרים לשלושה מרכיבים: קיסינג, פיר ונושא. עבור כל רכיב, יש 4-6 חומרים מועמדים בעלות שונה, משקל, וכוח רביר.המטרה היא למזער את העלות החומרית הכוללת תוך הבטחת כי מגבלות כוח והגבלות משקל הכוללות מסופקות.כל רכיב חייב להיות מיוצר מחומר אחד בלבד (החלטות נוספות).
תוכנה וכלים
בחירת מסגרת התוכנה הנכונה היא קריטית לפיתוח מודל מהיר בפרויקטים בקנה מידה קטן.השולחן להלן מסכם את הכלים המומלצים ביותר, כל אחד עם נקודות חוזק עבור זרימת העבודה של המהנדס:
- (ב) [ה]ה-השירות] של גוגל או-כלס: [ה] ספרית קוד פתוח ורב-תכליתית תומכת ב-MIP, תכנות מחוספס, ורכב מתגרה.
- (ב) ,0) ⁇ : ⁇ 1 (ב) חבילת פייתון קל משקל המכנה פותרים חיצוניים (COIN-OR, Gorobi, CPLEX) הוא אידיאלי עבור דגמים ראשונים בגלל הסינמס הטבעי שלו.
- (ב) ,0)Gurobi: FLT:1 מוכר מסחרי ידוע במהירות ואמינות.הוא מציע רישיונות אקדמיים חינם ו- API Python עבור פרויקטים קטנים, המשפט החופשי הוא לעתים קרובות מספיק.
- (FLT:0)Excel Solver (OpenSolver): ההרחבה 1 (For Simple binary or Small Integer Problem, Excel's Built-in Solver או הקוד הפתוח OpenSolver יכול לשמש.
עבור פרויקטים בקנה מידה קטן, הבחירה בין קוד פתוח לבין פותרים מסחריים תלויה בגודל המודל וזמן הפתרון הנדרש.או-tools ו-PuLP הן אפשרויות חינם מצוינות; גורובי מומלץ אם אתה צריך לפתור מודלים דומים שוב ושוב או כאשר הבעיה גדלה מעבר ל -500 משתנים.
שיטות טובות לפיתוח מודל
פיתוח מודל תכנות integer כי למעשה נעשה שימוש על פרויקט אמיתי דורש יותר מאשר נכונות מתמטית.הפרקטיקות הטובות הבאות יגדילו את הסיכויים שהמודל שלך מספק ערך:
- (FLT:0)Start עם פיילוט.אנדרט 1 (ראה גרסה פשוטה ביותר ופתרון זה. להראות את התוצאות למומחה לתחום.פעמים רבות המודל יגלה כי מחסימת חשובה הושמה, או כי המטרה אינה משקפת את ה- Trading-off האמיתי.
- (ב) ⁇ :0) הנחות יסוד (FLT:103) כל הנחה על עלויות, יכולות וביקוש.כאשר המודל הוא revisited חודשים לאחר מכן (המומון בפרויקטים קטנים ארוכי טווח), ההנחות יהיו קריטיות לחידוש.
- (ב) לדוגמה, מה קורה אם הביקוש כפול?אם התקציב מוזנח?
- (FLT:0) שמור את המודל גמיש.FLT 1 , פרדוקס כל מספר חשוב (עלות, זמן, הגבלת) בקובץ נתונים נפרד.זה מאפשר לך לעדכן קלטות מבלי לגעת בהגיון המודל.
- (FLT:0) ויזואליזציה חזותית (FLT:1 A Gantt תרשים עבור תזמון או תוכנית הרצפה עבור פריסת הפריסה מסייעת לבעלי העניין להבין ולבטוח את הפתרון.
- (FLT:0)Considerity.FLT:1 בפרויקטים קטנים, פרמטרים עשויים להיות לא בטוחים. השתמש בניתוח תרחיש או ליישם גישה פשוטה שני שלבים: הראשון להחליט איזה ספק להשתמש (binary), ולאחר מכן להחליט כמויות לאחר יותר מידע הופך זמין.
לבסוף, לעולם אל תתייחסו למודל כקופסא שחורה.המודלים הטובים ביותר הם אלה שמזמינים שאלות וזיקוק.עודד משתמשים לשנות פרמטרים ולפרק מחדש.לאורך זמן, המודל הופך לכלי תמיכה בהחלטות אמין ולא תרגיל אקדמי חד פעמי.
מסקנה
מודלים תכנות מותאם אישית הם כלי חזק ומעשי לפרויקטים הנדסיים בקנה מידה קטן.על ידי ביצוע תהליך פיתוח מובנה - הגנה על מטרות, זיהוי משתנים דיסקרטיים, נוסחאות נוסחאות, יישום עם התוכנה הנכונה - מהנדסים יכולים לפתוח שיפורים משמעותיים במחיר, זמן, ויעילות משאבים.המפתח הוא להתאים את המודל בקנה מידה הפרויקט: לשמור על קטן, להשתמש במשתנה בינארי, כמו גם דוגמאות יעילות הפעלה פשוטה יותר, ללא שינוי ביצועים, כמו גם עם מודלים סטנדרטיים, ללא שינוי ביצועים קטנים יותר, כמו גם עם מודלים מתקדמים יותר, כמו גם עם מודלים של ציוד תחזוקה.