מטרת האפליקציה היא לספק כלים נוחים ליצירה ופתרון מודלים של אובייקטים לאופטימיזציה ליניארית.
אופטימיזציה ליניארית, הנקראת גם תכנות לינארי (LP), היא שיטה להשגת התוצאה הטובה ביותר (כגון מקסימום (מינימום) רווח או עלות נמוכה ביותר) במודל מתמטי שדרישותיו ויעדיו מיוצגים על ידי קשרים ליניאריים. תכנות לינארי הוא מקרה מיוחד של תכנות מתמטי (הידוע גם בשם אופטימיזציה מתמטית).
תוכניות ליניאריות (מודלים במובן של אפליקציה זו) הן בעיות שיכולות לבוא לידי ביטוי בפורמטים סטנדרטיים (ויקיפדיה):- find vector x; - שממקסם(ממזער) Z = cx; - בכפוף ל-Ax<=b – ב-maximizes( Ax>=b – ב-minimises );- ו-x>=0. כאן הרכיבים של x הם המשתנים שיש לקבוע, c ו-b נתונים לוקטורים, ו-A היא מטריצה נתונה.
מהפעילות הראשונית של האפליקציה – App Linear Optimization כלולות הפונקציות ליצירה, עריכה, פתרון ומחיקת מודלים. המודלים מאוחסנים בבסיס נתונים של SQLite עם השם linearProgramming.db. לאפליקציה יש פונקציות לאחסון ושחזור מסד הנתונים בספריית ההורדה של המכשיר.
בעת יצירת מודל אופטימיזציה, מוזנים שני פרמטרים (פעילות מודל לינארי) - מספר משתני וקטור x ומספר האילוצים (זה לא כולל את האילוצים למשתנים) - כלומר השורות של מטריצה A. לאחר הזנת נתונים אלו ולחיצה על הכפתור – מודל ליניארי, ממשיכים להזין את נתוני המודל – מתוך פעילות יצירת מודל ליניארי.
מקדמי x הווקטור c מוזנים בשורה עם תווית Z= לפני התוויות *Xi+.
הרכיבים של המטריצה А מוזנים בטבלה בשם Constraints מול תווית השדות *Xi+. בשדה האחרון של כל שורה של המטריצה אחרי התווית <= , מוזנים גם הגבולות b של האילוצים. לאחר הזנת נתונים אלו ולחיצה על כפתור האישור, הוא חוזר לפעילות - פעילות מודל ליניארי , שם מופיע שדה חובה לשם הדגם וכפתור לשמירה.
כאשר דגם נשמר, השם שלו מופיע ברשימת הדגמים המוצגים בפעילות הראשונית של האפליקציה. ניתן לערוך את הדגם הנבחר מהרשימה (כפתור ערוך) או לפתור (כפתור חשב). לאחר העריכה והשמירה, הגרסה הערוכה נשמרת כדגם חדש, והישן נשאר ללא שינוי במסד הנתונים. זאת על מנת שניתן יהיה לפתור את שני המודלים ולהשוות את התוצאות. אם אין צורך בכמה מהם, ניתן למחוק אותם.
בעת פתרון מודל, התוצאה מציגה את המקסום והמזעור של פונקציית היעד Z ובאילו ערכים של האלמנטים של הווקטור x שבו זה מתרחש וגם אילוצים.
תעשיות המשתמשות במודלים של תכנות ליניאריים כוללות תחבורה, אנרגיה, טלקומוניקציה וייצור. זה הוכח כיעיל בעיצוב סוגים שונים של בעיות בתכנון, ניתוב, תזמון, הקצאה ועיצוב.
היישום משתמש במחלקת אופטימיזציה SimplexSolver מהספרייה הסטנדרטית org.apache.commons:commons-math:3.6.1.
עדכון אחרון בתאריך
14 באוק׳ 2025