Page 1

Матеріал взято з методичних матеріалів Триуса Ю. В. Метод Вулфа. Частинним випадком задачі опуклого програмування (19) є задача квадратичного програмування: m

n

n

i 1

j

j 1

f ( x)   cij xi x j   d j x j  min(max) , n

a j 1

ij

x j  bi ,i  1, m,

(25) (26)

x j  0, j  1, n, (27) m

де Q( x )   i 1

n

c

ij

xi x j

- невід’ємно (недодатно) визначена квадратична форма

і

j

cij , d j , aij , bi  R1 , i  1, m, j  1, n . Зауважимо, що коли Q( x) невід’ємно визначена квадратична форма, то цільова функція задачі опукла, а коли недодатно визначена, то цільова функція задачі вгнута (згідно критеріїв опуклості двічі диференційовних функцій). Для задачі (25)-(27) функція Лагранжа має такий вигляд: m n n m  n  L( x, y)   cij xi x j   d j x j   yi   aij x *j  bi  . i 1 j j 1 i 1  j 1  На основі необхідних і достатніх умов екстремуму, які сформульовані в теоремі 3, з урахуванням співвідношень (22), (23), для задачі мінімізації (25)-(27) можна записати умови, яким повинна задовольняти точка ( x * , y * )  P  Q , щоб бути розв’язком цієї задачі:

L( x * , y * )  0, j  1, n , x j

x *j

L( x * , y * )  0, j  1, n , x j

n

a j 1

ij

x j  bi  0, i  1, m,

 n  yi*   aij x *j  bi   0, i  1, m ,  j 1  * x j  0, j  1, n,

(28) (29) (30) (31) (32)

(33) y i  0, (i  1, m) . Розглянемо один з непрямих методів розв’язування задач квадратичного програмування, який грунтується на принципі Лагранжа, зокрема на використанні співвідношень (28)-(33) і зводиться до розв’язування задачі лінійного програмування симплекс-методом. Це метод має назву метода Вулфа. Розглянемо його сутність на прикладі. *

Завдання 1. Розв’язати задачу квадратичного програмування методом Вулфа


f ( x )  4 x1  4 x 2  2 x1  3 x 2  min, 2

2

 x1  3 x 2  1,  2 x1  x 2  6,  x  x  10, 2  1 x j  0, j  1, 2. Одержані результати перевірити геометричним методом за допомогою програми EXTREMUM і чисельним методом за допомогою програми EXCEL. Розв’язування. 1. Спочатку розв’яжемо поставлену задачу методом Вулфа. Для цього подамо її у такому вигляді: 2 2 f ( x )  4 x1  4 x 2  2 x1  3 x 2  min,  x1  3 x 2  1  0,   2 x1  x 2  6  0,  x  x  10  0, 2  1 x j  0, j  1, 2. Побудуємо регулярну функцію Лагранжа для одержаної задачі: 2 2 L( x, )  4 x1  4 x2  2 x1  3x2  1 ( x1  3x 2  1)   2 (2 x1  x2  6)   3 ( x1  x 2  10) , (1) і запишемо відповідні до неї необхідні і достатні умови оптимальності: L  8 x1  2   1  2 2   3  0, x1 L  8 x 2  3  3 1   2   3  0, x 2 x1  3 x 2  1  0,

(2)

 2 x1  x 2  6  0, x1  x 2  10  0, x1 (8 x1  2   1  2 2   3 )  0,

x 2 (8 x 2  3  3 1   2   3 )  0,  1 ( x1  3 x 2  1)  0,

(3)

 2 ( 2 x1  x 2  6)  0,  3 ( x1  x 2  10)  0, x j  0, j  1,2,  i  0, j  1,3 .

(4)

Ввівши додаткові невід’ємні змінні v1 , v2 , w1 , w2 , w3 , перетворимо нерівності (2) в рівності: 8 x1  2   1  2 2   3  v1  0,

8 x 2  3  3 1   2   3  v 2  0, x1  3 x 2  1  w1  0,

(5)

 2 x1  x 2  6  w2  0, x1  x 2  10  w3  0, де

x1  0, x2  0, 1  0,  2  0,  3  0, v1  0, v2  0, w1  0, w2  0, w3  0. (6)


