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

Мат_модели

.pdf
Скачиваний:
13
Добавлен:
13.03.2015
Размер:
734.08 Кб
Скачать

составить двойственную.

Решение. Заметим сразу, что x1 1 будем считать нетривиальным ограничением, поэтому задачу можно переписать в виде

z = 4x1 5x2 +8x3 10x4 + x5 +14 min

x

2x

2

+7x

x

5

37,

1

 

 

3

 

 

 

4x1 7x2 +4x4 9x5 ≥ −28,

2x +6x

3

4x

4

+ x = 48,

 

1

 

 

 

 

5

x

1,

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

0, x3 0, x4 0.

x2

Выпишем расширенную матрицу полученной задачи

 

1 2 7

0

1

 

 

37

 

 

 

 

 

 

7

0

4

9

 

 

 

 

 

4

 

 

28

~

 

2

0

6

4 1

 

=

 

48

 

A =

1

0

0

0

0

 

 

1

 

 

 

 

 

 

 

 

~

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

8

10

1

 

 

 

14

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min

 

 

 

 

 

 

 

 

 

 

Составляем расширенную матрицу двойственной задачи согласно общим правилам и получаем

 

1

4

2

1

 

=

 

4

 

 

 

 

 

 

 

 

 

7

0

0

 

 

5

 

 

 

2

 

 

 

 

~

 

7

0

6

0

 

 

8

 

 

 

 

 

 

.

A′ =

0

4

4

0

 

 

10

 

 

1

9

1

0

 

=

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

37

28

48

1

 

 

 

14

 

 

 

 

 

 

max

 

 

 

 

 

 

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

T = 37 y1 28y2 +48y3 + y4 +14 max

y

4 y

2

+

2 y

3

+ y

4

=

4,

 

 

1

 

 

 

 

 

 

 

 

 

 

 

2 y 7 y

2

≤ −5, 7 y

+6 y

3

8,

 

 

1

 

 

 

 

 

 

 

 

1

 

 

4 y2

4 y3 ≤ −10,

 

 

 

 

 

y

9 y

2

y

3

=1,

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0, y2 0, y4 0.

 

 

 

y1

 

 

 

30

Основная связь между двойственными задачами изложена в следующих утверждениях.

Теорема 1 (основное неравенство для двойственных задач). Для всех допустимых решений X ,Y пары двойственных задач имеет место неравенство z(X )T (Y ).

Теорема 2 (первая теорема двойственности). Если исходная задача имеет оптимальное решение, то и двойственная ей имеет оптимальное решение. При этом оптимальные значения обеих целевых функций равны, то есть zmax =Tmin .

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

Задачи для самостоятельного решения

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

z = 2x1 7x3 + 6x4 40 max

x

3x

+ 4x

 

= 7,

1

2

 

3

 

32. 3x1 8x2 + 2x4 97,

17x1 +3x2 5x4 15,

x

1,

 

 

 

 

1

 

 

 

 

 

 

0, x3 0.

 

x2

 

z = −4x1 3x3 +12x4 x5 7 max

5x +3x +

8x 5,

 

1

 

2

 

5

34. 2x1 6x2 + 7x3 4x5 70,

3x1 + 2x2 4x3 + 6x4 12,

x

2, x

 

7,

 

2

 

4

 

 

 

 

0, x3 0.

 

 

x1

 

 

z = −x1 +3x2 +12x3 x4 +5 min

7x +

2x

6x

≥ −25,

 

 

 

 

1

2

4

 

 

33. 4x1 7x3 +13x4 8x5 =16,

 

7x +

4x

+3x

46x

15,

 

 

1

3

4

5

 

x

 

1,

 

 

 

 

 

5

 

 

 

 

 

 

 

0, x2 0, x4 0.

 

x1

 

z = 23x1 + 4x2 7x3 + 4x5 28 min

4x

3x +

14x 34,

 

 

 

1

3

5

 

 

35. x1 x2 x3 +18x5 5,

 

x

 

3,

 

 

 

 

 

4

 

 

0, x 0.

 

x

0, x

 

 

1

 

 

2

5

 

 

31

§2. Решение двойственных задач с помощью теоремы равновесия.

Сформулируем теперь теорему равновесия (вторую теорему двойственности), которая позволяет не только установить связь между оптимальными значениями целевых функций, но и между точками, в которых

