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

книги из ГПНТБ / Математическое программирование и производственные задачи

..pdf
Скачиваний:
12
Добавлен:
19.10.2023
Размер:
4.65 Mб
Скачать

чтй эти предположения не нарушают общности постановки задачи).

Как известно, задача (4.1) — (4.4) без условия (4.4) явля­ ется обШей задачей линейного программирования и лег­ ко решается так называемым Л1-методом. Поэтому естественно задачу (4.1) — (4.4) называть общей целочисленной задачей линейного программирования^

Сформулируем расширенную задаНу (М —задачу), соот­ ветствующую задаче (4.1) — (4.4). Для простоты дальнейшего изложения здесь :не будем отличать искусственные и основ­ ные переменные. Поэтому все переменные расширенной задачи будем обозначать символом х с единой нумерацией

индексов. Расширенная

задача

сформулируется так: найти

максимальное

значение линейной

функции

 

 

 

__

т

 

 

п

 

 

 

 

 

F(X) = - M ^

Xj +

2

с

X j

 

(4.1')

 

 

1

 

j —m + l

 

 

 

при условиях

 

 

 

 

 

 

 

 

 

xi =

bi

auXj

,

i= \ ,

2, .

. .,

ГП-,

(4.2')

 

xj > 0 ,

y = l,

2, .

.

., n ;

 

(4.3')

 

Xj --- целые числа.

 

 

 

 

(4.4')

Здесь M —произвольно большая

величина,

 

не­

видно, что л-мерный вектор

 

 

 

 

 

 

 

* ° =

( * lt h ........Ьт, О, 0,

. . ., 0)

 

 

является допустимым

базисным

решением

задачи

(4.Г) —

(4.4'). Связь между задачами (4.1) — (4.4)

и (4.Г) — (4.4') ана­

логична связи между общей задачей линейного программиро­

вания

и соответствующей расширенной задачей (например,

задача

(4.1) — (4.4) неразрешима, если решение задачи

(4.Г) — (4.4') содержит искусственные переменные). Основы­

ваясь на вышеуказанном, для решения задачи

(4.1) — (4.4)

решаем задачу (4.Г ) — (4.4'). Решение задачи

(4.Г) — (4.4').

80

сводится к последовательному применению симплексных пре­

образований относительно задачи типа (4.Г) — (4.3'),

причем

на каждом шаге к

ограничениям (4.3') добавляется

новое

ограничение с новой переменной так, чтобы

 

 

а) добавленная переменная удовлетворяла условиям ви­

да

(4.3')

и (4.4');

 

 

 

б) новое ограничение не противоречило имеющейся систе­

ме

вида

(4.2').

 

 

 

Таким образом,

получаем новую задачу, относительно ко­

торой применяем один шаг симплексного преобразования. В

результате этого

преобразования

из базиса

исключается

вектор, соответствующий добавленной переменной.

 

Пусть на некотором шаге система (4.2')

имеет вид

 

■Xjj Яю

 

(UjXj

к

 

 

 

 

2

+ X biksk,

i= 1 , 2 , . .

., г,

(4.5)

 

 

}£j

 

 

k■1

 

 

 

 

где J —"\j i , y*2 ,

• • .,

j r )

множество

индексов

базисных

век­

торов,

а

 

 

 

 

 

 

 

 

Предположим,

что существует

вектор,

удовлетворяю­

щий условиям

(4.2')

(4.4'). Тогда для любого

i переменная

s*+i =

UlO

V'

 

 

К

 

 

 

(4.6)

 

Л

v

 

 

 

 

 

 

 

Г -

 

 

 

 

является целочисленной неотрицательной переменной при лю­

бом положительном значении

Это

означает, что ограни­

чение (4.6) удовлетворяет условиям а)

и б).

Опишем произвольный шаг алгоритма решения задачи (4.Г) — (4.4'). Проверяем признак оптимальности. При его обеспечении анализируем коэффициент при М в выражении целевой функции (4.Г ). Если этот коэффициент отличен от нуля, то задача (4.1) — (4.4) не имеет решения, в противном случае получено оптимальное решение. Если признак опти­ мальности не обеспечен, то генеральный столбец выбираем так, как в обычном методе последовательного улучшения плана. Отсутствие положительного элемента в генеральном столбце

означает неограниченность целевой

функции (4. Г)

на мно­

жестве допустимых решений задачи

(4. Г) — (4.4');

следова­

тельно, и функция (4.1) не ограничена на множестве допусти-

81

6—450

мых решений задачи 1(4.1) — (4.4). При наличии хотя бы од­ ного положительного элемента в генеральном столбце выби­ ваем так называемую подозрительную строку, как в Методе последовательного улучшения плана, учитывая способ пре­ одоления возможных зацикливаний при проявлении вырож­ денное[14]. Затем добавляем ограничение вида (4.6), со­

ответствующее

подозрительной строке. Численное значение

X в выражении

(4.6) выбираем так, чтобы коэффициент при

переменной, соответствующей генеральному столбцу, равнял­

ся единице.

Это требование выполняется,

если

 

а и\,-

(4.7)

Приращение

целевой функции

 

djо

b F = cJo

X

увеличивается с уменьшением X. Однако, летворяет (4.7), выбор малого значения X

кизменению знака переменной

'I а ЮI

^ — ^io

I ~ la lJa.

(4.8)

так как X удов­ может привести

Можно анализировать значения X и выбирать ее подходящее наименьшее значение, но такой анализ привел бы к услож­ нению вычислительной схемы. Поэтому целесообразно выб­ рать X = a.i]o. С целью экономии места для хранения элемен­ тов текущей симплексной таблицы и единообразия вычисли­ тельной схемы элементы столбцов, соответствующих базис­ ным векторам, не запоминаются. В симплексной таблице для каждого основного вектора с самого начала выделяется одна строка, причем строка, соответствующая внебазисному векто­ ру, заполняется нулями, за исключением пересечения этой строки со столбцом того же внебазисного вектора, где ста­ вится «— 1» [19].

Это означает, что в систему вида (4.5) добавляются фик­ тивные уравнения вида

82

х }

о 2

ajkx J>n

(4.9)

еде

 

 

 

О,

если

jk=hj,

 

- 1 ,

если

j k= j .

 

Если в базис входит вектор, добавленный на некотором

шаге, то соответствующая строка исключается из

системы

ограничений, так как это условие оказывается линейно-зависи­

мым от остальных.

 

 

 

Если А=а,7 0

= 1,

то добавленная

переменная sk+\ = 0.

В этом

случае в

качестве условия

(4.6)

выбирается г'-ая

строка.

Основная

симплексная таблица

имеет размеры

(га-Ь2)Х(/и-|-1) (т = п '). Добавленное ограничение (4.6) записы­ ваем под основной симплексной таблицей (в (и-(-З)-ей строке таблицы) и реализуем симплексное преобразование, выбирая в качестве генеральной строки (я+3)-ю1б строку. Ясно, что

при этом генеральный элемент равен

единице,

вследстбйе

чего полученная

после преобразований

симплексная

табли­

ца тоже будет целочисленной.

 

 

 

 

 

Введем следующие обозначения:

 

 

 

 

а+ У (я+3)+/

номер ячейки

памяти

ЭВМ,

хранящей

элемент а,, симплексной таблицы;

 

 

 

 

 

-► —знак засылки содержимого

одной ячейки

в дру­

гую;

 

 

 

 

 

 

 

 

 

< Д >

-содержимое ячейки Д;

 

 

 

 

t,

k,

k!—счетчики;

 

 

 

 

 

j 0,

t0—ячейки запоминания номеров генерального столб­

ца и подозрительной строки;

 

 

 

 

 

<*-}-_/, P-И , с~И, Д -рабочие ячейки.

 

 

 

 

Приведем

вычислительную

схему

решения

задачи

(4.1,) -(4 .4 ') .

 

 

 

 

 

 

 

1°. Нахождение mln<^a -1-У(« Ч-З)—1>->-Д;

соответствующий

j -У/о-

 

 

2<j<n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2°. Сравнение <]Д^> с 0:

 

 

 

 

 

а) если <Х><С0. переход к 7°;

 

 

 

 

 

б) если < Д > > 0 ,

переход к 3°.

 

 

 

 

 

83

3°. Сравнение <C?-f-«-r2> с 0:

 

 

 

 

 

 

а)

если < у * + « + 2 > = 0 ,>переход

к 4°;

 

 

 

 

б)

если

<a-r«+2>=/L0,

 

останов

1;

задача

(4.1)

(4.4)

неразрешима.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4°.

 

Нахождение

min

 

+

У (я + 3 ) -2 >

> 4 ;

соответствую-

 

 

 

 

 

 

 

 

—1>« О

 

 

 

 

 

 

 

щнй y'-v/o-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5°. Сравнение

< Д >

с 0:

 

 

 

 

 

 

 

 

а) если. < А > > 0 ,

переход

к 6°;

 

 

 

 

 

б)

если

< Л > < 0 ,

переход

к 7°.

 

 

 

 

 

6’ . Выдача < а + / >

(1

 

7

п)

останов 2,

задача

(4.1)

(4.4)

решена.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7°,

 

Нахождение

< а + (< у 0>

- 1)(я + 3 )+ / > > 0

(с запомина­

нием номеров

соответствующих

 

строк

в

ячейках

с -f t\.

8°, Сравнение /г с 0:

 

 

 

 

 

 

 

 

 

 

а) если £ = 0 ,

останов 3;

целевая

функция

не

ограничена

(задача

неразрешима);

 

 

 

 

 

 

 

 

 

 

б) если

к > 0,

переход k

9°.

 

 

 

 

 

 

 

9°., Формирование холостого хода в 16°.

 

 

 

 

10°.

1 -> t.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11°.

Составление

отношения

 

<Са + <Сс +

с >

________

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< « + ( < У > - 1 ) ( я - + - 3 ) - г < с + / > >

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

►3 = с

12°. Сравнение < £ >

с к-

 

 

 

 

 

 

 

 

 

 

а)

если < Г > < д £ ,

переход

к

13°,

 

 

 

 

 

 

б)

если < 7 > = £ ,

переход к

14°.

 

 

 

 

13°.

 

 

 

 

переход к 1Г.

 

 

 

 

 

 

14°.

 

Нахождение

 

m

i n 0 + Г >

 

запоминанием номеров

равных минимумов в ячейках c + t ,

!< £ < £ '< £ ).

 

 

15°.

 

Сравнение k'

с

1:

 

 

 

 

 

 

 

 

 

 

 

 

а)

если k'= \ ,

 

 

 

 

 

 

переход к 32°;

 

 

б) если &'>1, переход к 16°.

 

 

 

 

 

16°. Холостой ход (переход к 22°).

 

 

 

 

17°. <A+/>-voc+y(ffl+3),

j = l ,

2, . .

т .

 

 

 

18°. Расстановка <yx-f-y(«-j-3)> по возрастанию (у=1, 2

 

19°.

 

\->j.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20°.

 

1 -> t.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21°.

 

Сравнение < Х >

с

т\

 

 

 

 

 

 

 

 

84

а)

если < 7

> <у?г, переход к 22°;

 

 

 

б)

если < у > —"С переход

к 24°.

 

 

 

 

22°. Сравнение <У+У’(я+3)>с<у?+ Г>:

 

 

 

 

а)

