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

Загребаев Методы матпрограммирования 2007

.pdf
Скачиваний:
124
Добавлен:
16.08.2013
Размер:
10.97 Mб
Скачать

Тогда начальная симплекс-таблица для основной задачи принимает вид табл. 1.25.

Таблица 1.25

Базис

Свободные члены

x1

x2

x3

x4

x5

x1

0

1

0

0

1

–4/3

 

 

 

 

 

 

 

x2

1/2

0

1

0

0

8/9

x3

1/2

0

0

1

1

–1/3

f (x)

5/2

0

0

0

–1

–1/3

 

 

 

 

 

 

 

В первой строке табл. 1.25 есть вырожденность. Используя сим- плекс-метод, вводим в базис переменную x4 , при этом перемен-

ную x1 исключаем из базиса. В результате табл. 1.25 приводится к табл. 1.25а.

Таблица 1.25а

Базис

Свободные члены

x1

x2

x3

x4

x5

x4

0

1

0

0

1

–4/3

x2

1/2

0

1

0

0

8/9

x3

1/2

–1

0

1

0

1

 

 

 

 

 

 

 

f (x)

5/2

1

0

0

0

5/3

 

 

 

 

 

 

 

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

В соответствии с симплекс-методом, выбирая разрешающий элемент в столбце x1 , табл. 1.26 приводим к табл. 1.26а.

51

Таблица 1.26

Базис

Свободные члены

x1

x2

x3

x4

x5

x4

2/3

–1/3

0

4/3

1

0

x2

1/18

8/9

1

–8/9

0

0

 

 

 

 

 

 

 

x5

1/2

–1

0

1

0

1

f (x)

10/3

–2/3

0

5/3

0

0

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.26а

 

 

 

 

 

 

 

Базис

Свободные члены

x1

x2

x3

x4

x5

x4

11/16

0

3/8

1

1

0

x1

1/16

1

9/8

–1

0

0

x5

9/16

0

9/8

–1

1

1

f (x)

27/8

0

3/4

1

0

0

 

 

 

 

 

 

 

Таким образом, как следует из последней таблицы, оптималь-

ным решением исходной задачи будут:

f (x )= 27 8 .

x1 =1 16, x2 = 0,

x3 = 0,

x4 =11 16, x5 = 9 16,

Пример 3. Найти max f (x) = 2x1 + x3 x4 + x5

при ограничени-

ях:

 

 

 

 

 

 

 

 

 

 

x + 2x

2

 

+ x

3

= 2;

 

 

1

 

 

 

 

 

 

 

3x1 + 5x2 + x3 + x4 + 2x5 =14;

 

x

x

2

+ x

5

=1.

 

1

 

 

 

 

 

 

 

 

Запишем вспомогательную задачу:

найти min {Φ( y) = y1 + y2 + y3} при ограничениях:

y = 2

(x +

2x

2

+ x

3

);

1

 

1

 

 

 

 

 

 

y2

=14 (3x1 + 5x2 + x3 + x4 + 2x5 );

y

3

=1

(x x

2

+ x

5

).

 

 

 

 

1

 

 

 

 

 

 

52

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

Φ(x )=17 (3x1 + 6x2 + 2x3 + x4 + 3x5 ) .

Будем искать max {− Φ(x)}.

Исходная симплекс-таблица имеет вид табл. 1.27.

Таблица 1.27

Базис

Свободные члены

x1

x2

x3

x4

x5

y1

y2

y5

y1

2

–1

2

1

0

0

1

0

0

 

 

 

 

 

 

 

 

 

 

y2

14

3

5

1

1

2

0

1

0

y3

1

1

–1

0

0

1

0

0

1

−Φ

-17

–3

-6

–2

–1

–3

0

0

0

 

 

 

 

 

 

 

 

 

 

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

(табл. 1.27а – 1.27.в).

Таблица 1.27а

Базис

Свободные члены

x1

x2

x3

x4

x5

y1

y2

y5

1

–1/2

1

1/2

0

0

1/2

0

0

 

 

 

 

 

 

 

 

 

 

 

9

11/2

0

–3/2

1

2

–5/2

1

0

 

 

 

 

 

 

 

 

 

 

 

2

1/2

0

1/2

0

1

1/2

0

1

 

 

 

 

 

 

 

 

 

 

 

–11

–6

0

1

–1

–3

3

0

0

 

 

 

 

 

 

 

 

 

 

 

Если в табл. 1.27б взять элемент 7/11 в качестве разрешающего, то процесс сойдется быстрее и окончательная симплекс-таблица примет вид табл. 1.27в.

53

Таблица 1.27б

Базис

Свободные

x1

x2

x3

x4

x5

y1

y2

y5

 

члены

 

 

 

 

 

 

 

 

x2

20/11

0

1

4/11

1/11

2/11

3/11

1/11

0

x1

18/11

1

0

–3/11

2/11

4/11

–5/11

2/11

0

y3

13/11

0

0

7/11

–1/11

9/11

8/11

–1/11

