Задачі випуклого програмування
Розглянемо задачу нелінійного програмування: f (х1; х2;...; хп)→ max (24) gi (х1; х2;...; хп) ≤ bi (i = ) (25) хj ≥ 0 (j = ) (26) де f і gi – деякі функції п змінних х1; х2;...; хп. Для Розв’язок сформульованої задачі в такій загальній постановці не існує універсальних методів. Однак для окремих класів задач, у яких зроблені додаткові обмеження щодо властивостей функцій f і gi, розроблені ефективні методи їхнього Розв’язок. Зокрема, ряд таких методів існує для Розв’язок задач нелінійного програмування (24)-(26) за умови, що f – ввігнута (випукла) функція і область припустимих рішень, що визначається обмеженнями (25) і (26), – випукла. Визначення 3.1. Функція f (х1; х2;...; хп),задана на випуклій множині X,називається випуклою, якщо для будь-яких двох точок X1 і X2 з X і кожного 0 ≤ λ ≤1 виконується співвідношення f [λ Х2+ (1 – λ) X1 ] ≤ λ f (Х2)+(1–λ) f (X1) (27) Визначення 3.2. Функція f (х1; х2;...; хп),задана на випуклій множині X,називається ввігнутою,якщо для будь-яких двох точок X1 і X2 з X і будь-якого 0 ≤ λ ≤1 виконується співвідношення f [λ Х2+ (1 – λ) X1 ] ≥ λ f (Х2)+(1–λ) f (X1) (27) Визначення 3.3. Говорять, що множина припустимих рішень задачі (24)-(26) задовольняє умові регулярності, якщо існує принаймні одна точка Хi,щоналежить області припустимих рішень така, що gi (Xi)≤ bi (i = ). Визначення 3.4. Задача (24)-(26) називається задачею випуклого програмування, якщо функція f (х1, х2,..., хп) є ввігнутою (випуклою), а функції gi (Xi)(i = )– випуклими. Теорема 3.1. Будь-який локальний максимум (мінімум) задачі випуклого програмування є глобальним максимумом (мінімумом). Визначення 3.5. Функцією Лагранжа задачі випуклого програмування (24)-(26) називається функція L (х1, х2,..., хп, y1, y2,..., ym) = f (х1, х2,..., хп) +
[ bi–gi (х1, х2,..., хп)] (29) де y1, y2,..., ym – множники Лагранжа. Визначення 3.6. Точка (Х0; Y0)=(х01; х02;...; х0п; y01; y02;...; y0m) називається сідловою точкою функції Лагранжа, якщо L (х1, х2,..., хп, х0п, y01, y02,..., y0m) ≤ L (х01, х02,..., х0п, y01, y02,..., y0m) < L (х01, х02,..., х0п, y1, y2,..., ym) для всіх хj ≥ 0 (j = ) і yi ≥ 0 (i = ). Теорема 3.2 (теорема Куна-Таккера). Для задачі випуклого програмування (24)-(26), множина припустимих рішень якої має властивість регулярності, Х0= (х01; х02;...; х0п) є оптимальним планом тоді і тільки тоді, коли існує такий вектор Y0 =(y01; y02;...; y0m)(y0i, i = ), що (Х0; Y0) – сідлова точка функції Лагранжа. Якщо припустити, що цільова функція f і функція gi можуть бути неперервно диференційовані, то теорема Куна-Таккера може бути доповнена аналітичними вираженнями, що визначають необхідні і достатні умови того, щоб точка (Х0; Y0) була сідловою точкою функції Лагранжа, тобто була Розв’язокм задачі випуклого програмування. Ці вираження мають такий вигляд: де і – значення відповідних частинних похідних функції Лагранжа, обчислених у сідловій точці. Всім відзначеним вище вимогам, що дозволяють записати необхідні і достатні умови для сідлової точки (Х0; Y0)функції Лагранжа у вигляді виразів (30)-(35), задовольняє сформульована нижче задача квадратичного програмування. Перш ніж сформулювати цю задачу, дамо деякі визначення. Визначення 3.7. Квадратичною формою щодо змінних х1, х2,..., хп називається числова функція від цих змінних, що має вид F=c11x1x1 + c12x1x2+c13x1x3+... + c21x2x1+c22x2x2+ …= Визначення 3.8. Квадратична форма F називається позитивно(негативно)-визначеною, якщо F (X) > 0 [ F (Х) < 0]для всіх значень змінних Х= (х1, х2,..., хп),крім Х= 0. Визначення 3.9. Квадратична форма F називається позитивно(негативно)-напіввизначеною, якщо F (X) ≥ 0[ F (Х) ≤ 0]для будь-якого набору значень змінних Х= (х1, х2,..., хп)і, крім того, існує такий набір змінних Х′= (х′1, х′2,..., х′п),де не всі значення змінних одночасно дорівнюють нулю, що F (Х′) = 0.
Теорема 3.3. Квадратична форма є випуклою функцією, якщо вона позитивно-напіввизначена, і ввігнутою функцією, якщо вона негативно-напіввизначена. Визначення 3.10. Задача, що полягає у визначенні максимального (мінімального) значення функції при обмеженнях xj ≥ 0 (j = ) (38) де – негативно (позитивно)-напіввизначена квадратична форма, називається задачею квадратичного програмування. Для сформульованої задачі квадратичного програмування функція Лагранжа запишеться у вигляді Якщо функція L має сідлову точку (Х0; Y0)=(х01; х02;...; х0п; y01; y02;...; y0m),то в цій точці виконуються співвідношення (30)-(35). Вводячи тепер додаткові змінні υj (j = ) і ωi (i = ), що перетворюють нерівності (30) і (33) у рівності, перепишемо вираження (30)-(35), записані для задачі квадратичного програмування, у такий спосіб: х0j ≥ 0, υj ≥ 0, y0i ≥ 0, ωi ≥ 0 (j = ; i = ) (43) Таким чином, щоб знайти Розв’язок задачі квадратичного програмування (36)-(38), потрібно визначити невід’ємне Розв’язок систем лінійних рівнянь (39) і (40), що задовольняє умови (41) і (42). Це Розв’язок можна знайти за допомогою методу штучного базису, що застосований для знаходження максимального значення функції F= при умовах (39), (40), (43) з врахуванням (41) і (42). Тут в, - штучні змінні, введені в рівняння (39) і (40). Використовуючи метод штучного базису і додатково враховуючи умови (41) і (42), після кінцевого числа кроків або встановимо нерозв’язність, або одержимо оптимальний план вихідної задачі. Отже, процес знаходження Розв’язок задачі квадратичного програмування (36)-(38) включає наступні етапи: 1. Складають функцію Лагранжа. 2. Записують у вигляді виразів (39)-(43) необхідні і достатні умови існування сідлової точки для функції Лагранжа. 3. Використовуючи метод штучного базису, або встановлюють відсутність сідлової точки для функції Лагранжа, або знаходять її координати. 4. Записують оптимальне Розв’язок вихідної задачі і знаходять значення цільової функції. 3.22. Знайти максимальне значення функції f= 2 x1 +4 x2 – x1 2 – 2 x2 2 (44) при умовах x1, x2 ≥ 0 (46) Розв’язок. Функція f є ввігнутою, так як являє собою суму лінійної функції f1 = 2х1 +4 х2 (яку можна розглядати як ввігнуту) і квадратичної форми f2= – x1 2 – 2 x2 2, що є від’ємно-визначеною і, отже, також ввігнутою. Система обмежень задачі включає лише лінійні нерівності. Отже, можна скористатися теоремою Куна-Таккера. Складемо функцію Лагранжа
L =2 х1 +4 х2 – x1 2 – 2 x2 2 +y1 (8– х1 –2 х2) +y2 (12–2 х1 + х2) і запишемо у вигляді виражень (39)-(43) необхідні і достатні умови існування сідлової точки побудованої функції: х1, х2, y1, y2 ≥ 0 (49) Систему лінійних нерівностей (47) перепишемо в такий спосіб: Уводячи тепер додаткові невід’ємні змінні υ1, υ2, ω1 і ω2, що перетворюють нерівності (47) у рівності, одержимо х1, х2, y1, y2, υ1, υ2, ω1, ω2 ≥ 0 (52) З огляду на рівності (51), можна записати: υ1х1 =0, υ2х2 =0, ω1y1 =0, ω2y2 =0 (53) Якщо тепер знайти базисне Розв’язок системи лінійних рівнянь (51) з урахуванням виконання рівностей (53), то буде отримана сідлова точка функції Лагранжа для вихідної задачі, тобто визначене оптимальне Розв’язок. Для знаходження базисного Розв’язок системи лінійних рівнянь (51) скористаємося методом штучного базису. У перше і друге рівняння системи (51) відповідно додамо додаткову невід’ємну змінну z1 і z2 і розглянемо задачу лінійного програмування, що полягає у визначенні максимального значення функції =–Мz1–Мz2 (54) при умовах х1, х2, y1, y2, υ1, υ2, ω1, ω2, z1, z2 ≥ 0 (52) У результаті Розв’язок задачі (54)-(56) [відзначимо, що при цьому рішенні враховуються умови (53)] знаходимо припустиме базисне Розв’язок системи лінійних рівнянь (55) (табл. 3.1): х01 =1; х02 =1; ω1 =5; ω2 =11; y01 = y02 = υ1 = υ2 =0. Так як х01υ1 =0; х02υ2 =0; y01ω1 =0; y02ω2= 0,то (Х0; Y0)=(1; 1; 0; 0) є сідловою точкою функції Лагранжа для вихідної задачі. Отже, Х *=(1; 1) – оптимальний план вихідної задачі і fтах =3.
Таблиця 3.1
ГРАДІЄНТНІ МЕТОДИ Використовуючи градієнтні методи, можна знайти Розв’язок будь-якої задачі нелінійного програмування. Однак у загальному випадку застосування цих методів дозволяє знайти точку локального екстремуму. Тому більш доцільно використовувати градієнтні методи для знаходження Розв’язок задач випуклого програмування, у яких усякий локальний екстремум є одночасно і глобальним. Процес знаходження Розв’язок задачі за допомогою градієнтних методів полягає в тому, що починаючи з деякої точки X ( k )здійснюється послідовний перехід до деяких інших точок доти, доки не виявляється прийнятне Розв’язок вихідної задачі. При цьому градієнтні методи можуть бути підрозділені на дві групи. До першої групи відносяться методи, при використанні яких досліджувані точки не виходять за межі області припустимих рішень задачі. Найпоширенішим з таких методів є метод Франка-Вулфа. До другої групи відносяться методи, при використанні яких досліджувані точки можуть як належати, так і не належати області припустимих рішень. Однак у результаті реалізації ітераційного процесу знаходиться точка області припустимих рішень, що визначає прийнятне Розв’язок. З таких методів найбільш часто використовується метод штрафних функцій або метод Эрроу-Гурвіца. При знаходженні Розв’язок задач градієнтними методами, у тому числі і названими, ітераційний процес здійснюється до того моменту, поки градієнт функції f (х1, х2,..., хп)у черговій точці Х ( k +1) не стане рівним нулю або ж поки | f (Х ( k +1)) –f (Х ( k ))| < ε,де ε – досить мале додатне число, що характеризує точність отриманого Розв’язок. Зупинимося більш докладно на методах Франка-Вулфа, штрафних функцій і Эрроу-Гурвіца. 1. Метод Франка-Вулфа. Нехай потрібно знайти максимальне значення ввігнутої функції f (х1, х2,..., хп) (57) при умовах xj ≥ 0 (j = ) (59) Характерною рисою цієї задачі є те, що її система обмежень містить тільки лінійні нерівності. Ця особливість є основою для заміни в околицях досліджуваної точки нелінійної цільової функції лінійною, завдяки чому Розв’язок вихідної задачі зводиться до послідовного Розв’язок задач лінійного програмування. Процес знаходження Розв’язок задачі починають із визначення точки, що належить області припустимих рішень задачі. Нехай це точка Х ( k )тоді в цій точці обчислюють градієнт функції (57) і будують лінійну функцію Потім знаходять максимальне значення цієї функції при обмеженнях (58) і (59). Нехай Розв’язок даної задачі визначається точкою Z ( k ). Тоді за нове припустиме Розв’язок вихідної задачі приймають координати точки Х ( k+1 ):
Х ( k+1 )= Х ( k )+λ k (Z ( k )– X ( k )) (61) де λ k – деяке число, що називається кроком обчислень і знаходиться між нулем і одиницею (0 ≤ λ k ≤ 1). Це число λ k беруть довільно або визначають таким чином, щоб значення функції в точці Х ( k+ 1) f (Х ( k+ 1)), що залежить від λ k, було максимальним. Для цього необхідно знайти Розв’язок рівняння і вибрати його найменший корінь. Якщо його значення більше одиниці, то варто покласти λ k =1. Після визначення числа λ k знаходять координати точки Х ( k+ 1), обчислюють значення цільової функції в ній і з’ясовують необхідність переходу до нової точки Х ( k+ 2)Якщо така необхідність є, то обчислюють у точці Х ( k+ 1) градієнт цільової функції, переходять до відповідної задачі лінійного програмування і знаходять її Розв’язок. Визначають координати точки Х ( k+ 2) і досліджують необхідність проведення подальших обчислень. Після кінцевого числа кроків одержують із необхідною точністю Розв’язок вихідної задачі. Отже, процес знаходження Розв’язок задачі (57)-(59) методом Франка-Вулфа включає наступні етапи: 1. Визначають вихідне припустиме Розв’язок задачі. 2. Знаходять градієнт функції (57) у точці припустимого Розв’язок. 3. Будують функцію (60) і знаходять її максимальне значення при умовах (58) і (59). 4. Визначають крок обчислень. 5. По формулах (61) знаходять компоненти нового припустимого Розв’язок. 6. Перевіряють необхідність переходу до наступного припустимого Розв’язок. Якщо виникає потреба, переходять до етапу 2, у протилежному випадку знайдене прийнятне Розв’язок вихідної задачі. 3.27. Методом Франка-Вулфа знайти Розв’язок задачі 3.22, що полягає у визначенні максимального значення функції f =2 x1 +4 х2 – x1 2–2 x2 2 (62) при умовах x1, x2 ≥ 0 (64) Розв’язок. Знайдемо градієнт функції і в якості вихідного припустимого Розв’язок задачі візьмемо точку X (0)=(0; 0), а, критерієм оцінки якості одержуваного Розв’язок – нерівність | f (Х ( k +1)) –f (Х ( k ))| < ε,де ε = 0,01. І ітерація. У точці X (0)градієнт f (X (0))=(2; 4). Знаходимо максимум функції F1 =2 х1 +4 х2 (65) при умовах (63) і (64) x1, x2 ≥ 0 (67) Задача (65)-(67) має оптимальний план Z (0)=(0; 4). Знайдемо нове припустиме Розв’язок вихідної задачі за формулою (61): Х (1) =Х (0) + λ 1 (Z (0)– Х (0)), де 0 ≤ λ 1 ≤ 1 (68) Підставивши замість Х (0)і Z (0) їх значення, одержимо Визначимо тепер число λ 1 Підставивши в рівність (62) замість х1 і х2 їх значення відповідно до співвідношень (69) f (λ 1)=16λ 1 –32λ 1 2, знайдемо похідну цієї функції по λ 1 і прирівняємо її до нуля: f′ (λ 1)=16–64λ 1 =0. Вирішуючи це рівняння, одержимо λ 1 =1/4=0,25. Оскільки знайдене значення λ 1 знаходиться між 0 і 1, приймаємо його за величину кроку. Таким чином, Х (1)=(0; 1), f (Х (1)) = 2, f (Х (1))– f (Х (0))=2 > ε=0,01. II ітерація. Градієнт цільової функції вихідної задачі в точці X (1) є f (Х (1))=(2; 0). Знаходимо максимум функції F2= 2 х1 при умовах (63) і (64). Розв’язокм Z (1)= (6, 4; 0, 8). Визначаємо тепер Х (2)= Х (1)+λ 2 (Z (1)– Х (1)). Останню рівність перепишемо в такий спосіб: Підставляючи тепер у функцію (62) замість х1 і х2 їх значення відповідно до співвідношень (70), одержуємо f (λ 2)=2+12,8λ 2 –41,76λ 2 2, звідки f′ (λ 2)=12,8–83,52λ 2. Прирівнюючи f′ (λ 2) нулю і вирішуючи отримане рівняння, знаходимо λ 2 ≈0,15. Таким чином, тобто X (2)=(0,96; 0,97), f (X (2))=2,9966, f (X (2))– f (X (1))=2,9966–2=0,9966> ε = 0,01. III ітерація. Градієнт функції f у точці Х (2)є f (Х (2))=(0,08; 0,12). Знаходимо максимум функції F3 =0,08 x1 +0,12 x2 при умовах (63) і (64). Розв’язокм є Z (2)=(6; 0). Визначаємо Х (3)= Х (2)+λ 3 (Z (2)– Х (2)). Маємо f (λ 3)=2,9384+0,4032λ 3 –27,3416λ 3, f (λ 3)=0,4032–54,6832λ 3. Вирішуючи рівняння f′ (λ 3)=0, знаходимо λ 3 ≈0,007. Отже, Х (3)=(0,99528; 0,96321), f (X (3))=2,99957, f (X (3))– f (X (2))=2,99957–2,9966=0,00297 < ε = 0,01. Таким чином, X (3) = (0,99528; 0,96321) є шуканим Розв’язокм вихідної задачі. Дана точка X (3)перебуває досить близько до точки максимального значення цільової функції Х *=(1; 1), знайденої при рішенні цієї задачі в § 3.3. Задавши меншу величину е, можна було, зробивши додаткові наближення, ще ближче підійти до точки максимального значення цільової функції. 2. Метод штрафних функцій. Розглянемо задачу визначення максимального значення ввігнутої функції f (х1, х2,..., хп)при умовах gi (х1, х2,..., хп) < bi (i = ), хj ≥ 0 (j = ), де gi (х1, х2,..., хп)– випуклі функції. Замість того щоб безпосередньо вирішувати цю задачу, знаходять максимальне значення функції F (х1, х2,..., хп) =f (х1, х2,..., хп) +Н (х1, х2,..., хп),щоє сумою цільової функції задачі, і деякої функції Н (х1, х2,..., хп),що визначена системою обмежень і називається штрафною функцією. Штрафну функцію можна побудувати різними способами. Однак найбільш часто вона має вигляд Н (х1, х2,..., хп)= (х1, х2,..., хп) gi (х1, х2,..., хп), де αi (х1, х2,..., хп)= (71) а αi > 0 – деякі постійні числа, що представляють собою вагові коефіцієнти. Використовуючи штрафну функцію, послідовно переходять від однієї точки до іншої до тих пір, поки не одержать прийнятне Розв’язок. При цьому координати наступної точки знаходять за формулою З останнього співвідношення випливає, що якщо попередня точка перебуває в області припустимих рішень вихідної задачі, то другий доданок у квадратних дужках дорівнює нулю і перехід до наступної точки визначається тільки градієнтом цільової функції. Якщо ж зазначена точка не належить області припустимих рішень, то за рахунок даного доданка на наступних ітераціях досягається повернення в область припустимих рішень. При цьому чим менше αi, тим швидше знаходиться прийнятне Розв’язок, однак точність визначення його знижується. Тому ітераційний процес зазвичай починають при порівняно малих значеннях αi і, продовжуючи його, ці значення поступово збільшують. Отже, процес знаходження Розв’язок задачі випуклого програмування методом штрафних функцій включає наступні етапи: 1. Визначають вихідне припустиме Розв’язок. 2. Вибирають крок обчислень. 3. Знаходять по всім змінним частинні похідні від цільової функції і функцій, що визначають область припустимих рішень задачі. 4. По формулі (72) знаходять координати точки, що визначає можливе нове Розв’язок задачі. 5. Перевіряють, чи задовольняють координати знайденої точки системі обмежень задачі. Якщо ні, то переходять до наступного етапу. Якщо координати знайденої точки визначають припустиме Розв’язок задачі, то досліджують необхідність переходу до наступного припустимого Розв’язок. У випадку такої необхідності переходять до етапу 2, у протилежному випадку знайдено прийнятне Розв’язок вихідної задачі. 6. Встановлюють значення вагових коефіцієнтів і переходять до етапу 4. 3.28. Знайти максимальне значення функції f= – x1 2– x2 2 (73) при умовах (х1 –7)2+(х2 –7)2 ≤ 18, (74) x1, x2 ≥ 0 (75) Розв’язок. Цільова функція даної задачі являє собою від’ємно-визначену квадратичну форму і, отже, ввігнута. У той же час область припустимих рішень задачі, обумовлена обмеженнями (74) і (75), – випукла. Отже, задача (73)-(75) є задачею випуклого програмування. Для знаходження її Розв’язок застосуємо метод штрафних функцій. Перш ніж це зробити, побудуємо область припустимих рішень задачі (рис. 3.6) і лінії рівня, що визначаються цільовою функцією (73). Цими лініями служать окружності із центром у точці (0; 0). Точка дотику однієї із цих окружностей з областю припустимих рішень і є шуканою точкою максимального значення цільової функції. Рис. 3.6 Покладемо Х (0) = (6,7). Візьмемо λ=0, 1, позначимо через g (х1, х2)=18–(х1 –7)2––(х2 –7)2 і визначимо частинні похідні від функцій f (х1, х2) і g (х1, х2) по змінним х1 і х2: Тепер, використовуючи формулу (72), приступаємо до побудови послідовності точок, одна з яких визначить прийнятне Розв’язок. I ітерація. Так як точка Х 0=(6, 7) належить області припустимих рішень задачі, то другий доданок у квадратних дужках формули (72) дорівнює нулю. Отже, координати наступної точки X 1обчислюємо за формулами Перевіримо тепер, чи належить ця точка області припустимих рішень задачі. Для цього знайдемо g (X 1)=18–4,84–1,96=11,2. Так як g (X 1) > 0, то X1 належить області припустимих рішень. У цій точці f (Х1) =– 54,4. II ітерація. Знаходимо x1 (2)= тах {0; 0,48+0,1·(–2)·4,8}=3,84; x2 (2)= тах {0; 0,56+0,1·(–2)·5,6}=4,48; g (X (2))=18–9,9856–6,3504=1,664 > 0; f (X (2)) = –34,816. III ітерація. Знаходимо x1 (3)= тах {0; 0,384+0,1·(–2)·3,84}=3,072; x2 (3)= тах {0; 0, 4,48+0,1·(–2)·4,48}=3,584; g (X (3))=18–15,429184–11,669056≈–9,0981. IV ітерація. Точка X (3)не належить області допустимих рішень задачі. Отже, = тах {0; 3,072+0,1·[(–2)·3,072+ α [(–2)·3,072+14)]}= тах {0; 2,4576+ α ·0,7856}; = тах {0; 3,584+0,1·[(–2)·3,584+ α ((–2)·3,584+14)]}= тах {0; 2,8672+ α ·0,6832). Тут виникає питання про вибір числа α. Найбільш доцільно обрати його так, щоб точка X (4) не занадто далеко віддалялася від границі області припустимих рішень, і, разом з тим, належала цій області. Цим вимогам задовольняє, зокрема, α =1,9. При даному значенні одержуємо x1 (4)= тах {0; 2,4576+1,9·0,7856)≈3,950; x1 (4)= тах {0; 2,8672+1,9·0,6832}≈4,165; g (Х (4))=18–9,3025–8,037225≈0,660; f (Х (4))≈–32,950. V ітерація. Маємо x1 (5)= тах {0; 3,950+0,1·(–2)·3,950)=3,16; x2 (5)= тах {0; 4,165+0,1·(–2)·4,165)=3,332; g (Х (5)) = 18–14,7456–13,454224≈–10,2. VI ітерація. Знаходимо x1 (6)= тах {0; 3,16+0,1·[(–2)·3,16+1,9·((–2)·3,16+ 14)]}≈3,987; x2 (6)= тах {0; 3,332+0,1·[(–2)·3,332+1,9·((–2)·3,332+ 14)]}≈4,059; g (Х (6))=18–9,078169–8,649481≈0,272; f (Х (6))≈–32,372. VII ітерація. Знаходимо x1 (7)= тах {0; 3,987+0,1·(–2)·3,987}≈3,189; x2 (7)= тах {0; 4,059+0,1·(–2)·4,059}≈3,247; g (Х (7)) = 18–10,169721–10,543009≈–2,713. VIII ітерація. Маємо x1 (8)= тах {0; 3,189+0,1·[(–2)·3,189+1,9·((–2)·3,189+14)]}≈3,999; x2 (8)= тах {0; 3,247+0,1·[(–2)·3,247+1,9·((–2)·3,247+14)]}≈4,027; g (Х (8)) = 18–9,006001–8,856576≈0,137; f (Х (8)) = –32,185. IX ітерація. Знаходимо x1 (9)= тах {0; 3,999+0,1·[(–2)·3,99]}≈3,199; x2 (9)= тах {0; 4,024+0,1·[(–2)·4,024]}≈3,219; g (Х (9))=18–14,447601–14,295961≈–10,744. X ітерація. Маємо x1 (10)= тах {0; 3,199+0,1·[(–2)·3,199+1,9·((–2)·3,199+14)]}≈4,004; x2 (10)= тах {0; 3,219+0,1·[(–2)·3,219+1,9·((–2)·3,219+14)]}≈4,012; g (Х (10))=18–8,976016–8,928144≈0,096; f (Х (10))≈–32,128. XI ітерація. Знаходимо x1 (11)=тах{0; 4,004+0,1·[(–2)·4,004]}≈3,203; x2 (11)= тах {0; 4,012+0,1·[(–2)·4,012]}≈3,210; g (Х (11))=18–14,417209–14,3641≈–10,781. XII ітерація. Маємо x1 (12)= тах {0; 3,203+0,1·[(–2)·3,203+1,9·((–2)·3,203+14)]}≈4,005; x2 (12)= тах {0; 3,210+0,1·[(–2)·3,210+1,9·((–2)·3,210+14)]}≈4,008; g (Х (12))≈–32,104. Порівнюючи значення цільової функції, знайдені в точках, отриманих після X і XII ітерацій, бачимо, що вони з точністю до 10-1 збігаються. Це говорить про близькість точки, знайденої на останній ітерації, до точки максимального значення цільової функції. Такий же висновок можна зробити, якщо досліджувати вектори-градієнти функцій f (Х)і g (Х)у точці Х (12). У цій точці f (Х (12))=(-8,01; -8,016), g (Х (12))=(5,99; 5,984). Обчислимо відношення однойменних координат векторів: –8,01/5,99≈–1,337; –8,016/5,984≈–1,339. Як видно, вони майже рівні між собою. Це означає, що вектори f (Х (12)) і g (Х (12)) практично колінеарні. Так як до того ж точка Х (12) перебуває поблизу границі області припустимих рішень (оскільки g (Х (12))≈0,078), то х1 *=4,005 і х2 *=4,012 можна вважати прийнятним Розв’язокм задачі. Це Розв’язок при необхідності можна уточнити подальшими кроками до повної колінеарності градієнтів цільової і обмежувальної функцій. Послідовність точок, що одержують під час знаходження Розв’язок задачі, наочно ілюструється рис. 3.6. 3. Метод Эрроу-Гурвіца. При знаходженні Розв’язок задач нелінійного програмування методом штрафних функцій ми вибирали значення αi довільно, що призводило до значних коливань віддаленості обумовлених точок від області припустимих рішень. Цей недолік усувається при рішенні задачі методом Эрроу-Гурвіца, відповідно до якого на черговому кроці числа αi ( k ) обчислюють за формулою αi ( k )= тах {0; αi ( k -1)–λ gi (X ( k ))} (i = ) (76) Як початкові значення αi (0) беруть довільні невід’ємні числа. 3.29. Використовуючи метод Эрроу-Гурвіца, знайти Розв’язок задачі 3.27, що полягає у визначенні максимального значення функції f= –x1 2– x2 2 (77) при умовах 18–(x1 –7)2–(x2 –7)2 ≥ 0, (78) х1, х2 ≥ 0 (79) Розв’язок. Як випливає з Розв’язок задачі 3.27, при знаходженні Розв’язок даної задачі методом Эрроу-Гурвіца перші три ітерації при однакових значеннях λ=0,1 в обох випадках збігаються. Це пояснюється тим, що кожна з точок, що одержують послідовно, належить області припустимих рішень, а тому αi ( k )=0 (k = ) незалежно від того, знаходиться воно по формулі (71) чи (76). IV ітерація. Так як g (Х (3)) < 0, то координати наступної точки Х (4) знаходимо по формулі (72): = тах {0; 3,072+0,1·[(–2)·3,072+α(4)((–2)·3,072+14)}; = тах {0; 3,584+0,1[(–2)·3,584+α(4)(–2)·3,584+14)]}. Число α(4) знайдемо за формулою (76): α(4)= тах {0; α(3)–0,1 g (Х (3))}= тах {0; 0–0,1(–9,0981)}≈0,91. Таким чином, x1 (4)≈3,172; x2 (4)≈3,489; g (Х (4))≈–8,981. V ітерація. Знайдена точка Х (4)=(3,172; 3,489) не належить області припустимих рішень вихідної задачі. Тому для знаходження координат наступної точки також використовуємо формулу (72). Однак перш ніж її застосувати, за формулою (76) знаходимо α(5)= тах {0; 0,91–0,1(–8,981)}≈1,81. Отже, x1 (5)= тах {0; 3,172+0,1[(–2)·3,172+1,81((–2)·3,172+14]}≈3,923; x2 (5)= тах {0; 3,489+0,1[(–2)·3,489+1,81((–2)·3,489+14)]}≈4,062; g (Х (5))≈–0,1. VI ітерація. Маємо α(6)= тах {0; 1,81–0,1(–0,1)}≈1,82; x1 (6)= тах {0; 3,923+0,1[(–2)·3,923+1,82((–2)·3,923+14)]}≈4,258; x2 (6)= тах {0; 4,062+0,1[(–2)·4,062+1,82((–2)·4,062+14)]}≈4,319; g (Х (6))≈1,294; а (Х (6))≈–36,784. VII ітерація. Знаходимо x1 (7) =тах {0; 4,258+0,1·[(–2)·4,258]}≈3,406; x2 (7)= тах {0; 4,319+0,1·[(–2)·4,319]}≈3,455; g (Х (7))≈–7,484. VIII ітерація. Маємо α(8)= тах {0; 1,82–0,1·(–7,484)}≈2,57; x1 (8)= тах {0; 3,406+0,1·[(–2)·3,406+2,57((–2)·3,406+14)]}≈4,572; x2 (8)= тах {0; 3,455+0,1·[(–2)·3,455+2,57[(–2)·3,455+14)]}≈4,586; g (Х (8))≈6,278; f (Х (8))≈–41,935. IX ітерація. Знаходимо x1 (9)= тах {0; 4,572+0,1·[(–2)·4,572]}≈3,658; x2 (9)= тах {0; 4,586+0,1·[(–2)·4,586]}≈3,669; g (Х (9))≈4,265. X ітерація. Маємо α(10)= тах {0; 2,57–0,1(–4,265))}≈3,0; x1 (10)= тах {0; 3,658+0,1·(–2)·3,658+3,0((–2)·3,658+14)]}≈4,931; x2 (10)= тах {0; 3,669+0,1·[(–2)·3,669+3,0((–2)·3,669+14)]}≈4,934 g (Х (10))≈9,451. XI ітерація. Знаходимо x1 (11)= тах {0; 4,931+0,1·[(–2)·4,931]}≈3,945; x2 (11)= тах {0; 4,934+0,1·[(–2)·4,934]}≈3,947; g (Х (11))≈–0,654. XII ітерація. Маємо α(12)= тах {0; 3,0–0,1(–0,654)}≈3,06; x1 (12)= тах {0; 3,945+0,1[(–2)·3,945+3,06((–2)·3,945+14)]}≈5,026; x2 (12)= тах {0; 3,947+0,1[(–2)·3,947+3,06((–2)·3,947+14)]}≈5,026; g (Х (12))≈10,207; f (Х (12))≈–50,521. XIII ітерація. Знаходимо x1 (13)= тах (0; 5,026+0,1[(–2)·5,026]}≈4,021; x2 (13)= тах {0; 5,026+0,1[(–2)·5,026]}≈4,021; g (Х (13))≈0,251; f (Х (13))≈–32,337. Отримане на даній ітерації Розв’язок х1 *=4,021 і х2 *=4,021 можна вважати прийнятним. Це Розв’язок при необхідності варто поліпшити, продовживши ітераційний процес до одержання результату необхідної точності. На закінчення відзначимо, що Розв’язок складних задач нелінійного програмування градієнтними методами пов’язане з більшим об’ємом обчислень і доцільне тільки з використанням ЕОМ.
Читайте также: I. ОСНОВНІ ЗАДАЧІ І НАПРЯМКИ САМОСТІЙНОЇ НДР СТУДЕНТІВ Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|