если

<Ca+y(rt+ 3 ) > « C

r ^ ,

переход

к 26°;

 

б)

если < я + / (л + 3 )> > < с --М > ,

переход к 23°.

 

23°. Сравнение < С >

с k'\

 

 

 

 

 

 

 

 

а)

если <С ><Ж . переход к 25°;

 

 

 

 

б)

если < Х > = & ', переход к 24°.

 

 

 

 

24°. < t+ C >

 

переход

к 32°.

 

 

 

 

 

25°. <Х >+1->-С

переход к 22°

 

 

 

 

 

 

26°. 1 - y l .

 

 

 

 

 

 

 

 

 

 

 

27°. Сравнение < а + у '(« + 3 )> с

</г ~С>:

 

 

 

а)

если < а+/(и -(-3)>=< У г+ С >,

переход

к 29°;

 

б)

если <а+у(/г+3)>=У=<А-Ь/>, переход

к 28°.

 

28°. < / > + 1

>-/,

переход

к 27°.

 

 

 

 

 

29°. Замена адреса 0 + < с + Г > >

на <а+/(/г f 3 ) + < с + < » .

30°. < у > + 1 >У.

 

 

 

 

 

 

 

 

 

 

З Г . Формирование перехода

к 22°

от

16°, переход к

11°.,