1

 

 

 

 

 

 

 

 

 

 

−Φ

–13/11

0

0

–7/11

1/11

–9/11

3/11

12/11

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.27в

 

 

 

 

 

 

 

 

 

 

Базис

Свободные

x1

x2

x3

x4

x5

y1

y2

y5

 

члены

 

 

 

 

 

 

 

 

x2

8/7

0

1

0

1/7

–2/7

–-1/7

1/7

–4/7

x1

15/7

1

0

0

1/7

5/7

1/7

1/7

3/7

x3

13/7

0

0

1

–1/7

9/7

8/7

–1/7

11/7

−Φ

0

0

0

0

0

0

1

1

1

 

 

 

 

 

 

 

 

 

 

В результате найдено оптимальное решение вспомогательной задачи.

Поскольку min Φ = 0 и y1 = y2 = y3 = 0 , то начальный базис для основной задачи запишется следующим образом:

 

 

 

 

8

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

x

2

=

 

 

 

 

 

x

4

 

 

 

x

5

;

 

 

 

 

 

 

 

 

 

 

 

 

7

 

7

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

1

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

=

 

 

 

 

 

x

4

+

 

 

 

 

x

5

;

 

 

 

 

 

 

 

 

1

 

7

 

7

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

1

 

 

 

 

 

 

9

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

3

=

 

 

 

 

 

 

 

 

x

4

+

 

 

 

 

 

x

5

.

7

7

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выразим целевую функцию через x4 и x5 : f (x) = 2x1 + x3 x4 + x5 =

= 307 72 x4 107 x5 + 137 + 17 x4 79 x5 x4 + x5 = 437 87 x4 127 x5 .

54

С учетом полученного результата составим исходную симплекстаблицу для основной задачи (табл. 1.28).

Таблица 1.28

Базис

Свободные члены

x1

x2

x3

x4

x5

x2

8/7

0

1

0

1/7

–2/7

x1

15/7

1

0

0

1/7

5/7

x3

13/7

0

0

1

–1/7

9/7

f (x )

43/7

0

0

0

8/7

12/7

 

 

 

 

 

 

 

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

x =

15

,

x

2

=

8

,

x

3

=

13

,

x

4

= 0,

x

5

= 0, f (x )=

43

.

 

 

 

 

1

7

 

 

7

 

 

7

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5. Двойственные задачи линейного программирования

1.5.1. Основные положения

Понятие двойственности в задачах линейного программирования расширяет границы применения симплексных алгоритмов.

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

Задача 1 (исходная). Найти

n

max f (x) = c j x j + c0

j=1

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

n

aij x j bi , i =1, m; j=1

x j 0 , j =1, n.

55

Сформулируем другую задачу, которую назовем двойственной по отношению к исходной или задачей два:

Задача 2 (двойственная). Найти

m

min ϕ( y) = bi yi + c0

i=1

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

m

aij yi c j , j =1, n;

i=1

yi 0 , i =1, m.

В матричном виде эти задачи можно записать так. Задача 1. Найти max f (x) = c, x + c0 при ограничениях

Ax b ; x 0 .

Задача 2. Найти min ϕ( y) = b , y + c0 при ограничениях

Aт y c; y 0.

Итак, при переходе от исходной задачи к соответствующей двойственной задаче производят следующие преобразования:

1)заменяют максимизацию целевой функции минимизацией;

2)смысл неравенств – ограничений меняется на противоположный. Если в исходной задаче неравенство меньше или равно нулю, то в двойственной задаче – больше или равно нулю;

3)число переменных x в исходной задаче равно числу ограничений в двойственной, и наоборот;

4)матрица A системы ограничений исходной задачи транспонируется;

5)векторы b и c меняются местами, т.е. коэффициенты целевой функции исходной задачи (c ) становятся столбцом свободных

членов системы ограничений двойственной задачи, а столбец свободных членов системы ограничений исходной задачи (b ) становится коэффициентами целевой функции двойственной задачи.

56

Пример. Исходная задача:

найти max f (x) =12 + 8x1 + 36x2 + 4x3 +12x4 при ограничениях

88x1 20x2 + 32x3 +14x4 12 ;16x1 + 4x2 + 48x3 + 4x4 10 ;24x1 10x2 + 6x3 + 8x4 44 ;

xi 0, i =1,4 .

Двойственная задача:

найти min ϕ( y) =12 +12 y1 +10 y2 + 44 y3 при ограничениях

88y

16 y

2

24 y

3

8 ;

 

 

1

 

 

 

 

 

 

 

20 y1 + 4 y2 10 y3 36 ;

 

 

 

+ 48y2 + 6 y3 4 ;

32 y1

14 y

+ 4 y

2

+ 8y

3

12 ;

 

 

1

 

 

 

 

 

 

 

y

 

0, j =

 

.

 

 

 

 

j

1,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

Лемма. Если x 0 – произвольное допустимое решение задачи 1, а y 0 – произвольное допустимое решение задачи 2, то справедливо

