Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмиз.задач_управл..DOCX
Скачиваний:
55
Добавлен:
17.11.2019
Размер:
369.31 Кб
Скачать

2.1.2.2. Метод Франка-Вулфа решения задач квадратичного программирова-

ния.

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

Задача КП записывается следующим образом:

1

n

1

n n

max F (x)  Cx

xT Dx C j x j

dij xi x j при ограничениях (запишем их

2

j1

2 i1 j1

  • матричной форме) Ax b, ,

x 0

Где D 

dij

- симметричная отрицательно определенная матрица коэффициентов

nn

квадратичной формы.

Из теоремы Куна-Таккера выплывает, что вектор х* является оптимальным реше-нием задачи КП тогда и только тогда, когда существуют такие m -мерные вектора  0 и W  0 и n -мерный вектор V  0 , что выполняются следующие условия:

1. CDxAV  0;

2. bAxW  0;

3. V T x  0;

4. W T 0.

Условия 1 и 2 образуют относительно переменных x, ,V ,W систему из (n+m) уравнений c 2(n+m) неизвестными. Условия 3 и 4 являются комбинаторными (усло-вия дополняющей нежесткости), из них следует, что по крайней мере n переменных из x и V, а также m переменных из и W обращаются в нуль.

Если существует оптимальное решение задачи КП, то оно должно быть одним из базисных решений условий 1 и 2. Для нахождения допустимого базисного решения может быть использован симплекс-метод.

Вводя искусственные переменные U j ( j  1, n) и Yi (i  1, m) в условия 1 и 2 для нахождения начального базиса, приходим к следующей задаче:

n m

min MU j  MYi ,(M  C)

j1 i1

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

Dx A V U C,

Ax W Y b;

x 0, 0,V0,W0,U0,Y0.

Выбрав компоненты векторов U и Y одинакового знака со знаком соответствую-щих свободных членов - C, b , находим начальное базисное решение.

Если в результате решения удается вывести все искусственные переменные и при этом выполняются условия З и 4, то найденное базисное решение будет оптимальным.

Рассмотрим метод Франка-Вулфа решения ЗКП.

Сформулируем задачу: среди допустимых базисных решений системы ограниче-ний 1 и 2 найти такое, которое обращает в нуль V T xTW .

Введём в рассмотрение вектор Z с компонентами

  1.  (x1 ,..., xn ,..., 1 ,..., m ,V1 ,...,Vn ,W1 ,...,Wm )

  • соответствующий ему вектор

  1.  (V1 ,...,Vn ,W1 ,...,Wm , x1 ,..., xn ,..., 1 ,..., m )

Тогда условие задачи можно записать как V T xW T 1ZTZmin,

2

BZ d,

  1.  0,

где B - матрица коэффициентов, d - вектор свободных членов

B

D

AT

E

0

; d

c

.

A

0

0 E

b

Выполним

ряд

преобразований, в результате которых выпуклая функция

T (Z) Z T

минимизируется по следующему рекуррентному правилу: в результате k-

Z

го шага получаем допустимое решение Zk, удовлетворяющее ограничениям задачи, вместе с соответствующей симплекс таблицей, а также допустимое решение k , удов-летворяющее тем же ограничениям, но необязательно базисное, которому соответству-ет положительное значение T (на первом шаге 0Z 0 ). Исходя из базисного решения

k

Zk , минимизируем линейную относительно Z форму (Z k )T при заданных ограниче-

ниях.

Получаем

последовательности базисных решений

Z 0 Z k , Z 1 , Z 2 ,... причем

(Z

0

T

k

T

k

)

,…

 (Z )

Вычисления прекращаются, если а) (Z k )T

 0;

W

или

б) (Z K )T

k

1

, ( K )T

k

1

T ( k ) .

2

2

  • случае а) Zk - окончательное решение, а в случае б) полагаем

Z k1 Z k ;

k 1k  (Z k 1k ),

где

( k Z k 1 )T

k

 min 1,

.

(Z k 1 k )T (Z k 1

k )

На каждом шаге имеет место либо а), либо б), но через конечное число шагов будет только а).

Пример: Решить ЗКП методом Франка-Вулфа.

10x  20x

2

 2x2

 2x

2

x x

2

 max,

1

1

2

1

x1

x2

 10,

x2

 4,

x1

 0,

x2

 0.

Матрица D имеет вид

 2

1

  1.  2

Поскольку знаки ее миноров изменяются с «-» на «+», то согласно критерию Сильвестра ЦФ будет вогнутою. Запишем функцию Лагранжа

L(x, ) 10x1 20x2 2x12 2x22 x1 x2 1 (10 x1 x2 ) 2 (4 x2 ). и условия Куна-Таккера

L

 10  4xx

 0,

2

1

1

x1

L

 20  4x

x 

 0,

2

2

x2

1

1

( I )

L

 10  x1x2  0,

L

 4  x2  0.

L

x

 (10  4x

x

 )x

 0,

x

1

1

2

1 1

1

L

x

 (20  4x

x 

)x

 0,

2

2

2

2

x2

1

1

L

 (10  xx

)

 0,

( II )

1

1

2

1

1

L

2  (4  x2 ) 2  0,

x1 0, x2 0, 1 0, 2 0.

Требуется найти такое решение системы неравенств ( I ), которое одновременно удовлетворяло бы и систему ( II ). Перепишем систему ( I ) в виде

4x1x21  10,

4x2x112  20,

x1 x2 10,

x2 4.