32°. Сравнение < а + « У 0>

П (/г+3)+<г0»

с

1:

 

а) если < я +

« /

0> — 1 ) ( я - г З ) + < г ' 0»

= = 1 , переход х 3 4 р ;

б)

если

< а

К < у 0>

-1)(/1+3)+< г'0» ¥ = 1 ,

 

переход к

33°.

 

 

 

 

 

 

 

 

 

 

 

33°. (/Н-3) >/z+<y0> , переход

к 36°.

 

 

 

 

34е. <г'р> ^ h + < j 0> .

 

 

yy.-+-j(n-*-3) (у = 1,

 

 

35°. <у*4~(У - 1)(/г+3)+<У'(С>У>

2, .

■,т)

переход

к 37°.

 

 

 

 

 

 

 

 

 

36°.

<а-!-(у

1 )(/г+ 3 )+ < /0»

|

 

 

 

 

 

 

 

 

 

 

 

>'■> /'(/г-гЗ)

 

< а Ь(<Уо> - 1 ) ( л + 3 ) + < / о » |

 

 

 

 

(У‘= 1 , 2, . .

от).

 

 

 

 

 

 

 

 

37°. Реализация

симплекс-преобразования:

 

 

 

 

 

- 1)(/г~ЬЗ)-|-С>

