Метод рою частинок. Метод рою частинок Схема роботи алгоритму

"Рій частинок" як найпростіший метод еволюційного програмування, заснований на ідеї щодо можливості вирішення задач оптимізації за допомогою моделювання поведінки груп тварин. Схема роботи алгоритму, складання коду програми та блок-схеми.

Надіслати свою гарну роботу до бази знань просто. Використовуйте форму нижче

Студенти, аспіранти, молоді вчені, які використовують базу знань у своєму навчанні та роботі, будуть вам дуже вдячні.

Розміщено на http://www.allbest.ru/

Вступ

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

Копіюючи дії природи, людина створює дедалі більше досконалі алгоритми оптимізації. Для їх створення найчастіше є приклади з природи, наприклад: генетичний код або поведінка птахів, моделювання міграцій риб або охолодження металу і т.д.

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

На виробництві, завдяки оптимізації, вирішується безліч проблем пов'язаних з такими речами як простий верстат, переповнення складу або перенаправлення запчастин на інші верстати при поломці.

Для цієї роботи було обрано спосіб оптимізації «рій частинок». Алгоритм методу завдяки своїй простоті та швидкості вважається дуже перспективним для завдань планування.

1 . Постановка задачі

1.1 Математична модель

Метод «рій частинок» - найбільш простий метод еволюційного програмування, що з'явився в середині 90-х років, заснований на ідеї щодо можливості вирішення задач оптимізації за допомогою моделювання поведінки груп тварин. В основу методу покладено той факт, що при формуванні зграї птахи прагнуть деякого центру «тяжіння», поступово уповільнюючи швидкість польоту.

Коли зграя шукає їжу, її представники перевірятимуть прилеглу область і рухатимуться навколо зграї незалежно один від одного. Кожен представник має ступінь свободи чи хаотичності у русі, що дає можливість знайти скупчення їжі. Так, рано чи пізно, один з них знайде щось їстівне, і, будучи частиною зграї, повідомить решту. Інші також можуть тоді наблизитися до джерела їжі, і вже кожен представник завдяки ступеню свободи і хаотичності свого руху може знайти нове скупчення їжі.

У реалізації даного алгоритму багатовимірний простір пошуку населяється роєм частинок (елементарних рішень). Координати частки у просторі однозначно визначають розв'язання задачі оптимізації. Крім координат кожна з частинок описується швидкістю переміщення та прискоренням. У процесі переміщення частки здійснюють «прочісування» простору рішень і цим знаходять поточний оптимум, якого наступного кроку прагнуть інші частки. Кожна частка запам'ятовує своє найкраще положення, дані про яке передаються сусіднім часткам, які прагнуть цього значення.

Для введення випадкової складової процес пошуку можуть бути включені «божевільні» частинки, закон руху яких відрізняється від закону руху інших.

2 . Реалізація алгоритму

2.1 Схема роботи алгоритму

Схема роботи алгоритму виглядає так:

1. Створюється вихідна «випадкова» населення частинок.

2. Для кожної частки обчислюється цільова функція.

3. Найкраща частка з точки зору цільової функції оголошується центром тяжіння.

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

5. Здійснюється розрахунок нових координат частинок у просторі рішень.

6. Кроки 2-5 повторюються задане число разів або поки не виконається умова зупинки.

7. Останній «центр тяжкості» оголошується знайденим оптимальним рішенням.

2. 2 Кодпрограми

#include

#include

#include

#include

const int n=200;

const int m=200;

int i, j, k, t=200;

double F (double x)

return pow (pow(x, 3) - 125,2);

