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

Зад лин прогр и мет их решения 16 12 08

.pdf
Скачиваний:
29
Добавлен:
29.03.2016
Размер:
7.61 Mб
Скачать

 

 

 

 

 

 

 

 

 

 

 

 

 

110

 

 

 

 

 

 

 

 

 

 

 

 

1

z[N

' , N] = D[N '

, N ' ] z[N ' , N]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i0

 

 

 

z[i0,j0]

 

 

 

x[N '

] = D[N ' , N ' ] x [N ' ]

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"Новая" С-Т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"Старая" С-Т

 

 

 

 

 

f (xθ ) = f (x0 ) θ ε[ j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε[j0]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

' ] D[N ' , N ' ] z[N ' , N] c[N]

 

 

 

 

 

 

ε[N] = c[N

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

Левый мультипликатор (см. схему)

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*[N

' , j] = D[N

' , N ' ] z[N ' , j]

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*[i, j] = z[i, j]z[i

 

 

,

j]

 

z[i, j0 ]

,i j

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j

0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*[ j0 , j] = z[i0 ,

j]

 

 

 

 

1

 

 

 

 

,i =

j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0

, j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

[N' ]

=

D[N', N'] x [N' ]

 

 

 

 

 

 

 

 

 

 

 

θ

1

 

1

 

 

θ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x [i] = x

[i] x [i ]

z[i, j0 ]

 

,i j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

θ

 

0

0 0

 

z[i

 

, j ]

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

(= θ ),i = j0

 

 

 

 

 

 

 

xθ [ j0 ] = x0[i0 ]

 

 

 

 

 

 

 

 

 

z[i ,

j ]

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Добавим и вычтем

 

 

 

 

 

 

 

 

f (x

) = c[N

' ] x[N ' ] = c[N

 

'

]

D[N ' , N ' ] x[N ' ] =

θ

 

 

1

1

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

 

= {c[i1 ](x0[im ]z[i1, j0 ]θ )+ c[ j0 ]θ + +

+ c[im ](x0[im ] z[i1, j0 ]θ ))}+ c[i0 ] x0[i0 ] c[i0 ] x0[i0 ] =

= c[N ' ] x

0

[N '

]θ (c[i ] z[i , j

0

]+ + c[i

0

] z[i

0

, j

0

] +

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

+ + c[im ] z[im , j0 ] c[ j0 ]) = f (x0 ) ε[ j0 ] θ

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Добавим и вычтем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε[ j] = c[N1' ] z[N1' , j] c[ j] = c[N1' ] D[N1' , N' ] z[N' , j] c[ j] =

 

 

=[c[i1] (z[i1, j] z[i0

, j]

z[im , j0 ]

)+ + c[ j0 ] z[i0 , j]

1

 

 

 

+

 

 

 

z[i , j

 

]

 

 

 

 

 

z[i

, j

0

]

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

+ + c[im ] (z[im , j] z[i0 , j]

z[im , j0 ]

)]c[ j] +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i , j

0

]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ c[i0 ] z[i0 , j] c[i0 ] z[i0 , j] =[(c[i1] z[i1, j] + + c[i0 ] z[i0 , j] + +

c[im

] z[im

, j])c[ j]]

z[i0 , j]

[(c[i1] z[i1, j0 ] + + c[i0 ] z[i0 , j0 ] +

 

 

 

 

z[i , j

0

]

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

+ + c[im ] z[im , j0 ])c[ j0 ]]= ε[ j]

z[i0 , j]

 

ε[ j0 ]

z[i , j

0

]

 

 

 

 

 

 

0

 

 

 

Преобразования Гаусса-Жордана

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i, j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i, j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z*[i, j] = z[i, j]

 

z[i0 , j] z[i, j0 ]

,i

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 ,

 

 

j0 ]

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

*[ j

 

, j] =

z[i0 , j]

,i = j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 ,

j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

 

 

 

 

 

x0[i]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i, j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0[i0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x*[i] = x0 [i]

x0 [i0 ] z[i, j0 ]

,i

j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x*[ j

 

] =

x0[i0 ]

,i =

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

 

 

 

 

 

z[i, j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i, j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

* (x )

= f (x

 

) ε[ j ]

x0[i0 ]

 

 

= f (x ) ε[ j ] θ

 

 

 

z[i , j ]

 

 

 

 

 

θ

 

 

 

 

 

0

0

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

 

 

 

 

z[i, j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i, j0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i0 , j0 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε*[ j] = ε[ j] ε[ j ]

z[i0 , j]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z[i , j ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

111

7.10. Пары двойственных задач. Теоремы двойственности

Рассмотрим ЗЛП в общей форме записи ( M1 , M 2 M , M1 M 2 = M , N1 , N2 N ,

N1 N2 = N )

f (X ) = C[N] X[N] max

A[M1 , N] X[N] ≤ b[M1 ] A[M 2 , N] X[N] = b[M 2 ]

X[N1 ] ≥ 0[N1 ]

X[N2 ] >< 0[N2 ]

С ней тесно связана некоторая другая ЗЛП, которая носит название ЗЛП двойственной к данной.

g(Y) = Y[M ] b[M ] min

Y[M ] A[M, N1 ] ≥ C[N1 ]

Y[M ] A[M , N2 ] = C[N2 ]

Y[M1 ] ≥ 0[M1 ]

Y[M 2 ] >< 0[M 2 ]

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

1-2Число переменных в двойственной задаче равно числу ограничений в исходной, а число ограничений в двойственной равно числу переменных в исходной.

3 В двойственной задаче меняется вид экстремума (max на min и наоборот).

4 Векторы правой части ( в[M] ) и коэффициентов целевой функции (C[N]) в двойственной задаче меняются местами: первый становится вектором коэффициентов целевой функции, а второй - вектором правой части в системе ограничений.

5Левая часть системы ограничений строится по транспонированной матрице AT [N, M ] (строки в A[M , N] становятся столбцами и наоборот), которая умножается на вектор переменных двойственной задачи Y[M ]

6Знаки в системе ограничений двойственной задачи определяются знаками ограничений неотрицательности в исходной задаче:

- ограничения неотрицательности на переменные X[N1 ] дают нежесткие ограничения с номерами из N1 (типа ≥ для задачи на min и ≤для задачи на max); - отсутствие ограничений неотрицательности на переменные X[N2 ] определяет

жесткие ограничения (равенства) с номерами из N2 . И, наоборот,

- нежесткие ограничения с номерами из M1 дают ограничения неотрицательности на

переменные Y[M1 ];

- жесткие ограничения с номерами из M 2 не накладывают условий неотрицательности на переменные Y[M 2 ](в дальнейшем запись Y >< 0 будем опускать).

hДвусторонние стрелки на схеме показывают, что ее можно применять в обе стороныh

 

 

 

 

 

 

 

 

 

 

 

 

112

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Исходная задача (I)

 

 

 

 

 

Двойственная задача (II)

 

 

 

 

f (x) = c[N] x[N] → max

 

 

 

g(y) = y[M ] b[M ] → min

 

 

 

A[M

1 , N] x[N] ≤ b[M1 ]

 

 

 

 

T

[N1 , M ]

y[M ] ≥ c[N1 ]

 

 

 

 

 

A

 

 

 

 

A[M

 

, N

] x[N] = b[M

 

]

 

 

 

 

 

[N

 

, M ] y[M ] = c[N

 

]

 

 

 

2

2

 

 

 

AT

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x[N1 ] ≥ 0[N1 ]

 

 

 

 

 

y[M1 ] ≥ 0[M1 ]

 

 

 

 

 

x[N2 ] ≥≤ 0[N2 ]

 

 

 

 

 

y[M 2 ] ≥≤ 0[M 2 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переменные

 

 

 

 

y[M ]]

 

 

 

 

 

 

 

1

 

 

x[N]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число ограничений

 

 

 

 

N

 

 

 

 

 

 

 

2

 

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

max

b

 

 

 

 

 

 

min

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

A:

 

A[M

, N] x[N]

 

 

b[M1 ]

A:

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

AT [N

, M ] y[M ]

c[N ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

5

A[M 2 , N] x[N]

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b[M2 ]

5

 

 

 

 

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AT [N

, M ] y[M ]

= c[N2 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

x[N1]

 

 

0 [N1 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y[M1 ]

 

 

0 [M1 ]

 

 

 

 

 

 

x[N2 ]

 

 

 

0 [N2 ]

 

 

 

 

 

 

 

0 [M 2 ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y[M 2 ]

 

 

 

 

 

113

Выпишем пары двойственных задач для некоторых частных случаев форм записи ЗЛП:

 

 

 

 

 

 

 

 

 

 

 

 

 

ИСХОДНАЯ ЗАДАЧА

 

 

 

 

ДВОЙСТВЕННАЯ ЗАДАЧА

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а) стандартная форма

 

 

 

 

 

 

 

f (X ) = C[N] X[N] max

 

 

g(Y) = Y[M ] b[M ] min

 

 

 

A[M, N] X[N] = b[M ]

 

 

Y[M ] A[M, N] C[N]

 

 

 

X[N] 0[N]

 

 

(или AT [N, M ] Y[M ] C[N])

б) симметричная форма

 

 

 

 

 

 

 

f (X ) = C[N] X[N] max

 

 

g(Y) = Y[M ] b[M ] min

 

 

 

A[M, N] X[N] b[M ]

 

 

Y[M ] A[M, N] C[N]

 

 

 

X[N] 0[N]

 

 

Y[M ] 0[M ])

в) стандартная форма без ограничений неотрицательности

 

 

 

f (X ) = C[N] X[N] max

 

 

g(Y) = Y[M ] b[M ] min

 

 

 

A[M, N] X[N] = b[M ]

 

 

Y[M ] A[M, N] = C[N]

Примеры

 

 

 

 

1

f = 7x1 + 3x2 x3 + 2x4 max

 

 

 

2x1 + x2 + 4x3 x4 9

 

 

 

 

x1 + x2 x3 + x4 = 7

 

 

 

 

 

x2 0 ,

x 4 0

ЗЛП записана в общей форме. Двойственная задача будет содержать 4 ограничения (по числу переменных в исходной задаче) и вектор двойственных переменных Y будет содержать две

компоненты y1, y2 (по числу ограничений в исходной задаче). Запишем целевую функцию двойственной задачи

g = 9y1 + 7y2 min

 

 

 

 

 

 

 

2

2

1

4

1

Транспонируем исходную матрицу

 

1

A[M, N] =

 

 

 

 

AT [N,M ] =

 

 

1

1

1

1

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

Запишем левую и правую части системы ограничений и расставим знаки ограничений

114

Это вектор правой части двойственной задачи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2y + y

2

=7

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

y + y 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ограничения неотрицательности

 

 

 

 

 

 

 

 

 

 

Ограничений неотрицательности

 

 

 

 

 

1

2

 

 

 

 

 

на х2 и х4 дают нежесткие 2-е и

на х1 и х3 нет. Значит 1-е и

 

 

 

 

 

 

 

 

 

 

 

 

 

4-е ограничения (вида ≥ , т.к.

 

 

 

 

 

4y y

 

 

= −1

 

 

 

задача на min).

3-е ограничения - жесткие.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y + y 2

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Первое ограничение в исходной задаче имеет вид неравенства (нежесткое), поэтому y1 0

Жесткое ограничение (2-ое) не дает ограничения неотрицательности на y2 . Окончательно запишем двойственную задачу

g = 9y1 + 7y2

min

2y1

+ y2

= 7

y1

+ y2

3

4y1

y2

= −1

y1

+ y2 2

 

 

 

 

y1

0

 

 

 

 

 

2

f = 5x1

+ 4x2

+ 2x3 max

 

 

 

 

 

x1 + 2x2 + x3 6

 

1

2

1

 

2x1 + x2 + 4x3 ≤ 7

A =

2

1

4

 

2x + 3x

 

+ 5x

 

12

 

 

 

 

 

2

3

 

 

3

 

 

1

 

 

 

 

 

2

5

 

xi

0 ,

i 1:3

 

 

 

 

ЗЛП в симметричной форме имеет три переменные и три ограничения. Двойственная задача будет такой же размерности.

g = 6y1 + 8y2

+ 12y3 min

 

 

 

 

 

 

y1 + 2y2

+ 2y3 5

 

 

 

1

2

2

2y1 + y2 + 4y3 ≥ 4

 

T

=

 

 

 

A

 

2 1

3

2y1 + y2

+ 3y3 2

 

 

 

 

4

 

 

 

 

1

5

yi 0, i 1:3

115

3 f = x1 x2 + x3 + 2x4 x5 max

2x1 + 12x2 x3 + 10x4 + 7x5 = 49 x1 + x2 + 6x3 + 2x4 + x5 = 14 xi 0 , i 1:5

ЗЛП в стандартной форме. В двойственной задаче на min (2 переменные без ограничений неотрицательности) все ограничения (их пять) имеют вид неравенств ≥

g = 49y1 + 14y2

min

2y1 + y2

1

12y1 + y2 ≥ −1

y1

+ 6y2

1

10y1

+ 2y2

2

 

7y1 + y2 ≥ −1

4

f = 2x1 + 7x2

3x3 + x4 2x5 min

 

x1 + 2x2 + x3 + 2x4 + x5 10

 

3x1 x2 + 2x3 x4 + 4x5 24

 

x1 + 2x2 + 3x3 + 4x4 + 5x5 48

 

x1 + x2 + x3 + x4 + x5 = 12

 

x1 0

x3 0 ,

Прежде чем строить двойственную задачу необходимо в нежестких ограничениях сделать знаки неравенства одного типа. Умножим для этого 1-ое ограничение на (-1)и заменим min на max, поменяв знаки в целевой функции

f

' = −2x

7x

2

+ 3x

3

x

4

+ 2x

5

max

 

1

 

 

 

 

 

 

x1 2x2 x3 2x4

x5 ≤ −10

 

3x1 x2 + 2x3 x4 + 4x5 24

 

x1 + 2x2 + 3x3 + 4x4 + 5x5 48

 

x1 + x2 + x3 + x4 + x5 = 12

 

 

x1 0

 

 

x3 0 ,

 

 

Ограничение x1 0 можно преобразовать либо в ограничение неотрицательности путем замены x1' = −x1 0, либо включив данное неравенство в систему ограничений. Выберем, например, первый способ. Тогда получим

116

f ' = 2x1' 7x2 + 3x3 x4 + 2x5 max x1' 2x2 x3 2x4 x5 ≤ −10

3x1' x2 + 2x3 x4 + 4x5 24

x1' + 2x2 + 3x3 + 4x4 + 5x5 48

x1' + x2 + x3 + x4 + x5 =12

x'

0

x

3

0 ,

1

 

 

 

К полученной ЗЛП запишем двойственную.

g = 10y1 + 24y2 + 48y3 +12y4 min

y1 3y2 y3 y4 2

 

2y1 y2 + 2y3 + y4 = −7

 

3y1 + 2y2 + 3y3 + y4 3

 

2y1 y2

+ 4y3 + y4 = −1

 

y1 + 4y2

+ 5y3 + y4 = 2

 

yi 0, i 1:3

5

f = x1 + 3x2 + 5x3 min

 

2x1 + x2 4x3 ≤ −2

 

x1 + 4x2 + 5x3 12

x1 + x2 + x3 = 10 x2 0

Сменим знак на обратный в 1-ом неравенстве (умножив его на (-1)) и, применив схему в обратную сторону, построим двойственную задачу.

f = x +

3x

2

+ 5x

3

min

g = 2y1 +12y2 +10y3 max

 

 

1

 

 

 

 

 

 

 

 

 

 

2x

1

x

2

 

+ 4x

3

2

2y1 + y2 + y3 = 1

 

 

 

 

 

 

 

 

 

 

 

 

x + 4x

2

 

+ 5x

3

12

y1 + 4y2 + y3 3

1

 

 

 

 

 

 

 

 

 

 

 

 

x + x

2

+ x

3

= 10

4y1 + 5y2 + y3 = 5

 

 

1

 

 

 

 

 

 

 

 

 

y1 0 , y2 0

 

 

x

2

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С помощью двойственной ЗЛП можно решить вопрос о разрешимости или неразрешимости исходной задачи, оценить значение ее целевой функции и, наконец, найти решение исходной задачи, зная решение двойственной, которую, зачастую, легче решить, чем исходную.

117

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

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

2y1 + y2 = 7

4y1 y2 = −1

имеет единственное решение ( y1 = 1, y2 = 5 ) которое удовлетворяет остальным ограничениям. Итак, оптимальным решением двойственной задачи будет вектор Y = (1 , 5) . При этом gmin = 44. Применение теорем двойственности и соотношений дополняющей нежесткости (о них см. ниже) позволяет сразу выписать решение исходной задачи:

x

 

= 0, x

 

= 0,

2x + 4x

 

 

= 9

x

 

=

5

 

f

 

= 7

37

+

5

= 44

h

 

 

 

 

 

6

 

 

6

6

 

2

 

4

 

1

3

 

 

3

 

 

 

max

 

 

 

 

 

 

 

 

 

x x

 

= 7

x

=

37

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим теперь более подробно свойства пары двойственных задач. Ниже исходную и двойственную задачи будем называть задачами (I) и (II) соответственно.

Лемма 1.

Если X[N] и Y[M ] - произвольные допустимые решения задач (I) и (II) соответственно, то f (X ) g(Y)

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

 

f (X ) = C[N] X[N] = C[N1 ] X[N1 ]+ C[N2 ] X[N2 ]

( * )

Из системы ограничений задачи (II)

 

C[N1 ] Y[M ] A[M, N1 ]

 

C[N2 ] Y[M ] A[M, N2 ]

 

Подставляя последние выражения в (*) имеем

 

f(X ) Y[M ] A[M , N1 ] X[N1 ]+ Y[M ] A[M, N2 ] X[N2 ] =

=Y[M ] A[M, N] X[N] Y[M ] b[M ] = g(Y)

Лемма 2

Пусть X*[N] - допустимое решение ЗЛП (I): ε[N] 0[N]

Y *[M ] - допустимое решение ЗЛП (II): g(Y * ) = f (X * )

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

Запишем (I) в стандартной форме

f (X

*

'

]

'

]

=

'

'

~

'

'

~

 

) = C[N

X[N

( т.к. ε[N

] = 0[N

] ) = Y[M ] A[M , N

] X[N

] = Y[M ] b[M ]

Возьмем в качестве

Y

*

[M ] =ˆ

~

 

 

 

 

 

 

 

Y[M ]. Тогда

 

 

 

 

g(Y * ) = f (X * )

118

При этом согласно лемме 1, Y *[M ]- оптимальное решение ЗЛП (II), т.к. для любого допустимого решения Y [M] ЗЛП (II)

 

g(Y) f (X * ) = g(Y * )

X *[N]- оптимальное решение ЗЛП (I) в силу того, что по лемме 1

f (X * ) = g(Y * ) f (X ) для любого X[N] - допустимого решения ЗЛП (II)

Теорема 1.

 

ЗЛП (I) разрешима

ЗЛП (II) разрешима

При этом g(Y * ) = f (X * ) для X *[N] и Y *[M ] - оптимальных решений ЗЛП (I) и (II) соответственно.

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

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

Для разрешимости ЗЛП необходимо и достаточно: 1) -ия хотя бы одного допустимого решения: б) ограниченности целевой функции на множестве решений.

Если ЗЛП (I) разрешима X *[N]- ее оптимальное решение. Тогда (а) по лемме 2

Y *[M ]- допустимое решение ЗЛП (II), а по лемме 1 (б) g(Y * ) = f (X ) X[N]- допустимого решения ЗЛП (I) ЗЛП (II) разрешима.

Доказывается аналогично, считая исходной задачей ЗЛП (II).

hПервая теорема двойственности устанавливает тот факт, что обе задачи (I) и (II) разрешимы или неразрешимы одновременно и значения целевых функций обеих задач на оптимальных решениях совпадают. Таким образом, чтобы установить разрешимость задачи и найти оптимальное значение целевой функции достаточно решить ту ЗЛП из пары

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

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

 

 

 

 

 

 

fmax = gmin = 44

 

h

Рассмотрим еще один пример

 

 

 

g = 12y1 min

 

 

 

 

 

 

 

 

 

( I )

f = x1 + x2 + 3x3 + 2x4

max

 

 

( II )

2y 1

 

 

 

 

 

 

 

 

 

1

 

 

2x1 + 3x2 + 4x3 + x4 =12

 

 

 

3y1 1

 

x

i

0 , i 1: 4

 

 

 

 

4y1 3

 

 

 

 

 

 

 

 

y1 2

 

 

 

 

 

 

 

 

 

Множеством допустимых решений задачи (II) является

D = {y1 : y1 2}

 

 

 

 

 

1

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1/3

3

1

 

2

 

 

 

 

 

 

 

 

 

 

 

119

Функция g = 12y1 достигает на нем минимального значения в точке y1 = 2, которое равно 24. Таким образом, задача (II) разрешима и gmin = 24 . Тогда по 1-й теореме двойственности разрешима и исходная задача и максимальное значение ее целевой функции тоже равно 24, т.е. fmax = 24h

Неразрешимость ЗЛП, вообще говоря, возможна по двум причинам: а) пустота множества допустимых решений

(ЗЛП не имеет ни одного допустимого решения)

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

Пусть D - множество допустимых решений задачи (I) E - множество допустимых решений задачи (II)

Теорема 2.

Задачи (I) и (II) одновременно разрешимы D и E одновременно не пусты.

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

D ≠ т.к. для разрешимости ЗЛП (I) необходимо хотя бы одно допустимое решение X[N]. Аналогично E

Пусть D ≠ и E ≠ . Рассмотрим Y0 E - допустимое решение ЗЛП (II). Тогда по лемме 1 g(Y0 ) f (X ), X D (т.е. g- ограничена снизу). Но тогда ЗЛП (II) разрешимапо 1-й теореме двойственности разрешима и ЗЛП (I).

Терема 3.

1) Пусть D

Тогда sup f (X ) = +∞ (f не ограничена на D и ЗЛП ( I )неразрешима )

E =

x D

 

2) Пусть E

 

Тогда inf g(Y) = −∞ (g не ограничена на E и ЗЛП ( II )неразрешима)

D =

y E

 

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

 

Докажем, например 1)

 

Пусть E ≠ . Тогда по теореме 2 ЗЛП (I) - разрешима !!!

 

Пусть f (X ) ≤ C X D ЗЛП (I) разрешима.

 

Тогда по 1-й теореме двойственности разрешима и ЗЛП (II). т.е. E ≠ !!!

Вторая часть теоремы доказывается аналогично

hДоказанные теоремы устанавливают причины одновременной неразрешимости прямой и двойственной ЗЛП:

Множество допустимых Если решений одной из ЗЛП

(I) или (II) пусто

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

решений

Множество допустимых решений другой задачи

из пары тоже пусто

то

Целевая функция другой задачи не ограничена на множестве решений

то

 

 

 

Множество допустимых

 

 

 

 

 

 

 

 

 

решений другой задачи

 

 

 

 

 

 

 

 

 

 

тоже пусто

 

 

 

 

 

 

 

 

 

 

 

 

 

(Теорема 2)

(Теорема 3)

(Теорема 3)