
- •РцпКиПк
- •1.2. Примеры задач линейного программирования
- •1.3.Общая и основная задачи линейного программирования
- •1.4. Свойства основной задачи линейного программирования. Геометрическое истолкование задачи линейного программирования
- •1.5. Симплекс метод
- •1.6. Прямая и двойственная задача линейного программирования. Геометрическая интерпретация двойственной задачи.
- •1.7.Двойственный симплекс-метод.
1.7.Двойственный симплекс-метод.
Двойственный
симплекс-метод, как и симплекс-метод,
используется при нахождении решения
задачи линейного программирования,
записанной в форме основной задачи, для
которой среди векторов
,
составленных из коэффициентов при
неизвестных в системе уравнений, имеетсятединичных. Вместе с тем двойственный
симплекс-метод можно применять при
решении задачи линейного программирования,
свободные члены системы уравнений
которой могут быть любыми числами (при
решении задачи симплексным методом эти
числа предполагались неотрицательны
ми). Такую задачу и рассмотрим теперь,
предварительно предположив, что
единичными являются векторы
т. е. рассмотрим задачу, состоящую в
определении максимального значения
функции
(54)
при условиях
(55)
(56)
где
и среди чисел
имеются отрицательные.
В данном случае
есть решение системы линейных уравнений
(55).Однако это решение не является
планом задачи (54) - (56),так
как среди его компонент имеются
отрицательные числа.
Поскольку векторы
—единичные, каждый из векторов
можно представить в виде линейной
комбинации данных векторов, причем
коэффициентами разложения векторов
по векторам
служат числа
Таким образом, можно найти
Определение 1.13.Решение
системы линейных уравнений
(55),определяемое базисом
,
называетсяпсевдопланомзадачи
(54) - (56), если
для любого
Теорема 1.13.Если
в псевдоплане
,определяемом базисом
,
есть хотя бы одно отрицательное число
такое, что все
,то задача (54) - (56)вообще
не имеет планов.
Теорема 1.14.Если
в псевдоплане
,
определяемом базисом
,
имеются отрицательные числа
такие, что для любого из них существуют
числа
,то можно перейти к новому псевдоплану,
при котором значение целевой функции
задачи (54) - (56)не
уменьшится.
Сформулированные теоремы дают основание для построения алгоритма двойственного симплекс-метода.
Итак, продолжим рассмотрение задачи
(54) - (56).Пусть
—псевдоплан этой задачи. На основе
исходных данных составляют симплекс-таблицу
(табл. 15), в которой некоторые
элементы столбца вектора
являются отрицательными числами. Если
таких чисел нет, то в симплекс-таблице
записан оптимальный план задачи
(54) - (56),поскольку, по предположению,
все
.
Поэтому для определения оптимального
плана задачи при условии, что он
существует, следует произвести
упорядоченный переход от одной
симплекс-таблицы к другой до тех пор,
пока из столбца вектора
не будут исключены отрицательные
элементы. При этом все время должны
оставаться неотрицательными все элементы
(т +1)-й строки, т.е.
для любого
Таким образом, после составления
симплекс-таблицы проверяют, имеются ли
в столбце вектора
отрицательные числа. Если их нет, то
найден оптимальный план исходной задачи.
Если же они имеются (что мы и предполагаем),
то выбирают наибольшее по абсолютной
величине отрицательное число. В том
случае, когда таких чисел несколько,
берут какое-нибудь одно из них: пусть
это числоbl.Выбор этого числа определяет вектор,
исключаемый из базиса, т. е. в данном
случае из базиса выводится векторPl.Чтобы определить, какой вектор следует
ввести в базис, находим
,
где
Пусть это минимальное значение принимается
при
,
тогда в базис вводят векторРr.Число
является разрешающим элементов. Переход
к новой симплекс-таблице производят по
обычным правилам симплексного метода.
Итерационный процесс продолжают до тех
пор, пока в столбце вектораР0не будет больше отрицательных чисел.
При этом находят оптимальный план
исходной задачи, а следовательно, и
двойственной. Если на некотором шаге
окажется, что вi-й
строке симплекс-таблицы (табл.
15)в столбце вектораР0стоит отрицательное число
bi,
а среди остальных элементов этой
строки нет отрицательных, то исходная
задача не имеет решения.
Таким образом, отыскание решения задачи (54) - (56) двойственным симплекс-методом включает следующие этапы:
1.Находят псевдоплан задачи.
2.Проверяют этот псевдоплан на оптимальность. Если псевдоплан оптимален, то найдено решение задачи. В противном случае либо устанавливают неразрешимость задачи, либо переходят к новому псевдоплану.
3.Выбирают разрешающую строку с помощью определения наибольшего по абсолютной величине отрицательного числа столбца вектораР0и разрешающий столбец с помощью нахождения наименьшего по абсолютной величине отношения элементов (m+1)-и строки к соответствующим отрицательным элементам разрешающей строки.
4.Находят новый псевдоплан и повторяют все действия, начиная с этапа 2.
Таблица 15
i |
Базис |
Cб |
P0 |
c1 |
c2 |
… |
ce |
… |
cm |
cm+1 |
… |
cr |
… |
cn |
|
P1 |
Р2 |
… |
Рe |
|
Рm |
Рm+1 |
|
Рr |
|
Рn | |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.16.Найти максимальное значение функции
при условиях
Решение.Запишем исходную задачу
линейного программирования
в форме основной задачи: найти максимум
функции
при условиях
Умножим второе и третье уравнения системы ограничении последней задачи на -1и переходим к следующей задаче: найти максимум функции
(57)
при условиях
(58)
(59)
Составим для последней задачи двойственную. Такой является задача, в результате решения которой требуется найти минимальное значение функции
(60)
при условиях
(61)
(62)
Выбрав в
качестве базиса векторы
и
,
составим симплексную таблицу (табл.
16) для
исходной задачи
(57) - (59).
Таблица 16
i |
Базис |
Сб |
Р0 |
1 |
1 |
2 |
0 |
0 |
|
|
|
|
P1 |
P2 |
P3 |
p4 |
p5 |
1 2 3 4 |
p3 P4 p5 |
2 0 0 |
8 -4 -6 16 |
1 -1 -1 1 |
1 1 -2 1 |
1 0 0 0 |
0 1 0 0 |
0 0 1 0 |
Из этой таблицы
видим, что планом двойственной задачи
(57) - (59)является.При этом плане
Так как в столбце вектораР0таблица 16имеются два
отрицательных числа (-4и
-6),а в 4-й строке отрицательных чисел
нет, то в соответствии с алгоритмом
двойственного симплекс-метода переходим
к новой симплекс-таблице. (В данном
случае это можно сделать, так как в
строках векторовР4 и Р5имеются отрицательные числа. Если бы
они отсутствовали, то задача была бы
неразрешима.) Вектор, исключаемый из
базиса, определяется наибольшим по
абсолютной величине отрицательным
числом, стоящим в столбце вектораР0.В данном случае это число -6.
Следовательно, из базиса исключаем
векторР5.Чтобы определить,
какой вектор необходимо ввести в базис,
находим
где
Имеем
Значит, в базис вводим векторP2.Переходим к новой симплекс-таблице (табл. 17).
Таблица 17
i |
Базис |
Сб |
Р0 |
1 |
1 |
2 |
0 |
0 |
|
|
|
|
P1 |
P2 |
P3 |
p4 |
p5 |
1 2 3 4 |
p3 P4 p2 |
2 0 1 |
5 -7 3 13 |
1/2 -3/2 1/2 1/2 |
0 0 1 0 |
1 0 0 0 |
0 1 0 0 |
1/2 1/2 -1/2 1/2 |
Из этой таблицы видно, что получен новый
план двойственной задачи
При этом плане значение ее линейной
формы равно
Таким образом, с помощью алгоритма
двойственного симплекс-метода произведен
упорядоченный переход от одного плана
двойственной задачи к другому.
Так как в столбце вектора Р0таблицы 17стоит отрицательное число -7,то рассмотрим элементы 2-й строки. Среди этих чисел есть одно отрицательное -3/2.Если бы такое число отсутствовало, то исходная задача была бы неразрешима. В данном случая переходим к новой симплекс-таблице (табл. 18).
Таблица 18
i |
Базис |
Сб |
Р0 |
1 |
1 |
2 |
0 |
0 |
|
|
|
|
P1 |
P2 |
P3 |
p4 |
p5 |
1 2 3 4 |
p3 P1 p2 |
2 1 1 |
8/3 14/3 2/3 32/3 |
0 1 0 0 |
0 0 1 0 |
1 0 0 0 |
1/3 -2/3 1/3 1/3 |
2/3 -1/3 -1/3 2/3 |
Как видно из
таблицы 18,найдены
оптимальные планы исходной и двойственной
задач. Ими являются
и
.При этих планах значения линейных форм
исходной и двойственной задач равны:
1.17.Найти максимальное значение функциипри условиях
Решение.Умножая первое и третье
уравнения системы ограничений задачи
на -1,в результате приходим
к задаче нахождения максимального
значения функции
при условиях
Взяв в качестве базиса векторы Р3, Р4иР5, составляем симплекс-таблицу (табл. 19).
Таблица 19
i |
Базис |
Сб |
Р0 |
2 |
3 |
0 |
5 |
0 |
|
|
|
|
P1 |
P2 |
P3 |
p4 |
p5 |
1 2 3 4 |
p3 P4 p5 |
0 5 0 |
-12 10 -18 50 |
2 1 -3 3 |
-1 2 2 7 |
1 0 0 0 |
0 1 0 0 |
0 0 1 0 |
В 4-й строке таблице 19нет
отрицательных чисел. Следовательно,
если бы в столбце вектораР0не было отрицательных чисел, то в таблице
19был бы записан оптимальный план.
Поскольку в указанном столбце отрицательные
числа имеются и такие же числа содержатся
в соответствующих строках, переходим
к новой симплекс-таблице (таблица
20).Для этого исключим из базиса
векторР5и введем в базис
векторР1.В результате
получим псевдоплан
Таблица 20
i |
Базис |
Сб |
Р0 |
2 |
3 |
0 |
5 |
0 |
|
|
|
|
P1 |
P2 |
P3 |
p4 |
p5 |
1 2 3 4 |
p3 P4 p1 |
0 5 2 |
-24 4 6 32 |
0 0 1 0 |
1/3 8/3 -2/3 9 |
1 0 0 0 |
0 1 0 0 |
2/3 1/3 -1/3 1 |
Так как в строке вектора Р3нет отрицательных чисел, то исходная задача не имеет решения.
Построение математических моделей. Решение задачи оптимального распределения ресурсов в среде EXCEL
Цель занятия: знакомство студентов с задачами линейного программирования.
Задачи занятия:
- изучение формы моделей задачи линейного программирования (ЗЛП);
- получение навыка решения ЗЛП в среде EXCEL
Методические указания
.
R=
В ячейке А1 введем целевую функцию, в ячейках С1-5 задавая неизвестные пока значения переменных целевой функции:
В ячейке В задаем левые части неравенств системы ограничений:
Через СЕРВИС/НАДСТРОЙКИ установить Поиск решения:
Через СЕРВИС/ПОИСК РЕШЕНИЯ открыть окно поиска решения и выбрать А1 целевой ячейкой:
В окне «Изменяя ячейки» выбираем С1-С5 и вводим ограничения (кнопка ДОБАВИТЬ):
Нажав кнопку ВЫПОЛНИТЬ, получим решение:
Графический метод решения ПЗЛП
Задачи:
- изучение алгоритма графического метода решения ЗЛП;
- получение практического навыка решения ЗЛП графическим методом.
Методические указания
Рассмотрим следующую задачу линейного программирования1:
На рис. 4.1 представлено множество допустимых точек, удовлетворяющих всем ограничениям задачи и представляющее собой пересечение полуплоскостей, отражающих ограничения задачи линейного программирования.
Рис. 4.1. Геометрическая интерпретация решения задачи
Геометрическую интерпретацию имеют ЗЛП с двумя переменными.
Исследуем целевую функцию 30х1 + 40х2. Данной целевой функции соответствует семейство прямых 30х1 + 40х2 = L, представляющих собой множество параллельных прямых, каждая из которых соответствует определенному значению параметра L. Тогда задачу линейного программирования можно сформулировать следующим образом. Найти такое максимальное значение L, при котором прямая 30х1 + 40х2 = L пересекает допустимое множество.
В общем случае с геометрической точки зрения в задаче линейного программирования ищется такая угловая точка или набор точек из допустимого множества решений, на которой достигается самая верхняя (нижняя) линия уровня (прямая, отражающая целевую функцию), расположенная дальше (ближе) остальных в направлении наискорейшего роста.
Для нахождения экстремального значения целевой функции при графическом решении ЗЛП используют вектор-градиент целевой функции Ñf(`X) на плоскости Х1ОХ2. Этот вектор показывает направление наискорейшего изменения целевой функции, он равен
,
где
и
-
единичные векторы по осям ОХ1
и ОХ2
соответственно. Таким образом, Ñf(`X)
= (¶f/¶x1,
(¶f/¶x2).
Координатами вектора-градиента целевой
функции Ñf(`X)
являются коэффициенты целевой функции
f(`X).
В рассматриваемом примере, если двигать прямую 30х1 + 40х2 = L из начала координат по направлению вектора-градиента целевой функции, то точкой, в которой достигается самая верхняя линия уровня является точка М пересечения прямых 5x1 + 2x2 = 1000 и x1 + 2x2 = 4000 с координатами x1 = 1500 и x2 = 1250. Таким образом, оптимальное решение достигается в точке М (1500; 1250). При этом значение целевой функции составит f(`X*) =30 * 1500 + 40 * 1250 = 95000.
На этом примере можно увидеть основные свойства задач линейного программирования: допустимое множество точек представляет собой выпуклый многоугольник, получившийся в результате пересечения полуплоскостей и наибольшее значение целевой функции достигается в его вершине – крайней точке.
Решение задачи линейного программирования может быть не единственным, а состоять из бесконечного числа точек.
Таким образом, решение задачи линейного программирования состоит в следующем: необходимо построить многоугольник допустимых точек, найти его вершины и выбрать из них те, координаты которых придают максимальное значение целевой функции.
(7)
1)Форма записиозначает, чтоjпринимает последовательно значения
1, 2, 3
1Михайлова Э.А., Смирнов А.О. Методы нахождения оптимального управления экономическими системами: пособие для практических занятий / РГАТА. Кафедра экономики. - Рыбинск, 1998. - 42 с.