<a+y(/7.+3)>X <a j-

 

 

 

Н~(<Уо> —■1 )(п+ 3 ) + t>

уу--г (/—1)(п+ 3 ) - {-i ;

 

О—< яФ « У о > —1)(/г+ 3 )ф 7 >

уу-~Г(<Уо> -1)(Л +-3)+С

г —1, 2,

. .

/г+2,

у—1,

2, . .

у'0— 1, у'0+ 1 , . .

m-f-1,

переход к 1°.

 

 

 

 

 

 

 

 

 

 

Замечание 4.1. В машинах, имеющих индексные регистры,

блоки сравнения индексов и замены (например,

блоки

12° и

85

13’ 8 приведенной схеме) реализуются одной групповой опера­ цией.

Замечание 4.2. Введением блока анализа номера вектора,, стоящего в генеральном столбце и одновременным перемеще­ нием блока 32° между блоками 15° и 16°, можно избавиться;

от блоков 17°—31°,

но это осложняет вычислительную схему..

Замечание 4.3.

В ячейках

2, . . ., т) с самого-

начала даются соответствующие "номера внебазисных основ­ ных векторов.

Замечание 4.4. Так как номера (и упорядоченность) до­ бавленных векторов не существенны, то всем этим векторам

приписывается

один и тот

же номер— (я + З).

Замечание 4.5. Для полноты программы необходимо пе­

ред блоком Г

иметь блок

вычисления элементов (я + 2 )-ой

строки:

 

 

 

О—V

а,7 - ►?.+ (/—l)(«-f-3)— 1, j - 1, 2, . . ., m4 1,

<■-

i

 

 

где /я' —количество уравнений в исходной системе (4.2). Пример. Найти максимальное значение линейной функ­

ции

