- •Н.А. Курганова
- •Тема 1. Постановка задачи линейного программирования. Геометрический метод решения задач линейного программирования. Основные понятия, теоремы, следствия. 6
- •Тема 2. Симплекс-метод. 45
- •Введение
- •Тема 1. Постановка задачи линейного программирования. Геометрический метод решения задач линейного программирования. Основные понятия, теоремы, следствия.
- •1.1. Постановка задачи линейного программирования
- •Виды задач лп:
- •Постановка задачи линейного программирования (лп).
- •1.2. Геометрический метод решения задач лп
- •Варианты одр:
- •Теоретические вопросы
- •Лабораторная работа №1. Геометрическое решение задачи лп при помощи математического пакета MathCad
- •I. Оформление исходных данных.
- •II. Определение области допустимых решений
- •III. Построение линии уровня
- •IV. Нахождение оптимального плана и оптимального значения целевой функции
- •Лабораторная работа №2. Геометрическое решение задачи лп при помощи математического пакета Maple
- •I. Оформление заголовка.
- •II. Определение области допустимых решений.
- •III. Построение линии уровня.
- •IV. Нахождение оптимального плана и оптимального значения целевой функции
- •Задания для самостоятельной работы
- •Задачи о составлении плана производства
- •Задачи о пищевом рационе
- •Лабораторная работа №3. Решение оптимизационных задач в системах MathCad, Maple, Excel, в специализированном пакете SimplexWin.
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •Решение оптимизационных задач в специализированном пакете SimplexWin. Http://www.Simplexwin.Narod.Ru/
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •I. Оформление исходных данных.
- •II. Нахождение оптимального плана и оптимального значения целевой функции.
- •Задания для самостоятельной работы
- •Тема 2. Симплекс-метод.
- •Для реализации симплекс-метода необходимо освоить
- •3 Основных момента [7]:
- •2.1. Табличный симплекс-метод (в чистом виде)
- •2.2. Табличный симплекс метод. Метод искусственного базиса (м-метод)
- •Общий алгоритм решения задачи м-методом.
- •Теоретические вопросы
- •Лабораторная работа №4. Реализация пошагового алгоритма решения задачи линейного программирования табличным симплекс-методом средствами Excel при выполнении всех условий
- •I. Проверка выполнения условий, необходимых для решения задачи табличным симплекс-методом в чистом виде.
- •II. Оформление исходных данных.
- •III. Нахождение оптимального плана и оптимального значения целевой функции.
- •Лабораторная работа №5. Реализация пошагового алгоритма решения задачи линейного программирование методом искусственного базиса (м-методом) средствами Excel
- •I. Проверка выполнения условий, необходимых для решения задачи табличным симплекс-методом.
- •II. Оформление исходных данных.
- •III. Нахождение оптимального плана и оптимального значения целевой функции.
- •Задания для самостоятельной работы
- •Приложение 1
- •Приложение 2
- •Библиографический список
III. Построение линии уровня
Получите уравнение линии уровня, выраженное через переменную x2.
Для этого:
- введите уравнение прямой x1+2x2=C;
- выделите x2;
- выберите команду Symbolics-Variable – Solve;
- получите выражение ;
- присвойте функции L(x1,C) значение данного выражения;
Присвойте любое значение параметру C, например, ;
Преобразуйте выражение линии уровня при данном значении С и получите .
Постройте линию уровня на том же графике при заданном значении С (рис. 2).
Рис. 2. Построение уровня
IV. Нахождение оптимального плана и оптимального значения целевой функции
Изменяйте значение С до тех пор, пока не определите точку выхода линии уровня из области допустимых решений.
Задайте различные параметры С для линии уровня L(x1,C), например, С:=3, С:=4, С:=6, следите за перемещением линии уровня относительно области допустимых решений.
Определите точку максимума или точку «выхода», т.е. последнюю точку, через которую линия уровня выйдет из области допустимых решений (рис. 3).
Рис. 3. Построение уровня при С:=7.
Выберите прямые, пересечение которых определяет искомую точку. В данном случае это прямые, заданные функциями y1(x) и y2(x).
Решите систему двух линейных уравнений относительно найденных прямых.
Команда Given … Find
Найдите оптимальное значение функции.
.
Ознакомиться с полным вариантом решения задачи ЛП геометрическим методом в пакете MathCad можно в приложении 1.
Лабораторная работа №2. Геометрическое решение задачи лп при помощи математического пакета Maple
Задание. Выполните предложенный набор действий в математическом пакете Maple, необходимый для решения задачи ЛП.
Работа в пакете Maple происходит в режиме сессии (session). Пользователю предоставляется возможность вводить предложения (команды, выражения, процедуры и др.), которые определенным образом воспринимаются системой. Нажатие клавиши <Enter> запускает выполнение предложения. Если ввод предложения завершается разделителем ";", то в строке под предложением появляется результат выполненной команды или сообщение об ошибке. Разделитель ":" используется для «отложенного» ввода, это знак фиксации конца предложения, предотвращающий вывод результата на экран.
Рассмотрим реализацию геометрического метода средствами математического пакета Maple на примере задачи, рассмотренной в лабораторной 1 согласно алгоритму.
Рассмотрим задачу в стандартной форме с двумя переменными.
Задача. Найти значения переменных x1 и x2, при которых
при ограничениях
Порядок выполнения работы:
I. Оформление заголовка.
Запустите программу Maple и введите заголовок Геометрический метод решения задачи ЛП, используя команду Insert – Text.
II. Определение области допустимых решений.
Постройте первую полуплоскость в пакете Maple.
Для этого:
-воспользуйтесь возможностями библиотеки plots, которая предназначена для построения различных типов графиков;
-подключите функцию inequal, которая позволяет осуществлять построение полуплоскостей, соответствующих заданным линейным неравенствам, введя нижеприведенную систему предложений;
> plots[inequal]( {-3*x1+14*x2<=1}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
-нажмите клавишу <Enter>;
-получите первую полуплоскость (рис. 4).
Рис.4. Первая полуплоскость.
Замечание: Формат подключения функции следующий: plots[функция] (параметры). В качестве параметров при подключении функции указывается выводимый объект, интервал изменения переменных, опции вывода. После выполнения команды система Maple переходит в меню графики.
Параметры перечисляются в форме <имя параметра>=<значение>. В нашем случае используются такие имена параметров, как color – цвет, принимающий значения, указанные в таблице 2, а также thickness – толщина линий, принимающий значения 0, 1, 2, 3. В качестве выводимого объекта используется заданная система ограничений. Интервал переменных позволяет управлять границами визуализации полуплоскостей относительно координатных осей. Для изменения цвета полуплоскости и ее границы, задаваемой тем или иным неравенством, применяются определенные опции (таблица 3):
Таблица 3
Опции для изменения цвета полуплоскостей
optionsfeasible |
для областей, которые удовлетворяют всем неравенствам; |
optionsexcluded |
для областей, которые нарушают хотя бы одно неравенство; |
optionsopen |
для линий, которые являются границами областей, описываемых строгими неравенствами; |
optionsclosed |
для линий, которые являются границами областей, описываемых нестрогими неравенствами или равенствами; |
Цвет полуплоскости устанавливается параметром color=c, где c – это цвета из таблицы 4.
Таблица 4
Основные цвета
-
black
черный
blue
синий
brown
коричневый
green
зеленый
grey
серый
white
белый
yellow
желтый
Аналогичным образом постройте каждую из оставшихся полуплоскостей на осях координат отдельно, поочередно набрав следующие предложения, нажимая клавишу <Enter> после каждого.
> plots[inequal]( {x1+x2<=6}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 5. Вторая полуплоскость.
> plots[inequal]( {x1-x2>=3}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 6. Третья полуплоскость.
> plots[inequal]( { x1+4*x2>=4}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 7. Четвертая полуплоскость.
Постройте полуплоскости в одном окне, добавляя каждый раз по одной, поочередно набрав следующие предложения, нажимая клавишу <Enter> после каждого.
> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 8. Первая и вторая полуплоскости.
> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 9. Первая, вторая и третья полуплоскости.
> plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3, x1+4*x2>=4,x1>=0,x2>=0}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) );
Рис. 10. Область допустимых решений.
Присвойте построенной ОДР имя syst_ogr и не выводите изображение на экран.
> syst_ogr:=plots[inequal]( {-3*x1+14*x2<=1, x1+x2<=6, x1-x2>=3, x1+4*x2>=4,x1>=0,x2>=0}, x1=-2..8, x2=-2..8, optionsfeasible=(color=grey),
optionsclosed=(color=black, thickness=2),
optionsexcluded=(color=white) ):