Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММДО.DO_ukr_new.doc
Скачиваний:
164
Добавлен:
16.05.2015
Размер:
5.09 Mб
Скачать

6.3. Метод Франка – Вулфа розв’язання задач квадратичного програмування (зкп)

У матричній формі ЗКП можна записати у вигляді

де D - симетрична, від’ємно визначена квадратна матриця коефіцеєнтів квадратичної форми.

Як відомо, із умов теореми Куна-Таккера випливає, що вектор X* буде розв'язком ЗКП тоді й тільки тоді, коли існують такі m-вимірні вектори  0 та W  0 і n-вимірний вектор V=0, за яких виконуються умови:

C+DX–A+V=0; b–AX–W=0; VTX=0; WT=0.

Дві останні умови нелінійні (умови доповняльної нежорсткості). З них випливає, що меншою мірою n змінних з Х та V , а також m змінних з  та W мають обертатися у нуль. Звідси випливає, що для знаходження розв'язку ЗКП з від’ємно визначеною квадратичною формою досить розв’язати систему рівнянь і задовольнити умови доповняльної нежорсткості.

Використовуючи метод штучного базису, формулюємо задачу:

Якщо у результаті її розв'язання вдалось вивести з базису усі штучні змінні і виконати умови доповняльної нежорсткості, то знайде­ний базис­ний розв'язок буде розв'язком ЗКП. Розглянемо метод Франка - Вулфа.

Переформулюємо задачу: серед довільних базисних розв'язків системи знайти такий, який обертає у нуль VTX+W. Розглянемо вектор

Z=(x1,…,xn, 1,…,m, v1,…,vn, w1,…,wm)

та вектор =(v1,…,vn, w1,…,wm, x1,…,xn, 1,…,m).

Тоді

VTX+WT =ZTmin,

BZ=d,

Z  0.

де

Виконуємо ряд ітерацій так, щоб опукла функція T(Z) = ZTZ мінімізувалася за таким рекурентним правилом: у результаті к-го кроку маємо довільний розв'язок Zk, що відповідає системі обмежень задачі, а також довільний розв'язок k, який задовольняє тим самим обмеженням, але не обов'язково буде базисним. Йому відповідає до­датне значення T(Z) (на першому кроці ). Починаючи з базисного розв'язку Zk , мінімізуємо лінійну відносно Z форму (Zk )T . Маємо послідовність базисних розв'язків Z0=Zk, Z1, Z2 , ... , причому (Z0)T > (Z1)T . Обчислення закінчується, якщо

а) (Zh)Th =0;

б) (Zh)Tk (k)Tk.

У випадку а) Zk - розв’язок ЗКП, а у випадку б) знаходимо

Zk+1=Zk; k+1=k+(Zk+1k),

=min

На кожному кроці маємо або а) або б) однак через певну кількість кроків будемо мати тільки а).

Приклад 6.3. Розв’язати ЗКП методом Франка – Вульфа:

10x1+20x2–2x12–2x22+x1x2 max,

x1+x2  10,

x2  4,

x1  0, x2  0.

Матриця D має вигляд

D =

Оскільки знаки її мінорів змінюються спочатку “ - ” потім “ +” то згідно з критерієм Сильвестра цільова функція буде угнутою.

Запишемо функцію Лагранжа квадратичної задачі

L(X,)=10x1+20x2–2x12–2x22+x1x2+1(10–x1–x2)+2(4–x2).

Умови теореми Куна – Таккера мають вигляд:

1. 2.

= 10– 4x1+ x2 1  0 ; x1 = x1 (10– 4x1+ x2 1) = 0 ;

= 20– 4x2 12  0; x2 = x2 (20– 4x2 12 ) = 0;

= 10 – x1– x2  0; 1 = 1 (10– x1– x2 ) = 0;

= 4 – x2  0; 2 = 2 (4– x2 ) = 0 .