Виразивши з рівностей (6) змінні v1 ,v2 ,w1 ,w2 , w3 , умови (3) можна записати у такому вигляді: (7) x1v1  0, x2 v2  0, 1 w1  0,  2 w2  0,  3 w3  0. Для відшукання базисного розв’язку системи лінійних рівнянь (6) скористаємось методом штучного базису для канонічної задачі лінійного програмування, такого виду: f ( X , , V , W )  0 x1  0 x2  01  0 2  0 3  0v1  0v2  0w1  0w2  0w3  min , (8)  8 x1   1  2 2   3  v1  2,

 8 x 2  3 1   2   3  v 2  3, x1  3 x 2  w1  1,

(9)

2 x1  x 2  w2  6, x1  x 2  w3  10, x1  0, x2  0, 1  0,  2  0,  3  0, v1  0, v2  0, w1  0, w2  0, w3  0 , (10) де

X  ( x1 , x2 ),   (1 ,  2 ,  3 ), V  (v1 , v2 ), W  ( w1 , w2 , w3 ) . Оскільки в системі (9) чотири одиничних базисних вектора, то додамо до третього обмеження невід’ємну штучну змінну z1 . Після цього розглянемо розширену канонічну задачу лінійного програмування виду: (11) F ( X , , V , W , z1 )  Mz1  min ,  8 x1   1  2 2   3  v1  2,

 8 x 2  3 1   2   3  v 2  3, x1  3 x 2  w1  1,

(12)

2 x1  x 2  w2  z1  6, x1  x 2  w3  10, x1  0, x2  0, 1  0,  2  0,  3  0, v1  0, v2  0, w1  0, w2  0, w3  0, z1  0 . (13) Розв’язавші задачу (11)-(13) симплекс-методом, знаходимо допустимий базисний розв’язок системи рівнянь (12) (таблиця 1): Таблиця 1. I 1 2 3 4 5

Базис Pv1 Pv2 Pw1 Pz1 Pw3

Сб 0 0 0 M 0

2 3 1 6 10 0 6

0 Px1 -8 0 1 2 1 0 2

0 Px2 0 -8 -3 1 1 0 1

0 Pλ1 -1 3 0 0 0 0 0

0 Pλ2 2 1 0 0 0 0 0

0 Pλ3 -1 -1 0 0 0 0 0

0 Pv1 1 0 0 0 0 0 0

0 Pv2 0 1 0 0 0 0 0

0 Pw1 0 0 1 0 0 0 0

0 Pw2 0 0 0 -1 0 0 -1

0

0

0

0

Px2 -24 -8 -3 7 4 0 7

Pλ1 -1 3 0 0 0 0 0

Pλ2 2 1 0 0 0 0 0

Pλ3 -1 -1 0 0 0 0 0

0 Pv1 1 0 0 0 0 0 0

0 Pv2 0 1 0 0 0 0 0

0 Pw1 8 0 1 -2 -1 0 -2

0

P0 10 3 1 4 9 0 4

0 Px1 0 0 1 0 0 0 0

P0

0 Pw3 0 0 0 0 1 0 0

M Pz1 0 0 0 1 0 0 0

Таблиця 2. i 1 2 3 4 5

Базис Pv1 Pv2 Px1 Pz1 Pw3

Сб 0 0 0 M 0

Pw2 0 0 0 -1 0 0 -1

0 Pw3 0 0 0 0 1 0 0

M Pz1 0 0 0 1 0 0 0


Таблиця 3. I 1 2 3 4 5

Базис Pv1 Pv2 Px1 Px2 Pw3

Сб 0 0 0 0 0

P0 166/7 53/7 19/7 4/7 47/7 0

0 Px1 0 0 1 0 0 0

0 Px2 0 0 0 1 0 0

0

0

0

0

Pλ1 -1 3 0 0 0 0

Pλ2 2 1 0 0 0 0

Pλ3 -1 -1 0 0 0 0

Pv1 1 0 0 0 0 0

0 0 Pv2 Pw1 0 8/7 1 -16/7 0 1/7 0 -2/7 0 1/7 0 0

0 Pw2 -24/7 -8/7 -3/7 -1/7 4/7 0

0 Pw3 0 0 0 0 1 0

