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

Семестровая 1 (Методы оптимальных решений) / Методы оптимальных решений учебное пособие

.pdf
Скачиваний:
1245
Добавлен:
19.04.2015
Размер:
6.01 Mб
Скачать

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

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

находя min{5 / 4;1 / 1} =1 / 1, определяем, что в качестве разрешающего

должно быть взято второе уравнение системы (3.2.19). Исключаем неизвестную х5 из всех уравнений вспомогательной системы (3.2.22), кроме

второго уравнения, по обычным правилам метода Жордана —

Гаусса. Не-

известная x5 становится базисной, x2

свободной. Система (3.2.22) пре-

образуется к следующему виду:

 

 

 

 

 

 

x1 − 4x2 + 5x3 −14x4

 

=1,

 

 

x2 x3

+ 3x4

+ x5 =1,

(3.2.23)

 

z

− 7x + 9x − 22x

 

= −4.

 

 

2

3

4

 

 

Определяемое первыми двумя уравнениями этой системы неотрицательное базисное решение

x1 =1, x2 = 0, x3 = 0, x4 = 0, x5 =1,

является одним из допустимых решений задачи линейного программирования (3.2.18)—(3.2.20), которому отвечает значение целевой функции

z = −4 − 7 x2 + 9x3 − 22x4 .

Это решение также не является оптимальным, и целевая функция будет возрастать при возрастании x3 , если положить x2 = x4 = 0 . Принима-

ем неизвестную x3 за разрешающую и подвергаем первые два уравнения системы (3.2.23) симплексному преобразованию. Так как разрешающим уравнением будет первое, то исключим неизвестную x3 из всех уравнений

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

Полностью процесс решения иллюстрируется табл. 3.2.3.

В четвертой симплексной таблице среди

j нет ни одного отрица-

тельного. Поэтому четвертое базисное решение

 

x1 = 0, x2 = 0, x3 =17, x4 = 6,

x5 = 0

является оптимальным, а наибольшее значение целевой функции равно 17.

91

Т а б л и ц а 3.2.3

cɶ

Базис

h

–3

4

–5

17

–1

 

 

 

 

 

x1

x2

x3

x4

x5

 

 

 

 

 

 

 

 

 

 

 

–3

x1

5

1

0

1

–2

4

 

x2

 

 

 

 

 

 

4

1

0

1

–1

3

1

 

 

 

 

 

 

 

 

 

z0 z

11z

0

0

–2

1

–7

–3

x1

1

1

–4

5

–14

0

 

x5

 

 

 

 

 

 

–1

1

0

1

–1

3

1

 

 

 

 

 

 

 

 

 

z0 z

–4 – z

0

7

–9

22

0

–5

x3

1/5

1/5

–4/5

1

–14/5

0

 

x5

 

 

 

 

 

 

–1

6/5

1/5

1/5

0

1/5

1

 

 

 

 

 

 

 

 

 

z0 z

–11/5 – z

9/5

–1/5

0

–16/5

0

–5

x3

17

3

2

1

0

14

17

x4

6

1

1

0

1

1

 

 

 

 

 

 

 

 

 

z0 z

17 – z

5

3

0

0

16

§ 3.3. МЕТОД ИСКУССТВЕННОГО БАЗИСА

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

Займемся исследованием такой задачи, записав ее в виде основной задачи линейного программирования. Пусть требуется найти максимум функции

z = c1x1 + c2 x2 ++ cn xn max

(3.3.1)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a x + a x

2

 

+ + a

 

x

n

 

= b ,

 

 

11 1

12

 

1n

 

 

 

1

 

a21x1 + a22 x2

 

+ + a2n xn

= b2 ,

