|
Общий вид оптимального плана |
Таблица 12.2 |
|
|
^"""•"-^.^..^^^ |
Свободный |
Свобод |
|
|
'-Х„ + 1 ... |
|
|
ные |
Х|, Х2, ... |
Х„ |
|
|
^п + т |
Базисный |
^^""--.^.^^ |
члены |
|
|
|
|
|
|
^1 |
|
|
|
1 |
|
|
|
h |
|
1 |
|
|
bs |
|
1 |
^п + т |
|
|
|
1 |
Zee |
P+Qa |
Pi + д^а ... |
Рп + д^а |
Рп + т'^ Qn-i-m^l |
|
Zt |
Р |
P i - |
Рп |
Рп + т |
|
Q |
|
|
|
|
|
Q\-' |
Яп |
Яп + т |
которых план, полученный в табл. 12.2, будет оставаться оптималь ным. План оптимален, если все коэффициенты функции Zf будут неотрицательны:
Pl-\-qxt>0 |
|
P2+q2t>0 |
(12.3) |
Pn'^g„t>0.
Столбцы, соответствующие базисным переменным, можно не рассматривать. Из решения полученной системы неравенств мож но найти интересующий нас интервал.
Рассмотрим несколько случаев:
а) Пусть все коэффициенты qj > 0,у = 1,л. Тогда / > -Pj/qp па раметр /, удовлетворяющий системе (12.3), определяется выраже
нием />тах |
Верхняя граница для / стремится к + <». |
|
Таким образом, окончательно |
|
|
ai =max —Р/ </(+оо = а2. |
(ПА) |
|
'JJ |
|
В интервале (12.4) целевая функция достигает максимума в той же вершине.
б) Пусть все коэффициенты QJ < О, тогда из (12.3) имеем / < < —Pj/Qy Для того чтобы значение / удовлетворяло всей системе
(12.3), необходимо положить t<m\n --Pi |
Нижняя граница для / |
стремится к — <», поэтому |
|
|
ai = -оо(/ < min {-Pj/qj) = aj. |
(12.5) |
в) Пусть среди элементов qj имеются как положительные, так и отрицательные числа.
Разделив неравенства системы (12.3) на две группы соответст венно знакам qj, получаем два интервала (12.4) и (12.5), объединяя эти интервалы, получим
ai = max (-pj/qd < / < min (-pj/qj)= аз-
r) Если qj = 0, TO соответствующий коэффициент функции бу дет неотрицательным при любом t, поэтому на такой столбец мож но не обращать внимания.
Сравниваем полученный интервал (щ; а2) с заданным [а, Р]. Независимо от значения щ, левой границей первого интервала бу дет а, так как aj больше а быть не может. Если а2 > Р, то весь от резок попадает внутрь интервала [aj, а2], и задача решена. Для лю бого значения параметра / е [а, р] максимум Zf достигается в од ной и той же вершине
ар
Если а2 < Р, то найденный интервал исключаем из рассмотре ния и решаем задачу для оставшегося интервала (а2, р). Для этого полагаем г = а2 и заменяем строку Z^ строкой ZCJ2. За разрешаю щий столбец в новой таблице выбираем тот, по которому опреде лено значение / = а2 (в этом столбце на пересечении с Zo^2-cтpoкoй находится элемент, равный нулю). Если нули находятся в несколь ких столбцах, то за разрешающий можно брать любой из них.
Для найденного решения снова определяем интервал измене ния параметра / и т. д. Если в разрешающем столбце не окажется положительных элементов, задача на оставшемся интервале не име ет решения.
П р и м ер 12.2. Решить задачу параметрического программиро
вания |
2xi +3x2 |
+ х з < 1 ; |
|
|
|
|
3xi +2x2 ~2хз<3; |
|
|
4xi + 2x2 + ^3 - 4j |
|
|
ху>0 |
У = 1ГЗ; |
|
|
|
Zf=txi+(l |
+ /)Х2 + (6 - 20^3 "^ ^ ^ > |
|
|
|
^е[1; 8]. |
|
|
Решение |
|
|
|
|
|
|
Приведем задачу к виду, допускающему применение |
алгоритма, |
и найдем выражение целевой функции |
при t=l (левый |
конец за |
данного промежутка): |
|
|
|
|
|
|
2Х1+ЗХ2+Х3+Х4 |
=1; |
|
|
Зх1+Х2-2хз+ |
Х5+Х5=3; |
|
|
4x1 •** 2x2 + ^3 "•• |
^6=4; |
|
|
Zi=xi+ |
2x2 |
+ 4^:3 -~> niax. |
|
Составим первую симплекс-таблицу с дополнительными строч ками для функции Zf и выполним преобразование симплекс-табли цы для решения задачи (табл. 12.3—12.4).
Таблица 12.3
|
|
|
0 |
1 |
2 |
4 |
! 0 |
0 |
0 |
|
К |
Сво- |
|
|
|
|
|
|
|
|
\ |
бод- |
|
|
|
|
|
|
|
|
|
\ные |
св. ч |
|
|
|
Х4 |
ч |
ч |
s |
Ба\ |
\ |
^1 |
^2 |
^3 |
зис- |
|
|
|
|
|
|
|
|
ные |
\ |
|
|
|
|
|
|
|
|
Г |
Х4 |
|
1 |
2 |
3 |
|
1 |
0 |
0 |
|
|
Х5 |
|
3 |
3 |
1 |
- 2 |
0 |
1 |
0 |
|
|
Ч |
|
4 |
4 |
2 |
1 |
0 |
0 |
1 |
|
|
Zt |
|
0 |
- 1 |
- 2 |
- 4 |
0 |
0 |
0 |
|
|
Zt |
|
0 |
0 |
- 1 |
- 6 |
0 |
0 |
0 |
|
|
|
0 |
- 1 |
-1 |
2 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица |
12.6 |
|
|
0 |
1 |
2 |
4 |
0 |
0 |
0 |
|
К |
Сво- |
|
|
|
|
|
|
|
\ |
бод- |
|
|
|
|
|
|
|
|
\ные |
|
|
|
|
|
ч |
S |
БаД |
св. ч |
^1 |
^2 |
^3 |
Х4 |
^5 |
|
|
|
|
|
|
|
|
зис- \ |
\ |
|
|
|
|
|
|
|
ные |
|
|
|
|
|
|
|
|
^1 |
1/2 |
1 |
3/2 |
1/2 |
1/2 |
0 |
0 |
|
|
^5 |
3/2 |
0 |
-7/2 |
-7/2 |
-3/2 |
1 |
0 |
|
|
^6 |
2 |
0 |
- 4 |
- 1 |
- 2 |
0 |
1 |
|
^12/5 |
6/5 |
0 |
1/5 |
0 |
6/5 |
0 |
0 |
|
|
^t |
0 |
0 |
- 1 |
- 6 |
0 |
0 |
0 |
|
|
1/2 |
0 |
1/2 |
5/2 |
1/2 |
0 |
0 |
|
|
|
|
в табл. 12.4 получено оптимальное решение, так как все коэф фициенты ZpCTpoKH неотрицательны — х = (0; 0; 1; 0; 5; 3). Опре делим интервал для /, в котором оптимальное решение будет в той же вершине. Так как все qj < О (табл. 12.4), то согласно (12.5) tti = —оо, а2 = 12,5.
Для нашего случая щ = I (левый конец заданного отрезка). Та ким образом, на отрезке [1; 12/5] решение будет в точке л: = (0; 0,1; 0; 5; 3). Исключаем найденный отрезок из рассмотрения и решаем задачу для оставшегося отрезка [12/5; 8]. Для этого, полагая / = 12/5, вычисляем для него строку Zj2/5- В первом столбце полу чим нуль; остальные коэффициенты Z12/5 строки положительны, а другие элементы остаются прежними (табл. 12.5). За разрешающий столбец в табл. 12.5 выбираем тот, по которому определено значе ние / = а2. Если нули находятся в нескольких столбцах, то за раз решающий можно брать любой из них. Новый план х = (1/2; 0; 0; 0; 3/12; 0) оптимален, так как в строке Z12/5 нет отрицательных элементов (практически элементы строки Zj2/^ остались без из менения).
В последней строке табл. 12.6 все qj > О, поэтому согласно (табл. 12.6) ai = 12/5, а2 = +«>; t е [12/5; 8]. Таким образом, заданный промежуток разбился на два; при / = 12/5 оптимальное значение достигается в обеих вершинах и в любой точке, являющейся их вы пуклой линейной комбинацией
А = XiAi + Х2А2; Xi > 0; ^2 > 0; ^i + Я2 = 1.
Задачи
12.1. Решить графическим методом
Z^ = (2 + |
2t)xi |
+ (4 - |
20x2 -^ max; |
|
Xj + л:2 < 6; |
|
|
Х2<4; |
|
|
2xi |
-ь ^2 < 10; |
xj > |
0 ; х 2 > 0 ; / е |
[1; 15]. |
12.2.
Zf = 4л:1 + (2 + t)x2 —> max;
2xi - 5x2 ^ 10;
Xj + ^2 < 5;
-Xj + X2 < 4; 4xi + 5x2 ^ 40;
xj > 0 ; x 2 > 0 ; te [0; 8].
12.3. Решить аналитически
Z; = (1 + Oxi + (2 - /)X2 + (2 - ЗОхз + (1 - 20x4 -> max;
Xj + X2 + 2x3 — X4 < 5; Xi + 2x2 •*• X4 < 7;
Xj + X3 + |
2x4< 3; |
X i > 0 ; y = l , 4 |
; / 6 [1; 20]. |
12.4.
Zf = (10 - lOOxi -f (9 + 0x2 + (7 - 20x3 -^ max;
Xi + X2 < 5;
2xi + X3 < 7;
Xi + 2x2 "^ 3^3 ~ 3; Ху>0;У=1,3;^б [1; 10].
12.5.
Z^ = /Ixj + (1 + 0x2 -^ max;
-3xi 4- 4x2 ^ 12;
4xi + X2 < 8;
X i > 0 ; x 2 > 0 ; / G [1; 7].
Глава 13 Целочисленное программирование
Постановка задачи и алгоритм решения
По смыслу многих задач требуется, чтобы значение неизвест ных в оптимальном плане выражались целыми числами. К ним от носятся задачи, у которых переменные величины означают количе ство единиц неделимой продукции, например, распределение про изводственных заданий между предприятиями, раскрой материа лов, загрузка оборудования, распределение судов по линиям, самолетов по рейсам, а также задачи по производству неделимой продукции. Если единица составляет малую часть всего объема производства, то оптимальное решение находят обычным симп лекс-методом, округляя его до целых единиц, исходя из смысла за дачи. В противном случае округление может привести к решению, не удовлетворяющему системе ограничений (особенно, если значе ния неизвестных выражены малыми числами). Поэтому для на хождения оптимального целочисленного решения нужен особый алгоритм.
Идея такого алгоритма заключается в следующем: вначале ус ловие целочисленности не принимается во внимание и симплексметодом отыскивается оптимальный план. Если этот план нецело численный, составляется дополнительное ограничение, которому удовлетворяет любое целочисленное решение, но заведомо не удов летворяет найденное.
После введения этого ограничения в задачу план становится недопустимым, и решение продолжается опять до получения опти мума. Если новый оптимальный план также окажется нецелочис ленным, снова формулируется дополнительное ограничение и для расширенной задачи снова находится оптимум и т. д.
Геометрически дополнительному ограничению соответствует гиперплоскость, которая отсекает от многогранника решений ка кую-то часть вместе с вершиной, которой соответствует нецелочис ленное решение. При этом все точки с целочисленными координа тами остаются в новом многограннике, так что через несколько операций такая точка становится вершиной с целочисленными ко ординатами (рис. 13.1).
^оА |
^max (координаты дробные) |
Гиперплоскости
^тах (координаты целые)
^1
Рис. 13.1. Геометрическая интерпретация решения задачи целочисленного программирования
Пусть требуется найти максимум целевой функции
(13.1)
при ограничениях
(13.2)
Не нарушая общности, можно предположить, что все коэффи циенты системы (13.2) выражаются целыми числами.
Приводим систему к виду
anxi +Д12Х2 -\-.,. + ainX„+yi =^1
(13.3)
где У1 — выравнивающие неизвестные.
Отметим, что целочисленность переменных Xj влечет за собой целочисленность переменных у^.
Составим первую симплекс-таблицу и после / шагов получим оптимальный план, который можно представить последней симп лекс-таблицей.
Таблица 13.1 Общий В1Щ первой симплекс-таблицы решения задачи
целочисленного программирования
r^^-v.. |
с |
Свободный |
1 ^ ^"^^^"^член |
%\ |
|
Ьх |
га
У\'- |
У£ Xi-^l |
Лп |
^11... |
bu |
b\n |
Уе+1 |
|
V+I)l |
b(£+\)£ |
b£+Un |
Ут |
|
|
bm£ |
|
Z |
Q |
|
Я£ |
|
Если все свободные члены целые - задача решена. Для удобст ва все базисные переменные обозначим г)Д/ = 1,т), а все свобод ные переменные t,j,J = 1, л, тогда таблица примет вид (табл. 13.2):
|
r^^^-v.^ с |
Свободный |
|
|
Таблица 13.2 |
|
Ix... |
^ |
kn |
|
|
член |
|
Л1 |
bi |
bu... |
b\i] |
b\n |
|
Л/ |
bi |
bn- |
bu |
bin |
|
Лт |
bm |
bml- |
bmj |
|
|
7 |
Q |
|
4j |
Яп |
С целью упрощения в таблице опущены:
а) столбцы, соответствующие базисным переменным; б) целевая строка; в) контрольный столбец.
Пусть свободный член bj является дробным, в этой же строке среди коэффициентов by могут быть как дробные, так и целые. Обо значим буквой п с соответствующими индексами антье от by и 6/.
E{bij) = riip E(b,) = А?,.
Вычислим разности между соответствующими коэффициен тами и Е:
Эти разности удовлетворяют условиям
0<Р^.<1;
(13.5)
Выпишем из таблицы выражение для г|^ и заменим в нем коэф фициенты согласно условию (13.4), тогда получим:
Л/ =(Р/1 +«a).(4i) + -..+(Pm +«m)K,i) + P/ +«/;
|
А7 |
л |
(13.6) |
Л/=Е/^^,(Чу)+^/+2:р^,(Чу)+Рг |
|
Перепишем последнее выражение в другом виде |
|
^/=~SPi/(4y)-P/=I«//(-^y) + ^/"^/- |
(13.7) |
J |
J |
|
|
Если ^/ и Г1/ - целые, то из правой части (13.7) следует, что 5/ - |
целое; так как 4 > 0; т]/ > О, а из |
средней части (13.7) |
следует |
Si > -Р^; учитывая выражение (13.5), заключаем, что Si может при нимать значения: О, 1, 2, ... и т. д.
Вывод. При любых целых неотрицательных г], и ^/, Si принима ет целые неотрицательные значения.
Введем в задачу дополнительное ограничение (табл. 13.3), ис пользуя подчеркнутую часть выражения (13.7).
Дополнительному ограничению удовлетворяет любой целочис ленный план издания, в то же время найденный ранее оптималь ный план для расширенной задачи является недопустимым, так как Si = -bi < 0.
Для расширенной задачи обычным путем отыскибается снача ла допустимый план, а затем оптимальный.