Треба знайти такий розв’язок системи умов 1, який одночасно задовольнив би і систему 2. Перепишемо систему 1 у вигляді:

4x1–x2+1  10 ,

x1+4x2+1+2  20 ,

x1+x2  10,

x2  4 .

Вводячи у цю систему обмежень невід’ємні додаткові змінні V1, V2, W!, W2 дістаємо

4x1– x2+ 1– V1 = 10 ,

x1+ 4x2+1+ 2– V2 = 20 ,

x1+ x2 + W1 = 10,

x2 + W2 = 4 .

При цьому мають виконуватись умови доповняльної нежорстокості

x1V1 = 0, x2V2 = 0, 1W1 = 0, 2W2 = 0.

Запишемо вектор Z = (z1 , z2 , z3 , z4 , z­5 , z6 , z7 , z8), як

Z=(x1,x2, 1, 2, v1, v2, W1, W2)

та вектор у вигляді

.

Далі запишемо VTX+WT=ZT/2.

Тепер задачу можна зобразити у вигляді

ZTmin ;

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

Для знаходження довільного базисного розв’язку використаємо метод штучних змінних. Введемо в систему обмежень штучну змінну U1=Zg і запишемо цільову функцію L =Mzg min і початкову симплекс-таблицю у вигляді табл. 6.1.

Таблиця 6.1

i

Б

С

Z1

0

0

0

0

0

0

0

0

z1

z2

z3

z4

z5

z6

Z7

z8

1

z9

M

10

4

-1

1

0

-1

0

0

0

2

z4

0

20

-1

4

1

1

0

-1

0

0

3

z7

0

10

1

1

0

0

0

0

1

0

4

z8

0

4

0

1

0

0

0

0

0

1

m+2

10

4

-1

1

0

-1

0

0

0

Зробимо крок симплексних перетворень і дістанемо табл. 6.2.

Таблиця 6.2

i

Б

С

Z2

0

0

0

0

0

0

0

0

z1

z2

z3

z4

z5

z6

z7

z8

1

z1

0

5/2

1

-1/4

1/4

0

-1/4

0

0

0

2

z4

0

45/2

0

15/4

5/4

1

-1/4

-1

0

0

3

z7

0

15/2

0

5/4

0

0

1/4

0

1

0

4

z8

0

4

0

1

0

0

0

0

0

1

m+2

0

0

0

0

0

0

0

0

0

0

Для перeвірки умов доповняльної нежорстокості розглянемо вектори

Z2 = =

Оскільки (Z2)TZ2  0 то разом з табл. 6.2 знайшли довільний розв’язок Z0=Z0. Починаючи з нього мінімізуємо лінійну щодо Z функцію:

Табл. 6.3 випливає безпосередньо з табл. 6.2.

Таблиця 6.3

I

Б

С

Z1

0

0

15/2

4

5/2

0

0

45/2

z1

z2

z3

z4

z5

z6

z7

z8

1

z1

0

5/2

1

-1/4

1/4

0

-1/4

0

0

0

2

z4

4

45/2

0

15/4

5/4

1

-1/4

-1

0

0

3

z7

0

15/2

0

5/4

0

0

1/4

0

1

0

4

z8

45/2

4

0

1

0

0

0

0

0

1

m+1

i

Б

С

Z0

0

-7/2

-4

0

0

Вибравши другий стовпець і четвертий рядок ведучими, робимо крок симплексного виключення і переходимо до нової таблиці 6.4

Таблиця 6.4

I

Б

С

Z1

0

0

15/2

4

5/2

0

0

45/2

z1

z2

z3

z4

z5

Z6

Z7

z8

1

z1

0

7/2

2

z4

4

15/2

3

z7

0

5/2

4

z2

0

4

m+1

30

Оскільки то перевіряємо умови доповняльної не жорсткості

= =

Вони виконуються оскільки (Z1)TZ1 = 0. Таким чином знайдемо оптимальний розв’язок ЗКП

X* = ;

F(X*) = 62,5 .