Svrha aplikacije je pružiti prikladne alate za izradu i rješavanje modela objekata za linearnu optimizaciju.
Linearna optimizacija, koja se naziva i linearno programiranje (LP), metoda je za postizanje najboljeg ishoda (kao što je maksimalni (minimalni) profit ili najniži trošak) u matematičkom modelu čiji su zahtjevi i cilj predstavljeni linearnim odnosima. Linearno programiranje poseban je slučaj matematičkog programiranja (poznato i kao matematička optimizacija).
Linearni programi (modeli u smislu ove aplikacije) su problemi koji se mogu izraziti u standardnim oblicima (Wikipedia):- pronaći vektor x; - koji maksimizira(minimizira) Z = cx; - podložno Ax<=b – in maksimizira( Ax>=b – in minimizira );- i x>=0. Ovdje su komponente x varijable koje treba odrediti, c i b su zadani vektori, a A je zadana matrica.
Od početne aktivnosti aplikacije – App Linear Optimization, uključene su funkcije za kreiranje, uređivanje, rješavanje i brisanje modela. Modeli su pohranjeni u SQLite bazi podataka pod nazivom linearProgramming.db. Aplikacija ima funkcije za pohranjivanje i obnavljanje baze podataka u imeniku Download uređaja.
Prilikom izrade optimizacijskog modela unose se dva parametra (aktivnost linearnog modela) - broj vektorskih x varijabli i broj ograničenja (ovo ne uključuje ograničenja za varijable) – tj. redaka matrice A. Nakon unosa ovih podataka i pritiska na tipku – Linearni model, prelazi se na unos podataka o modelu – iz aktivnosti Izrada linearnog modela.
Koeficijenti vektora x c upisuju se u red s oznakom Z= ispred oznaka *Xi+.
Elementi matrice A upisuju se u tablicu pod nazivom Ograničenja ispred oznake polja *Xi+. U posljednje polje svakog retka matrice iza oznake <= također se upisuje granica b ograničenja. Nakon unosa tih podataka i pritiska na tipku OK vraća se na aktivnost - Linearni model aktivnosti , gdje se pojavljuje obavezno polje za naziv modela i tipka za spremanje.
Kada se model spremi, njegovo se ime pojavljuje na popisu modela koji se prikazuje u početnoj aktivnosti aplikacije. Odabrani model s popisa može se uređivati (gumb Uredi) ili rješavati (gumb Izračunaj). Nakon uređivanja i spremanja, uređena verzija se pohranjuje kao novi model, a stari ostaje nepromijenjen u bazi podataka. To je zato da se mogu riješiti oba modela i usporediti rezultati. Ako neki od njih nisu potrebni, mogu se izbrisati.
Prilikom rješavanja modela, rezultat pokazuje maksimiziranje i minimiziranje ciljne funkcije Z i pri kojim vrijednostima elemenata vektora x na kojima se to događa te također ograničenja.
Industrije koje koriste modele linearnog programiranja uključuju transport, energetiku, telekomunikacije i proizvodnju. Pokazao se korisnim u modeliranju različitih vrsta problema u planiranju, usmjeravanju, raspoređivanju, dodjeljivanju i dizajnu.
Aplikacija za optimizaciju koristi klasu SimplexSolver iz standardne biblioteke org.apache.commons:commons-math:3.6.1.