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

книги / Математические методы принятия решений

..pdf
Скачиваний:
2
Добавлен:
13.11.2023
Размер:
22.94 Mб
Скачать

ребру из всех пересекающихся в начале координат. Величину из­ менения целевой функции за одну итерацию определяют как углом наклона (крутизной) ребра, так и длиной ребра. Более точно, она равна минимальному значению по г величины \cibi/a,ij\ для данно­ го з, где ü(j — г-й элемент вектор-столбца a,j для j -й свободной переменной.

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

Пусть система ограничений исходной задачи записана в следу­ ющем виде:

П

Ъ% ^ (lijXj 0, 2 — 1, 2, ... , Î77,

3 - 1

где bi ^ 0, г = 1,2,..., т. Такую запись можно получить, умножив при необходимости уравнения на —1. Введем новые переменные

 

п

 

= bi

^ , QijXj

(2*2)

 

3 = 1

 

и рассмотрим новую целевую функцию

 

771

 

 

f(Z) = 2

5* -* m in-

(2.3)

i —1

 

 

Допустимое решение для задачи (2.2), (2.3) сразу задано. В процес­ се решения задачи возможны два случая:

1) min /(£ ) = 0, \i = 0, г = 1, 2, . . . , т (все

стали свободными

переменными), — полученное решение Xj, j

= 1, 2, . .. ,п , является

допустимым решением исходной задачи ЛП;

 

2) min /(£ ) > 0 — система ограничений исходной задачи несов­ местна.

В первом случае можно отметить две особенности.

1.Целевая функция /(£ ) достигла своего минимума, равного ну­ лю, а некоторые из переменных & находятся среди базисных, хотя

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

2.Возможна ситуация, когда даже после выполнения условий

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

Наряду с решением вспомогательной задачи линейного про­ граммирования (2.2), (2.3) преобразуется и целевая функция ис­ ходной задачи, которая приписывается к задаче (2.2), (2.3) в виде дополнительной строки (см. далее табл. 2.1).

§2.3. Метод полного исключения Жордана для решения систем линейных алгебраических уравнений

Аналитически процедура симплекс-метода представляется сле­ дующим образом.

Пусть задана целевая функция

Z = с х

при условиях

А х = Ь, х > О

или

Если выбраны базисные переменные хь и свободные перемен' ные равны нулю, то получим

Z = Сьхь

при условии

Вхь = Ь,

где сь коэффициенты целевой функции (элементы вектора с), относящиеся к базисным переменным; В квадратная матрица, составленная из столбцов матрицы А для базисных переменных.

Текущее решение удовлетворяет следующему выражению:

Тогда симплекс-таблица исходной задачи имеет вид