Введем в систему ограничений балансовые неотрицательные переменные V1, V2, W1, W2 и получим систему уравнений

4x1x21V1  10,

4x2x112V2  20,

x1 x2 W1 10,

x2 W2 4.

При этом должны выполняться следующие условия дополняющей нежёсткости х1V1=0, х2V2=0, 1W1=0, 2W2=0.

Запишем вектор Z=(z1, z2, z3, z4, z5, z6, z7, z8) как Z  (x1 , x2 , 1 , 2 ,V1 ,V2 ,W1 ,W2 ) и соответствующий ему вектор

  1.  (z1 , z 2 , z 3 , z 4 , z 5 , z 6 , z 7 , z8 ) как Z  (V1 ,V2 ,W1 ,W2 , x1 , x2 , 1 , 2 ) , а также ЦФ

V T x W T 1ZTZ.

2

Тогда задача в матричном виде формулируется следующим образом:

Z T Z min ,

BZ d,

Z 0,

где

4

1

1

0

1 0

0

0

10

B

1 4

1

1

0

1 0

0

;

d

20

.

1

1

0

0

0

0

1

0

10

0

1

0

0

0

0

0

1

4

Из матрицы В видно, что 1-ое уравнение не содержит базисной переменной, сле-довательно, добавим в него искусственную базисную переменную U1 = z9, т.е. вос-пользуемся М-методом. Составим псевдоцелевую функцию L’ = min MU1 = min Mz9, в которой избавимся от базисной переменной, и заполним исходную симплекс-таблицу (см.табл.19)

Таблица 19

i

Сi

базис

Z0

0

0

0

0

0

0

0

0

M

z1

z2

z3

z4

z5

z6

z7

z8

z9

1

M

z9

10

4

-1

1

0

-1

0

0

0

1

2

0

z4

20

-1

4

1

1

0

-1

0

0

0

3

0

z7

10

1

1

0

0

0

0

1

0

0

4

0

z8

4

0

1

0

0

0

0

0

1

0

m+2

L’

10

4

-1

1

0

-1

0

0

0

0

(m+1)-я строка в таблице 19 опущена, т.к. все ее элементы равны нулю.

Разрешающий элемент выбирается из столбца, соответствующего максимальной положительной оценке ЦФ (т.к. функция L’ стремится к min), равной 4, по правилу вы-бора разрешающего элемента. Выполняя симплексное преобразование, приходим к табл.20.

Таблица 20

i

Сi

базис

Z1

0

0

0

0

0

0

0

0

z1

z2

z3

z4

z5

z6

z7

z8

1

0

z1

5

1

1

1

0

1

0

0

0

2

4

4

4

2

0

z4

45

0

15

5

1

1

-1

0

0

2

4

4

4

3

0

z7

15

0

5

0

0

1

0

1

0

2

4

4

4

0

z8

4

0

1

0

0

0

0

0

1

m+2

L’

0

0

0

0

0

0

0

0

0

На этом шаге найдено оптимальное решение, т.к. все оценки ЦФ неположительны. Для проверки условий дополняющей нежесткости сформируем векторы

5

; 0; 0;

45

; 0; 0;

15

; 4

2

и

Z1 = ( 2

2

)

 (0; 0;

15

; 4;

5

; 0; 0;

45

)

Z 1

2

2

2 .

Так как

Z

1 Z 1

 0 ,

то

вместе с табл.20 получили допустимое решение

0 Z 1 Z 0 . Исходя из него минимизируем относительно Z функцию

Z T

15

z

5

z

45

z

0

3

 4z

4

5

8

 min .

2

2

2

Полученную задачу приводим к новой форме и решаем симплекс-методом. Таб-лица 21 получается из таблицы 20 с учетом коэффициентов приведенной (новой) ЦФ.

Таблица 21

i

Сi

базис

Z0

0

0

15

4

5

0

0

45

2

2

2

z1

z2

z3

z4

z5

z6

z7

z8

1

0

z1

5

1

1

1

0

1

0

0

0

2

4

4

4

2

4

z4

45

0

15

5

1

1

-1

0

0

2

4

4

4

3

0

z7

15

0

5

0

0

1

0

1

0

2

4

4

4

45

z8

4

0

1

0

0

0

0

0

1

2

m+1

Z T

180

0

75

 5

0

 7

-4

0

0

0

2

2

2

Выполняя симплексное преобразование получаем табл. 22.

Таблица 22

i

Сi

базис

Z1

0

0

15

4

5

0

0

45

2

2

2

z1

z2

z3

z4

z5

z6

z7

z8

1

0

z1

7

1

0

1

0

1

0

0

1

2

4

4

4

2

4

z4

15

0

0

5

1

1

-1

0

15

2

4

4

4

3

0

z7

5

0

0

0

0

1

0

1

 5

2

4

4

4

0

z2

4

0

1

0

0

0

0

0

1

m+1

Z T

30

0

0

 5

0

 7

-4

0

 75

0

2

2

2

(180>30), то найдено

Так как все оценки ЦФ неположительны и (Z 0 )T k  (Z 1 )T k

новое допустимое. Чтобы определить является ли оно оптимальным, проверим условия дополняющей нежёсткости:

Z1 = ( 7 ; 4; 0; 15; 0; 0; 5 ; 0 ) и

2 2 2

Z1 (0; 0; 5 ; 0; 7 ; 4; 0; 15).

2 2 2

Z 1 Z 1 0 , т.е. они выполняются, следовательно, оптимальное решение ЗКП

7

хопт= ( ;4)

  • f(xопт)=72,5.