Мэта прыкладання - прадастаўленне зручных інструментаў для стварэння і рашэння мадэляў аб'ектаў для лінейнай аптымізацыі.
Лінейная аптымізацыя, таксама званая лінейным праграмаваннем (ЛП), - гэта метад дасягнення найлепшых вынікаў (напрыклад, максімальнага (мінімальнага) прыбытку або найменшых выдаткаў) у матэматычнай мадэлі, патрабаванні і мэта якой прадстаўлены лінейнымі залежнасцямі. Лінейнае праграмаванне - гэта асаблівы выпадак матэматычнага праграмавання (таксама вядомага як матэматычная аптымізацыя).
Лінейныя праграмы (мадэлі ў сэнсе гэтага прыкладання) - гэта задачы, якія можна выказаць у стандартных формах (Вікіпедыя): - знайсці вектар x; - што максімізуе(мінімізуе) Z = cx; - з улікам Ax<=b – in максімізуе( Ax>=b – in мінімізуе );- і x>=0. Тут кампаненты x — зменныя, якія трэба вызначыць, c і b — зададзеныя вектары, а A — зададзеная матрыца.
Пачынаючы з першапачатковай дзейнасці прыкладання - App Linear Optimization, уключаны функцыі для стварэння, рэдагавання, рашэння і выдалення мадэляў. Мадэлі захоўваюцца ў базе даных SQLite з імем linearProgramming.db. Дадатак мае функцыі для захоўвання і аднаўлення базы дадзеных у каталогу Download прылады.
Пры стварэнні мадэлі аптымізацыі ўводзяцца два параметры (дзейнасць лінейнай мадэлі) - колькасць зменных вектара х і колькасць абмежаванняў (гэта не ўключае абмежаванні для зменных) - г.зн. радкоў матрыцы A. Пасля ўводу гэтых даных і націску кнопкі – Лінейная мадэль, вы пяройдзеце да ўводу даных мадэлі – з дзеяння Стварэнне лінейнай мадэлі.
Вектарныя каэфіцыенты x c заносяцца ў радок з пазнакай Z= перад пазнакамі *Xi+.
Элементы матрыцы А заносяцца ў табліцу з назвай Constraints перад пазнакай *Xi+. У апошняе поле кожнага радка матрыцы пасля пазнакі <= таксама ўводзяцца межы b абмежаванняў. Пасля ўводу гэтых даных і націску кнопкі OK адбываецца вяртанне да дзейнасці - Дзеянне лінейнай мадэлі, дзе з'яўляецца абавязковае поле для назвы мадэлі і кнопка для захавання.
Калі мадэль захоўваецца, яе назва з'яўляецца ў спісе мадэляў, які адлюстроўваецца ў пачатковай дзейнасці прыкладання. Выбраную мадэль са спісу можна рэдагаваць (кнопка Edit) або вырашаць (кнопка Calculate). Пасля рэдагавання і захавання адрэдагаваная версія захоўваецца як новая мадэль, а старая застаецца ў базе нязменнай. Гэта робіцца для таго, каб можна было разгадаць абедзве мадэлі і параўнаць вынікі. Калі некаторыя з іх не патрэбныя, іх можна выдаліць.
Пры рашэнні мадэлі вынік паказвае максімізацыю і мінімізацыю мэтавай функцыі Z і пры якіх значэннях элементаў вектара x гэта адбываецца, а таксама абмежаванні.
Галіны, якія выкарыстоўваюць мадэлі лінейнага праграмавання, ўключаюць транспарт, энергетыку, тэлекамунікацыі і вытворчасць. Ён апынуўся карысным пры мадэляванні розных тыпаў праблем пры планаванні, маршрутызацыі, раскладзе, прызначэнні і дызайне.
Дадатак выкарыстоўвае для аптымізацыі клас SimplexSolver са стандартнай бібліятэкі org.apache.commons:commons-math:3.6.1.