Курсовая работа: Использование среды MatLAB для решения линейной программы
3) если одна из ранее введенных дополнительных переменных вошла в базис, ее и соответствующее ей уравнение можно отбросить (эта ситуация связана с появлением более жесткого условия, перекрывающего действие ранее введенного).
Появление дополнительного ограничения и дополнительной переменной вновь приводит к проблеме выбора начального опорного плана расширенной задачи и к использованию с этой целью искусственной переменной. Следует заметить, что если при поиске переменной, исключаемой из базиса, значение Q (определяемое с учетом дополнительного ограничения) соответствует этому ограничению, то можно отказаться от использования искусственной переменной (она все равно выведется из базиса на этом же шаге решения).
Заметим, что для целочисленных программ может обнаружиться отсутствие целочисленных планов (противоречивость ограничений).
Для предложенного здесь метода доказана конечность процесса отсечений, но число этих отсечений непредсказуемо (вполне может обнаружиться быстрое решение задач с десятками переменных и ограничений и фантастически длительное для задач небольших размеров).
4. МАТЕМАТИЧЕСКАЯ И ТЕХНИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ
Математическую и техническую постановку задачи можно сформулировать следующим образом. Разработать программное обеспечение на встроенном языке среды MatLAB, позволяющее решать линейные программы симплексным методом с учетом приведенного выше теоретического материала.
Несмотря на то, что в поставляемом вместе с MatLAB пакете программ OptimizationToolbox имелась функция linprog реализующая решение линейных задач, было принято решение реализовывать симплекс-метод и метод Гомори не используя уже готовые решения, но максимально задействуя встроенные функции среды разработки.
В ходе разработки наибольшее внимание уделялось удобству работы с программой и качеству реализации методов.
В плане ограничений накладываемых на пользователя можно отметить лиши разумность вводимых данных.
Программная реализация
Программа написана на встроенном в MatLAB языке программирования. Не смотря на всю простоту языка программирования MatLAB’а стоит отметить его большую функциональность обеспечиваемую встроенными функциями и пакетами расширений Toolbox.
Отличительной особенностью разработанной программы является ее графический интерфейс (Рисунок 1), обеспечивающий максимально удобную работы и позволяющий работать с программой даже не посвященным в программирование, математику и экономику людям.
Основная часть программного кода в соответствии со своим назначением разделена на функции, которые хранятся отдельно от интерфейса и могут быть использованы пользователем по своему усмотрению, в том числе в других приложениях/программах или же могут быть вызваны через консоль MatLAB.
Рисунок 1. Графический интерфейс программы
Описание проекта
4.1 Запуск
Для запуска проекта необходимо запустить среду MatLAB и указать путь к каталогу с программой. Затем необходимо запустить графический интерфейс (Рисунок 1) для чего в консоли MatLAB’а требуется ввести guide и в открывшемся окошке (Рисунок 2) выбрать вкладку «Открыть существующий GUI» и указав путь к GUI-интерфейсу «MainSimplexForm.fig» нажать кнопку «ОК».
Рисунок 2. GUIDE - среда разработки и работы с GUI-интерфейсами MatLAB
В итоге появится макет интерфейса (Рисунок 3) для запуска которого достаточно нажать комбинацию клавиш «Ctrl+T» или зеленую стрелочку на панели под главным меню. После запуска перед вами появится полноценный графический интерфейс (Рисунок 1).
Рисунок 3. Макет GUI-интерфейса
4.2 Описание графического интерфейса
Вверху формы расположено главное меню (Рисунок 4), состоящее из пунктов «Примеры», «Дополнительно» и «Выход».
Рисунок 4. Главное меню
Пункт «Примеры» позволяет загрузить или создать пример работы с программой. Примеры хранятся в текстовых файлах с расширением «matex» содержащих целевую функцию, ограничения и условия неотрицательности.
Пункт «Дополнительно» позволяет пользователям операционной системы Windows получить доступ к Калькулятору, Блокноту и некоторым другим приложениям.
Пункт «Выход» закрывает среду MatLAB.
Для ввода функции, ограничений, условий неотрицательности и выбора метода используется центральная часть формы (Рисунок 5).
Рисунок 5. Здесь можно ввести исходные данные и выбрать метод решения
Для запуска метода и просмотра результатов его работы служит нижняя часть формы (Рисунок 6).