эти значения достигаются.

 

 

 

 

 

 

 

 

 

Теорема

3

(теорема

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

решения

X = (x1 , x2 ,K, xn )

и

Y = (y1 , y2 ,K, ym ) пары

двойственных задач

связаны

между собой равенствами

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

aik

yi

ck

= 0, k =1,K, n,

 

 

 

 

xk

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

bi

 

 

 

 

 

 

aik xk

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

 

 

 

k =1

 

 

 

 

 

 

 

Пример 2. Решить задачу

 

 

 

 

 

 

 

 

 

z = 22x1 +91x2 37x3 +19 min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10x1 +7x2 +3x3 1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8x1 +2x2 10x3 22,

 

 

 

x

 

0, x

2

0, x 0.

 

 

 

1

 

 

 

 

3

 

 

с помощью теоремы равновесия.

Решение. Составим сначала задачу, двойственную данной. Выпишем расширенную матрицу

 

10

7

3

 

 

1

 

 

 

 

~

 

8

2

10

 

 

22

A =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

91

37

 

 

 

19

 

 

 

 

 

min

 

 

 

 

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

32

 

 

 

10

8

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

7

2

 

 

91

 

 

~

 

 

 

 

 

.

A

=

 

3

10

 

 

37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

22

 

 

 

19

 

 

 

 

 

 

 

 

 

max

 

 

 

 

 

 

 

 

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

T = y1 +22 y2 +19 max

10 y +

8y

2

22,

 

 

 

1

 

 

 

 

 

 

 

 

 

 

91,

7 y1 +2 y2

 

3y

 

10 y

2

≤ −37,

 

1

 

 

 

 

 

y

0, y

2

0.

 

1

 

 

 

 

 

 

Решим ее графическим способом. Строим на плоскости (y1, y2 ) прямые

l1 : 10 y1 +8y2 = 22 , l2 : 7 y1 +2 y2

= 91,

 

l3 : 3y1 10 y2 = −37 и убеждаемся, что не-

тривиальные ограничения определяют треугольник ABC , угловые точки

которого находим из систем уравнений

 

 

 

 

A = l1 l2

10 y1 +8y2

= 22,

A(9,14).

:

 

+2 y2

=

91,

 

 

7 y1

 

 

 

B = l2 l3

7 y

+2 y

 

=

91,

 

B(11,7).

:

1

 

2

 

 

 

 

3y1 10 y2 = −37,

 

 

 

10 y1 +8y2 =

22,

C(1,4).

C = l1 l3 :

 

10 y2 = −37,

 

 

3y1

 

 

y2

 

 

 

 

 

 

 

 

 

l2

A

 

n

B

 

 

l3

C

 

 

 

y1

l1

O

 

33

Вектор нормали n имеет координаты n = (1,22). Поэтому, очевидно, мак-

симальное значение функции T (Y ) достигается в точке A(9,14) и

Y = (9,14), Tmax =T (9,14)= 9 +22 14 +19 = 336 .

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

 

 

 

 

 

(10 y1

+8y2

22) x1

= 0,

(7 y +2 y 91) x =

0,

 

1

2

2

 

(3y1 10 y2 +37) x3 = 0,

(10x1

+7x2

+3x3 1) y1 = 0,

 

 

 

 

 

(8x1 +2x2 10x3 22) y2 = 0.

С учетом того, что Y = (9,14) (то есть y1 0, y2 0 ) и A = l1 l2 , A l3 (то есть

10 y1 +8y2 22 = 0, 7 y1 +2 y2 91 = 0 , 3y1 10 y2 +37 0 , в чем можно убедить-

ся непосредственной подстановкой), выполнение первых двух уравнений очевидно, третье сводится к условию x3 = 0 и система сводится к виду

 

= 0,

 

 

 

 

= 0,

 

 

 

 

x3

 

 

или

x3

 

 

решениями которой

10x1 +7x2 +3x3 1 = 0,

10x1 + 7x2 1 = 0,

 

 

 

 

= 0.

 

 

 

 

22

= 0,

 

 

8x1

+2x2

10x3 22

 

8x1

+ 2x2

 

 

является

 

 

точка

 

X * = (2,3,0).

 

 

Заметим,

что

z(X * )= 22 2 +91 3 37 0 +19 = 336 =T (Y * ),

как и должно быть по первой тео-

реме двойственности.

 

 

 

 

 

 

 

 

 

Задачи для самостоятельного решения

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

в) найти решение исходной задачи с помощью теоремы равновесия.

