Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бережная_Матметоды моделирования эк cистем

.pdf
Скачиваний:
238
Добавлен:
29.03.2015
Размер:
8.86 Mб
Скачать

 

Общий вид оптимального плана

Таблица 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) целевая функция достигает максимума в той же вершине.

380

б) Пусть все коэффициенты 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)= аз-

qj > 0

(12.6)

qj<0

r) Если qj = 0, TO соответствующий коэффициент функции бу­ дет неотрицательным при любом t, поэтому на такой столбец мож­ но не обращать внимания.

Сравниваем полученный интервал (щ; а2) с заданным [а, Р]. Независимо от значения щ, левой границей первого интервала бу­ дет а, так как aj больше а быть не может. Если а2 > Р, то весь от­ резок попадает внутрь интервала [aj, а2], и задача решена. Для лю­ бого значения параметра / е [а, р] максимум Zf достигается в од­ ной и той же вершине

ар

I

1

1а2.

«1

 

 

Если а2 < Р, то найденный интервал исключаем из рассмотре­ ния и решаем задачу для оставшегося интервала (а2, р). Для этого полагаем г = а2 и заменяем строку Z^ строкой ZCJ2. За разрешаю­ щий столбец в новой таблице выбираем тот, по которому опреде­ лено значение / = а2 (в этом столбце на пересечении с Zo^2-cтpoкoй находится элемент, равный нулю). Если нули находятся в несколь­ ких столбцах, то за разрешающий можно брать любой из них.

Для найденного решения снова определяем интервал измене­ ния параметра / и т. д. Если в разрешающем столбце не окажется положительных элементов, задача на оставшемся интервале не име­ ет решения.

381

П р и м ер 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

 

 

 

 

 

382

0

КСво-

\бод-

\ные

св. ч

БаД

зис- \ ные \

1 ^ 1

^5 5 ^6 3

^4

6

А

-2

0

КСво-

\бод- \ные

св. ч

БаД

зис- \ ные \

1 ^ 1

^5 5

ч3

^\У5 6/5

6

Zt

-2

 

 

 

 

 

Таблица 12.4

["" "l

2

4

0

0

0

 

^1

^2

^3

Х4

Х5

^6

S

2

3

1

1

0

0

 

7

7

0

2

1

0

 

2

-1

0

-1

0

1

 

7

10

0

4

0

0

 

12

17

0

6

0

0

 

-5

-7

0

- 2

0

0

 

 

 

 

 

 

Таблица 12.5

1 1 2

^ 4

! 0

' 0

! 0

 

^1

^2

^3

Х4

^5

ч

2

И

3

1

1

0

0

 

7

7

0

2

1

0

 

2

-1

0

-1

0

1

 

0

1/5

0

6/5

0

0

 

12

17

0

6

0

0

 

-5

-7

0

- 2

0

0

 

383

 

 

 

 

 

 

 

 

Таблица

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.

384

Задачи

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].

385

Глава 13 Целочисленное программирование

Постановка задачи и алгоритм решения

По смыслу многих задач требуется, чтобы значение неизвест­ ных в оптимальном плане выражались целыми числами. К ним от­ носятся задачи, у которых переменные величины означают количе­ ство единиц неделимой продукции, например, распределение про­ изводственных заданий между предприятиями, раскрой материа­ лов, загрузка оборудования, распределение судов по линиям, самолетов по рейсам, а также задачи по производству неделимой продукции. Если единица составляет малую часть всего объема производства, то оптимальное решение находят обычным симп­ лекс-методом, округляя его до целых единиц, исходя из смысла за­ дачи. В противном случае округление может привести к решению, не удовлетворяющему системе ограничений (особенно, если значе­ ния неизвестных выражены малыми числами). Поэтому для на­ хождения оптимального целочисленного решения нужен особый алгоритм.

Идея такого алгоритма заключается в следующем: вначале ус­ ловие целочисленности не принимается во внимание и симплексметодом отыскивается оптимальный план. Если этот план нецело­ численный, составляется дополнительное ограничение, которому удовлетворяет любое целочисленное решение, но заведомо не удов­ летворяет найденное.

После введения этого ограничения в задачу план становится недопустимым, и решение продолжается опять до получения опти­ мума. Если новый оптимальный план также окажется нецелочис­ ленным, снова формулируется дополнительное ограничение и для расширенной задачи снова находится оптимум и т. д.

Геометрически дополнительному ограничению соответствует гиперплоскость, которая отсекает от многогранника решений ка­ кую-то часть вместе с вершиной, которой соответствует нецелочис­ ленное решение. При этом все точки с целочисленными координа­ тами остаются в новом многограннике, так что через несколько операций такая точка становится вершиной с целочисленными ко­ ординатами (рис. 13.1).

386

^оА

^max (координаты дробные)

Гиперплоскости

^тах (координаты целые)

^1

Рис. 13.1. Геометрическая интерпретация решения задачи целочисленного программирования

Пусть требуется найти максимум целевой функции

(13.1)

при ограничениях

(13.2)

Xj>0

]' = ТГп.

Не нарушая общности, можно предположить, что все коэффи­ циенты системы (13.2) выражаются целыми числами.

Приводим систему к виду

anxi +Д12Х2 -\-.,. + ainX„+yi =^1

(13.3)

где У1 — выравнивающие неизвестные.

387

Отметим, что целочисленность переменных 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

Яп

С целью упрощения в таблице опущены:

а) столбцы, соответствующие базисным переменным; б) целевая строка; в) контрольный столбец.

388

Пусть свободный член 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.

Для расширенной задачи обычным путем отыскибается снача­ ла допустимый план, а затем оптимальный.

389