Файл: Математическое программирование и производственные задачи..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.10.2024

Просмотров: 62

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

мых решений задачи 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