Цель приложения — предоставить удобные инструменты для создания и решения моделей объектов для линейной оптимизации.
Линейная оптимизация, также называемая линейным программированием (ЛП), — это метод достижения наилучшего результата (например, максимальной (минимальной) прибыли или минимальных затрат) в математической модели , требования и цель которой представлены линейными отношениями. Линейное программирование — это особый случай математического программирования (также известного как математическая оптимизация).
Линейные программы (модели в смысле этого приложения) — это задачи, которые можно выразить в стандартных формах (Википедия): — найти вектор x; - что максимизирует(минимизирует) Z = cx; - при условии, что Ax<=b – в максимизирует( Ax>=b – в минимизирует );- и x>=0. Здесь компоненты x — это переменные, которые необходимо определить, c и b — заданные векторы, а A — заданная матрица.
Из первоначальной деятельности приложения — линейной оптимизации приложения — включены функции создания, редактирования, решения и удаления моделей. Модели хранятся в базе данных SQLite с именем linearProgramming.db. В приложении имеются функции по сохранению и восстановлению базы данных в каталоге Download устройства.
При создании оптимизационной модели вводятся два параметра (деятельность «Линейная модель») — количество переменных вектора x и количество ограничений (сюда не входят ограничения для переменных) — т.е. строк матрицы A. После ввода этих данных и нажатия кнопки «Линейная модель» вы переходите к вводу данных модели — из действия «Создание линейной модели».
Коэффициенты вектора x c вводятся в строку с меткой Z= перед метками *Xi+.
Элементы матрицы А заносятся в таблицу Constraints перед меткой поля *Xi+. В последнее поле каждой строки матрицы после метки <= также вводятся границы b ограничений. После ввода этих данных и нажатия кнопки ОК происходит возврат к активности — активности Linear Model, где появляется обязательное поле для названия модели и кнопка для сохранения.
Когда модель сохраняется, ее имя появляется в списке моделей, отображаемом при начальном действии приложения. Выбранную модель из списка можно редактировать (кнопка Редактировать) или решать (кнопка Рассчитать). После редактирования и сохранения отредактированная версия сохраняется как новая модель, а старая остается в базе данных без изменений. Это сделано для того, чтобы можно было решить обе модели и сравнить результаты. Если какой-то из них не нужен, его можно удалить.
При решении модели результат показывает максимизацию и минимизацию целевой функции Z и при каких значениях элементов вектора x, при которых это происходит, а также ограничения.
Отрасли, в которых используются модели линейного программирования, включают транспорт, энергетику, телекоммуникации и производство. Он оказался полезным при моделировании различных типов проблем при планировании, маршрутизации, составлении расписания, назначении и проектировании.
Приложение использует для оптимизации класс SimplexSolver из стандартной библиотеки org.apache.commons:commons-math:3.6.1.
Последнее обновление
14 окт. 2025 г.