(3.3.2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

x + a

m 2

x

2

+ + a

mn

x

n

= b ,

 

 

 

m1 1

 

 

 

 

 

m

 

 

 

x j

0,

 

 

j = 1, 2, , n .

(3.3.3)

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

92

ственной неотрицательной неизвестной и образуем следующую систему m линейных уравнений с n + m неизвестными:

a11x1 + a12 x2 + + a1n xn + sn+1

 

 

= b1,

 

a

x + a

 

x + + a

x

+ s

n+2

 

= b ,

 

 

21 1

22 2

 

2n n

 

 

2

(3.3.4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

x + a

x

+ + a

x

 

+ s

n+m

= b ,

 

 

m1 1

 

m 2 2

mn n

 

 

m

 

где

 

 

j =1, 2, , n,

 

i =1, 2, , m.

 

xj 0,

 

sn+i 0,

(3.3.5)

Очевидно, в системе (3.3.4) неизвестные sn+1 , sn+2 , , sn+m образуют базисный набор, который принято называть искусственным базисом.

Кроме того, образуем линейную функцию

 

t = −sn+1 sn+2 − − sn+m

(3.3.6)

и сформулируем следующую вспомогательную задачу линейного программирования: максимизировать линейную функцию (3.3.6) при линейных ограничениях (3.3.4) и (3.3.5).

Для решения вспомогательной задачи (3.3.4)—(3.3.6) мы можем применить симплексный метод, так как система (3.3.4) имеет предпочитаемый вид, искусственные неизвестные sn+1 , sn+2 , , sn+m являются базисны-

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

КРИТЕРИЙ НЕРАЗРЕШИМОСТИ ИСХОДНОЙ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ. Если

максимальное значение функции t окажется строго меньше нуля, то исходная задача (3.3.1)—(3.3.3) не имеет решения ввиду противоречивости

условий (3.3.2)—(3.3.3).

Доказательство. Действительно, если допустить, что система уравнений (3.3.2) имеет неотрицательное решение (α1, α2 ,, αn ), то вспомогательная задача будет иметь решение (α1, α2 ,n , 0, 0,, 0) , для которого t = 0 , что противоречит предположению.

93

Если же tmax = 0, то оптимальное решение задачи (3.3.4)—(3.3.6) должно иметь вид (α1, α2 ,n , 0, 0,, 0) , так как из условия t = 0 следует sn+1 = sn+2 == sn+m = 0. Первые n компонент этого решения образуют некоторое неотрицательное решение (α1, α2 ,, αn ) системы ограничений (3.3.2) исходной задачи (3.3.1)—(3.3.3), притом оно является базисным по построению, т. е. среди компонент α1, α2 ,, αn не более m отличных от

нуля. В этом случае в полученной предпочитаемой форме системы (3.3.4) мы отбрасываем все искусственные неизвестные и, рассматривая результат как предпочитаемый эквивалент исходной системы уравнений (3.3.2), приступаем к решению исходной задачи (3.3.1)—(3.3.3).

Последние рассуждения справедливы в предположении, что рассматривается невырожденная задача. Если же задача является вырожденной, то может случиться, что tmax = 0, но не все искусственные неизвестные

выведены из базиса. Тогда следует учесть, что правая часть уравнения, содержащего искусственную базисную неизвестную, должна быть равна нулю, и потому мы можем либо отбросить это уравнение, если оно содержит только искусственные неизвестные sn+1, sn+1,, sn+m , либо, если оно содер-

жит хотя бы одну из исходных неизвестных x1, x2 ,, xn , принять это урав-

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

На практике вместо последовательной минимизации двух функций t и z часто рассматривают одну целевую функцию

w = c1x1 + c2 x2 ++cn xn M (sn+1 + sn+1 ++ sn+m ) ,

(3.3.7)

где число М предполагается положительным и бó льшим любого числа, с которым его придется сравнивать, и решают задачу максимизации целевой функции (3.3.7) при условиях (3.3.4) и (3.3.5).

ПРИМЕР 3.3.1 (ЗАДАЧА О ДИЕТЕ). Симпатичная девушка узнала из дамского журнала, что для того чтобы волосы стали более шелковистыми, организм должен получать ежедневно не менее 40 г питательного вещества А, не менее 4 г питательного вещества Б и не менее 30 г питательного вещества В. Девушка знает, что в 1 кг яблок содержится 10 г вещества Б и 50 г вещества В, а в 100 г огурцов содержится 40 г вещества А и по 20 г веществ Б и В. Цена яблок — 60 руб. за 1 кг, цена огурцов — 50 руб. за 1 кг. Требуется помочь девушке составить рацион, помогающий увеличить шелковистость волос и при этом имеющий наименьшую стоимость.

Решение. Обозначим x1 и x2 массу приобретаемых девушкой яблок и огурцов, тогда общее количество получаемого в рационе питательного вещества А будет равно 40x2 г, количество вещества Б в рационе составит

94

10x1 + 20x2 г, а количество вещества В — 50x1 + 20x2 г. Общая стоимость приобретаемых продуктов составит при этом z = 60x1 + 50x2 . Таким образом, получаем следующую задачу линейного программирования:

 

z = 60x1 + 50x2 → min,

 

 

 

 

40x2 40,

 

 

 

 

 

+ 20x2 4,

 

 

 

10x1

 

 

 

50x + 20x 30,

 

 

 

 

1

 

2

 

 

 

 

x1 0,

x2 0.

 

Для превращения системы ограничений в систему уравнений необ-

ходимо ввести балансовые неизвестные x3, x4 , x5 :

z = 60x1 + 50x2

 

 

→ min,

 

 

40x2 x3

 

= 40,

 

 

+ 20x2

 

x4

= 4,

10x1

 

50x + 20x

 

x

= 30,

 

1

 

2

 

5

 

 

x1 0, x2 0, x3 0, x4 0, x5 0.

 

Вновь введенные переменные

x3, x4 , x5 нельзя считать базисными,

поскольку они соответствуют базисному решению с

о т р и ц а т е л ь -

н ы м и к о м п о н е н т а м и.

 

 

 

 

Поэтому введем искусственные базисные неизвестные s1, s2 , s3 и

рассмотрим задачу

 

 

 

 

 

z = −60x1 − 50x2

 

 

Ms1 Ms2 Ms3 → max,

 

 

40x2 x3

 

 

+ s1

= 40,

 

 

 

x4

+ s2

= 4,

10x1 + 20x2

50x +

20x

 

x

+ s

= 30,

 

1

2

 

5

3

 

x1 0, x2 0, x3 0, x4 0, x5 0, s1 0, s2 0, s3 0.

Процесс решения иллюстрируется табл. 3.3.1. В пятой симплексной

таблице среди

j нет ни одного отрицательного (поскольку M больше лю-

бого положительного числа). Поэтому пятое базисное решение

x1 =1/ 5,

x2 =1, x3 = 0,

x4 =18,

x5 = 0, s1 = 0, s2 = 0, s3 = 0

является оптимальным.

Таким образом, оптимальный рацион состоит из 200 г яблок и 1 кг огурцов.

95

Т а б л и ц а 3.3.1

cɶ

Базис

h

–60

–50

0

0

0

M

M

M

x1

x2

x3

x4

x5

s1

s2

s3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M

s1

40

0

40

–1

0

0

1

0

0

 

s2

 

 

 

 

 

 

 

 

 

M

4

10

20

0

–1

0

0

1

0

M

s3

 

 

 

 

 

 

 

 

 

30

50

20

0

0

–1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

z0 z

74M z

–60M + 60 –80M + 50

M

M

M

0

0

0

M

s1

32

–20

0

–1

2

0

1

–2

0

–50

x2

1/5

1/2

1

0

–1/20

0

0

1/20

0

M

s3

26

40

0

0

1

–1

0

–1

1

 

 

 

 

 

 

 

 

 

 

 

 

z0 z

58M 10 z

–20M + 35

0

M

–3M + 5/2

M

0

4M – 5/2

0

M

s1

40

0

40

–1

0

0

1

0

0

–60

x1

2/5

1

2

0

–1/10

0

0

1/10

0

M

s3

10

0

-80

0

5

–1

0

–5

1

 

 

 

 

 

 

 

 

 

z0 z

50M + 24 z

0

40M – 70 M –5M + 6 M

0

6M – 6

0

M

s1

40

0

40

–1

0

0

1

0

0

–60

x1

0,6

1

2/5

0

0

–1/50

0

0

1/50

0

x4

2

0

–16

0

1

–1/5

0

–1

1/5

 

 

 

 

 

 

 

 

 

 

 

 

z0 z

40M 36 z

0

–40M + 26

M

0

6/5

0

M

M – 6/5

–50

x2

1

0

1

–1/40

0

0

1/40

0

0

–60

x1

1/5

1

0

1/100

0

–1/50

–1/100

0

1/50

0

x4

18

0

0

–2/5

1

–1/5

2/5

–1

1/5

 

 

 

 

 

 

 

 

 

 

 

 

z0 z

62 z

0

0

13/20

0

6/5

M – 13/20

M

M – 6/5

§ 3.4. ТЕОРИЯ ДВОЙСТВЕННОСТИ ВЛИНЕЙНОМ ПРОГРАММИРОВАНИИ

З а д а ч а о п т и м а л ь н о г о п л а н и р о в а н и я п р о и з в о д - с т в а состоит в отыскании такого плана выпуска продукции

x

 

 

1

 

 

x = x2

 

,

 

 

 

 

 

 

xn

 

 

который позволяет получить максимальную выручку

n

 

z = c j x j max

(3.4.1)

j=1

при ограничениях по имеющимся у предприятия ресурсам

96

n

 

 

aij x j bi ,

i = 1, 2, , m ,

(3.4.2)

j=1

 

 

причем

 

 

x j 0,

j = 1, 2, , n .

(3.4.3)

Здесь c j — это цены продуктов, bi — запасы ресурсов, а каждый из элементов aij матрицы A равен расходу i-го ресурса на производство еди-

ницы j-го продукта.

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

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

Как же установить эти расчетные оценки?

Обозначим через yi оценку единицы i-го вида ресурса, y = ( y1 y2 ym )

вектор оценок ресурсов.

На производство единицы продукции j-го вида мы должны затратить различные виды ресурсов в количествах a1 j , a2 j , , amj , и их суммар-

ная оценка будет равна a1 j y1 + a2 j y2 + + amj ym . Очевидно, что суммарная

расчетная оценка тех ресурсов, из которых можно изготовить единицу продукции j-го вида, должна быть не меньше отпускной цены данной продукции:

m

aij yi c j , j = 1, 2, , n .

i=1

97

При этом, чтобы расчетные оценки были объективными, целесообразно минимизировать суммарную оценку всех ресурсов b1 y1 +b2 y2 ++bm ym . Кроме того, естественно считать расчетные оценки

неотрицательными.

Таким образом, мы пришли к новой задаче линейного программи-

рования: найти вектор оценок ресурсов y( y1 y2 ym ) , минимизирующий суммарную оценку всех ресурсов

n

 

 

f = bi yi

→ min

(3.4.4)

j=1

 

 

при условиях

 

 

m

 

 

aij yi c j ,

j =1, 2, , n ,

(3.4.5)

i=1

 

 

где

 

 

yi 0, i =1, 2,, m .

(3.4.6)

Полученную задачу линейного программирования (3.4.4)—(3.4.6)

назовем двойственной задачей к задаче (3.4.1)—(3.4.3).

Расчетные оценки

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

двойственной оценкой i-го ресурса.

Пусть дана задача линейного программирования с максимизируемой целевой функцией и ограничениями — неравенствами вида « » (с правыми частями произвольного знака, не обязательно неотрицательными). Двойственной задачей для такой задачи линейного программирования называется задача линейного программирования, которая получается из исходной задачи следующим образом:

каждому ограничению-неравенству исходной задачи ставится в соответствие переменная двойственной задачи, принимающая неотрицательные значения;

матрица коэффициентов при неизвестных транспонируется;

правые части ограничений переходят в коэффициенты целевой функции;

коэффициенты целевой функции переходят в правые части ограничений;

знаки неравенств меняются на противоположные (т. е. на « »);

от максимизации целевой функции переходят к минимизации.

Говорят, что задачи линейного программирования (3.4.1)—(3.4.3) и (3.4.4)—(3.4.6) образуют симметричную пару.

98

Если система ограничений исходной задачи содержит неравенство вида « », его перед построением двойственной задачи следует умножить на –1, точно так же следует поступить с целевой функцией исходной задачи, если она минимизируется.

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

 

n

 

 

z = c j x j → max,

 

j=1

 

 

n

 

 

aij x j bi ,

i =1, 2, , k,

 

j=1

 

 

n

 

 

aij x j = bi , i = k +1, k + 2, , m,

 

j=1

 

 

x j 0,

j =1, 2, , l,

x j

любого знака,

j = l +1, l + 2, , n;

 

m

 

 

f = bi yi → min,

 

i=1

 

 

m

 

 

aij yi c j ,

j =1, 2, , l,

 

i=1

 

 

m

 

 

aij yi = c j ,

j = l +1, l + 2, , n,

 

i=1

 

 

yi 0,

i =1, 2, , k,

yi

любого знака,

i = k +1, k + 2, , m.

Такая пара двойственных задач называется несимметричной, в от-

личие от симметричной пары (3.4.1)—(3.4.3) и (3.4.4)—(3.4.6).

ОСНОВНОЕ НЕРАВЕНСТВО ТЕОРИИ ДВОЙСТВЕННОСТИ. Для любых допустимых

решений x и y прямой и двойственной задач линейного программирования справедливо неравенство

n

m

cx = c j x j bi yi = yb .

j=1

i=1

Основное неравенство справедливо как для симметричной, так и для несимметричной пары двойственных задач.

99

Доказательство. В случае симметричной пары двойственных задач, учитывая соотношения (3.4.5) и (3.4.2), получаем, что

n

n

m

 

m

n

 

m

cx = c j x j ∑ ∑aij

yi x j

= ∑ ∑aij xi yi bi yi = yb .

j=1

j=1

i=1

 

i=1

j=1

 

i=1

Доказательство основного неравенства теории двойственности для случая несимметричной пары двойственных задач оставляем читателю в качестве упражнения.

МАЛАЯ ТЕОРЕМА ДВОЙСТВЕННОСТИ. Для существования оптимального решения любой из задач двойственной пары необходимо и достаточно существование допустимого решения для каждой из них.

Доказательство. Пусть y — произвольное допустимое решение двойственной задачи. Тогда любое допустимое решение x исходной задачи удовлетворяет неравенству (3.4.1), откуда следует, что линейная функция

z = c1x1 + c2 x2 + + cn xn

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

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

иэто также обнаруживается на некотором шаге симплексного алгоритма.

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

Аналогичными рассуждениями доказывается разрешимость двойственной задачи. Малая теорема полностью доказана.

ДОСТАТОЧНОЕ УСЛОВИЕ ОПТИМАЛЬНОСТИ РЕШЕНИЙ ПАРЫ ВЗАИМНО ДВОЙ-

СТВЕННЫХ ЗАДАЧ. Если для некоторых допустимых решений x и y пары двойственных задач выполняется равенство

n

m

c j x j = bi yi ,

j=1

i=1

то векторы x и y являются оптимальными решениями соответствую-

щих задач линейного программирования.

Доказательство. Действительно, согласно малой теореме двойственности, любое решение исходной задачи удовлетворяет условию

n

m

c j x j bi yi ,

j=1

i=1

100