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

Холмская экзамен / Моделювання систем

.pdf
Скачиваний:
84
Добавлен:
12.05.2015
Размер:
11.94 Mб
Скачать

О-бл/3

2. Q2(x ) = ( x i , x 2 )

 

 

-бл/3

О Vx 2 7

 

 

 

 

>

 

 

ЧХ2У

- 1 2 > / З х ,х 7 < 0 ;

 

 

 

3.Q1(x) = ( x 1, x 2 )

^18

0У Хіч

О

6

 

 

 

V X 2 J

= ( 1 8 x j

6х 2)

= 18xj + 6x 2 > 0;

 

Vx 2 7

 

 

 

4- Q1( x ) = ( x 1, x 2 )

 

 

 

 

 

 

 

V X 2 J

= ( - ! 8xi

- 6x 2)

 

-18xj2 - 6x 2 < 0;

 

Vx 2 7

 

 

(згідно з визначенням ми не враховуємо точку (0; 0) при знаходженні знаку квадратичної форми у випадках 3 та 4). Як випливає з наведених вище даних,

матриця Гессе є невизначеною у точках X і та X2, додатно визначеною у точці

X3 і від'ємно визначеною у точці X4.

Необхідна умова локального екстремуму. Нехай функція f(X) задана на

Rn і д в і ч і диференційована у певному околі точки Y є R N. Якщо у цій точці f(X) має локальний мінімум (максимум), то матриця Гессе H(Y) є недодатно

