книги / Математические методы принятия решений
..pdfребру из всех пересекающихся в начале координат. Величину из менения целевой функции за одну итерацию определяют как углом наклона (крутизной) ребра, так и длиной ребра. Более точно, она равна минимальному значению по г величины \cibi/a,ij\ для данно го з, где ü(j — г-й элемент вектор-столбца a,j для j -й свободной переменной.
Замечание. Процедура решения задач симплекс-методом пред ставляет собой последовательное построение системы таблиц. Пред полагается, что в первую таблицу внесено допустимое базисное решение. В задачах, описывающих реальные системы, допустимое базисное решение подобрать сложно. Для этого решают вспомога тельную задачу ЛП, которая позволяет не только найти допустимое базисное решение, но и установить, совместна ли система ограни чений исходной задачи.
Пусть система ограничений исходной задачи записана в следу ющем виде:
П
Ъ% ^ (lijXj —0, 2 — 1, 2, ... , Î77,
3 - 1
где bi ^ 0, г = 1,2,..., т. Такую запись можно получить, умножив при необходимости уравнения на —1. Введем новые переменные
|
п |
|
= bi |
^ , QijXj |
(2*2) |
|
3 = 1 |
|
и рассмотрим новую целевую функцию |
|
|
771 |
|
|
f(Z) = 2 |
5* -* m in- |
(2.3) |
i —1 |
|
|
Допустимое решение для задачи (2.2), (2.3) сразу задано. В процес се решения задачи возможны два случая:
1) min /(£ ) = 0, \i = 0, г = 1, 2, . . . , т (все |
стали свободными |
переменными), — полученное решение Xj, j |
= 1, 2, . .. ,п , является |
допустимым решением исходной задачи ЛП; |
|
2) min /(£ ) > 0 — система ограничений исходной задачи несов местна.
В первом случае можно отметить две особенности.
1.Целевая функция /(£ ) достигла своего минимума, равного ну лю, а некоторые из переменных & находятся среди базисных, хотя
иравны нулю. При этом можно не обращать внимание на знаки в строке для целевой функции (можно любую свободную пере менную выводить в базисные), так как значение целевой функции не изменится, однако должны выполняться условия, обеспечиваю щие допустимость нового базисного решения (необходимо рассмот реть минимальное положительное отношение).
2.Возможна ситуация, когда даже после выполнения условий
предыдущего пункта в строке для базисной переменной нет по ложительных элементов (нельзя получить положительное отноше ние). Это означает, что переменные, входящие в уравнение для & с ненулевыми коэффициентами, в данной задаче должны быть рав ны нулю. В процессе дальнейшего решения их необходимо исклю чить из рассмотрения.
Наряду с решением вспомогательной задачи линейного про граммирования (2.2), (2.3) преобразуется и целевая функция ис ходной задачи, которая приписывается к задаче (2.2), (2.3) в виде дополнительной строки (см. далее табл. 2.1).
§2.3. Метод полного исключения Жордана для решения систем линейных алгебраических уравнений
Аналитически процедура симплекс-метода представляется сле дующим образом.
Пусть задана целевая функция
Z = с х
при условиях
А х = Ь, х > О
или
Если выбраны базисные переменные хь и свободные перемен' ные равны нулю, то получим
Z = Сьхь
при условии
Вхь = Ь,
где сь —коэффициенты целевой функции (элементы вектора с), относящиеся к базисным переменным; В —квадратная матрица, составленная из столбцов матрицы А для базисных переменных.
Текущее решение удовлетворяет следующему выражению:
Тогда симплекс-таблица исходной задачи имеет вид
и состоит из следующих столбцов: (z, хьУ —базис, (сьВ~1Р{ — Ci, В ~ 1 Pi)т — значения коэффициентов целевой функции z и коэффи циентов при переменных х, где Р* — г-й столбец матрицы А, с* — г-й коэффициент целевой функции z, (сьВ~1Ь, В~ 16)т — значения целе вой функции и базисных переменных, т. е. решение.
Заметим, что вычислять надо только матрицу В ~ х.
На каждом шаге симплекс-метода необходимо определять новые «наборы» базисных и свободных переменных, т. е. решать системы линейных алгебраических уравнений. Задачи линейного програм мирования решают с помощью стандартных симплекс-таблиц, фор мализующих алгоритм перевода базисных переменных в свобод ные. Этот алгоритм и определяет конкретный вид симплекс-таблиц. Рассмотрим симплекс-таблицы, преобразуемые с помощью мето да полного исключения Жордана, получившего наибольшее распро
странение в линейном программировании. |
|
|||
Рассмотрим систему т линейных |
алгебраических уравнений |
|||
с п неизвестными: |
|
|
|
|
ОЦХ1 -f* 012^2 "Ь |
"i" 0/\ÿXg ■(■ |
"Ь |
= &1, |
|
о>цХ\ “Ь 0*22:2 |
"4“ |
~ |
*4*a in x n |
6*, |
а т \Х\ + 0-т2Х2 + ... + Q-rnsXs + |
+ d m n X n = |
Метод полного исключения Жордана состоит из таких преобра зований, в результате которых в каждой строке и каждом столбце матрицы системы линейных алгебраических уравнений остаются
по одному неизвестному с коэффициентами, равными единице. Например, мы хотим исключить переменную х 3 из всех строк, за исключением г-й строки. Элемент а,{3 — коэффициент, стоящий перед переменной х 3, —называют генеральным элементам, г-ю стро ку и s-й столбец—разрешающими. Прежде всего разрешающую строку делят на —а*8, и она остается неизменной. Чтобы исклю чить х 3 из первого уравнения, умножают разрешающую строку на а\3 и суммируют с первой строкой. В результате получают первую строку, в которой х 3 имеет коэффициент, равный нулю.
Аналогично исключают х 3 |
в остальных строках. Получают но |
вую эквивалентную запись |
системы алгебраических уравнений. |
В ней г-я строка имеет прежний вид, но все ее коэффициенты поделены на —а{3; s-й столбец состоит из нулевых элементов (кро ме единицы, стоящей в г-й строке). Остальные элементы матрицы системы и столбец свободных членов пересчитывают по правилу прямоугольника. Например, новое значение элемента сцп вычисля ется по формуле (рядом приводится схема расчета)
Q-is&ln Ща&гп
dis
а новые значения элементов столбца Ьт свободных членов — по формуле
Ща^т dmsbj
Щз
Из правила прямоугольника следует, что если в разрешающей строке (столбце) есть нулевые элементы, то элементы столбцов (строк), пересекающих эти нулевые элементы, остаются без изме нения.
В процессе решения задачи линейного программирования сим плекс-методом возможно зацикливание. Поясним его суть. Пусть в процессе решения задачи ЛП на некотором шаге симплекс-метода число наименьших положительных отношений свободных членов к элементам разрешающего столбца оказалось больше одного, т. е. выбор разрешающего элемента неоднозначен. После этого шага все
упомянутые свободные члены, за исключением свободного члена разрешающей строки, обратятся в нуль. Такой случай называют вырождением: совпадают две вершины (или большее число вер шин) выпуклого многогранника D, при этом ребро (или ребра), соединяющие эти вершины, стягиваются в точку.
В алгоритме симплекс-метода каждый шаг означает переход по ребру от данной вершины многогранника D к соседней (распо ложенной на том же ребре), а при вырождении —совпадении двух соседних вершин — алгоритм может потерять монотонность, т.е. может случиться, что после указанного шага мы остались в той же вершине, только выраженной с помощью другого набора из п урав нений, относящихся к этой вершине. Если продолжать решение симплекс-методом, то не исключено, что после некоторого числа шагов мы вернемся к уже взятой ранее вершине и процесс начнет повторяться. Произойдет зацикливание. Если в процессе решения проводилось запоминание уже испытанных ребер, то для прерыва ния зацикливания достаточно сменить генеральный элемент.
Существуют алгоритмы, в которых автоматически предусмотре ны меры против зацикливания.
§ 2.4. Задача планирования выпуска продукции пошивочного предприятия
Выпуск продукции пошивочного предприятия может быть опре делен из решения задачи линейного программирования. Решать ее будем симплекс-методом.
Задача. На предприятии планируется выпуск двух видов костю мов: мужских и женских. Для пошива женского костюма требуется 1 м шерсти, 2 м лавсана и 1 человеко-день трудозатрат; для по шива мужского костюма —3,5 м шерсти, 0,5 м лавсана и также 1 человеко-день трудозатрат. Всего для пошива этих костюмов име ется 350 м шерсти, 240 м лавсана и 150 человеко-дней трудозатрат. По плану количество костюмов не должно быть менее 110 и необ ходимо обеспечить прибыль не менее 1400 уел. ед. Требуется опре делить оптимальное число костюмов каждого вида, обеспечиваю щее максимальную прибыль, если прибыль от реализации женского костюма составляет 10 уел. ед., а от мужского — 20 уел. ед.
Р е ш е н и е . Пусть x i —число женских костюмов, а хг — муж ских. Прибыль от женских костюмов составляет 10xi уел. ед., а от мужских — 20x2 уел. ед., т. е. необходимо максимизировать целевую функцию
/(х ) = lOxi + 20x2-
Расход шерсти составляет xi +3,5хг (м), лавсана 2xj +0,5хг (м), трудовых ресурсов х\ + хг человеко-дней. Поэтому условия-огра ничения задачи имеют следующий вид:
xi + 3,5x2 ^ 350,
2х) + 0,5x2 ^ 240,
х\ +Х 2 ^ 150,
Xl +Х2 ^ 110,
lOxi + 20x2 ^ 1400,
X] ^ 0, Х2 ^ 0.
Первые три неравенства описывают ограничения по ресурсам, четвертое и пятое —соответственно плановое задание по общему числу костюмов и ограничение по прибыли.
Для решения задачи симплекс-методом сведем систему ограни чений к равенствам путем введения неотрицательных слабых пере менных хз, Х4, Х5, Хб ху (первое и второе ограничения умножим на 2, а пятое разделим на 10):
2 x i |
+ |
7x2 + |
х з |
|
= |
700, |
4 x i |
+ |
Х2 |
+ Х4 |
|
= |
480, |
Х 1 + Х 2 |
|
+ Х 5 |
= |
150, |
—xi —ху |
+Хб |
(2.4) |
= —110, |
||
—Xi —2X2 |
|
+ Х7 = —140, |
X j^O , j = 1,..., 7.
Первым этапом в симплекс-методе является отыскание опор ного решения —допустимого базисного решения, с которого начи нается поиск оптимального решения. Чтобы решение было опор ным, базисные переменные должны быть неотрицательны, т. е. элементы 6*, г = 1, . . . , 5, столбца свободных членов должны быть
неотрицательны. В задачах небольшой размерности опорное ре шение легко определить. В данном случае в качестве базисных переменных можно взять хз, £4, х$, хв, xj, но такое базисное решение не является допустимым (опорным), так как 64 и bs отри цательны. Для поиска опорного решения необходимо сформировать дополнительную фиктивную целевую функцию <р(х), элементы ко торой равны сумме элементов строк, отражающих те ограничения, где bi < 0. В симплекс-таблице для ср(х) вводится и заполняется до полнительная строка, получаемая суммированием соответствующих элементов строк с отрицательными значениями bi (в данном случае 4-я и 5-я строки). Теперь с помощью симплекс-метода находит ся максимум фиктивной целевой функции <р(х). Если m a x ср(ж) = 0 и при этом все коэффициенты в строке для <р(х) будут нулевые, то базисное решение, соответствующее этой таблице, будет опор ным. Тогда, исключая строку для <р(х), переходим к отысканию оптимального решения исходной задачи. Если m a x <р(х) ф 0, то си стема ограничений задачи противоречива. Может иметь место слу чай, когда функция (р(х) достигла своего максимума, равного нулю, а среди элементов строки <р(х) существуют ненулевые элементы. Это означает, что соответствующие переменные, в столбцах кото рых есть ненулевые элементы, тождественно равны нулю и могут быть исключены из рассмотрения. Исходная таблица симплексметода для рассматриваемой задачи имеет вид, представленный в табл. 2.1.
Таблица 2.1
Исходная таблица
Базисные |
Столбец |
- Х\ |
—Хг |
-ХЗ |
—Х4 |
-XS |
-Хб |
—XI |
Конт |
свободных |
|||||||||
переменные |
членов bi |
|
|
|
|
|
|
|
роль |
х 3 |
700 |
2 |
7 |
1 |
0 |
0 |
0 |
0 |
710 |
£4 |
480 |
4 |
1 |
0 |
1 |
0 |
0 |
0 |
486 |
х 5 |
150 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
153 |
Хб |
-П О |
- 1 |
- 1 |
0 |
0 |
0 |
1 |
0 |
-111 |
х 7 |
-1 4 0 |
- 1 |
E U |
0 |
0 |
0 |
0 |
1 |
-1 4 2 |
№ |
0 |
- 1 0 -2 0 |
0 |
0 |
0 |
0 |
0 |
- 3 0 |
|
ф ) |
-2 5 0 |
- 2 |
- з |
0 |
0 |
0 |
1 |
1 |
-2 5 3 |
Табл. 2.1. соответствует системе ограничений-равенств (2.4). Так, согласно этой таблице
О = 700 —2х\ — 1x 2 —яз> 0 = 480 —Ах\ — xi — Х4,
0 = —140 + xi + 2хг —xi,
/(х ) = - 10( - x i ) + (—20)(—х2) = Юх! + 20х2.
Последний контрольный столбец содержит сумму всех чисел в строке, и в процессе пересчетов сумма всех чисел в строках долж на быть равной числу в контрольном столбце.
Найдем максимум функции <р(х). Среди элементов строки <р(х) в столбцах —х ь ..., —хп есть отрицательные. Меньший отрицатель ный коэффициент, равный —3, указывает, что переменную х2 надо перевести в базисные. Чтобы определить, какую переменную из ба зисных перевести в свободные, рассмотрим положительные отно-
шения Oj к соответствующим элементам столбца —х2: |
= 100, |
||||||
480 |
ЛОА |
150 |
-П О 11П |
-140 |
_Л |
w |
7 |
— |
=480, |
j |
= 150, ——j- = 110, |
_■ |
= 70. |
Минимальное зна |
|
чение, равное |
70, указывает, что |
переменную |
ху надо |
перевести |
в свободные, а генеральным (разрешающим) элементом является —2 (обведен). Для получения следующей симплекс-таблицы применим метод полного исключения Жордана (табл. 2.2).
Разрешающую строку x j делим на —2 и заносим в табл. 2.2; столбец —Х2 заполняем нулями. Элементы столбцов —хз, —Х4, —xs,
Таблица 2.2
|
|
|
|
Первая итерация |
|
|
|
||
Базис |
bi |
- X I |
- Х 2 |
-хз |
—Х 4 |
- Х 5 |
- Х б |
- Х 7 |
Контроль |
х3 |
210 |
-3 /2 |
0 |
1 |
0 |
0 |
0 |
7/2 |
213 |
х4 |
410 |
7/2 |
0 |
0 |
1 |
0 |
0 |
1/2 |
415 |
х5 |
80 |
1/2 |
0 |
0 |
0 |
1 |
0 |
1/2 |
82 |
*6 |
-4 0 |
R 72] |
0 |
0 |
0 |
0 |
1 |
-1 /2 |
-40 |
X ? |
70 |
1/2 |
1 |
0 |
0 |
0 |
0 |
-1 /2 |
71 |
/(*) |
1400 |
0 |
0 |
0 |
0 |
0 |
0 |
-10 |
1390 |
<р(х) |
-4 0 |
-1 /2 |
0 |
0 |
0 |
0 |
1 |
-1 /2 |
-4 0 |
—хв переносим без изменения, так как они пересекают нулевые элементы разрешающей строки. Остальные элементы таблицы пе ресчитываем по правилу прямоугольника. Проверяем, совпадает ли сумма чисел в строке с числом в контрольном (последнем) столбце. Если совпадения нет, произошла ошибка в расчете. Вместе с функ цией ф(ж) пересчитывают и целевую функцию f(x).
Продолжаем максимизировать ср(х). В базисные переменные можно перевести х\ или x j, так как они имеют равные отрицатель ные коэффициенты —1/2 в строке ф(ж). Переводим х\ в базисные переменные. По минимуму положительных отношений 6* к элемен там столбца —х\ выбираем элемент хв, который надо перевести в свободные; генеральным элементом является —1/2, значит, хв — разрешающая строка и —xi —разрешающий столбец. Запишем ре зультаты в виде табл. 2.3.
|
|
|
|
|
|
|
|
|
Таблица 2.3 |
|
|
|
|
Вторая итерация |
|
|
|
||
Базис |
Ы |
- Х \ |
- Х 2 |
-х з |
— Х 4 |
- Х 5 |
- Х в |
— X I |
Контроль |
Хз |
330 |
0 |
0 |
1 |
0 |
0 |
- 3 |
0 |
333 |
Х 4 |
130 |
0 |
0 |
0 |
1 |
0 |
7 |
- 3 |
135 |
х 5 |
40 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
42 |
Х \ |
80 |
1 |
0 |
0 |
0 |
0 |
- 2 |
1 |
80 |
Х 2 |
30 |
0 |
1 |
0 |
0 |
0 |
1 |
- 1 |
31 |
№ |
1400 |
0 |
0 |
0 |
0 |
0 |
0 |
- 1 0 |
1390 |
ф(х) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
Из табл. 2.3 видно, что достигнут максимум фиктивной целе вой функции (ф(х) = 0) и все коэффициенты в строке ф(х) равны нулю, т. е. получено опорное решение X (,~ xi = 0, х\ = 80, Х2 = 30, хз = 330, Х4 = 130, xs = 40. Это решение не является оптимальным, так как в строке f(x ) имеется отрицательный коэффициент.
Продолжаем улучшать решение симплекс-методом. Строку ф(х) исключаем. Генеральным будет элемент, равный 5; x-j переводим в базис (вместо хт). Полученные результаты запишем в виде табл. 2.4, затем в виде табл. 2.5. В табл. 2.4 отмечен генеральный элемент.
|
|
|
|
Третья итерация |
|
|
Таблица 2.4 |
|||
|
|
|
|
|
|
|
||||
Базис |
|
- X I |
- Х 2 |
- Х З |
—Х 4 |
Х5 |
- Х б |
Х 7 |
Контроль |
|
|
|
|
|
— |
|
— |
|
|||
х 7 |
6 6 |
0 |
0 |
1/5 |
0 |
0 |
- 3 / 5 |
1 |
333/5 |
|
х 4 |
||||||||||
328 |
0 |
0 |
3 /5 |
1 |
0 |
26/5 |
0 |
1674/5 |
||
х 5 |
40 |
0 |
0 |
0 |
0 |
1 |
Ш |
0 |
42 |
|
х { |
14 |
1 |
0 |
- 1 / 5 |
0 |
0 |
- 7 / 5 |
0 |
67/5 |
|
х 2 |
96 |
0 |
1 |
1/5 |
0 |
0 |
- 2 / 5 |
0 |
488/5 |
|
т |
2060 |
0 |
0 |
2 |
0 |
0 |
- 6 |
0 |
2056 |
|
|
|
|
Оптимальное решение |
|
|
Таблица 2.5 |
||||
|
|
|
|
|
|
|||||
Базис |
Ьг |
- Х \ |
—Х2 |
- Х з |
— Х4 |
-Х5 |
Хб |
—XI |
Контроль |
|
|
|
|
— |
|
|
|||||
х 7 |
90 |
0 |
0 |
1/5 |
0 |
3/5 |
0 |
1 |
459/5 |
|
х 4 |
120 |
0 |
0 |
3/5 |
1 |
-26/5 |
0 |
0 |
582/5 |
|
х6 |
40 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
42 |
|
Х\ |
70 |
1 |
0 |
-1 /5 |
0 |
7/5 |
0 |
0 |
361/5 |
|
х 2 |
80 |
0 |
1 |
1/5 |
0 |
-2 /5 |
0 |
0 |
404/5 |
|
fix) |
2300 |
0 |
0 |
2 |
0 |
6 |
0 |
0 |
2308 |
В табл. 2.S все коэффициенты строки f i x ) неотрицательны, зна чит, максимум функции f ( x ) достигнут и получено соответствую щее ему решение: х\ = 70, ху = 80, f max(x) = 2300. Таким образом, максимальная прибыль составит 2300 уел. ед. при пошиве 70 жен ских и 80 мужских костюмов. Слабые переменные оказались рав ными жз = 0, Х4 = 120, xs = 0, Хб = 40, Ху = 90. Значения xj, Х4, х$ показывают остатки ресурсов: шерсть и трудовые ресурсы израсхо дованы полностью, лавсана осталось 120 м; значения хв и ху пока зывают, на сколько перевыполнены плановые задания по числу ко стюмов и по прибыли (учитываем, что ху = 90 • 10 = 900, уел. ед.).
Замечание. Обратим внимание на тот факт, что в рассмотрен ной задаче оптимальное решение мы устанавливали по наличию неотрицательных коэффициентов в строке максимизируемой целе вой функции, а в примере § 2.2 —по наличию неотрицательных коэффициентов в минимизируемой целевой функции. Здесь ни какого противоречия нет: в нашем примере переменные указаны