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

Элементы теории двойственности (110

..pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
468.83 Кб
Скачать

Из неравенств (7) – (8) видим, что поскольку решение yi = 0 при i =1, m соответствует всем ограничениям (7), то базис двойственной задачи образуют векторы An+1, An+2 , ..., An+m . При этом начальное решение системы имеет вид

xn+i = −bi , i =1, m.

Итак, для задачи (1) – (3) при условии (4) применение двойственного симплекс-метода оказывается предпочтительнее в сравнении с прямым.

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

Пример.

Пусть ЗЛП имеет вид:

2x1 + x3 min, x1 + x2 x3 5, x1 2x2 + 4x3 8, xi 0, i = 1, 3.

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

5y1 +8y2 max, y1 + y2 2,

y1 2 y2 0,

y1 + 4 y2 1, y j 0, j =1, 2.

Перепишем исходную задачу как задачу на максимум и приведем к каноническому виду. А затем решим задачу двойственным симплексметодом.

2x1 x3 max,

x1 x2 + x3 +u4 = −5,

x1 + 2x2 4x3 +u5 = −8,

xi 0 , i =1, 3.

21

–2

0

–1

0

0

CB

B

b

A1

A2

A3

A4

A5

Θ

 

 

 

 

 

 

 

 

 

0

A4

–5

–1

–1

1

1

0

0

A5

–8

–1

2

–4

0

1

2

 

 

 

2

0

1

0

0

 

 

 

 

 

 

 

 

 

 

0

A4

–7

–5/4

–2/4

0

1

1/4

14

–1

A3

2

1/4

–2/4

1

0

–1/4

 

 

 

 

 

 

 

 

 

 

 

 

7/4

2/4

0

0

1/4

 

 

 

 

 

 

 

 

 

 

0

A2

14

5/2

1

0

–2

–1/2

 

–1

A3

9

3/2

0

1

–1

–1/2

 

 

 

 

1/2

0

0

1

1/2

 

 

 

 

 

 

 

 

 

 

Таким образом, после выполнения последней итерации значения всех базисных переменных оказываются неотрицательными и, следовательно, значения переменных, а именно x = (0, 14, 9), являются оптимальными для

исходной задачи. Оптимальные значения переменных двойственной задачи равняются соответственно y = (1, 1 / 2)

22

4.ИСПОЛЬЗОВАНИЕ ТЕОРИИ ДВОЙСТВЕННОСТИ

ВПРИКЛАДНЫХ ЗАДАЧАХ

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

Общая постановка данной задачи следующая: пусть задана сеть из n +1 вершин, то есть ориентированный граф, в котором выделены две вершины – вход (нулевая вершина) и выход (вершина с номером n ). Для каждой дуги заданы числа, называемые длинами дуг. Длиной пути (контура) называется сумма длин входящих в него дуг (если длины дуг не заданы, то длина пути, или контура, определяется как число входящих в него дуг). Задача заключается в поиске кратчайшего пути (пути минимальной длины) от входа до выхода сети.

Запишем задачу о кратчайшем пути как задачу линейного программирования.

Пусть

 

1, еслидуга (i, j) входитвпуть,

 

 

 

xij

i, j = 0, n ,

=

 

 

 

 

 

0, еслидуга (i, j) невходитвпуть,

 

 

 

 

lij – длина дуги (i, j).

 

 

 

Тогда

 

n

n

 

 

 

 

 

 

 

 

 

L( x) = ∑∑lij xij min,

(1)

 

 

i=0

j=0

 

 

 

 

n

 

 

 

 

 

 

 

 

x0 j

=1,

 

 

 

(2)

 

j=1

 

 

 

 

 

 

 

 

n1

 

 

 

 

 

 

 

 

xin

=1,

 

 

 

(3)

 

i=0

 

 

 

 

 

 

 

 

xik = xkj , k =

 

 

(4)

 

1,n 1.

 

k 1,n

k 1,n

 

 

 

Ограничения (2) и (3) отражают требования того, что в искомом пути из входа выходит одна дуга и в выход заходит одна дуга. Ограничение (4) обеспечивает равенство числа заходящих и выходящих в любую промежуточную вершину дуг.

Сформулируем задачу линейного программирования, двойственную задаче (1) – (4), поставив в соответствии с ограничениями (2) – (3) двойственные переменные λ0 и λn , а с ограничениями (4) – двойственные пере-

менные {λi }, i =1, n 1:

λn −λ0 max,

(5)

λj −λi lij , i, j =

 

.

(6)

0, n

23

 

 

 

По теореме двойственности для оптимальных решений задач (1) – (4) и

(5) – (6) значения целевых функций совпадают. Двойственные переменные имеют следующий смысл: λi – кратчайшее расстояние от 1-го до i -го пункта;

λj – кратчайшее расстояние от 1-го до j -го пункта.

Алгоритм решения задачи о кратчайшем пути

1. По заранее заданной сети выписывается матрица расстояний между всеми узлами сети. Если дуга, соединяющая узлы, отсутствует (отсутствует путь, ведущий из i -го пункта в j -й), то в матрице расстояний ставится знак запрета данного пути.

2. Пусть λj – сумма длин дуг, образующих цепь, ведущую из узла 1 в узел j . Положим λ1 = 0 и λi = λj , если i = j . При условии, что i и j соеди-

нены дугой, величина λj

определяется как λj

= min(λi +li j ). Процесс начи-

 

 

i

нается с i =1 и uj = ui = 0.

3. Определяется кратчайший путь. Проверяется выполнение неравенства λj −λi li j , при этом выделяют те элементы матрицы, для которых

данное неравенство выполняется как равенство. Если для i, j λj −λi li j ,

то между узлами не существует более короткого пути. Переход к п. 5.

4. Если i, j , для которых λj −λi > li j , вычисляют новые значения uj , используя формулу λj = λi + li j . Меняются λj и λi для i = j на λj . Повторяется п. 2 с новыми значениями λj и λi .

5.Полученные λj определяют кратчайшее расстояние между узлами 1

иj = 2, n . По выделенным элементам матрицы выписывается кратчайший

путь.

Пример.

Рассмотрим данную сеть.

 

5

 

 

 

 

5, ∞

7,1

9,4

 

9,2

 

7

 

 

 

 

 

 

 

 

2

1,8

 

10,2

 

 

6

1

2,4

 

 

 

 

3,4

 

 

 

8,1

2,3

 

 

 

 

 

 

 

 

 

 

3

2,5

23,10

 

 

 

11,5

, 9

4

24

Сеть содержит циклы, возникающие из-за возможности двустороннего движения. Если дуга ориентирована, (то есть движение одностороннее), расстояние в другом направлении полагается равным .

Занесем данные в матрицу расстояний, где строка i (столбец j ) пред-

ставляет узел i

(узел

j ).

 

 

 

 

 

 

j

1

2

3

4

5

6

7

λi

i

1

 

 

2

8

11

9

 

 

0

2

 

4

 

3

 

5

1

 

2

3

 

1

4

 

 

2

 

5

4

 

5

 

9

 

 

2

23

11

5

 

2

 

 

 

7

9

7

6

 

 

8

3

5

1

 

10

3

7

 

 

 

 

10

4

2

 

13

λj j

 

0

2

5

11

7

3

13

 

Исходные величины λi и λj определяются следующим образом. Пусть λ1 = 0 . При использовании формулы

λj = mini (λi + li j )

осуществляется последовательное обращение к величинам λi и λj по мере того, как они становятся доступными.

λ2

= 0 + 2 = 2,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

γ3

= min (λ1 + c13 , λ2 + c23 ) = min (0 +8, 2 +3) = 5,

 

 

 

 

 

1=1, 2

(λ1 + c14 , λ3 + c34 )

1=1, 2

(

0 +11, 5 + ∞) =11,

 

 

 

λ4

= min

= min

 

 

 

 

 

1=1, 3

(λ1 + c15 , λ2 + c25 )

1=1, 3

(

0 +9, 2 +5) = 7,

 

 

 

λ5

= min

= min

 

 

 

 

 

1=1, 2

 

 

 

 

 

 

 

 

 

 

1=1, 2

 

 

 

 

 

 

 

λ6

= min

 

(λ2 + c2 6 , λ3 + c36 , λ4 + c4 6 , λ5 + c56 ) =

 

 

 

 

 

1=2, 3, 4, 5

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

 

 

 

=

 

min

 

2 +1, 5 + 2,11 + 2, 7 + 7

= 3,

 

 

 

 

 

 

1=2, 3, 4, 5 (

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

λ

7

= min

 

λ

4

+ c

4 7

, λ

5

+ c

, λ

6

+ c

 

= min

11+ 23, 7

+9, 3 +10

=13.

 

1=4, 5, 6 (

 

 

 

 

57

 

 

 

6 7 )

1=4,5,6

(

 

 

При переходе к шагу 2 проводится проверка условия оптимальности

путем сравнения (λj

λi

) с li j

. При этом выделяются те элементы, для ко-

торых (λj λi

 

) = li j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

j

1

2

3

4

 

5

 

6

7

λi

i

 

 

1

 

2

8

11

 

9

 

 

 

0

2

4

 

3

 

 

5

 

1

 

2

3

1

4

 

 

 

2

 

5

4

5

 

9

 

 

 

 

2

23

11

5

2

 

 

 

 

 

7

9

7

6

 

8

3

5

 

1

 

 

10

3

7

 

 

 

10

 

4

 

2

 

13

λj

0

2

5

11

 

7

 

3

13

 

В процессе реализации алгоритма обнаруживается, что условие оптимальности первый раз нарушается при i = 6 для j = 4 и 5. Величины λ4 и

λ5 меняются следующим образом:

λ′4 = λ6 +l6 4 = 3 +5 =8, λ′5 = λ6 +l65 = 3 +1 = 4.

После этого повторяется шаг 2 с измененными значениями λi и λj .

i

j

1

2

3

4

5

6

7

λi

 

 

 

1

 

 

2

8

11

9

 

 

0

 

2

 

4

 

3

 

5

1

 

2

 

3

 

1

4

 

 

2

 

5

 

4

 

5

 

9

 

 

2

23

11

(8)

5

 

2

 

 

 

7

9

7

(4)

6

 

 

8

3

5

1

 

10

3

 

7

 

 

 

 

10

4

2

 

13

 

λj

 

0

2

5

11

7

3

13

 

 

(8)(4)

Из последней таблицы видно, что в новых изменениях нет необходимости, и поэтому последние измененные величины ui дают длину крат-

чайшего пути от 1 до j . Кратчайшее расстояние между узлами 1 и 7 равно

λ7 (= 13).

Найдем участки кратчайшего пути между узлами 1 и 7. Определение участков пути должно начинаться с узла 7. Из столбца 7 видно, что равенство выполняется (подчеркнутый элемент) при i = 5 и i = 6 , то есть либо узел 5, либо узел 6 соединены с узлом 7 (альтернативные решения). Анало-

26

гичные исследования для 5-го и 6-го узлов дадут i = 6 и i = 2 . Будем продолжать эту процедуру до тех пор, пока не вернемся в первый узел.

Таким образом, кратчайший путь имеет вид

1 2 6 5

7

1 2 6

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

5.1. Общие определения. Основные свойства

 

Рассмотрим задачу нелинейного программирования вида

 

φ(x) min,

 

fi (x) 0, i =1... m,

(1)

x S ,

где φ, fi , i =1... m – заданные функции, S – некоторое множество. Построим для нее функцию Лагранжа

m

Φ(x, y) = φ(x) + yi fi (x), x S, y 0.

i=1

Исходная задача перепишется в виде

min max Φ(x, y).

x s y≥0

Двойственная к ней задача по определению имеет вид

max min Φ(x, y).

y≥0 x s

Введем обозначение ω(y) = min Φ(x, y). Функцию ω(y) называют

x s

двойственной функцией.

Тогда двойственную задачу можно переписать в виде max ω(y).

y 0

Утверждение.

Докажем, что maxω( y) является задачей выпуклого программирования.

y≥0

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

Вначале докажем, что

m

 

ω( y) ≤ φ(x) + yi fi (x), y 0, x S.

(*)

i=1

 

27

 

Этот факт непосредственным образом вытекает из неравенства

min Φ(x, y) ≤ Φ(x, y), y 0, x S.

x s

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

ω(αy1 + (1−α) y2 ) ≥ αω( y1) + (1−α)ω( y2 ), α [0,1].

(**)

Из (*) имеем

 

m

 

ω( y1) ≤ φ(x) + yi1 fi (x), x S,

 

i=1

 

m

 

ω( y2 ) ≤ φ(x) + yi21 fi (x), x S.

 

i=1

 

Умножив первое неравенство на α , а второе – на (1 α ) и сложив их, мы получим

m

αω( y1) + (1 −α)ω( y2 ) ≤ φ(x) + (αωy1 + (1−α) y2 ) fi (x), x S.

i=1

Полученное выражение верно для любого x S , следовательно, оно будет верно, если мы возьмем от обеих частей минимум по x S . Значит, верно неравенство (**).

Что и требовалось доказать.

Скачок двойственности

Рассмотрим следующую задачу оптимизации: φ(x) max,

fi (x) bi ,

i =

1,m

,

x 0

(x S) ,

где φ, fi , i =1,m – заданные функции, S – некоторое множество. Функция Лагранжа для данной задачи имеет вид

Φ(x, y) = φ(x) + yT (b f (x)), x 0 (x S), y 0.

При этом исходная задача записывается с помощью Φ(x, y) следую-

щим образом:

max min Φ(x, y),

x≥0 y≥0 ( x s)

двойственная задача по определению имеет вид

min max Φ(x, y).

y≥0 x≥0 ( x s)

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

28

Пример.

10 3x1 2x2 x3 min,

 

 

 

2x1 +3x2 + 4x3 4, x S, где S ={x = (xj ), xj

1,

j}.

=

 

0,

 

Φ(x, y) =10 3x1 2x2 x3 + y(4 + 2x1 +3x2 + 4x3 ), x S, y 0.

Исходная задача имеет вид

min max Φ(x, y).

x s y≥0

Исходная задача легко решается перебором (множество S состоит всего из 8 точек, а допустимых из них 4). В результате получаем ответ:

Lmin = 7, x *T = (1, 0, 0).

Двойственная задача имеет вид max min Φ(x, y), или max ω( y).

y≥0 x s

y≥0

Решим ее графически:

ω(y) = 10 – 4y

ω(y) = 9

ω(y) = 9 – y

ω(y) = 7 + 3y

ω(y) = 7·2y

ω(y) = 6 + 2y

ω(y) = 5 + y

ω(y) = 4 + 5y

29

Из графика видно, что решением

является пересечение прямых

ω( y) = 7 2 y и ω( y) = y +5 . Отсюда

y* =

2

, а ω( y*) = 5

2 .

 

 

3

 

3

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

ственности.

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

Слабая теорема двойственности

Пусть x * – решение исходной задачи, а y * – решение двойственной.

Тогда справедливо следующее неравенство:

ω( y) ≤ ω( y*) ≤ φ(x*) ≤ φ(x), x S, y 0.

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

Покажем, что ω( y) ≤ ω( y*) ≤ φ(x*) ≤ φ(x).

Неравенства ω(y) ≤ ω(y*) и φ(x*) ≤ φ(x) справедливы, так как x * – решение исходной задачи, а y *– решение двойственной.

По определению двойственной функции верно следующее неравенст-

во:

ω( y*) ≤ φ(x) + y *T f (x), x S.

При x = x * получим

ω( y*) ≤ φ(x*) + y *T f (x). Здесь y *T 0, f (x*) 0.

Следовательно, ω( y*) ≤ φ(x*). Что и требовалось доказать.

Теорема двойственности

I.Если (x*, y*) – седловая точка исходной задачи, то φ(x*) = ω( y*).

II. Если x * – решение исходной задачи, y* 0 и справедливо равенство ϕ(x*) =ω( y*) , то исходная задача имеет седловую точку (x*, y*).

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

I. Требуется доказать равенство φ(x*) = ω( y*).

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

Φ(x*, y) ≤ Φ(x*, y*) ≤ Φ(x, y*), x S, y 0.

1.Перепишем неравенство Φ(x*, y) ≤ Φ(x*, y*), y 0 в виде

 

φ(x*) + yT f (x*) ≤ φ(x*) + y *T

f (x*), y 0.

При

y = 0

имеем

y *T f (x*) 0.

Но

при этом y *T 0,

f (x*) 0

y *T

f (x*)

0. Следовательно,

y *T

f (x*) = 0.

 

 

 

30

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]