соотношение f (x 0 ) ≤ ϕ( y 0 ) . Если для x 0 и

y 0

значения целевых

функций совпадают,

т.е. f (x 0 ) = ϕ( y 0 ) , то

x 0

– оптимальное ре-

шение задачи 1, а y 0

– оптимальное решение задачи 2.

Доказательство.

1. Так как x 0 является допустимым решением

задачи 1, то имеет место система неравенств

 

 

n

 

 

 

aij x0j

bi , i =

1, m

.

j=1

 

 

 

57

Умножим i-е неравенство на i-ю компоненту вектора y 0 , т.е. на

yi0 (так как yi0 0 ,

то знак

неравенства не

изменится) и

просуммируем по всем i.

 

 

 

 

 

 

В результате получим:

 

 

 

 

 

m

n

0j yi0

m

 

∑∑aij x

bi yi0 .

 

i=1 j=1

 

i=1

 

Аналогично, для вектора y 0

справедливо неравенство

m

 

 

 

 

 

 

aij yi0 c j , j =

1, n

.

 

i=1

 

 

 

 

 

 

Умножим j-е неравенство на x0j

0 и просуммируем по всем j:

n

m

 

n

 

∑∑aij yi0 x0j

c j x0j .

 

j=1i=1

 

j=1

 

Объединяя полученные неравенства, получим

 

n

m n

 

m

 

c j x0j

∑∑aij x0j yi0 bi yi0 .

 

j=1

i=1 j=1

 

i=1

 

Отсюда

 

 

 

 

 

 

n

 

 

m

 

c j x0j + с0

bi yi0 + с0 ,

 

j=1

 

 

i=1

 

т.е. f (x 0 ) ≤ ϕ( y 0 ) .

 

 

 

 

 

 

2. Покажем, что если

f (x 0 ) = ϕ( y 0 ) , то x 0 и y 0

– оптимальные

решения.

а) Предположим противное, т.е. что существует такая точка x,

 

f (x

0

)

 

 

0

) ,

что f (x ) >

 

, но в этом случае получим, что f (x ) > ϕ( y

 

что противоречит доказанному в пункте 1.

 

y, что

б) Аналогично,

предположим, что найдется такая точка

 

0

) ,

но

0

) , что

ϕ( y ) < ϕ( y

 

в этом случае получим ϕ( y ) < f (x

 

противоречит доказанному условию.

58

Первая теорема двойственности. Если одна из задач (1-я или

2-я) имеет оптимальное решение, то и другая также имеет оптимальное решение, причем их оптимумы совпадают, т.е. max f (x )= min ϕ(y).

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

Вторая теорема двойственности (теорема о дополняющей нежесткости). Для того чтобы допустимые векторы x* и y* были оптимальными, необходимо выполнение следующих условий:

 

n

*

 

 

 

 

 

 

*

 

 

= 0 ,

i =1, m;

yi

aij x j

bi

j=1

 

 

 

 

 

 

 

 

m

*

 

 

 

 

 

 

 

 

 

 

 

*

 

 

= 0 ,

j =1, n.

x j

aij yi

c j

i=1

 

 

 

 

 

 

 

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

Или так, если i-я компонента оптимального решения двойственной задачи положительна, то i-е ограничение исходной задачи выполняется как строгое равенство.

Исходя из рассмотренных свойств взаимно двойственных задач можно сформулировать правило решения двойственной задачи.

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

Отметим, что коэффициенты при остальных x j в строке целе-

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

m

величине aij yi* c j .

i=1

59

1.5.2. Двойственный симплекс-алгоритм

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

Например, если привести двойственную задачу последнего при-

мера к стандартному виду, получим:

 

 

 

 

 

найти max {− ϕ( y)) = −12 (12 y1 +10 y2 + 44 y3} при ограниче-

ниях:

 

 

 

 

 

 

 

 

 

 

 

88y1 +16 y2 + 24 y3 + y4 = −8 ;

 

4 y2 +10 y3 + y5 = −36 ;

20 y1

32 y

48y

2

6 y

3

+ y

6

= −4 ;

 

1

 

 

 

 

 

 

 

14 y 4 y

2

8y

3

+ y

7

= −12 .

 

1

 

 

 

 

 

 

 

Начальный базис для данной задачи имеет вид:

y4 = −8 (88y1 +16 y2 + 24 y3 ) ; y5 = −36 (20 y1 4 y2 +10 y3 ) ; y6 = −4 (32 y1 48y2 6 y3 ) ; y7 = −4 (14 y1 4 y2 8y3 ) .

Этот базис будет недопустимым, так как βi < 0 , т.е. свободные

члены в системе ограничений – отрицательны.

Подобные задачи могут возникать не только при решении двойственных задач, но и в самом общем случае.

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

Алгоритм двойственного симплекс-метода можно получить, проведя рассуждения, аналогичные выводу простого симплексметода. Все пункты рассматриваемого алгоритма такие же, как у простого симплекс-метода, но имеется ряд отличий (предполагается, что решается задача максимизации):

60