f(X ') = 2х1—х 2-\-Зх3—2х'4—10х.

при условиях

Л',—х ,

2х3— 2л'4 — 6х5 = 2,

х\-12х2—х 3-\-7х\ 4- Зх, = 5,

—х;+л-2+ х 3—х 4' = 4,

х\~5?0,

Л'2>0, Xj>-0, х ’> 0 . A'-Si-O,

л'р л',„ х 3, л*4, х .— целые числа.

Сформулируем соответствующую расширенную задачу. Найти максимальное значение линейной функции

f ( X ) M (x1-\-x2-\-x3)-{-2xi A'5-f-3A'e 2л', 10a's

86

при условиях

 

 

 

 

 

 

 

 

 

х 4— 2

(х4

xs-|-2xg

2х7

6х 8),

 

 

Хд—-5

(х4—{—2х-

х 6-• 7х 7+ З х 8),

 

 

х3= 4 —(—х 4+ х 5+ х в—х,4-0 ■х 8),

 

ху—целые неотрицательные (у'=1, 2, . .

8).

Добавим ограничения

вида

(4.9):

 

 

 

х 4= -0 —(—х4+ 0

•х 5-|-0 •хв+ 0

•x 7-fO •х8),

х 5

0

(0 •х4

х 5-(-0 •Xg-f-0 •х 7+ 0 •х 8),

 

хв= 0 —(0 •х4+ 0

•х5—х 8+ 0 ■х 7-|-0 •х 8),

 

х 7= 0 — (0 •х 4+ 0

•х 5+ 0

•х в—х 74-0 •х 8),

 

х 8= 0 —(0 •х 4+ 0

•Xg-j-0 •хе+ 0

•х 7—х 8).

 

Элементы матрицы условий и компоненты вектора огра­

ничений заполняются

в

первых

восьми

строках

исходной

симплексной

таблицы.

Коэффициенты

целевой функции с

обратным знаком помещаются в 9-й строке, а в 10-й строке— суммы элементов первых восьми строк соответствующих столбцов с обратным знаком; наверху каждого столбца по­ мещается номер внебазисного вектора. Как видно из таблицы, минимальный элемент в 10-й строке будет—4 (напомним, что при выборе минимального элемента нулевой столбец не участ­ вует). Значит, вектор условий Л7 подлежит вводу в базис. В

столбце А1 единственный положительный

элемент

(7) стоит

бо 2-й строке. Следовательно, 2-я строка

является

подозри­

тельной. Разделим все элементы 2-й строки на 7 и целые части частных поместим в 11-й строке. Таким образом, генеральный 'элемент будет 1. Добавленному на каждом шаге вектору при­ сваивается один и тот же номер— 11.

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

87

 

 

4

У

У

2

У

 

У

2

У

2

- 2

- У

 

2

У

-

2

0

J?

 

 

г

 

У

У

У

У

2?

 

 

У

У

'■ У

У

У

У

У

у

У

- У

У

У

У

 

у

У

У

У

У

У

 

2

У

у

У

У

У

 

S

У

У

У

У

У

- У

 

У

У

- 2

У

2

У

 

X? -УУ -У - 2

- 2

- У У

 

УХ

у

У

У

У

У

 

 

 

 

 

 

f

 

 

 

 

 

У

У

УУ

У

 

У

2

У

- У

У

2

- у

 

2

У

У

2

0

- 2

2

 

У

У

У

У

У

У

 

2

У

- У

У

У

У

У

 

У

У

У

- У

У

У

У

У

У

У

У

У

- У

У

У

 

г

У

У

У

- У

У

У

 

У

У

У

У

У

У

 

У

У

- 2

У

- 2

У

 

У 0 -УУ - У - 2

- е

 

У

 

у х

У

У

У

У

- 2

У

 

t

88

 

 

У

У

УУ

УУ

У

 

У

2

У

У

2

- У

 

2

У

У

2

- У

ш п

-?

 

У

У

У

У

У

У

 

■2

У

7 7

У

У

У

 

У

7?

т7

У

У

У

2

У

7?

7 7

У

у

_ ^

У

 

7

У

У

У

У

- У

 

 

2

77

У

У

У

У

—.г'

 

У

У

- 2

У

2

 

у у

 

УУ -У7

- У - 2

У

- У

У

 

У7

У

77

У

- 2

У

У

 

 

 

 

 

 

\

 

 

 

 

У

У

УУ

УУ

У

 

У

77

У

- У

У

- 2

- У

 

2

TP

У

2

0

- У

J?

 

 

 

 

У

 

 

 

У

У

- У

<?

- У

У

 

2

77

- У

У

У

У

У

 

У

77

77

У

У

4&*

 

У

2

т7

У

- У

 

у ?

У

7

У

7 7

У

- У

У

У

 

2

77

77

У

7 7

У

- У

 

У

У

- 2

У - У

/

J T &

 

J V

- У

- У

- 2

- У У

У

У

 

У /

7 7

У

У

У

- 2

У

 

I

Э9

Соседние файлы в папке книги из ГПНТБ