36. z = x1 +154x2 21x3 min при x 0 и

13x1 +8x2 +5x3 ≥ −18,

 

7x1 + 6x2 13x3 20.

 

 

34

сбаз

37.

z = x1 + 4x2 2x3

2x1 + x2 + x3 ≥ −4,

min при x 0 и

 

 

 

 

7x1 + 4x2 11x3 29.

38.

z = 20x1 +108x2 51x3 min при x 0 и

8x1 +3x2 +5x3 ≥ −13,

 

 

 

x1 + x2 2x3 3.

39.

z = −10x1 + 44x2

+ x3 min при x 0 и

5x1 + x2 + 4x3 ≥ −4,

 

 

 

5x1 + 6x2 11x3 11.

40.

z = 3x1 +58x2 13x3 min при x 0 и 9x1 + 2x2 + 7x3 ≥ −25,

 

 

6x1 + 4x2 10x3 22.

41.

z = −10x1 +56x2

3x3 min при x 0 и

12x1 + 7x2 +5x3 ≥ −22,

 

x1 +3x2 4x3 9.

 

 

 

 

§3. Решение двойственных задач с помощью симплекс-метода

Решение пары двойственных задач может быть основано на следующем правиле.

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

Y * = cбаз P1 ,

где – вектор-строка, образованная коэффициентами при базисных

переменных заключительной симплекс-таблицы в целевой функции исходной задачи.

Пример 3. Для задачи

z = 23x1 + 40x2 + 60x3 + 2x4 x5 18 max4x1 +10x2 +11x3 + x4 + x5 = 57,

2x 6x2 x3 + x4 x5 = 9,

 

0, j =1,..,5.

x j

35

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

Решение. Составим задачу, двойственную к данной. Образуем расширенную матрицу

 

4

10

11

1

1

 

=

 

57

 

 

 

 

 

~

 

2

6 1 1

1

 

=

 

9

 

 

A =

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

40

60

2

1

 

 

 

18 max

 

 

 

 

 

 

и преобразуем ее по общему правилу

 

4

2

 

 

23

 

 

 

 

 

 

 

 

 

6

 

 

40

 

 

 

10

 

 

 

 

~

 

 

1

 

 

60

 

 

11

 

 

 

.

A′ =

1

1

 

 

2

 

 

 

1

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

~

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

57

9

 

 

 

18 min

 

 

 

 

 

 

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

 

4 y + 2 y

 

23,

 

 

1

 

 

2

 

 

10 y1 6 y2 40,

T = 57 y1 +9 y2

18 min, при условиях 11y1 y2

60,

 

y

+ y

2

2,

 

1

 

 

 

 

 

 

y2

≥ −1.

 

y1

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

6x

+ 4x

2

+10x

3

+ 2x

4

= 66,

 

3x

 

+ 2x

2

+5x

3

+ x

4

= 33,

 

1

 

 

 

 

 

1

 

 

 

 

2x1

+16x2 +12x3 + 2x5

= 48,

 

x1

 

+8x2

+ 6x3 + x5

= 24.

с выделенным базисом x4 , x5 . Выражаем базисные переменные x4 , x5

x4 = 33 3x1 2x2 5x3 , x5 = 24 x1 8x2 6x3

36

и подставляем полученные выражения в формулу для z . Получим задачу

z =18x1 + 44x2 +56x3 + 24 max

 

 

 

+ 2x2 +5x3 + x4 = 33,

.

( )

3x1

x1 +8x2

+ 6x3 + x5 = 24,

 

 

 

0,

j =1,..,5

 

 

x j

 

 

Перепишем целевую функцию в виде

z18x1 44x2 56x3 = 24

иимеем симплекс-таблицу

базис

bi

x1

x2

x3

x4

x5

x4

33

3

2

5

1

0

x5

24

1

8

6

0

1

z

24

18

44

56

0

0

Вводим в базис переменную

 

 

33

 

24

 

 

24

 

 

x3

. Находим min

 

,

 

 

=

 

= 4

и выводим

5

6

6

 

 

 

 

 

 

 

 

