- •Застосування ройових алгоритмів для розв’язування екстремальних задач
- •Застосування ройових алгоритмів для розв’язування екстремальних задач Клименко Кирил Володимирович
- •Розділ 1. Загальна характеристика ройових алгоритмів та їх застосування
- •Загальна характеристика ройових алгоритмів.
- •Огляд ройових алгоритмів
- •1.3. Застосування ройових алгоритмів до розв’язування
- •Оптимальна міжгалузева балансова модель
- •Розділ 2. Канонічний ройовий алгоритм та його модифікації
- •2.1. Канонічний ройовий алгоритм для задач неперервної оптимізації
Огляд ройових алгоритмів
Ройові алгоритми(PSO алгоритми) характеризуються стохастичністю, тобто кожен агент цієї системи в кожній наступній ітерації рухається випадково. Рух всього рою слід розглядати, як окремий рух кожного агента, знаходження найбільш оптимального значення під час кожної ітерації(локального мінімуму), а загальний процес являє собою аналіз кожним агентом отриманої інформації про оптимальне місцезнаходження кожного з усіх інших агентів. Такий процес можна визначити як взаємоаналіз, де кожна частка отримує вигоду з дослідів і попереднього досвіду всіх інших часток. Таким чином, цей алгоритм має найбільше шансів на отримання переваги над іншими алгоритмами, особливо коли оптимум невідомий, або розташований випадково.
Задачу оптимізації можна сформувати як пошук глобального екстремуму(мінімуму чи максимуму) цільової функції f(X), визначеній на проміжку D:
f(X) → min(max), X∈D = {x ∈ Rd},
де область D – суттєвий гіперкуб з розмірністю d, X – векторний аргумент функції f, що оптимізується, а її глобальний розв’язок знаходиться в точці X*
В цьому алгоритмі, сукупність часток представлена сукупністю точок-рішень, що рухаються у просторі в пошуку глобального оптимуму. Під час руху кожна частка обмінюється інформацією з сусідніми агентами і намагається покращити свій результат.
Позначимо сукупність часток рою через
X = {x1,x2,…,xs},
де s – кількість елементів рою. I-та позиція позначає сукупність ії координат(xi1,xi2,…,xid) , в d-розмірному просторі. Практично доведено, що найбільш раціонально використовувати 20-30 часток.
На початковому етапі алгоритму відбувається ініціалізація рою часток. Якщо ж інформація про початкові дані про цільову функцію, то доцільно визначити за формулою
xij = rand(xjmin , xjmax ) ,
де xi,j – i-та частка j-ої координати(розмірності), rand(xjmin , xjmax ) – випадково згенероване число в інтервалі [xjmin , xjmax] j-ого простору, рівномірно розподілені на всьому інтервалі.
Очевидно, що частки певним чином змінюють своє положення в просторі, тобто рухаються. Такий рух можна описати масивом V={v1,v2,…,vs}, де vs – вектор переміщення для s-ої частки. Такі вектори на початку можна вважати нульовими, але досвід встановив, що краще їх розраховувати по формулі
vi,j=[rand(xjmin ,xjmax)-xi,j]/2,
де vi,j – j-ий вектор руху i-ї частки. Такий спосіб гарантує, що під час завдання наступного вектора частки не вийдуть за межі пошуку.
На наступних ітерація вектори розраховуються по формулі
V’i,j = wvi,j + c1r1( pi,j – xi,j ) + c2r2 (gj – xi,j ),
а наступна координата(позиція) кожної частки за формулою
x’i,j = xi,j + v’i,j,
де v'i x'I - новий вектор і положення і-ії частки; pi – найкраще положення, визначене попередньо(personal best); g – найкраще рішення, знайдене всім роєм(global best); w – інерційний коефіцієнт; c1,c2 - відповідно когнітивний і соціальні коефіцієнти; - випадкові числа, r1,r2 - генеровані випадково на інтервалі [0;1] для кожної координати.
Якщо ж під час виконання частка виходить за межі простору пошуку, то її відповідний вектор набуває нульового значення, а частка отримує відповідно граничні координати, тобто переходить на край “поля” пошуку.
Інерційний коефіцієнт w визначає вплив попереднього вектору частки на її нове значення. Величина коефіцієнта c1 показує ії індивідуальну поведінку і “прагнення” рухатися до напрямку найкращого рішення, знайденого нею до цього. Коефіцієнт c2 задає ступінь її колективної реакції і прагнення рухатися в напрямку до найкращого колективного рішення