и состоит из следующих столбцов: (z, хьУ базис, (сьВ~1Р{ — Ci, В ~ 1 Pi)т — значения коэффициентов целевой функции z и коэффи­ циентов при переменных х, где Р* — г-й столбец матрицы А, с* — г-й коэффициент целевой функции z, (сьВ~1Ь, В~ 16)т — значения целе­ вой функции и базисных переменных, т. е. решение.

Заметим, что вычислять надо только матрицу В ~ х.

На каждом шаге симплекс-метода необходимо определять новые «наборы» базисных и свободных переменных, т. е. решать системы линейных алгебраических уравнений. Задачи линейного програм­ мирования решают с помощью стандартных симплекс-таблиц, фор­ мализующих алгоритм перевода базисных переменных в свобод­ ные. Этот алгоритм и определяет конкретный вид симплекс-таблиц. Рассмотрим симплекс-таблицы, преобразуемые с помощью мето­ да полного исключения Жордана, получившего наибольшее распро­

странение в линейном программировании.

 

Рассмотрим систему т линейных

алгебраических уравнений

с п неизвестными:

 

 

 

 

ОЦХ1 -f* 012^2 "Ь

"i" 0/\ÿXg ■(■

= &1,

о>цХ\ “Ь 0*22:2

"4“

~

*4*a in x n

6*,

а т \Х\ + 0-т2Х2 + ... + Q-rnsXs +

+ d m n X n =

Метод полного исключения Жордана состоит из таких преобра­ зований, в результате которых в каждой строке и каждом столбце матрицы системы линейных алгебраических уравнений остаются

по одному неизвестному с коэффициентами, равными единице. Например, мы хотим исключить переменную х 3 из всех строк, за исключением г-й строки. Элемент а,{3 — коэффициент, стоящий перед переменной х 3, называют генеральным элементам, г-ю стро­ ку и s-й столбец—разрешающими. Прежде всего разрешающую строку делят на —а*8, и она остается неизменной. Чтобы исклю­ чить х 3 из первого уравнения, умножают разрешающую строку на а\3 и суммируют с первой строкой. В результате получают первую строку, в которой х 3 имеет коэффициент, равный нулю.

Аналогично исключают х 3

в остальных строках. Получают но­

вую эквивалентную запись

системы алгебраических уравнений.

В ней г-я строка имеет прежний вид, но все ее коэффициенты поделены на —а{3; s-й столбец состоит из нулевых элементов (кро­ ме единицы, стоящей в г-й строке). Остальные элементы матрицы системы и столбец свободных членов пересчитывают по правилу прямоугольника. Например, новое значение элемента сцп вычисля­ ется по формуле (рядом приводится схема расчета)

Q-is&ln Ща&гп

dis

а новые значения элементов столбца Ьт свободных членов — по формуле

Ща^т dmsbj

Щз

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

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

упомянутые свободные члены, за исключением свободного члена разрешающей строки, обратятся в нуль. Такой случай называют вырождением: совпадают две вершины (или большее число вер­ шин) выпуклого многогранника D, при этом ребро (или ребра), соединяющие эти вершины, стягиваются в точку.

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

Существуют алгоритмы, в которых автоматически предусмотре­ ны меры против зацикливания.

§ 2.4. Задача планирования выпуска продукции пошивочного предприятия

Выпуск продукции пошивочного предприятия может быть опре­ делен из решения задачи линейного программирования. Решать ее будем симплекс-методом.

Задача. На предприятии планируется выпуск двух видов костю­ мов: мужских и женских. Для пошива женского костюма требуется 1 м шерсти, 2 м лавсана и 1 человеко-день трудозатрат; для по­ шива мужского костюма —3,5 м шерсти, 0,5 м лавсана и также 1 человеко-день трудозатрат. Всего для пошива этих костюмов име­ ется 350 м шерсти, 240 м лавсана и 150 человеко-дней трудозатрат. По плану количество костюмов не должно быть менее 110 и необ­ ходимо обеспечить прибыль не менее 1400 уел. ед. Требуется опре­ делить оптимальное число костюмов каждого вида, обеспечиваю­ щее максимальную прибыль, если прибыль от реализации женского костюма составляет 10 уел. ед., а от мужского — 20 уел. ед.

Р е ш е н и е . Пусть x i —число женских костюмов, а хг — муж­ ских. Прибыль от женских костюмов составляет 10xi уел. ед., а от мужских — 20x2 уел. ед., т. е. необходимо максимизировать целевую функцию

/(х ) = lOxi + 20x2-

Расход шерсти составляет xi +3,5хг (м), лавсана 2xj +0,5хг (м), трудовых ресурсов х\ + хг человеко-дней. Поэтому условия-огра­ ничения задачи имеют следующий вид:

xi + 3,5x2 ^ 350,

2х) + 0,5x2 ^ 240,

х\ +Х 2 ^ 150,

Xl +Х2 ^ 110,

lOxi + 20x2 ^ 1400,

X] ^ 0, Х2 ^ 0.

Первые три неравенства описывают ограничения по ресурсам, четвертое и пятое —соответственно плановое задание по общему числу костюмов и ограничение по прибыли.

Для решения задачи симплекс-методом сведем систему ограни­ чений к равенствам путем введения неотрицательных слабых пере­ менных хз, Х4, Х5, Хб ху (первое и второе ограничения умножим на 2, а пятое разделим на 10):

2 x i

+

7x2 +

х з

 

=

700,

4 x i

+

Х2

+ Х4

 

=

480,

Х 1 + Х 2

 

+ Х 5

=

150,

—xi —ху

+Хб

(2.4)

= —110,

—Xi —2X2

 

+ Х7 = —140,

X j^O , j = 1,..., 7.

Первым этапом в симплекс-методе является отыскание опор­ ного решения —допустимого базисного решения, с которого начи­ нается поиск оптимального решения. Чтобы решение было опор­ ным, базисные переменные должны быть неотрицательны, т. е. элементы 6*, г = 1, . . . , 5, столбца свободных членов должны быть

неотрицательны. В задачах небольшой размерности опорное ре­ шение легко определить. В данном случае в качестве базисных переменных можно взять хз, £4, х$, хв, xj, но такое базисное решение не является допустимым (опорным), так как 64 и bs отри­ цательны. Для поиска опорного решения необходимо сформировать дополнительную фиктивную целевую функцию <р(х), элементы ко­ торой равны сумме элементов строк, отражающих те ограничения, где bi < 0. В симплекс-таблице для ср(х) вводится и заполняется до­ полнительная строка, получаемая суммированием соответствующих элементов строк с отрицательными значениями bi (в данном случае 4-я и 5-я строки). Теперь с помощью симплекс-метода находит­ ся максимум фиктивной целевой функции <р(х). Если m a x ср(ж) = 0 и при этом все коэффициенты в строке для <р(х) будут нулевые, то базисное решение, соответствующее этой таблице, будет опор­ ным. Тогда, исключая строку для <р(х), переходим к отысканию оптимального решения исходной задачи. Если m a x <р(х) ф 0, то си­ стема ограничений задачи противоречива. Может иметь место слу­ чай, когда функция (р(х) достигла своего максимума, равного нулю, а среди элементов строки <р(х) существуют ненулевые элементы. Это означает, что соответствующие переменные, в столбцах кото­ рых есть ненулевые элементы, тождественно равны нулю и могут быть исключены из рассмотрения. Исходная таблица симплексметода для рассматриваемой задачи имеет вид, представленный в табл. 2.1.

Таблица 2.1

Исходная таблица

Базисные

Столбец

- Х\

—Хг

-ХЗ

—Х4

-XS

-Хб

—XI

Конт­

свободных

переменные

членов bi

 

 

 

 

 

 

 

роль

х 3

700

2

7

1

0

0

0

0

710

£4

480

4

1

0

1

0

0

0

486

х 5

150

1

1

0

0

1

0

0

153

Хб

-П О

- 1

- 1

0

0

0

1

0

-111

х 7

-1 4 0

- 1

E U

0

0

0

0

1

-1 4 2

0

- 1 0 -2 0

0

0

0

0

0

- 3 0

ф )

-2 5 0

- 2

- з

0

0

0

1

1

-2 5 3

Табл. 2.1. соответствует системе ограничений-равенств (2.4). Так, согласно этой таблице

О = 700 —2х\1x 2 яз> 0 = 480 —Ах\ — xi — Х4,

0 = —140 + xi + 2хг —xi,

/(х ) = - 10( - x i ) + (—20)(—х2) = Юх! + 20х2.

Последний контрольный столбец содержит сумму всех чисел в строке, и в процессе пересчетов сумма всех чисел в строках долж­ на быть равной числу в контрольном столбце.

Найдем максимум функции <р(х). Среди элементов строки <р(х) в столбцах —х ь ..., —хп есть отрицательные. Меньший отрицатель­ ный коэффициент, равный —3, указывает, что переменную х2 надо перевести в базисные. Чтобы определить, какую переменную из ба­ зисных перевести в свободные, рассмотрим положительные отно-

шения Oj к соответствующим элементам столбца —х2:

= 100,

480

ЛОА

150

-П О 11П

-140

w

7

=480,

j

= 150, ——j- = 110,

_■

= 70.

Минимальное зна­

чение, равное

70, указывает, что

переменную

ху надо

перевести

в свободные, а генеральным (разрешающим) элементом является —2 (обведен). Для получения следующей симплекс-таблицы применим метод полного исключения Жордана (табл. 2.2).

Разрешающую строку x j делим на —2 и заносим в табл. 2.2; столбец —Х2 заполняем нулями. Элементы столбцов —хз, —Х4, —xs,

Таблица 2.2

 

 

 

 

Первая итерация

 

 

 

Базис

bi

- X I

- Х 2

-хз

Х 4

- Х 5

- Х б

- Х 7

Контроль

х3

210

-3 /2

0

1

0

0

0

7/2

213

х4

410

7/2

0

0

1

0

0

1/2

415

х5

80

1/2

0

0

0

1

0

1/2

82

*6

-4 0

R 72]

0

0

0

0

1

-1 /2

-40

X ?

70

1/2

1

0

0

0

0

-1 /2

71

/(*)

1400

0

0

0

0

0

0

-10

1390

<р(х)

-4 0

-1 /2

0

0

0

0

1

-1 /2

-4 0

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

Продолжаем максимизировать ср(х). В базисные переменные можно перевести х\ или x j, так как они имеют равные отрицатель­ ные коэффициенты —1/2 в строке ф(ж). Переводим х\ в базисные переменные. По минимуму положительных отношений 6* к элемен­ там столбца —х\ выбираем элемент хв, который надо перевести в свободные; генеральным элементом является —1/2, значит, хв — разрешающая строка и —xi —разрешающий столбец. Запишем ре­ зультаты в виде табл. 2.3.

 

 

 

 

 

 

 

 

 

Таблица 2.3

 

 

 

 

Вторая итерация

 

 

 

Базис

Ы

- Х \

- Х 2

-х з

— Х 4

- Х 5

- Х в

— X I

Контроль

Хз

330

0

0

1

0

0

- 3

0

333

Х 4

130

0

0

0

1

0

7

- 3

135

х 5

40

0

0

0

0

1

1

0

42

Х \

80

1

0

0

0

0

- 2

1

80

Х 2

30

0

1

0

0

0

1

- 1

31

1400

0

0

0

0

0

0

- 1 0

1390

ф(х)

0

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

Из табл. 2.3 видно, что достигнут максимум фиктивной целе­ вой функции (ф(х) = 0) и все коэффициенты в строке ф(х) равны нулю, т. е. получено опорное решение X (,~ xi = 0, х\ = 80, Х2 = 30, хз = 330, Х4 = 130, xs = 40. Это решение не является оптимальным, так как в строке f(x ) имеется отрицательный коэффициент.

Продолжаем улучшать решение симплекс-методом. Строку ф(х) исключаем. Генеральным будет элемент, равный 5; x-j переводим в базис (вместо хт). Полученные результаты запишем в виде табл. 2.4, затем в виде табл. 2.5. В табл. 2.4 отмечен генеральный элемент.

 

 

 

 

Третья итерация

 

 

Таблица 2.4

 

 

 

 

 

 

 

Базис

 

- X I

- Х 2

- Х З

Х 4

Х5

- Х б

Х 7

Контроль

 

 

 

 

 

 

х 7

6 6

0

0

1/5

0

0

- 3 / 5

1

333/5

х 4

328

0

0

3 /5

1

0

26/5

0

1674/5

х 5

40

0

0

0

0

1

Ш

0

42

х {

14

1

0

- 1 / 5

0

0

- 7 / 5

0

67/5

х 2

96

0

1

1/5

0

0

- 2 / 5

0

488/5

т

2060

0

0

2

0

0

- 6

0

2056

 

 

 

Оптимальное решение

 

 

Таблица 2.5

 

 

 

 

 

 

Базис

Ьг

- Х \

Х2

- Х з

— Х4

-Х5

Хб

—XI

Контроль

 

 

 

 

 

х 7

90

0

0

1/5

0

3/5

0

1

459/5

х 4

120

0

0

3/5

1

-26/5

0

0

582/5

х6

40

0

0

0

0

1

1

0

42

Х\

70

1

0

-1 /5

0

7/5

0

0

361/5

х 2

80

0

1

1/5

0

-2 /5

0

0

404/5

fix)

2300

0

0

2

0

6

0

0

2308

В табл. 2.S все коэффициенты строки f i x ) неотрицательны, зна­ чит, максимум функции f ( x ) достигнут и получено соответствую­ щее ему решение: х\ = 70, ху = 80, f max(x) = 2300. Таким образом, максимальная прибыль составит 2300 уел. ед. при пошиве 70 жен­ ских и 80 мужских костюмов. Слабые переменные оказались рав­ ными жз = 0, Х4 = 120, xs = 0, Хб = 40, Ху = 90. Значения xj, Х4, х$ показывают остатки ресурсов: шерсть и трудовые ресурсы израсхо­ дованы полностью, лавсана осталось 120 м; значения хв и ху пока­ зывают, на сколько перевыполнены плановые задания по числу ко­ стюмов и по прибыли (учитываем, что ху = 90 • 10 = 900, уел. ед.).

Замечание. Обратим внимание на тот факт, что в рассмотрен­ ной задаче оптимальное решение мы устанавливали по наличию неотрицательных коэффициентов в строке максимизируемой целе­ вой функции, а в примере § 2.2 —по наличию неотрицательных коэффициентов в минимизируемой целевой функции. Здесь ни­ какого противоречия нет: в нашем примере переменные указаны

Соседние файлы в папке книги