Programos tikslas – pateikti patogius įrankius objektų modeliams kurti ir spręsti tiesiniam optimizavimui.
Linijinis optimizavimas, dar vadinamas linijiniu programavimu (LP), yra metodas, leidžiantis pasiekti geriausią rezultatą (pvz., maksimalų (minimalų) pelną arba mažiausią kainą) naudojant matematinį modelį, kurio reikalavimus ir tikslą atspindi tiesiniai santykiai. Linijinis programavimas yra ypatingas matematinio programavimo (taip pat žinomas kaip matematinis optimizavimas) atvejis.
Linijinės programos (šios programos prasme modeliai) yra problemos, kurias galima išreikšti standartinėmis formomis (Wikipedia):- rasti vektorių x; - kad maksimaliai (sumažina) Z = cx; - atsižvelgiant į Ax<=b – in maximazes( Ax>=b – in minimizes );- ir x>=0. Čia x komponentai yra nustatytini kintamieji, c ir b yra pateikti vektoriai, o A yra duotoji matrica.
Nuo pradinės aplikacijos veiklos – App Linear Optimization – įtrauktos modelių kūrimo, redagavimo, sprendimo ir trynimo funkcijos. Modeliai saugomi SQLite duomenų bazėje pavadinimu linearProgramming.db. Programa turi duomenų saugojimo ir atkūrimo funkcijas įrenginio atsisiuntimo kataloge.
Kuriant optimizavimo modelį įvedami du parametrai (Tiesinio modelio veikla) - vektoriaus x kintamųjų skaičius ir apribojimų skaičius (į tai neįeina apribojimai kintamiesiems) - t.y. matricos A eilutės. Įvedę šiuos duomenis ir paspaudę mygtuką – Linijinis modelis, pereikite prie modelio duomenų įvedimo – iš veiklos Linijinio modelio kūrimas.
Vektorius x koeficientai c įrašomi į eilutę su etikete Z= prieš etikečių *Xi+.
Matricos А elementai įvedami į lentelę pavadinimu Constraints prieš laukų etiketę *Xi+. Kiekvienos matricos eilutės paskutiniame lauke po etiketės <= taip pat įvedamos apribojimų ribos b. Įvedus šiuos duomenis ir paspaudus mygtuką OK, grįžtama į veiklą – Linijinio modelio veikla , kur atsiranda privalomas modelio pavadinimo laukas ir mygtukas išsaugojimui.
Išsaugojus modelį, jo pavadinimas rodomas modelių sąraše, rodomame pradinėje programos veikloje. Pasirinktą modelį iš sąrašo galima redaguoti (mygtukas Redaguoti) arba išspręsti (mygtukas Apskaičiuoti). Po redagavimo ir išsaugojimo redaguota versija išsaugoma kaip naujas modelis, o senoji lieka nepakitusi duomenų bazėje. Taip galima išspręsti abu modelius ir palyginti rezultatus. Jei kai kurie iš jų nereikalingi, juos galima ištrinti.
Sprendžiant modelį, rezultatas parodo tikslinės funkcijos Z maksimizavimą ir sumažinimą bei prie kokių vektoriaus x elementų reikšmės tai įvyksta, taip pat suvaržymus.
Pramonės, kuriose naudojami linijinio programavimo modeliai, apima transportą, energetiką, telekomunikacijas ir gamybą. Jis pasirodė naudingas modeliuojant įvairių tipų planavimo, maršruto parinkimo, planavimo, priskyrimo ir projektavimo problemas.
Programa optimizavimo klasei naudoja SimplexSolver iš standartinės bibliotekos org.apache.commons:commons-math:3.6.1.