из базиса переменную x5 . Делим соответствующую строку на 6 и получаем

базис

bi

x1

x2

x3

x4

x5

 

x4

33

3

2

5

1

0

 

x5

4

1/ 6 4 / 3

1

0

1/ 6

z

24

18

44

56

0

0

 

базис

bi

x1

x2

x3

x4

x5

x4

13

13 / 6 14 / 3 0

1

5 / 6

x3

4

1/ 6

4 / 3

1

0

1/ 6

z

248

26 / 3

92 / 3

0

0

28 / 3

В строке оценок осталась единственная отрицательная оценка, а так как

 

13

 

4

 

= 6 , то выводим из базиса переменную x1

и вводим x4 . Ум-

min

 

,

 

 

 

 

1/ 6

13 / 6

 

 

 

 

ножаем первую строку на 6 /13 , получаем симплекс-таблицу

базис

bi

x1

x2

x3

x4

x5

x4

6

1

28 /13 0

6 /13 5 /13

x3

4

1/ 6

4 / 3

1

0

1/ 6

z

248

26 / 3

92 / 3

0

0

28 / 3

и делаем шаг симплекс-метода:

37

базис

bi

x1

x2

x3

x4

x5

x1

6

1

28 /13

0

6 /13

5 /13

x3

3

0

22 / 3

1

1/13

3 /13

z

300

0

12

0

4

6

Так как в строке оценок нет отрицательных элементов, то полученная симплекс-таблица – заключительная, оптимальное решение X * = (6,0,3,0,0)

и zmax = z( X * ) = 300 .

Базисными переменными оптимального решения являются x1, x3 ,

поэтому из исходной задачи находим

4

11

, а из условия задачи

P =

 

 

 

 

2

 

 

 

 

1

 

cбаз = (23,60) , поэтому оптимальным решением двойственной задачи будет

 

*

4

11 1

11

 

1

 

 

Y

 

= (23,60)

 

 

=

 

 

,

 

 

,

 

 

 

 

 

 

 

 

2

 

 

2

 

 

2

 

 

 

 

 

1

 

 

 

причем Tmin = T (Y * ) = 57 112 +9 12 18 = 300 = zmax .

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

T = 33y1 + 24 y2 + 24 min

3y1 + y2 18,2 y1 +8y2 44,5y1 + 6 y2 56,

y1 0,

y 0.2

и общая формула теоремы 4 дает

Y * = (18,56) 3 5 1 = (4,6), T (Y * )= 33 4 + 24 6 + 24 = 300 .

1 6

38

С другой стороны, оптимальное решение Y * = (4,6) легко находится из

строки оценок последней симплекс-таблицы как коэффициенты при базисных переменных x4 , x5 исходной.

Задачи для самостоятельного решения

Для следующих задач линейного программирования а) построить задачу, двойственную данной;

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

42.

z = x1

+3x2 +3x3 + x4

+ x5

+ 7 max при x 0 и 4x1 +3x2 + x3 2x5

= 5,

 

 

 

 

 

 

 

2x1 + 2x2 + x4 + 2x5 = 2.

 

43.

z = 2x1 + x2 + x3

x4 x5 +8 max при x 0 и 2x1 3x2 + x3 + x4 = 9,

 

 

 

 

 

 

 

3x1 + 2x2 + x3 + x5 = 7.

 

44.

z = x1

x2 + 2x3

+ 2x4

x5

+13 max при x 0 и 3x1 x2 + 4x3 + x4

= 3,

 

 

 

 

 

 

 

2x1 + x2 + 2x3 + x5

= 7.

 

45.

z = x1

2x2 + x3

+ 2x4

+ 4x5 + 23 max при x 0 и x1 + 4x2 + x4 2x5 = 4,

 

 

 

 

 

 

5x2 + x3 + 6x4 +5x5 = 5.

46.

z = 52x1 + 72x2 + 61x3

+ x4

+ x5

+8 max при x 0 и 2x1 + 6x2 + x3 + x4 = 22,

 

 

 

 

 

 

3x1 + 2x2 +5x3 + x5

= 40.

47.

z =12x1 +13x2 + x3 + 7x4 3x5

+ 2 max при x 0 и 16x1 + x2 7x4

+13x5 = 3,

 

 

 

 

 

 

2x1 + x3 +5x4 + x5

=15.

39