З останньої симплекс-таблиці видно, що x1 *  19 / 7, x2 *  4 / 7, 1 *  0,  2 *  0,  3 *  0, v1 *  166 / 7, v2 *  53 / 7,

w1 *  0, w2 *  0, w3 *  47 / 7, z1 *  0. Оскільки x1 * v1 *  0 і x2 * v2 *  0 , то це означає, що пара (X*,Λ*)=(19/7,4/7,0,0,0) не є сідловою точкою функції Лагранжа, а точка X*=(19/7,4/7) не є розв’язком поставленої задачі. У цій ситуації необхідно продовжити перетворення симплекс-таблиць, таким чином, щоб виключити з базисних змінних спочатку, наприклад, одну із змінних x1 або v1 , а потім одну із змінних x 2 або v 2 . Аналіз останньої симплекс-таблиці (табл. 3) показує, що спочатку можна виключити з базисних змінну v 2 , а ввести до базисних змінних змінну λ2 , при цьому розв’язковий елемент буде 1, який стоїть у направляючому стовпчику Pλ2 і направляючому рядочку Pv2. Після симплекс-перетворень одержимо таблицю 4. Таблиця 4. i 1 2 3 4 5

Базис Pv1 Pλ2 Px1 Px2 Pw3

Cб 0 0 0 0 0

P0 60/7 53/7 19/7 4/7 47/7 0

0 Px1 0 0 1 0 0 0

0 Px2 0 0 0 1 0 0

0 Pλ1 -7 3 0 0 0 0

0 Pλ2 0 1 0 0 0 0

0 Pλ3 1 -1 0 0 0 0

0 Pv1 1 0 0 0 0 0

0 Pv2 -2 1 0 0 0 0

0 Pw1 40/7 -16/7 1/7 -2/7 1/7 0

0 Pw2 -8/7 -8/7 -3/7 -1/7 4/7 0

0 Pw3 0 0 0 0 1 0

З останньої симплекс-таблиці видно, що x1 *  19 / 7, x2 *  4 / 7, 1 *  0,  2 *  53 / 7,  3 *  0, v1 *  60 / 7, v2 *  0, w1 *  0, w2 *  0,

w3 *  47 / 7. Оскільки x1 * v1 *  0 , то це означає, що розв’язок поставленої задачі ще не знайдено. Аналіз останньої симплекс-таблиці (табл. 4) показує, що можна виключити з базисних змінну v1 , а ввести до базисних змінних змінну w1 , при цьому розв’язковий елемент буде 40/7, який стоїть у направляючому стовпчику Pv1 і направляючому рядочку Pw1. Після симплекс-перетворень таблиці 4 одержимо таблицю 5. Таблиця 5. I 1 2 3 4 5

Базис Pw1 Pλ2 Px1 Px2 Pw3

Cб 0 0 0 0 0

P0 3/2 11 5/2 1 13/2 0

0 Px1 0 0 1 0 0 0

0 Px2 0 0 0 1 0 0

0 Pλ1 -49/40 1/5 7/40 -7/20 7/40 0

0 Pλ2 0 1 0 0 0 0

0 Pλ3 7/40 -3/5 -1/40 1/20 -1/40 0

0 Pv1 7/40 2/5 -1/40 1/20 -1/40 0

0 Pv2 -7/20 1/5 1/20 -1/10 1/20 0

0 Pw1 1 0 0 0 0 0

0 Pw2 -1/5 -8/5 -2/5 -1/5 3/5 0

0 Pw3 0 0 0 0 1 0


З останньої симплекс-таблиці видно, що x1 *  5 / 2, x2 *  1, 1 *  0,  2 *  11,  3 *  0, v1 *  0, v2 *  0, w1 *  3 / 2, w2 *  0,w3 *  13 / 2. Оскільки тобто x1 * v1 *  0, x2 * v2 *  0, 1 * w1 *  0,  2 * w2 *  0,  3 * w3 *  0, задовольняється умова (7), і відповідно умова (3), то точка ( X *, *)  (5 / 2; 1; 0; 11; 0; ) є сідловою точкою функції Лагранжа (1) поставленої задачі. Отже, X *  (5 / 2; 1) - розв’язок задачі, при цьому і f min  f ( X *)  37 .

Metod Vylfa  
Advertisement