Исследование операций как комплексная математическая дисциплина является одним из наиболее интенсивно развивающихся разделов прикладной математики. Методы исследования операций используются в различных областях человеческой деятельности: в промышленности, транспорте, торговле, военном деле, медицине, городском и сельском хозяйстве и т.д. Одним из наиболее часто используемых на практике разделов исследования операций является линейное программирование. Универсальным методом решения задач линейного программирования является симплекс–метод. В данной работе приводятся результаты разработки программного обеспечения решения задач линейного программирования этим методом. Достоинством работы является то, что программное обеспечение имеет открытый код и разработано по упрощённому алгоритму.
Программа-приложение разработана средствами объектно-ориентированного программирования, основными составляющими которого являются классы и объекты (экземпляры классов). В качестве среды разработки была выбрана Microsoft Visual C# 2010.
Класс – это описание группы объектов с общими свойствами (атрибутами), поведением (методами), отношениями с другими объектами и семантикой. Основным классом приложения является класс Симплекс (Simplex).
Класс Симплекс имеет следующую структуру:
Атрибуты:
Количество переменных (n);
Количество ограничений (m);
Коэффициенты целевой функции (Target_Function);
Коэффициенты ограничений (Borders);
Дополнительная строка (Add_String);
Номера векторов, входящих в базис (Basis);
Номер ведущей строки (k);
Номер ведущего столбца (t).
Методы:
Конструктор класса (Simplex);
Расчет дополнительной строки (Calc_Add_String);
Проверка оптимальности решения (is_Optimal);
Выбор ведущего элемента (Select_Lead_Element);
Шаг (Step);
Решение (Solution);
Вывод результатов (Output).
При создании программы были использованы следующие элементы пользовательского интерфейса:
Label (метка) – используется для вывода текстовой информации, предоставляет элементу управления текст описания.
Button (кнопка) – инициирует возникновение события.
TextBox (текстовое поле) – используется для ввода и вывода форматированной информации.
Panel – группирует несколько элементов управления.
При запуске программы открывается форма «Симплекс–метод» (рис. 1), в которую вводится в соответствующие поля количество переменных и количество ограничений решаемой задачи линейного программирования.
Рисунок 1 – Начальная форма «Симплекс–метод»
После ввода количества переменных и ограничений и нажатия кнопки «Ввод» на форму добавляются поля для ввода коэффициентов целевой функции и ограничений задачи линейного программирования, записанной в канонической форме (рис. 2).
Рисунок 2 – Окно ввода коэффициентов целевой функции и ограничений
После ввода всех коэффициентов и нажатия кнопки «Решение» результаты решения задачи выводятся во всплывающем окне (рис. 3).
Рисунок 3 – Всплывающее окно с результатами решения
В качестве примера решена задача линейного программирования. Результаты решения представлены на рис. 4 и рис. 5. На рис. 4 изображен ввод исходных данных задачи.
Рисунок 4 – Ввод исходных данных задачи линейного программирования
На рис. 5 изображены результаты решения задачи в виде переменных величин x и значения целевой функции F.
Рисунок 5 – Результаты решения задачи
В ходе выполнения работы был обработан большой объем теоретического материала, что позволило кратко и емко изложить основные теоретические положения исследования операций, линейного программирования и симплекс–метода, и разработать упрощённый алгоритм решения задач. Созданное программное приложение может использоваться в учебном процессе при изучении симплекс-метода и на практике для оптимизации производственных задач.
Список литературы:
1. Волков И.К, Загоруйко Е.А. Исследование операций: Учеб. Для вузов / Под ред. В.С. Зарубина, А.П. Крищенко. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2000. – 436 с.
2. Вентцель Е.С. Введение в исследование операций. – М.: Изд-во Советское радио, 1964. – 390 с.
3. Вентцель Е.С. Исследование операций: задачи, принципы, методология. – М: Изд-во Наука, 1988. – 208 с.
4. Змеев О.А., Змеева Е.Е. Исследование операций. Электронное учебное пособие. – Анжеро – Судженск, 2002
5. Абрамов Л. М., Капустин В.Ф. Математическое программирование. – Учебное пособие. — Л.: ЛГУ, 1981. — 328 с.
6. Давыдов Э.Г. Исследование операций. – М.: Высшая школа, 1990. – 382 с.
7. Дегтярёв Ю.И. Исследование операций. – Учебник для вузов. – М.: Высшая школа, 1986. — 320 с.