(Double V [n] [m];

double lower_limit=1, upper_limit=300;

double best_pos[n][m];

double cel[n] [m]; // масив генотипу

double best_cel=1000; // найкраще глобальне значення

const double C1=0.7, C2=1.2, w=0.93;

double **X=new double*[n];

for (i=0; i

X[i]=new double[m];

srand (time(NULL));

// ініціалізація положення та швидкостей частинок

for (i=0; i

for (j = 0; j

X [i] [j] = lower_limit + (upper_limit - lower_limit) * rand () / RAND_MAX;

// Ініціаліція генотипом частинок найгіршого

best_pos[i] [j] = 1000;

for (k=0; k

// Заповнення масиву генотипів

for (i=0; i

for (j = 0; j

// Визначення поточного генотипу

cel[i][j]=F (X[i][j]);

//Збереження значення кращого генотипу для кожної частинки

if (cel[i] [j]

best_pos[i][j]=cel[i][j];

if (best_pos[i][j]

best_cel=best_pos[i][j];

printf (%f, x);

// Оновлення швидкостей частинок та їх позицій

for (i=0; i

for (j = 0; j

R1 = 1. * rand () / RAND_MAX;

R2 = 1. * rand () / RAND_MAX;

V [i] [j] = w * V [i] [j] + C1 * R1 * (best_cel - X [i] [j]) + C2 * R2 * (best_pos [i] [j] - X [i] ] [j]);

X[i][j] = X[i][j] + V[i][j];

2.3 Блок схема алгоритму

Розміщено на http://www.allbest.ru/

Розміщено на http://www.allbest.ru/

3 . Теоретична оцінка трудомісткості алгоритму оптимізації

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

Під елементарними операціями, розумітимемо операції, які можуть бути представлені у вигляді елементарних конструкцій даної мови (але не обов'язково у вигляді однієї машинної команди), а саме за одну елементарну операцію вважатимемо наступні:

1) операцію присвоєння ab;

2) операцію індексації масиву a[i];

3) арифметичні операції *,/,-,+;

4) операції порівняння a< b;

5) логічні операції or, and, not.

Цикл for є елементарною операцією, т.к. може бути представлений у вигляді;

Таким чином, конструкція циклу вимагає 2*N елементарних операцій:

F «цикл» = 2* N+ N* f "тіло циклу".

Таким чином, для нашої програми отримаємо:

F = 9 + // Константи

2*200+200*(2*200+(8+6)*200)+ // ініціалізація положення та швидкостей

2*200+200*(2*200+200*(2*200+200*(6+20))+ // заповнення масиву генотипу та кращих значень

2*200+200*(2*200+200*(4+4+10+2+16)) // оновлення швидкостей та позицій

Через війну теоретичного обчислення трудомісткість цієї програми становила F= 528800809 елементарних операцій.

Висновок

програма алгоритм моделювання

Останнім часом стало з'являтися дуже багато нових алгоритмів, які засновані на наслідуванні природи, але не кожен алгоритм може похвалитися такою простотою реалізації та оригінальністю ідеї. Завдяки випадковості розподілу частинок та їх хаотичності в русі виникає дуже велика можливість знайти оптимальне рішення за кілька ітерацій, уникаючи при цьому локальні оптимуми.

Подальший розвиток подібних алгоритмів є ключем до нових технологій оптимізації та розвитку загалом.

Список використаних джерел

1. Ульянов М.В., Шептунов М.В. Математична логіка та теорія алгоритмів, частина 2: Теорія алгоритмів. – К.: МДАПІ, 2003. – 80 с.

2. Конспект лекцій з дисципліни «Математична логіка та теорія алгоритмів».

3. Global Optimization Algorithms – Theory and Application.

4. http://ua.wikipedia.org

Розміщено на Allbest.ru

Подібні документи

    Особливості задач лінійного програмування. Симплексний метод розв'язання задач лінійного програмування. Обґрунтування вибору мови, інструментарію програмування, перелік ідентифікаторів та блок-схема алгоритму. Логічна схема роботи програми.

    дипломна робота , доданий 13.08.2011

    Розробка бібліотеки, яка дозволить моделювати динаміку частинок у тривимірній графікі. Вибір засобів та методів розробки. Варіанти моделювання систем часток. Моделювання на вершинному шейдері. Діаграми класу Particle System та PSBehavior.

    курсова робота , доданий 07.02.2016

    Основні аналітичні співвідношення. Блок схеми та алгоритм розв'язання задачі. Перевірка працездатності алгоритму вручну. Таблиця ідентифікації змінних. Форми вхідного та вихідного друку. Розробка та налагодження програми. Інструкція для роботи із програмою.

    курсова робота , доданий 13.02.2012

    Поняття лінійного програмування та оптимізації. Основи роботи у системі MathCAD. Інтерфейс користувача, вхідна мова та тип даних. Етапи комп'ютерного математичного моделювання. Приклад розв'язання оптимізаційної задачі засобами програми MathCAD.

    курсова робота , доданий 16.10.2011

    Створення програми в середовищі програмування MatLab для вирішення задачі одновимірної оптимізації (знаходження мінімуму та максимуму заданих функцій) методом золотого перерізу, побудова блок-схеми алгоритму та графічне зображення досліджених функцій.

    реферат, доданий 14.06.2010

    Система програмування Delphi, її характеристика. Основні вимоги до навчальної програми. Складання блок-схеми алгоритму програми "Математика. 1 клас". Види завдань для вирішення навчальної програми. Опис роботи системи, інструкція до неї.

    курсова робота , доданий 17.06.2015

    Оптимізація розв'язання задачі за допомогою алгоритму відпалу. Аналіз теорії оптимізації як цільової функції. Метод градієнтного спуску. Змінні та опис алгоритму відпалу. Подання завдання комівояжера через граф. Зведення завдання до змінних та розв'язання.

    курсова робота , доданий 21.05.2015

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

    курсова робота , доданий 26.02.2015

    Перетворення матриці системи лінійних рівнянь алгебри (СЛАУ) за допомогою алгоритму Гауса. Розв'язання задачі методом простої ітерації. Створення блок-схеми та тексту програми для вирішення СЛАУ, реалізованої мовою програмування Turbo Pascal.

    курсова робота , доданий 15.06.2013

    Паскаль як мова професійного програмування, яка названа на честь французького математика та філософа Блеза Паскаля, історія його розробки та функціональні особливості. Завдання із використанням двовимірного масиву, складання блок-схеми рішення.

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

Алгоритм

Нехай f: ℝ n→ ℝ - цільова функція, яку потрібно мінімізувати, S- кількість частинок у рої, кожній із яких зіставлена ​​координата x i ∈ ℝ nу просторі рішень та швидкість v i ∈ ℝ n. Нехай також p i - найкраще з відомих положень частинки i, а g- найкращий відомий стан рою в цілому. Тоді загальний вигляд методу рою частинок такий.

  • Для кожної частки i = 1, …, Sзробити:
    • Згенерувати початкове положення частинки за допомогою випадкового вектора x i ~ U(b lo, b up), має багатовимірне рівномірне розподіл . b loі b up- нижня та верхня межі простору рішень відповідно.
    • Присвоїти краще відомому положенню частки його початкове значення: p i ← x i.
    • Якщо ( f(p i)< f(g)), то оновити найкращий відомий стан рою: gp i.
    • Присвоїти значення швидкості частинки: v i ~ U(-(b up-b lo), (b up-b lo)).
  • Поки не виконано критерій зупинки (наприклад, досягнення заданої кількості ітерацій або необхідного значення цільової функції), повторювати:
    • Для кожної частки i = 1, …, Sзробити:
      • Згенерувати випадкові вектори r p , r g ~ U(0,1).
      • Оновити швидкість частки: v i ← ω v i + φ p r p × ( p i - x i) + φg r g × ( g-x i) де операція × означає покомпонентне множення.
      • Оновити положення частки перенесенням x i на вектор швидкості: x i ← x i + v i. Зауважимо, що цей крок виконується незалежно від поліпшення цільової функції.
      • Якщо ( f(x i)< f(p i)), то робити:
        • Оновити найкраще відоме положення частки: p i ← x i.
        • Якщо ( f(p i)< f(g)), то оновити кращий відомий стан рою в цілому: gp i.
  • Тепер gмістить найкраще зі знайдених рішень.

Параметри ω, φ p і φ g вибираються обчислювачем і визначають поведінку та ефективність методу в цілому. Ці параметри становлять предмет багатьох досліджень (див. нижче).

Добір параметрів

Вибір оптимальних параметрів методу рою частинок - тема значної кількості дослідницьких робіт, див., наприклад, роботи Ши та Еберхарта, Карлісла та Дозера, ван ден Берга, Клерка та Кеннеді, Трелеа, Браттона та Блеквелла, а також Еверса.

Простий та ефективний шлях підбору параметрів методу запропонований Педерсеном та іншими авторами. Вони ж провели чисельні експерименти з різними оптимізаційними проблемами та параметрами. Техніка вибору цих параметрів називається мета-оптимізацією, оскільки інший оптимізаційний алгоритм використовується для «налаштування» параметрів МРЧ. Вхідні параметри МРЧ з найкращою продуктивністю виявилися такими, що суперечать основним принципам, описаним у літературі, і часто дають задовільні результати оптимізації для простих випадків МРЧ. Реалізацію їх можна знайти у відкритій бібліотеці SwarmOps.

Варіанти алгоритму

Постійно пропонуються нові варіанти алгоритму рою частинок поліпшення продуктивності методу. Існує кілька тенденцій у цих дослідженнях, одна з яких пропонує створити гібридний оптимізаційний метод, що використовує МРЧ у комбінації з іншими алгоритмами, наприклад. Інша тенденція пропонує прискорити роботу методу, наприклад, відходом назад або зміною порядку руху частинок (про це див.). Також є спроби адаптувати поведінкові параметри МРЧ у процесі оптимізації.

Напишіть відгук про статтю "Метод рою частинок"

Примітки

  1. (1995) "Particle Swarm Optimization". Proceedings of IEEE International Conference on Neural Networks IV: 1942-1948.
  2. (1998) "A modified particle swarm optimizer". Proceedings of IEEE International Conference on Evolutionary Computation: 69-73.
  3. Swarm Intelligence. – Morgan Kaufmann, 2001.
  4. Poli, R. (2007). "". Technical Report CSM-469(Department of Computer Science, University of Essex, UK).
  5. Poli, R. (2008). "". : 1-10. DOI: 10.1155/2008/685175.
  6. (1998) "Parameter selection in particle swarm optimization". Proceedings of Evolutionary Programming VII (EP98): 591-600.
  7. (2000) "Comparing inertia weights and constriction factors in particle swarm optimization". Proceedings of Congress on Evolutionary Computation 1 : 84-88.
  8. (2001) "An Off-The-Shelf PSO". Proceedings of the Particle Swarm Optimization Workshop: 1-6.
  9. van den Bergh F. An Analysis of Particle Swarm Optimizers. - University of Pretoria, Faculty of Natural and Agricultural Science, 2001.
  10. (2002) «Particle swarm - explosion, stability, і convergence in multidimensional complex space». IEEE Transactions on Evolutionary Computation 6 (1): 58-73.
  11. Trelea, I.C. (2003). "The Particle Swarm Optimization Algorithm: convergence analysis and parameter selection". Information Processing Letters 85 : 317-325.
  12. (2008) "A Simplified Recombinant PSO". Journal of Artificial Evolution and Applications.
  13. Evers G.. - The University of Texas - Pan American, Department of Electrical Engineering, 2009.
  14. Pedersen M.E.H.. - University of Southampton, School of Engineering Sciences, Computational Engineering and Design Group, 2010.
  15. Pedersen, M.E.H.; Chipperfield, A.J. (2010). "". Applied Soft Computing 10 : 618-628.
  16. (2002) "The LifeCycle Model: поєднуючи частину сварки optimisation, genetic algorithms and hillclimbers". Proceedings of Parallel Problem Solving from Nature VII (PPSN): 621-630.
  17. (2010) «An efficient hybrid approach based on PSO, ACO and k-means for cluster analysis». Applied Soft Computing 10 (1): 183-197.
  18. (2002) "Extending Particle Swarm Optimisers with Self-Organized Criticality". Процедури чотирьох Конгресів на Evolutionary Computation (CEC) 2 : 1588-1593.
  19. Xinchao, Z. (2010). «A perturbed particle swarm algoritm for numerical optimization». Applied Soft Computing 10 (1): 119-124.
  20. (2009) "Adaptive Particle Swarm Optimization". IEEE Transactions on Systems, Man, Cybernetics 39 (6): 1362-1381.

Посилання

  • . Новини, люди, місця, програми, статті та ін. Зокрема див. поточний стандарт МРЧ. (англ.)

Уривок, що характеризує Метод рою частинок

- Так, - сказав Ростов, ніби вимовити це слово коштувало великої праці, і сів за сусідній стіл.
Обидва мовчали; у кімнаті сиділи два німці та один російський офіцер. Всі мовчали, і чулися звуки ножів про тарілки та човгання поручика. Коли Телянин скінчив сніданок, він вийняв з кишені подвійний гаманець, вигнутими догори маленькими білими пальцями розсунув кільця, дістав золотий і, піднявши брови, віддав гроші слугі.
- Будь ласка, скоріше, - сказав він.
Золотий був новий. Ростов підвівся і підійшов до Телянина.
- Дозвольте подивитися мені гаманець, - сказав він тихим, ледь чутним голосом.
З очима, що бігали, але все піднятими бровами Телянин подав гаманець.
– Так, гарненький гаманець… Так… так… – сказав він і раптом зблід. - Подивіться, юначе, - додав він.
Ростов узяв у руки гаманець і подивився і на нього, і на гроші, що були в ньому, і на Телянина. Поручик озирався навколо, за своєю звичкою і, здавалося, раптом став дуже веселим.
— Коли будемо у Відні, все там залишу, а тепер і нікуди подіти в цих поганих містечках, — сказав він. – Ну, давайте, юначе, я піду.
Ростов мовчав.
- А ви що? теж поснідати? Порядно годують, – вів далі Телянин. – Давайте ж.
Він простяг руку і взявся за гаманець. Ростов випустив його. Телянин узяв гаманець і став опускати його в кишеню рейтуз, і брови його недбало піднялися, а рот злегка розкрився, ніби він казав: «так, так, кладу в кишеню свій гаманець, і це дуже просто, і нікому до цього діла нема» .
- Ну що, юначе? - сказав він, зітхнувши і з-під піднятих брів глянувши в очі Ростова. Якесь світло очей зі швидкістю електричної іскри перебігло з очей Телянина в очі Ростова і назад, назад і назад, все в одну мить.
- Ідіть сюди, - промовив Ростов, хапаючи Телянина за руку. Він майже притягнув його до вікна. – Це гроші Денисова, ви їх взяли… – прошепотів він йому над вухом.
– Що?… Що?… Як ви смієте? Що?… – промовив Телянин.
Але ці слова звучали жалібним, відчайдушним криком та благанням про прощення. Щойно Ростов почув цей звук голосу, з його душі впав величезний камінь сумніву. Він відчув радість і в ту ж мить йому стало шкода нещасної людини, що стояла перед ним; але треба було до кінця довести розпочату справу.
– Тут люди Бог знає що можуть подумати, – бурмотів Телянин, схоплюючи кашкет і прямуючи у невелику порожню кімнату, – треба порозумітися…
– Я це знаю, і я це доведу, – сказав Ростов.
– Я…
Злякане, бліде обличчя Телянина почало тремтіти всіма м'язами; очі так само бігали, але десь унизу, не піднімаючись до обличчя Ростова, і почулися схлипування.
– Граф!… не губіть хлопця… ось ці нещасні гроші, візьміть їх… – Він кинув їх на стіл. – У мене батько старий, матір!
Ростов узяв гроші, уникаючи погляду Телянина, і, не кажучи ні слова, пішов із кімнати. Але біля дверей він зупинився та повернувся назад. – Боже мій, – сказав він зі сльозами на очах, – як ви могли це зробити?
- Граф, - сказав Телянин, наближаючись до юнкера.
- Не чіпайте мене, - промовив Ростов, відсторонюючись. - Якщо вам потреба, візьміть ці гроші. - Він жбурнув йому гаманець і вибіг з корчми.

Увечері того ж дня на квартирі Денисова йшла жвава розмова офіцерів ескадрону.
— А я кажу вам, Ростове, що вам треба вибачитися перед полковим командиром, — говорив, звертаючись до червоного червоного, схвильованого Ростова, високий штаб ротмістр, з сивілим волоссям, величезними вусами і великими рисами зморшкуватого обличчя.
Штаб ротмістр Кірстен був двічі розжалований у солдати за справи честі і двічі вислужився.
- Я нікому не дозволю собі говорити, що я брешу! – скрикнув Ростов. - Він сказав мені, що я брешу, а я сказав йому, що він бреше. Так і залишиться. На чергування може мене призначати хоч щодня і під арешт саджати, а вибачатися мене ніхто не змусить, бо коли він, як полковий командир, вважає негідним себе дати мені задоволення, так…
- Та ви зачекайте, батюшку; ви послухайте мене, – перебив штаб ротмістр своїм басистим голосом, спокійно розгладжуючи свої довгі вуса. - Ви за інших офіцерів кажете полковому командиру, що офіцер вкрав...
– Я не винен, що розмова зайшла за інших офіцерів. Можливо, не треба було говорити при них, та я не дипломат. Я потім у гусари і пішов, думав, що тут не потрібно тонкощів, а він мені каже, що я брешу… то хай дасть мені задоволення…
- Це все добре, ніхто не думає, що ви боягуз, та не в тому річ. Запитайте у Денисова, схоже це на щось, щоб юнкер вимагав задоволення у полкового командира?
Денисов, закусивши вус, з похмурим виглядом слухав розмову, мабуть не бажаючи вступати до нього. На запитання штаб ротмістра він заперечливо похитав головою.
— Ви при офіцерах кажете полковому командиру про цю гидоту, — вів далі штаб ротмістр. – Богданович (Богдановичем називали полкового командира) вас обложив.
- Не обложив, а сказав, що я неправду говорю.
- Ну так, і ви наговорили йому дурниць, і треба перепросити.
- Нізащо! – крикнув Ростов.
- Не думав я цього від вас, - серйозно і суворо сказав штаб ротмістр. — Ви не хочете вибачитись, а ви, батюшка, не тільки перед ним, а перед усім полком, перед усіма нами, ви навкруги винні. А от як: якби ви подумали та порадилися, як обійтися з цією справою, а то ви прямо, та за офіцерів, і бухнули. Що тепер робити полковому командиру? Потрібно віддати під суд офіцера і забруднити весь полк? За одного негідника весь полк осоромити? Так, чи що, на вашу думку? А на нашу думку, не так. І Богданович молодець, він вам сказав, що ви неправду кажете. Неприємно, та що робити, батюшка, самі наскочили. А тепер, як справу хочуть зам'яти, так ви з-за фанаберії якийсь не хочете вибачитися, а хочете все розповісти. Вам прикро, що ви подежурите, та що вибачитися перед старим і чесним офіцером! Який би там не був Богданович, а все чесний і хоробрий, старий полковнику, так вам прикро; а забруднити полк вам нічого? - Голос штабу ротмістра починав тремтіти. - Ви, батюшка, у полку без року тиждень; нині тут, завтра перейшли кудись до ад'ютантики; вам начхати, що будуть говорити: «Між Павлоградськими офіцерами злодії!» А нам не байдуже. То чи що, Денисов? Не все одно?
Денисов все мовчав і не ворушився, зрідка поглядаючи своїми блискучими чорними очима на Ростова.
– Вам своя фанаберія дорога, вибачитись не хочеться, – продовжував штаб ротмістр, – а нам, старим, як ми виросли, та й померти, Бог дасть, приведеться в полку, то нам честь полку дорога, і Богданович це знає. Ох, як дорога, тату! А це недобре, недобре! Там ображайтеся чи ні, а я завжди скажу правду матку. Не добре!
І штаб ротмістр підвівся і відвернувся від Ростова.
- Пг"авда, чог"т візьми! - Закричав, схоплюючись, Денисов. - Ну, Г"кістя! Ну!
Ростов, червоніючи й блідівши, дивився то на одного, то на іншого офіцера.
– Ні, панове, ні… ви не думайте… я дуже розумію, ви даремно про мене думаєте так… я… для мене… я за честь полку… та що? це насправді я покажу, і для мене честь прапора… ну, все одно, правда, я винен!.. – Сльози стояли в його очах. – Я винен, навкруги винен!… Ну, що вам ще?…
- Оце так, графе, - повертаючись, гукнув штаб ротмістр, ударяючи його великою рукою по плечу.
- Я тобі кажу, - закричав Денисов, - він малий славний.
- Так краще, графе, - повторив штаб ротмістр, ніби за його визнання починаючи звати його титулом. - Ідіть і вибачтеся, ваше сіятельство, та с.
- Панове, все зроблю, ніхто від мене слова не почує, - благаючим голосом промовив Ростов, - але вибачатися не можу, їй Богу, не можу, як хочете! Як я вибачатимуся, точно маленький, прощення просити?
Денисов засміявся.
– Вам гірше. Богданович зла пам'ятний, поплатіться за впертість, – сказав Кірстен.
- Їй Богу, не впертість! Я не можу вам описати, яке почуття не можу…

Алгоритм

Нехай f: ℝ n→ ℝ - цільова функція, яку потрібно мінімізувати, S- кількість частинок у рої, кожній із яких зіставлена ​​координата x i ∈ ℝ nу просторі рішень та швидкість v i ∈ ℝ n. Нехай також p i - найкраще з відомих положень частинки i, а g- найкращий відомий стан рою в цілому. Тоді загальний вигляд методу рою частинок такий.

  • Для кожної частки i = 1, …, Sзробити:
    • Згенерувати початкове положення частинки за допомогою випадкового вектора x i ~ U(b lo, b up), має багатовимірне рівномірне розподіл . b loі b up- нижня та верхня межі простору рішень відповідно.
    • Присвоїти краще відомому положенню частки його початкове значення: p i ← x i.
    • Якщо ( f(p i)< f(g)), то оновити найкращий відомий стан рою: gp i.
    • Присвоїти значення швидкості частинки: v i ~ U(-(b up-b lo), (b up-b lo)).
  • Поки не виконано критерій зупинки (наприклад, досягнення заданої кількості ітерацій або необхідного значення цільової функції), повторювати:
    • Для кожної частки i = 1, …, Sзробити:
      • Згенерувати випадкові вектори r p , r g ~ U(0,1).
      • Оновити швидкість частки: v i ← ω v i + φ p r p × ( p i - x i) + φg r g × ( g-x i) де операція × означає покомпонентне множення.
      • Оновити положення частки перенесенням x i на вектор швидкості: x i ← x i + v i. Зауважимо, що цей крок виконується незалежно від поліпшення цільової функції.
      • Якщо ( f(x i)< f(p i)), то робити:
        • Оновити найкраще відоме положення частки: p i ← x i.
        • Якщо ( f(p i)< f(g)), то оновити кращий відомий стан рою в цілому: gp i.
  • Тепер gмістить найкраще зі знайдених рішень.

Параметри ω, φ p і φ g вибираються обчислювачем і визначають поведінку та ефективність методу в цілому. Ці параметри становлять предмет багатьох досліджень (див. нижче).

Добір параметрів

Вибір оптимальних параметрів методу рою частинок - тема значної кількості дослідницьких робіт, див., наприклад, роботи Ши та Еберхарта, Карлісла та Дозера, ван ден Берга, Клерка та Кеннеді, Трелеа, Браттона та Блеквелла, а також Еверса.

Простий та ефективний шлях підбору параметрів методу запропонований Педерсеном та іншими авторами. Вони ж провели чисельні експерименти з різними оптимізаційними проблемами та параметрами. Техніка вибору цих параметрів називається мета-оптимізацією, оскільки інший оптимізаційний алгоритм використовується для «налаштування» параметрів МРЧ. Вхідні параметри МРЧ з найкращою продуктивністю виявилися такими, що суперечать основним принципам, описаним у літературі, і часто дають задовільні результати оптимізації для простих випадків МРЧ. Реалізацію їх можна знайти у відкритій бібліотеці SwarmOps.

Варіанти алгоритму

Постійно пропонуються нові варіанти алгоритму рою частинок поліпшення продуктивності методу. Існує кілька тенденцій у цих дослідженнях, одна з яких пропонує створити гібридний оптимізаційний метод, що використовує МРЧ у комбінації з іншими алгоритмами, наприклад. Інша тенденція пропонує прискорити роботу методу, наприклад, відходом назад або зміною порядку руху частинок (про це див.). Також є спроби адаптувати поведінкові параметри МРЧ у процесі оптимізації.

Див. також

  • Бджолиний алгоритм
  • Gravitational Search Algorithm

Примітки

  1. (1995) "Particle Swarm Optimization". Proceedings of IEEE International Conference on Neural Networks IV: 1942-1948.
  2. (1998) "A modified particle swarm optimizer". Proceedings of IEEE International Conference on Evolutionary Computation: 69-73.
  3. Swarm Intelligence. – Morgan Kaufmann, 2001.
  4. Poli, R. (2007). «An analysis of publications on particle swarm optimisation applications». Technical Report CSM-469(Department of Computer Science, University of Essex, UK).
  5. Poli, R. (2008). «Analysis of the publications on the applications of particle swarm optimisation». : 1-10. DOI: 10.1155/2008/685175.
  6. (1998) "Parameter selection in particle swarm optimization". Proceedings of Evolutionary Programming VII (EP98): 591-600.
  7. (2000) "Comparing inertia weights and constriction factors in particle swarm optimization". Proceedings of Congress on Evolutionary Computation 1 : 84-88.
  8. (2001) "An Off-The-Shelf PSO". Proceedings of the Particle Swarm Optimization Workshop: 1-6.
  9. van den Bergh F. An Analysis of Particle Swarm Optimizers. - University of Pretoria, Faculty of Natural and Agricultural Science, 2001.
  10. (2002) «Particle swarm - explosion, stability, і convergence in multidimensional complex space». IEEE Transactions on Evolutionary Computation 6 (1): 58-73.
  11. Trelea, I.C. (2003). "The Particle Swarm Optimization Algorithm: convergence analysis and parameter selection". Information Processing Letters 85 : 317-325.
  12. (2008) "A Simplified Recombinant PSO". Journal of Artificial Evolution and Applications.
  13. Evers G. An Automatic Regrouping Mechanism to Deal with Stagnation in Particle Swarm Optimization . - The University of Texas - Pan American, Department of Electrical Engineering, 2009.
  14. Pedersen M.E.H. Tuning & Simplifying Heuristical Optimization. - University of Southampton, School of Engineering Sciences, Computational Engineering and Design Group, 2010.
  15. Pedersen, M.E.H.; Chipperfield, A.J. (2010). «Simplifying particle swarm optimization». Applied Soft Computing 10 : 618-628.
  16. (2002) "The LifeCycle Model: поєднуючи частину сварки optimisation, genetic algorithms and hillclimbers". Proceedings of Parallel Problem Solving from Nature VII (PPSN): 621-630.
  17. (2010) «An efficient hybrid approach based on PSO, ACO and k-means for cluster analysis». Applied Soft Computing 10 (1): 183-197.
  18. (2002) "Extending Particle Swarm Optimisers with Self-Organized Criticality". Процедури чотирьох Конгресів на Evolutionary Computation (CEC) 2 : 1588-1593.
  19. Xinchao, Z. (2010). «A perturbed particle swarm algoritm for numerical optimization». Applied Soft Computing 10 (1): 119-124.
  20. (2009) "Adaptive Particle Swarm Optimization". IEEE Transactions on Systems, Man, Cybernetics 39 (6): 1362-1381.

Посилання

  • Particle Swarm Central. Новини, люди, місця, програми, статті та ін. Зокрема див. поточний стандарт МРЧ. (англ.)
  • SwarmOps. Підбір параметрів/калібрування МРЧ та інші мета-оптимізаційні методи. Програмна бібліотека мовами C і C#.
  • EvA2 – комплексний інструмент еволюційних методів оптимізації та МРЧ з відкритим вихідним кодом, написаний на Java.
  • ParadisEO потужний C++ фреймворк, призначений до створення різних метаевристик, включаючи алгоритми МРЧ . Готові до використання алгоритми, множина підручників, що допомагають швидко створити власний варіант МРЧ.
  • Код МРЧ на FORTRAN Вимірювання продуктивності на тестових функціях.
  • - GPLed computational intelligence simulation and research environment written in Java, включаючи різні PSO implementations
  • Використання реалізації МРЧ на Python для вирішення головоломки про перетин сходів.
  • ECF - Evolutionary Computation Framework різні алгоритми, генотипи, розпаралелювання, підручники.


Останні матеріали розділу:

Хімія елементів VIII Б групи Періодичної системи Д
Хімія елементів VIII Б групи Періодичної системи Д

Надіслати свою гарну роботу до бази знань просто. Використовуйте форму, розташовану нижче Студенти, аспіранти, молоді науковці, які використовують базу.

Вікторина за оповідями Павла Бажова «Кам'яна квітка
Вікторина за оповідями Павла Бажова «Кам'яна квітка

Статтю опубліковано за підтримки заводу "МеталЕкспортПром", який виробляє теплообмінники та ємності. Наявність власних виробничих...

Відгук про казку братів Гримм «Горщик каші Бр гримм горщик каші читацький щоденник
Відгук про казку братів Гримм «Горщик каші Бр гримм горщик каші читацький щоденник

Головна героїня казки братів Грімм «Горщик каші» — дівчинка. Якось вона пішла до лісу збирати ягоди. У лісі вона зустріла стару жінку, і та...