
- •Н.Е. Гучек доцент, кандидат технических наук конспект лекций
- •Методы оптимальных решений
- •Часть 2
- •Лекция 1. Симплексный метод решения задачи линейного программирования
- •1.2.Симплексные таблицы и алгоритм решения задач.
- •1.3. Применение симплексного метода в экономических задачах.
- •1.1. Симплекс-метод
- •1.2. Симплексные таблицы и алгоритм решения задач
- •1.3. Применение симплексного метода в экономических задачах
- •2. Двойственные задачи линейного программирования
- •2.2. Экономическая интерпретация объективно обусловленных оценок и исследование задачи распределения ресурсов.
- •2.1. Двойственный симплекс-метод
- •2.2. Экономическая интерпретация объективно обусловленных оценок и исследование задачи распределения ресурсов
- •Лекция 3. Транспортная задача
- •3.1.Экономико-математическая модель транспортной задачи.
- •3.2. Нахождение первоначального базисного распределения поставок.
- •3.3. Решение транспортной задачи методом потенциалов.
- •3.1.Экономико-математическая модель транспортной задачи
- •3.2. Нахождение первоначального базисного распределения поставок
- •3.3. Решение транспортной задачи методом потенциалов
- •Лекция 4. Особые случаи транспортной задачи
- •4.1. Вырожденность в транспортных задачах.
- •4.1. Вырожденность в транспортных задачах
- •4.2. Открытая транспортная задача
- •Библиографический список
2. Двойственные задачи линейного программирования
План.
2.1. Двойственный симплекс метод.
2.2. Экономическая интерпретация объективно обусловленных оценок и исследование задачи распределения ресурсов.
2.1. Двойственный симплекс-метод
Двойственный симплекс-метод можно применять при решении задачи линейного программирования, свободные члены системы уравнений которой могут быть любыми числами. В обычном симплексном алгоритме план всегда должен быть допустимым. Допустимый план — это такой план, который удовлетворяет всем ограничениям задачи при обязательном условии неотрицательности неизвестных, то есть любые числа в итоговом столбце положительны. План называется недопустимым (или условно-оптимальным), если в итоговом столбце имеются отрицательные числа, зато оценки целевой строки соответствуют целевой функции, то есть являются положительными при решении на максимум и отрицательными при решении на минимум. В процессе решения двойственным методом план является недопустимым. При использовании двойственного метода сначала применяют обычную симплекс-процедуру и добиваются того, чтобы все оценки соответствовали цели решения задачи, причем пока не обращают внимания на знаки чисел в итоговом столбце. Только когда такой условно-допустимый план достигнут, смотрят на эти знаки. Если в итоговом столбце оказались отрицательные числа, план изменяется так, чтобы недопустимость уменьшилась, а затем и исчезла, но чтобы двойственные оценки продолжали соответствовать при этом цели решения задачи. Возможность придавать в процессе решения отрицательные значения неизвестным, входящим в план, в случае, если ограничения заданы неравенствами, позволяет избавиться от искусственных неизвестных, это сокращает размеры задачи, а значит, и вычислений3.
Рассмотрим алгоритм решения задач двойственным симплексным методом.
1. Математическая модель прямой задачи линейного программирования должна быть в стандартной форме записи. В противном случае ее надо привести к стандартной форме записи.
2. Для прямой задачи составляется двойственная.
3. Обе задачи приводят к каноническому виду.
4. Выражают базисные переменные обеих задач через основные переменные.
5. Находят исходное решение прямой и двойственной задач и проверяют его на оптимальность. Для этого заполняют симплекс-таблицу двойственного симплекс-метода. Строки таблицы 1-го шага (верхние части клеток) заполняют по данным системы ограничений и целевой функции прямой задачи. Столбцы таблицы 1-го шага (верхние части клеток) заполняют по данным системы ограничений и целевой функции двойственной задачи.
Симплексная таблица двойственного симплекс-метода имеет следующий вид:
|
yбаз |
ym+1 |
ym+2 |
|
ym+n |
|
yсв |
xсв xбаз |
- x1 |
- x2 |
|
- xn |
bi |
y1 |
xn+1 |
h11 |
h12 |
|
h1n |
l1 |
y2 |
xn+2 |
h21 |
h22 |
|
h2n |
l2 |
|
|
|
|
|
|
|
ym |
xn+m |
hm1 |
hm2 |
|
hmn |
lm |
cj |
|
- c1 |
- c2 |
|
- cn |
|
Решение является оптимальным, если в строке и столбце bi нет отрицательных элементов.
В противном случае следует провести изменения в базисных переменных.
6. Выбор разрешающей строки. Находят отрицательный элемент в строке . В столбце над этим найденным элементом выбирают любой положительный элемент, эта строка – разрешающая.
Если в столбце над найденным элементом нет положительных элементов, то ПЗЛП не имеет смысла (целевая функция не ограничена в области допустимых решений), а ДЗЛП не имеет решения.
7.
Выбор разрешающего столбца. Элементы
строки
делят на соответствующие элементы
разрешающей строки под переменными. Из
полученных отношений выбирают максимальное
отрицательное отношение, этот столбец
– разрешающий (максимальным из
отрицательных отношений может быть
отношение
– отрицательный ноль).
Если среди полученных отношений нет отрицательных, то ПЗЛП не имеет решения, ДЗЛП не имеет смысла или решения.
На пересечении разрешающей строки и разрешающего столбца получен разрешающий элемент.
8. Заполнение нижних частей клеток таблицы. Под разрешающим элементом всегда ставят «1». Остальные элементы разрешающей строки переписываются без изменений. Остальные элементы разрешающего столбца переписываются с противоположным знаком. Остальные элементы таблицы находят по правилу прямоугольника: искомый элемент умножают на разрешающий и из этого произведения вычитают произведение элементов, расположенных на противоположной диагонали прямоугольника, образуемого искомым и разрешающим элементами (все элементы из верхних клеток).
9. Построение новой симплекс-таблицы. Изменяют базисные переменные: меняют местами переменные из разрешающей строки и разрешающего столбца. Элементы из нижних клеток предыдущей симплекс-таблицы делят на верхний разрешающий элемент и записывают на соответствующие места в верхние клетки новой симплекс-таблицы.
Если в новой таблице в строке есть отрицательные элементы, то следует сделать следующий шаг симплекс-метода. (Нецелесообразно выбирать за разрешающую строку – те же строки, что и на предыдущих шагах).
Если
в новой таблице в строке
нет отрицательных элементов, а в столбце
свободных членов остались отрицательные
элементы, то строка с отрицательным
значением
выбирается
за разрешающую, и выполняется следующий
шаг симплекс-метода.
Если в строке есть нулевой элемент, то это признак альтернативного оптимума для ПЗЛП. Для нахождения альтернативного решения выполняется еще один шаг симплекс-метода: Столбец с нулевым элементом в строке выбирается за разрешающий. Находят неотрицательные отношения столбца свободных членов к соответствующим элементам разрешающего столбца. Из полученных отношений выбирают минимальное неотрицательное отношение – это разрешающая строка, разрешающий элемент найден. Затем выполняют еще один шаг симплекс-метода.
Если в столбце есть нулевой элемент, то это признак альтернативного оптимума для ДЗЛП. Для нахождения альтернативного решения выполняется еще один шаг симплекс-метода. При этом строка с нулевым элементом в столбце выбирается за разрешающую.
Рассмотрим решение задачи двойственным симплекс-методом.
Канонический вид:
Выразим базисные переменные через свободные:
Введем соответствие основных переменных прямой задачи и дополнительных переменных двойственной задачи, а также дополнительных переменных прямой задачи и основных переменных двойственной задачи:
х1
y4 |
х2
y5 |
х3
y1 |
х4
y2 |
х5
y3 |
Составим симплекс-таблицу
-
yбаз
y4
y5
yсв
xсв
xбаз
- x1
- x2
bi
y1
x3
1
2
4
y2
x4
«1»
1
3
y3
x5
2
1
8
cj
- 3
- 4
0
Решение
ПЗЛП выписывается по строкам, значения
базисных переменных берутся из столбца
bi,
если переменная с соответствующим
индексом не входит в базис, то ее значение
равно нулю:
=
(0, 0, 4, 3, 8),
= 0.
Решение
ДЗЛП выписывается по столбцам, значения
базисных переменных берутся из строки
cj,
если переменная с соответствующим
индексом не входит в базис, то ее значение
равно нулю:
=
(0, 0, 0, 3,
4),
= 0.
Данное решение не является оптимальным, поскольку решение не допустимое (не выполнено условие неотрицательности переменных), ему соответствуют отрицательные элементы в строке .
Над минимальным отрицательным элементом «4» в строке выбираем положительный, например «1», в строке x4, следовательно, эта строка – разрешающая (выделена жирным шрифтом).
Находим максимальное отношение среди отношений элементов в строке целевой функции к соответствующим элементам разрешающей строки
.
Поскольку максимальное отношение соответствует первому столбцу, то – он разрешающий (выделен жирным шрифтом).
Разрешающий элемент «1» находится на пересечении разрешающей строки и разрешающего столбца.
Заполняем нижние части клеток. Под разрешающим элементом ставим «1». В разрешающей строке остальные элементы переписываем без изменения, а в разрешающем столбце остальные элементы записываем с противоположным знаком. Оставшиеся клетки заполняем по правилу прямоугольника:
клетка на пересечении первой строки и второго столбца:
-
1
2
«1»
1
21 11 = 1;
клетка на пересечении третьей строки и второго столбца:
-
«1»
1
2
1
11 21 = 1;
клетка на пересечении четвертой строки и второго столбца:
-
«1»
1
- 3
- 4
41 (3)1 = 1;
клетка на пересечении первой строки и третьего столбца:
-
1
4
«1»
3
41 31 = 1;
клетка на пересечении третьей строки и третьего столбца:
-
«1»
3
2
8
81 32 = 2;
клетка на пересечении четвертой строки и третьего столбца:
-
«1»
3
- 3
0
01 3(3) = 9;
Таким образом, получаем следующую таблицу:
-
yбаз
y4
y5
yсв
xсв
xбаз
- x1
- x2
bi
y1
x3
1
1
2
1
4
1
y2
x4
«1»
1
1
1
3
3
y3
x5
2
2
1
1
8
2
cj
- 3
3
- 4
1
0
9
Переходим к следующей симплекс-таблице. При этом в базис включается пара переменных х1, у4, соответствующих разрешающему столбцу, а из базиса выводится пара переменных х4, у2, соответствующая разрешающей строке. В следующей таблице данные пары переменных меняются местами. Верхние части клеток заполняются элементами, полученными в результате деления соответствующих (стоящих на аналогичном месте) элементов из предыдущей таблицы в нижних частях клеток на разрешающий элемент «1»:
-
yбаз
y2
y5
yсв
xсв
xбаз
- x4
- x2
bi
y1
x3
1
1
1
y3
x1
1
1
3
y3
x5
2
1
2
cj
3
1
9
Решение
ПЗЛП на втором шаге двойственного
симплекс-метода также выписывается по
строкам:
=
(3, 0, 1, 0, 2),
= 9, решение ДЗЛП выписывается по столбцам:
=
(0, 3, 0, 0, 1),
= 9. Данное решение также не оптимальное,
поскольку еще остался отрицательный
элемент «1».
Необходим еще один шаг двойственного
симплекс-метода.
Над отрицательным элементом «1» в строке выбираем положительный, предпочтительнее «1», в строке x3, поскольку вторая строка была выбрана на предыдущем шаге метода, следовательно, первая строка – разрешающая (выделена жирным шрифтом).
Находим максимальное отношение среди отношений элементов в строке целевой функции к соответствующим элементам разрешающей строки
.
Поскольку максимальное отношение соответствует второму столбцу, то – он разрешающий (выделен жирным шрифтом).
Разрешающий элемент «1» находится на пересечении разрешающей строки и разрешающего столбца.
Заполняем нижние части клеток. Под разрешающим элементом ставим «1». В разрешающей строке остальные элементы переписываем без изменения, а в разрешающем столбце остальные элементы записываем с противоположным знаком. Оставшиеся клетки заполняем по правилу прямоугольника аналогично предыдущему шагу метода, получаем следующую таблицу:
-
yбаз
y2
y5
yсв
xсв
xбаз
- x4
- x2
bi
y1
x3
1
1
«1»
1
1
1
y3
x1
1
2
1
1
3
2
y3
x5
2
3
1
1
2
3
cj
3
2
1
1
9
10
Переходим к следующей симплекс-таблице. При этом в базис включается пара переменных х2, у5, соответствующих разрешающему столбцу, а из базиса выводится пара переменных х3, у2, соответствующая разрешающей строке. В следующей таблице данные пары переменных меняются местами. Клетки следующей таблицы заполняются элементами, полученными в результате деления соответствующих элементов из предыдущей таблицы в нижних частях клеток на разрешающий элемент «1». Поскольку в нижних частях клеток таблицы все элементы положительные и разрешающий элемент также положительный, то в следующей таблице будет получено оптимальное решение и нет необходимости делить на две части клетки в последней таблице:
-
yбаз
y2
y1
yсв
xсв
xбаз
- x4
- x3
bi
y5
x2
1
1
1
y3
x1
2
1
2
y3
x5
3
1
3
cj
2
1
10
Оптимальное
решение ПЗЛП:
=
(2, 1, 0, 0, 3),
=
10, оптимальное решение ДЗЛП:
=
(1, 2, 0, 0, 0),
= 10.
Данное решение аналогично решению, полученному в соответствии с методом одновременного решения пары взаимо двойственных задач.