книги из ГПНТБ / Говар В.М. Математическое программирование учеб. пособие
.pdf
|
- 3 0 - |
§ 4. |
МЕТОД ПОСЛЕДОВАТЕЛЬНОГО УЛУЧШЕНИЯ ПЛАНА |
Рассмотренный, ранее графический метод имеет некоторую цен |
|
ность благодаря |
своей наглядности, но при II .> 3 он применатьсз |
не может. Решение задач линейного программирования с любым числом
неизвестных производится другими методами. Одним из такояых явля
ется метод последовательного улучшения плана, основные идеи кото
рого |
были разработаны американским |
математиком .Данцигом. Этот ме |
|
тод в литературе фигурирует часто |
под названием |
с и м п л е к с |
|
н ы й |
метод (или симплекс-метод). |
|
|
|
С геометрической точки зрения этот метод похож на графичес |
||
кий. Как и л графическом методе значение функции |
цели исследуется |
в угловых точках многогранника решений. Метод последовательного улучшения плана аналитическим путем позволяет найти оптимальный план за конечное число шагов (итераций), если исходным решением является любой допустимый базисный план. При использовании сим плексного метода функция цели проверяется лишь в некоторых верши нах многогранника решений до тех пор, пока оптимум не будет достиг нут, при этом значение функции цели на кавдой итерации последова тельно улучшается.
Рассмотрим задачу линейного программирования, в которой система ограничений задана в виде неравенства с неотрицательными свободными членами.
Дана система линейных ограничений - неравенств (4.1):
a I I x I |
+ a I 2 x 2 |
a 2 I X I |
+ a 22x 2 |
(4.1) < a L l x I |
+ a L2X 2 |
a t I x I |
+ a t2 x 2 |
.+ ... + %
+... + %
+... + ai,J-
+... + 4
. + a ll1 |
x rt |
. + а 2П Xj? |
|
. + a \ n |
x n |
a tn |
*л |
|
. a m i x i |
+ a n2X 2 + ... + |
|
Xj.+ . |
аІЛі7 *<1 |
|
|||
и функции цели |
(4.2) |
L ( X ) = |
cQ |
+ C J X J |
+ CoXp + . . . |
+ C ; Ï | . + |
|||
|
|
|
|
|
. . . T C^Xf,. |
|
|
||
|
Требуется найти такое неотрицательное решение |
|
|||||||
(4.3) |
X j i . О, х 2 |
0, |
. . . j X j . |
? |
0, . . . |
, х п |
^ О |
|
|
системы(4.І), |
при котором функция |
цели (4.2) |
принимает |
экстремаль |
|||||
ное |
значение. |
|
|
|
|
|
|
|
|
|
Для определенности |
рассмотрим |
случай |
максимизации |
функций |
цели. Решение начинается с отыскания допустимого значения опорного
плана (базиса). Для этого от системы неравенств (4.1) переходиы к
системе уравнений (4.Ь) путем введения дополнительных неотрицатель
ных переменных |
|
(4.4) |
|
x n +j^0, xn + 2,>Q,,..,xn + L |
|
д. 0, ... ,x f ) + l î J ^ |
0 ; |
|||||||||||||||||||
а |
І І |
х |
І |
+ |
а |
І 2 |
х |
2 |
+ |
. |
+ ат |
X: + |
• ' |
+ а |
Ы |
х |
|
• |
+— |
V i |
|
= * Р |
||||
|
|
|
|
|
|
|
|
|
|
|
О |
|
|
|
||||||||||||
^21^1 |
+ ^22*^2 |
|
* * * "^" ^2 ^ |
^ * * * "^"^2^^'"^ "^* |
*^іт^"2 |
„ |
= в 2 > |
|||||||||||||||||||
а І І х І + |
\ 2 Х 2 + |
|
+ % % |
г |
+ |
...+аи 1 х,-) |
+ |
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
a t I x I + |
a t2 x 2 + |
|
+ а і у х |
у |
+ |
. . . + а . „ х ) 7 |
+ |
|
|
|
=Bt , |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
+ а,т |
X + |
. .+а.„,х,, + |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
un, |
1: |
|
|
|
|
|||
Коэффициенты при дополнительных |
неотрицательных |
переменной |
||||||||||||||||||||||||
(4.4) образуют |
|
единичную матрицу .m -го порядка,поэтому она являют |
||||||||||||||||||||||||
ся линейно-независимыми |
и,следовательно, |
|
составляют |
базис, |
итак, |
|||||||||||||||||||||
неременные |
|
(4.4) |
принимаем за базисные, |
в общем случае кеотркца-' |
- 32 -
тельные, а переменные (4.3) за свободные, .равные нулю.
йыракая базисные переменные через свободные, получим:
-11+1 =
х П+2 ~
x n+t =
> m -
- I - |
^иН |
+ а І 2 х 2 |
•*•...+ aT-i x ' |
|||||
"г - ( a 2 l x j |
+ a 22x 2 |
+ . . . + |
|
|||||
\ - |
( - U - I |
+ a l2 X 2 |
+ .... + |
|
||||
*t - |
< |
a |
t l |
x |
l |
+ a t 2 x 2 |
+ . . . + |
Ч х і - |
|
|
|
|
|||||
- m " < a m l x l + |
a n ,2x 2 + " — + \ * y + |
+ . . . + |
|
|
+ "... + |
a2 n xn |
) , |
+ . . . + |
V n , |
! |
+ . . . + a tn x n ) »
— + V « > -
(4.7) |
L С X ) |
= |
c 0 |
- |
(-CJXJ |
- c 2 x 2 - . . . |
- |
c^x^- . . . |
- c n |
x n |
) |
= |
|||
|
|
|
= |
C0 |
- |
(Çj-Xj + C^g + . . . |
+ C'X;+ . . . + c'n xn |
) , |
|||||||
ГД e |
Cj ~ |
|
' |
^2 = |
""^ ^ ' * " * ' |
— |
— С * |
Cp — |
—С ß » |
||||||
|
Из системы |
ограничений |
(4. ь) |
и функции |
цели |
(4.7) |
находим, |
||||||||
первое базисное |
решение: |
|
|
|
|
|
|
|
|
|
|||||
|
-п+і |
- • " - > • |
|
|
I |
|
|
|
|
|
|
|
|
||
|
X Q t ? . T . . f 2 . |
|
|
|
/ |
|
|
|
|
|
|
|
|
||
|
X X , |
= |
в |
|
|
|
|
|
|
|
|
|
|
|
|
|
-n+t = |
- t |
> п |
р |
и Э І 0 Ы Ф2/НКЦИЯ |
Ч ѳ л и |
|
L |
( X ) |
= Cp . |
|
|
|
||
|
Можно сформулировать следующий признак оптимальности: в опти |
||||||||||||||
мальном решении задачи линейного программирования на отыскание |
|||||||||||||||
максимума |
функции цели необходимо |
и достаточно, чтобы все коэффи |
|||||||||||||
циенты ее |
C j , с 2 , |
|
с ' , . . . , Ср |
были |
неотрицательными. |
|
|
||||||||
|
Исследуем коэффициенты |
функции цели |
(4.7). Если хотя |
бы один |
|||||||||||
из коэффициентов с^ |
, с£ |
с': |
, . . . , с п |
отрицателен, |
го |
путем |
перевода соответствующей переменной из свободной в базисную,значе ние функции цели можно увеличить . Тогда для улучшения первого
- 33 -
базисного решения нужно перейти ко второму по определенному пра
вилу, при этом значение функции цели (4.7) должно возрасти.
Примечание I . В оптимальном решении задачи линейного про
граммирования на отыскание минимума функции цели нѳрбходимо и
достаточно, чтобы все коэффициенты ее |
C j , с^ , . , с- |
были неположительными. |
|
Примечание 2. При устранении так |
называемого "вырождения", |
о котором будет изложено ниже, значение функции цели на отдельных этапах решения может оставаться без изменения; однако при макси
мизации оно ни в коем случае нѳ может уменьшаться, а при миними зации - не может увеличиваться.
Допустим, что среди коэффициентов Çj , с 2
имеются отрицательные коэффициенты. Из этих отрицательных чисел
выбираем наибольшее по абсолютной величине, так как введение в
базис соответствующей свободной переменной способствует большему
увеличению функции цели. Предположим, |
что таковым является |
с' , |
Тогда полагаем х-> ^ О, а все остальные |
свободные переменные |
У |
по- |
||
У |
|
|
прежнему имеют нужавыѳ значения. Б этом случае значение функции
цели (4.7) |
возрастает. |
|
Итак, |
переменную х- |
необходимо из свободных переменных пѳ- |
рѳвести в |
число базисных |
переменных. Однако х- можно увеличивать |
|
|
У |
только до |
тех пор, пока |
впервые не обратится в нуль какая-либо |
из базисных переменных (4.4), а остальные базисные переменные |
сохранят свои неотрицательные значения. Находим значения базис
ных переменных из системы (4.ь) |
при условии, |
что |
х« |
ê |
0, |
а |
все |
|
|
|
У |
|
|
|
|
остальные свободные переменные |
іт х , , |
і> . | |
, |
х;,; |
, |
хп |
|
|
2 |
у |
|
|
У |
' |
|
по-прежнему нули. Тогда будем иметь:
|
|
|
*rt+I = |
* I |
- |
aT i X. |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
хЛ+2 = |
»2 |
- |
|
4 |
t |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
(4.8) |
|
x n+u |
= |
a i |
- |
|
4- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x n+t = |
bx. - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
hm - a n r X : |
|
|
|
|
|
|
|
|
|
|
||||
|
Первой обратиться в нуль |
та из переменных |
x i l + |
I |
, x n |
+ 2 |
||||||||||||||
|
X + ( |
п |
, для которой |
отношение свободного |
члена к коэффициенту |
|||||||||||||||
при переменной, вводимой в базис, является наименьшим. Будем |
||||||||||||||||||||
обозначать |
эти отношения буквой 9 • |
|
|
|
|
|
|
|
|
|
||||||||||
|
Отыскиваем |
минимальное |
симплексное |
отношение, |
то есть пм.п Ѳ: |
|||||||||||||||
nu. Л3 |
m Lui |
f |
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
а- |
|
a-, |
|
|
|
а |
|
|
|
|
|
|
|
При этом отыскиваем отношения только к положительным коэффи |
|||||||||||||||||||
циентам, |
тан как, если |
какое-либо а £ ^ - ^ °> 1 0 |
увеличение |
х^ вы |
||||||||||||||||
зывает только |
лишь возрастание базисной |
переменной |
x n + |
t , |
а при |
|||||||||||||||
а ^ |
= 0, |
переменная .xn +t |
н |
е |
меняется. |
|
|
|
|
|
|
|
|
|||||||
|
Допустим, |
что наименьшее |
значение |
Q |
будет |
в і |
-том уравне- |
|||||||||||||
нии, то |
есть |
|
Піі-пѲ = |
^_ |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
а - |
|
|
|
|
|
|
|
|
|
|
|
|
Тогда |
коэффициент |
а-- |
будем называть |
генеральным |
элементом. |
||||||||||||||
|
Установив |
|
генеральный |
элеыент, |
нужно |
переходить |
ко второму |
|||||||||||||
базисному |
решению. Для этого Х' из свободных |
переменных |
нужно |
|||||||||||||||||
перевести |
в базисные, |
а х и + |
|
из базисных - в свободные. |
|
|
||||||||||||||
|
Для того,чтобы X |
из свободных |
переменных перевести в базис |
|||||||||||||||||
ные, нужно исключить его из остальных |
уравнений системы |
(4.5).При |
||||||||||||||||||
использовании метода Кордана-Гаусеа |
процесс исключения |
переменной |
||||||||||||||||||
х- |
из всех |
уравнений, |
кроме L - r o уравнения,системы |
(4.5) |
выпол- |
|||||||||||||||
няется без особых |
затруднений. |
|
|
|
|
|
|
|
|
|
Разделим все члены і-то |
уравнения |
системы |
(4,5) |
на генераль |
||||||||||
ный элемент: |
|
|
|
|
|
|
|
|
|
|
|
|
||
(4.9) |
Хт + |
X? + . . . .+ - - |
Х- т + |
I о х- + — а — х + т + . . . |
||||||||||
•*• + |
a |
|
n |
a-- п + "- |
|
а,- |
|
|
|
|
|
|||
Уравнение, |
полученное в результате деления обеих его частей « |
|||||||||||||
на генеральный |
элемент, |
будем называть |
направляющим. |
|
||||||||||
Например, |
для того,чтобы исключить х- |
из і |
-го уравнения, |
|||||||||||
нужно |
умножить |
направляющее |
уравнение |
(4.9) |
на |
(- a t . |
) : |
|||||||
|
|
а. |
а, . |
а 0 а т • |
|
а.- |
а>.; |
|
а^.і а*. |
|||||
(4.10) |
|
|
-Хт - |
« |
X? - |
••• |
1 |
— |
г |
- а г Х ; |
* |
|||
|
|
% |
|
1 |
a L > |
2 |
|
a . . |
|
|
t, k |
a |
||
|
a. |
a, |
|
|
а^і. |
|
в-. |
a t - |
|
|
|
|||
' X L+I |
a, , |
|
" |
|
a - |
V L |
" |
a ~ " |
" |
|
|
|
||
* |
|
LJ- |
|
|
|
Cj- |
|
|
|
|
|
|
|
|
Затем |
полученный |
результат |
(4.10) |
почленно складываем с соот |
||||||||||
ветствующими |
членами |
t, - го уравнения |
системы (4.5) и получаем: |
Аналогично исключается х^ из остальных уравнений системы (4.5).
Далее, исключая х,- из функции цели (4.7), получим (4.12):
Г
! В результате вычислений получим второе базисное рѳшение(4.ІЗ).
- |
36 |
- |
_ |
*і а. |
|
|
а. |
|
- |
и ••J |
a.. |
a .
..-J.
- В;
(4.13) |
X- |
|
|
|
|
i |
4- |
|
|
|
V l + I |
= B. |
4 t Ii |
|
|
" |
LH |
|
|
|
|
B t |
- |
ft а ^ |
|
|
|
|
4 |
При этом функция цели принимает значение I ( X ) = с - с ' - Получив второе базисное решение, если оно не будет оптималь
ным,повторяем цикл вычислений аналогичным образом до тех пор,пока не получим оптимального (в рассматриваемом случае - максимального)
результата. |
|
|
|
|
|
|
При к пользовании метода последовательного улучшения плана |
|
|||||
для решения конкретных задач процесс решения проще выполнять а |
|
|||||
симплексных таблицах. |
|
|
|
|
|
|
Ознакомимся с- алгоритмом вычислений в симплексных |
таблицах. |
|
||||
I . |
Сосіавляѳм симплексную таблицу |
(таблица 4.1) , |
заполняя |
ее |
||
коэффициентами из системы ограничений |
(4.5) и функции цели (4.2). |
|||||
При этом |
коэффициенты функции цели |
(4.2) |
записываются в таблицу |
с |
||
противоположными знаками (кроме с 0 |
) , ю |
есть C j , с 2 , |
. . . , с ' |
|
||
• л - |
|
|
|
|
' |
|
Знаки коэффициентов системы ограничений (4.5) при заполнении |
||||||
таблицы |
не изменяются. |
|
|
|
|
|
'Базисные Свобод перемен ные
ные члены
Хп и |
e, |
|
. . . |
h |
... |
|
||
|
k-, |
|
|
h |
Ail |
Xil-L+I |
|
UL-w |
|
|
• • * |
|
êt |
|
" L ( x ) |
|
с, |
- 37 -
Таблица 4.1
|
... |
|
|
|
|
X - |
|
|
Ѳ |
й а |
|
|
1 |
0 ... |
0 |
|
0 |
0 |
|
Ö»a |
... |
a w |
0 |
I |
• -- |
0 ... |
0 ... |
0 |
|
ÖL2 |
... |
|
o" |
"Ô |
|
•1 |
- |
0 ... |
0 |
|
|
|
J . . ... ... ... ... ... ... |
|
|||||
... |
... |
|
0 |
0 .... |
0 ... |
0 |
0 |
||
|
... |
|
0 |
0 ... |
0 |
|
0 |
0 |
|
... |
|
|
.... ... ... |
|
... |
F |
... |
||
... |
... |
flmn 0 |
0 |
|
0 ... |
1 |
|||
г.. |
fltn |
0 |
0 |
• •• |
0 |
|
... |
0 |
|
с:. |
|
C'n |
0 |
|
|
o" r ; "b |
0 |
Строку сишілексной таблицы,содержащую коэффициенты функции
цели с 0 |
, |
с j |
, с'2 |
с^. |
c'a , будем называть индексной. |
2. |
h |
индексной строке анализируем коэффициенты C j , с£, . . . , |
|||
с': |
|
а'(\ . |
Если хотя |
бы один |
из этих коэффициентов отрицателен, |
я |
|
|
|
|
|
то полученное решение оптимальным не является (при решении на мак симум). Из отрицательных коэффициентов индексной строки выбираем наибольший по абсолютной величине. Предположим, что этот коэффициент содержится в j_ -м столбце. Этот столбец таблицы будем называть клю чевым.
При решении задачи на минимум ключевой столбец содержит наиболь ший из положительных коэффициентов индексной строки.
3. Вычисляем симплексные отношение Q в последнем столбце таб лицы, при этом находим отношения свободных членов только к положи тельным коэффициентам -го столбца. Из всех значений 9 выбираем наименьшее. Строку, в которой находится минимальное значение Ѳ , будем называіь ключевой.
- 38 - 4. На пересечении ключевого столбца и ключевой строки нахо
дим генеральный элемент.
5. Определив гвнеральный элемент, переходим к составлению
второй симплексной таблицы, при этом выполняем следующие действия:
а) |
свободную |
переменную xj, |
переводим |
в базисные, а базисная |
||
переменная Х ц ^ |
перейдет |
в |
свободные; |
|
||
б) |
заполняем |
строку |
с |
вновь |
введенной |
базисной переменной Ху ; |
эту строку будем называть направляющей. Для этого все коэффициенты ключевой строки предыдущей симплексной таблицы делим на генераль ный элемент;
в) для перевода х- из свободных переменных в базисные нуяно исключить ее из всех строк, кроме I -той. Для этого накапливаем
нули во всех остальных клеткахJ.-го столбца таблицы ( 4 . 2 ) путем умножения всех коэффициентов направляющей строки на соответствую щие коэффициенты^ -го столбца, взятые с противоположным знаком,
предыдущей симплексной таблицы ( 4 . 1 ) и сложения полученных чисел
с соответствующими коэффициентами строк той же таблицы. Так,напри
мер, для получения нуля в |
строке t столбца j , умножаем направляю |
|||
щую строку на (- |
atу |
). |
|
|
В результате |
указанного выше алгоритма получим вторую симплек |
|||
сную таблицу (табл. 4 . 2 ) : |
(см.стр.37) |
|||
Процесс вычислений продолжаем в симплексных таблицах до по |
||||
лучения оптимального |
решения. |
|||
Прежде чем перейти к рассмотрению конкретного примера,рассмот |
||||
рим правила работы со |
столбцом контрольных сумм. Эти правила поз |
|||
воляют |
контролировать |
процесс вычислений на каждой итерации (одном |
||
цикле |
вычислений), то |
есть |
при переходе от одной симплексной таб |
лицы к другой.
Симплексные таблицы дополняются еще одним столбцом - столбцом контрольных сумм. В -том отолбцв я исходной симплексной таблице
С в о б о д н ы е •
перемен - ЧЛЕНЫ \ Х1
і
'ч ;" %
*•*
- • • i
X • |
Ч-і и " |
|
V |
ч
|
a |
- л*,в»"і/' |
n |
• • • |
QiAJ |
|
^ |
êi Chi л |
|
|
|
0 |
ft. ЙѴ |
|
|
« t - |
|
ас/ |
|
|
Ut. $mjft |
Oi, finj |
n |
ш |
' |
J % |
1 |
|
|
• |
• |
i |
|
|
1 |
Х1 |
* |
r |
|
X . , |
|
К • |
|
|
0 |
- |
|
|
|
0 |
..eu |
i |
— |
|
|
|
|
|
% |
|
|
|
|
|
|
||
0 - |
0 |
• |
|
|
|
1 |
4 |
У |
|
|
|
|
|
|
|
|
0 j - |
n |
$ЫЯі'*,0t |
0 ... |
% |
||
|
|
|
|
°ы |
0 |
0 ... |
L |
|
|
i |
! |
|
|
% |
|
flaut«.; |
л |
i |
л |
ûùnÛi.t.:0 |
|
||
fly |
|
|
UWI П • |
0 |
|
' °u |
...
0 |
|
0 |
0 |
|
0 |
0 |
... |
Ô |
0 |
... |
0 |
0 |
|
0 |
|
... 0 |
0 |
0 ... |
|
... i |
... |
û |
(fil e».-... |
Û»*" 0І 0 |
0- ... -On |
0 |
... |
1 |
||
|
|
/>' />' Clin |
- Si |
0. |
|
0 |
|
4 |
~s |
0 |
0 ... |
|
|||
|
|
|
*4 |
|
|
i |