(невід'ємно) визначеною.

Достатня умова екстремуму. Нехай функція f(X) задана на RN і має кри­ тичну точку Y, в якій усі другі частинні похідні існують і є неперервними. Як­ що матриця Гессе H(Y) у цій точці є додатно (від'ємно) визначеною, то Y є точ­ кою локального мінімуму (максимуму) f(X). Якщо H(Y) є невизначеною, то ек­ стремуму у точці Y немає. Зокрема, для функції f(X) = х^ + x 2xj - 27xj, матриця

Гессе якої розглядалася вище, точки X і та X2 не є точками екстремумів, точка

X3 є точкою локального мінімуму, а X4 —локального максимуму.

6.2. Чисельні методи оптимізації

Одновимірна оптимізація. Задача одновимірної оптимізації передбачає знаходження найменшого або найбільшого значення функції f(x) на заданому відрізку [а;Ь]. їх існування для будь-якої неперервної на [a;b] функції випли­ ває з відомої із курсу математичного аналізу теореми Вейєрштрасса.

Функція f(x) може досягати своїх найменшого та найбільшого значень на відрізку [a;b] у крайніх точках відрізка, а також у точках локальних мінімуму та максимуму.

Найпростішим методом пошуку екстремуму унімодальної функції f(x) є

метод сканування. У цьому разі весь відрізок поділяють на п (п = 10...20) рів­ них частин, отримуючи точки х І5 х 2, ..., хп_| такі, що:

Х1хо = Х2 хі = - = хі “ хі_і = х„ - Х„-1 =hj = ^ - А

(6.14)

п

 

де х 0 = a,xn = b .

Після цього знаходимо точку х^, якій відповідає найменша із величин f(a ), f(x j) ,..., f ( x n_1), f(b ). Якщо xk ^ a,b , то внаслідок унімодальності f(x)

ми маємо зробити висновок, що точка екстремуму належить відрізку [xk_l5xk+1] .

У випадках, коли хк = а або хк = b , вона знаходиться, відповідно, на відрізках

[a,Xj] або [хпЧ,Ь].

Якщо довжина отриманого відрізка перевищує задану допустиму похибку є, то необхідно уточнити значення точки екстремуму. Для цього розбиваємо знайдений відрізок на п нових частин. Позначаємо їх крайні точки як х 0, х І5 ..., хпі знов знаходимо точку Х|., якій відповідає найменша із величин f(a ), f (х ,), ..., f (х n_|), f (b). Після цього визначаємо новий інтервал локаліза­

ції точки екстремуму. Цю процедуру продовжуємо, доки не буде виконана умо­ ва xk+1 - хк_, < є . Після цього беремо точку Х|. за точку екстремуму. У разі, коли на всіх кроках ітерацій найменшим (найбільшим) постійно виявляється значен­ ня функції у точці а або точці Ь, точкою екстремуму після закінчення ітерацій-

ної процедури доцільно обрати саме цю точку.

Метод золотого перерізу дає можливість зменшити кількість обчислень без істотного ускладнення алгоритму. У цьому випадку на відрізку [а,Ь] оби­ рають дві внутрішні точки хі та х2, які задовольняють умови:

Ь - х ,

х , - а х 7- а Ь - х 7

-----b - a-

= ----

; —---- =

------ (6.15)

b - Xj

b - а

х 2 - а

Звідси маємо:

b - x L = b - x i = - 1 + V ? ^ o 6 18

( б і б )

Ь - а

х 2 - а

2

 

Цю величину називають золотим перерізом, що й дало назву методу.

Розв’язуючи рівняння (6.16), одержуємо:

х 1« а + -—— (b - a ); х 2 « а - - —— (b - a ) .

(6.17)

Далі ітераційну процедуру будують так. Спочатку знаходять значення функції у точках а, хІ5 х2, Ь. Потім вихідний відрізок звужують, відкидаючи точку а у разі, коли найменшим значенням є f(x2) чи f(b), або точку b в інших випадках. Потім за вказаною процедурою на новому відрізку знов визначають дві внутрішні точки. При цьому, завдяки властивостям золотого перерізу, одна з них збігатиметься з точкою хі або х2, отриманою на попередньому кроці іте­ рацій. Тому на кожному кроці, крім першого, необхідно розраховувати лише

одну нову точку та відповідне значення функції. Ітерації продовжують, доки не буде виконано умову A1'* < є , де А1'1 —довжина відрізка локалізації точки екст­ ремуму після і-го кроку. Як значення точки екстремуму можна взяти середину цього відрізка.

Багатовиміна оптимізація. Чисельні методи багатовимірної оптимізації використовують різноманітні ітераційні процедури. При цьому наступне на­ ближення отримують з попереднього за рекурентною формулою:

x k+1 = Хк + tk+1Sk,

(6.18)

де вектор S визначає напрям пошуку, а скалярний параметр t —відстань між то­ чками X та X у цьому напрямі.

У всіх методах необхідно задати умову зупинення ітерацій. Зазвичай ви­ користовують такі умови:

Xk+1- X k < Єі; |f(x k+1) - f ( x k)|< s2;

d f(x k+1)

(6.19)

< s.

 

<9х-

 

де бі5 s2, s3 є достатньо малими додатними числами.

Методи, що розглядаються нижче, є методами мінімізації функції. Якщо потрібно знайти максимум, то необхідно внести відповідні зміни до алгоритмів,

або увести допоміжну функцію, мінімум якої збігається з максимумом вихідної функції (наприклад, помножити вихідну функцію на - 1), а потім використати наведені алгоритми.

Метод найшвидшого спуску (градієнтного спуску). Цей метод ґрунту­ ється на тому, що градієнт функції у точці має напрям, у якому функція найш­ видше зростає. Тому обирають Sk = -gradf ( x 'j , тобто формула (6.18) набуває

вигляду:

X k+1 = X k - tk+1 gradf ( x k).

(6.20)

Параметр tk+1 визначають із умови, що він відповідає мінімуму f(X) на промені Х к - tk+l gradf ( Xі j . Тоді його можна знайти, розглядаючи f(X) як фун­ кцію однієї змінної:

Ф(tk+1) = f (xk - tk+1gradf (X k))

(6.21)

і записуючи умову мінімуму у вигляді:

% = 0 .

(6.22)

dt

Достатньо простим та універсальним є такий спосіб визначення tk+1, що ґрунтується на апроксимації похідної в (6 .22) її різницевим поданням з наступ­ ним застосуванням розкладу у ряд Тейлора по tk+1:

d<p(tl+1)

f(x k- t k+1gradf(xl)) - f(x l)

 

dtk+1

tk+1

= -gradf(xk)-gradTf ( x k) +

(6.23)

+- 1k+1 gradf (Xk) • H(Xk) • gradT f (Xk) = 0.

2

Звідси маємо:

(l+1 = 2 gradf (xk) •gradT f (xk) grad f (X k) • H (X k) • gradT f (X k)

Якщо на певному кроці ітерацій не вдається знайти корінь рівняння

(6 .22), то як чергове значення параметра t можна взяти будь-яке число, для яко­

го f(x k+1)< f(x k).

Метод покоординатного спуску (релаксації). У цьому разі як черговий напрям пошуку мінімуму обираємо напрям координатної вісі, вздовж якої фун­ кція у точці поточного наближення змінюється найшвидше. Для цього обчис-

d f(x k)

люємо компоненти вектора градієнта

та обираємо номер і тієї з них, що

 

<9х-

є максимальною за модулем.

Нове наближення шукаємо на промені:

х к + tk+1x k = х к - tk+1

df(xk)

(6.25)

0,0,...,0,— ^— ^-,0,...,0

<9х-

Для знаходження tk+1 можна використати метод, аналогічний розглянуто­ му у методі найшвидшого спуску. Тоді отримаємо:

tk+i = _ 2(tf

(6.26)

a2f ( x k) ’ 1

ах;

К ) ’ 5х-

 

Метод Ньютона Рафсона. При знаходженні критичних точок отриму­

ємо систему рівнянь ф (х) = — -—- = 0 . Нехай f(X) є двічі диференційованою

5Х;

функцією з невиродженою матрицею Гессе. Тоді ср(Х) можна розкласти у ряд Тейлора в околі точки X :

cp(x) = cp(xk) + grad(p(xk)5x + 0(5x).

(6.27)

Приймаючи, що в одержуваній точтті X виконується умова ср(х) = 0,

отримаємо:

cp(xk) + gradcp(xk)5x = 0

(6.28)

або

d f(x k)

N

5 2f ( X k )

(6.29)

4 ^

+ І ^

У ( х , - х ^ ) = 0.

Цю систему можна записати в матричній формі у вигляді:

H (x k)5x = -grad(xk).

(6.30)

При невиродженій матриці Гессе її розв'язком, відомим з курсу алгебри,

є:

5Х = -H _1( x k)- gradf (Х к).

(6.31)

Звідси для наступного наближення маємо:

Х к+1 = Х к - Н' 1( х к) • gradf ( х к) .

(6.32)

Зазначимо, що на відміну від методу найшвидшого спуску градієнт у фо­ рмулі (6.32) помножується на матрицю, а не на скаляр, тому напрям Х к+1 - Х к не збігається з напрямом антиградієнта.

Метод спряжених напрямів. У цьому методі черговий напрям пошуку

Sk обирається таким, щоб він був спряженим з усіма попередніми.

Два ненульових вектори Zi та Z2 називають спряженими стосовно дода­ тно визначеної симетричної матриці А, якщо скалярний добуток ( AZl'jZ 2 = 0.

Систему відмінних від нуля векторів Z|. (k = 1, 2, К) називають взаємно спряженою стосовно матриці А, якщо (AZ^ ^Z- = 0 при 0 < і, j < К , і ^ j .

У методі спряжених напрямів обирають:

S °= -g ra d f(x °); v

Sk= -grad f(x k) + pk“1Sk_1.

Параметр

і _ H^S"-1)' -gradf(xk)

Pk_1 =

V / . .Гт

-чк-1

7

 

4

 

 

 

-Sk~l

 

(6.33)

(6.34)

забезпечує спряженість напрямів Sk та Sk 1 стосовно додатно визначеної симет­ ричної матриці Н порядку N х N . Крок у напрямі Sk для одержання наступного наближення розраховують за формулою:

t ^ - ^ d f ^ H s ; ) 1 .

(6.35)

sk-H-(sk)

Як правило, за напрями, що спрягаються, обирають градієнти функції у точках чергових наближень. Тоді замість формул (6.34, 6.35) застосовують ви­ рази:

.

l2

 

a f ( x k)

,

t41

 

Pk“! = J

gradf(xk)

tk+1 =

^k+i

'(s

)

(6.36)

1

------ a

^ --------

.

hdf(xM)

 

?**(х м

 

 

 

 

a(t“

)

^

 

Відповідний метод називають методом спряжених градієнтів.

6.3.Задача лінійного програмування

Узагальному вигляді задачу лінійного програмування (ЗЛП) формулю­

ють так: знайти значення вектора керованих змінних X = (xj,x 2,...,xN), що від­ повідає екстремальному значенню цільової функції

f ( X )= сіхі + с2х 2 +... + cNx i

(6.37)

і задовольняє систему М лінійних обмежень:

а п х і + а і2х 2 + ... + a1NxN

5 )bl5

 

(6.38)

 

'м-

Цю задачу зазвичай записують у канонічному вигляді: знайти не­ від’ємні значення змінних х; (і = 1,2,..., N ), за яких цільова функція (6.37) має мінімум або максимум, і які задовольняють систему лінійних обмежень:

Соседние файлы в папке Холмская экзамен