Celem aplikacji jest udostępnienie wygodnych narzędzi do tworzenia i rozwiązywania modeli obiektów w celu optymalizacji liniowej.
Optymalizacja liniowa, zwana także programowaniem liniowym (LP), to metoda osiągnięcia najlepszego wyniku (takiego jak maksymalny (minimalny) zysk lub najniższy koszt) w modelu matematycznym, którego wymagania i cel są reprezentowane przez zależności liniowe. Programowanie liniowe to szczególny przypadek programowania matematycznego (znanego również jako optymalizacja matematyczna).
Programy liniowe (modele w znaczeniu tej aplikacji) to problemy, które można wyrazić w standardowych formatach (Wikipedia): - znajdź wektor x; - to maksymalizuje (minimalizuje) Z = cx; - pod warunkiem Ax<=b – w maksymalizacjach ( Ax>=b – w minimalizacjach );- i x>=0. Tutaj składowe x są zmiennymi, które należy wyznaczyć, c i b są podanymi wektorami, a A jest daną macierzą.
Od początkowej działalności aplikacji – App Linear Optimization, zawarte są funkcje tworzenia, edycji, rozwiązywania i usuwania modeli. Modele przechowywane są w bazie danych SQLite pod nazwą linearProgramming.db. Aplikacja posiada funkcje przechowywania i odtwarzania bazy danych w katalogu Download urządzenia.
Podczas tworzenia modelu optymalizacyjnego wprowadzane są dwa parametry (działanie Modelu Liniowego) – liczba wektorów x zmiennych oraz liczba ograniczeń (nie dotyczy to ograniczeń dla zmiennych) – czyli wierszy macierzy A. Po wprowadzeniu tych danych i naciśnięciu przycisku – Model Liniowy, przechodzimy do wprowadzania danych modelu – z czynności Tworzenie Modelu Liniowego.
Wektor x współczynniki c wprowadza się w wierszu z etykietą Z= przed etykietami *Xi+.
Elementy macierzy А wpisuje się do tabeli o nazwie Ograniczenia przed etykietą pól *Xi+. W ostatnim polu każdego wiersza macierzy, po etykiecie <= , wpisane są także granice b ograniczeń. Po wprowadzeniu tych danych i naciśnięciu przycisku OK powraca do czynności - Działanie Modelu Liniowego, gdzie pojawia się obowiązkowe pole na nazwę modelu oraz przycisk zapisu.
Po zapisaniu modelu jego nazwa pojawia się na liście modeli wyświetlanej w początkowej aktywności aplikacji. Wybrany model z listy można edytować (przycisk Edytuj) lub rozwiązać (przycisk Oblicz). Po edycji i zapisie edytowana wersja zostaje zapisana jako nowy model, a stara pozostaje niezmieniona w bazie danych. Dzięki temu można rozwiązać oba modele i porównać wyniki. Jeśli niektóre z nich nie są potrzebne, można je usunąć.
Podczas rozwiązywania modelu wynik pokazuje maksymalizację i minimalizację funkcji celu Z oraz przy jakich wartościach elementów wektora x, przy których to następuje, a także ograniczenia.
Branże wykorzystujące modele programowania liniowego obejmują transport, energię, telekomunikację i produkcję. Okazał się przydatny w modelowaniu różnego rodzaju problemów w planowaniu, wyznaczaniu tras, harmonogramowaniu, przydzielaniu i projektowaniu.
Aplikacja wykorzystuje do optymalizacji klasę SimplexSolver ze standardowej biblioteki org.apache.commons:commons-math:3.6.1.
Ostatnia aktualizacja
14 paź 2025