Пример за метод на рояк частици. Метод на рояка частици

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

Изпратете добрата си работа в базата знания е лесно. Използвайте формата по-долу

Студенти, докторанти, млади учени, които използват базата от знания в обучението и работата си, ще ви бъдат много благодарни.

Публикувано на http://www.allbest.ru/

Въведение

От времето на Ламарк развитието на живия свят се разглежда като процес на постоянно усъвършенстване (адаптиране) на индивидите под въздействието на околната среда. Чрез моделиране на избора на най-добрите планове като процес на еволюция в популация от индивиди е възможно да се получи решение на проблема с оптимизацията чрез задаване на началните условия на еволюционния процес, заселване на виртуалната вселена със същества, които носят информация, и посочване на целта на еволюционния процес.

Копирайки действията на природата, човекът създава все по-усъвършенствани алгоритми за оптимизация. За тяхното създаване най-често се използват примери от природата, например: генетичен код или поведение на птици, моделиране на миграции на риби или охлаждане на метал и др.

В момента оптимизационните алгоритми се използват широко в производството и бизнеса, тъй като позволяват да се спестят не само пари в брой, но и време, което постоянно е в недостиг.

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

За тази работа беше избран методът за оптимизация на „рояк частици“. Алгоритъмът на метода, поради своята простота и бързина, се счита за много обещаващ за проблеми с планирането.

1 . Формулиране на проблема

1.1 Математически модел

Методът „рояк частици“ е най-простият метод за еволюционно програмиране, появил се в средата на 90-те години, въз основа на идеята, че е възможно да се решават оптимизационни проблеми чрез моделиране на поведението на групи животни. Методът се основава на факта, че когато формират стадо, птиците се стремят към някакъв център на „гравитация“, като постепенно забавят скоростта на полета си.

Когато стадото търси храна, членовете ще проверяват околността и ще се движат около стадото независимо един от друг. Всеки представител има известна степен на свобода или произволност в движението, което му дава възможност да намери натрупване на храна. Така че рано или късно един от тях ще намери нещо годно за консумация и, като част от стадото, ще информира останалите. След това останалите могат да се доближат до източника на храна и всеки представител, благодарение на степента на свобода и произволността на своето движение, може да намери ново натрупване на храна.

При изпълнението на този алгоритъм многомерното пространство за търсене се запълва от рояк частици (елементарни решения). Координатите на частицата в пространството еднозначно определят решението на задачата за оптимизация. В допълнение към координатите, всяка частица се описва със своята скорост на движение и ускорение. В процеса на движение частиците "сресват" пространството на разтвора и по този начин намират текущия оптимум, към който останалите частици се втурват на следващата стъпка. Всяка частица помни най-добрата си позиция, данните за която се предават на съседните частици, които се стремят към тази стойност.

За да се въведе случаен компонент в процеса на търсене, могат да се включат „луди“ частици, чийто закон на движение се различава от закона на движение на останалите.

2 . Реализация на алгоритъма

2.1 Схема на алгоритъма

Алгоритъмът работи по следния начин:

1. Създава се първоначална „произволна“ популация от частици.

2. За всяка частица се изчислява целевата функция.

3. Най-добрата частица от гледна точка на целевата функция се обявява за „център на привличане“.

4. Векторите на скоростта на всички частици се устремяват към този „център“ и колкото по-далеч е частицата от него, толкова по-голямо е ускорението.

5. Изчисляват се нови координати на частици в пространството на разтвора.

6. Стъпки 2-5 се повтарят определения брой пъти или докато бъде изпълнено условието за спиране.

7. Последният „център на тежестта” се обявява за намереното оптимално решение.

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

#включи

#включи

#включи

#включи

const int n=200;

const int m=200;

int i, j, k, t=200;

двойно F (двойно x)

return pow(pow(x, 3) - 125.2);

(двоен V[n] [m];

двойна долна_лимит=1, горна_лимит=300;

двойна най-добра_поз[n] [m];

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

двойно best_cel=1000; // най-добра глобална стойност

const двойно C1=0.7, C2=1.2, w=0.93;

двойно **X=ново двойно*[n];

за (i=0; i

X[i]=ново двойно[m];

srand(време(NULL));

// инициализация на позицията и скоростите на частиците

за (i=0; i

за (j=0; j

X[i] [j]=долна_лимит + (горна_лимит - долна_лимит)*rand()/RAND_MAX;

// Инициализация с най-лошия генотип на частици

best_pos[i] [j]=1000;

за (k=0; k

// попълване на масива от генотипове

за (i=0; i

за (j=0; j

// определяне на текущия генотип

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

// запазване на стойността на най-добрия генотип за всяка частица

ако (cel[i][j]

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

if (best_pos[i] [j]

best_cel=най-добра_позиция[i] [j];

printf("%f\n", x);

// Актуализиране на скоростите и позициите на частиците

за (i=0; i

за (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) операции за сравнение а< b;

5) логически операции или, и, не.

Цикълът for не е елементарна операция, защото може да бъде представен като;

Така конструкцията на цикъла изисква 2*N елементарни операции:

Е "цикъл" = 2* н+ н* 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: Теория на алгоритмите. - М.: MGAPI, 2003. - 80 с.

2. Записки от лекции по дисциплината „Математическа логика и теория на алгоритмите“.

3. Алгоритми за глобална оптимизация – теория и приложение.

4. http://ru.wikipedia.org

Публикувано на Allbest.ru

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

    Характеристики на задачите за линейно програмиране. Симплексен метод за решаване на задачи от линейното програмиране. Обосновка за избора на език, средства за програмиране, списък с идентификатори и блокова схема на алгоритъма. Логическа схема на програмата.

    дисертация, добавена на 13.08.2011 г

    Разработване на библиотека, която ще ви позволи да симулирате динамиката на частиците в триизмерна графика. Избор на средства и методи за разработка. Възможности за моделиране на системи от частици. Моделиране на върхови шейдъри. Диаграми на класове на система от частици и PSBehavior.

    курсова работа, добавена на 02/07/2016

    Основни аналитични връзки. Блокова схема и алгоритъм за решаване на задачата. Ръчна проверка на производителността на алгоритъма. Таблица за идентификация на променливи. Форми на входящ и изходящ печат. Разработка и отстраняване на грешки на програмата. Инструкции за работа с програмата.

    курсова работа, добавена на 13.02.2012 г

    Концепцията за линейно програмиране и оптимизация. Основи на работа в системата MathCAD. Потребителски интерфейс, език за въвеждане и тип данни. Етапи на компютърно математическо моделиране. Пример за решаване на задача за оптимизация с помощта на програмата MathCAD.

    курсова работа, добавена на 16.10.2011 г

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

    резюме, добавено на 14.06.2010 г

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

    курсова работа, добавена на 17.06.2015 г

    Оптимизиране на решението на проблема с помощта на алгоритъма за отгряване. Анализ на оптимизационната теория като целева функция. Метод на градиентно спускане. Променливи и описание на алгоритъма за отгряване. Представяне на проблема на пътуващия търговец чрез графика. Намаляване на проблема до променливи и разрешаването му.

    курсова работа, добавена на 21.05.2015 г

    Изграждане на математически модел на движение на заредени частици, реализация на алгоритмичен език с помощта на компютър. Описание на предметната област. Симулация на взаимодействието на две противоположно заредени частици. Резултати от програмата, ръководство за потребителя.

    курсова работа, добавена на 26.02.2015 г

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

    курсова работа, добавена на 15.06.2013 г

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

Алгоритъм

Позволявам f: ℝ н→ ℝ е целевата функция, която трябва да бъде минимизирана, С- броят на частиците в рояка, всяка от които е свързана с координата х i ∈ ℝ нв пространството на решението и скоростта v i ∈ ℝ н. Нека също стр i е най-известната позиция на частицата аз, А ж- най-известното състояние на рояка като цяло. Тогава общата форма на метода на рояка от частици е следната.

  • За всяка частица аз = 1, …, Снаправи:
    • Генерирайте началната позиция на частица с помощта на произволен вектор хаз ~ U(b lo, b нагоре), имащи многомерно равномерно разпределение. b loИ b нагореса съответно долната и горната граница на пространството на решението.
    • Присвоете най-известната позиция на частицата на нейната първоначална стойност: стр i ← хаз
    • ако ( f(стри)< f(ж)), след това актуализирайте най-известното състояние на рояка: жстраз
    • Задайте стойност на скоростта на частиците: vаз ~ U(-(b нагоре-b lo), (b нагоре-b lo)).
  • Докато не бъде изпълнен критерият за спиране (например достигане на определения брой повторения или изискваната стойност на целевата функция), повторете:
    • За всяка частица аз = 1, …, Снаправи:
      • Генериране на произволни вектори rп, r g~ U(0,1).
      • Актуализиране на скоростта на частиците: v i ← ω v i + φ p r p×( страз - х i) + φg r g×( ж-х i), където операцията × означава умножение по компоненти.
      • Актуализирайте позицията на частиците с превод х i за вектор на скоростта: х i ← х i+ vаз Имайте предвид, че тази стъпка се изпълнява независимо от подобрението на стойността на целевата функция.
      • ако ( f(хи)< f(стр i)), след това направете:
        • Актуализиране на най-известната позиция на частиците: стр i ← хаз
        • ако ( f(стри)< f(ж)), след това актуализирайте най-известното състояние на рояка като цяло: жстраз
  • Сега жсъдържа най-доброто намерено решение.

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

Избор на параметри

Изборът на оптимални параметри за метода на рояка от частици е тема на значително количество изследователска работа, вижте например работата на Ший и Еберхарт, Карлайл и Дозер, ван ден Берг, Клерк и Кенеди, Трели, Братън и Блекуел и Евърс.

Прост и ефективен начин за избор на параметрите на метода е предложен от Pedersen и други автори. Те също така проведоха числени експерименти с различни оптимизационни проблеми и параметри. Техниката за избор на тези параметри се нарича мета-оптимизация, тъй като се използва различен алгоритъм за оптимизация за „настройка“ на параметрите на MRF. Установено е, че входните параметри на MFC с най-добра ефективност противоречат на основните принципи, описани в литературата, и често дават задоволителни резултати за оптимизация за прости случаи на MFC. Тяхната реализация може да бъде намерена в отворената библиотека SwarmOps.

Опции на алгоритъма

Постоянно се предлагат нови варианти на алгоритъма за рояк частици, за да се подобри ефективността на метода. Има няколко тенденции в това изследване, една от които предлага създаването на хибриден метод за оптимизация, използващ MRF в комбинация с други алгоритми, вижте напр. Друга тенденция предполага по някакъв начин ускоряване на метода, например чрез преместване назад или промяна на реда на движение на частиците (за повече информация вижте). Има и опити за адаптиране на поведенческите параметри на ДПС в процеса на оптимизация.

Вижте също

  • Пчелен алгоритъм
  • Алгоритъм за гравитационно търсене

Бележки

  1. (1995) "Оптимизация на рояк частици". Сборник на Международната конференция на IEEE за невронни мрежи IV: 1942-1948.
  2. (1998) "Модифициран оптимизатор на рояк частици". Сборник на Международната конференция на IEEE по еволюционни изчисления: 69-73.
  3. Интелигентност на рояка. - Морган Кауфман, 2001 г.
  4. Поли, Р. (2007). „Анализ на публикации за приложения за оптимизиране на рояк частици.“ Технически доклад CSM-469(Департамент по компютърни науки, Университет на Есекс, Обединеното кралство).
  5. Поли, Р. (2008). „Анализ на публикациите за приложенията на оптимизацията на рояка от частици“. : 1-10. DOI:10.1155/2008/685175.
  6. (1998) „Избор на параметри при оптимизация на рояк частици“. Сборник с еволюционно програмиране VII (EP98): 591-600.
  7. (2000) "Сравняване на инерционните тегла и коефициентите на свиване при оптимизирането на рояк частици". Доклади на Конгреса по еволюционни изчисления 1 : 84-88.
  8. (2001) „Готов PSO“. Доклади на семинара за оптимизиране на рояк частици: 1-6.
  9. ван ден Берг Ф.Анализ на оптимизаторите на рояк частици. - Университет на Претория, Факултет по природни и селскостопански науки, 2001 г.
  10. (2002) „Роят от частици – експлозия, стабилност и конвергенция в многомерно сложно пространство.“ Транзакции на IEEE относно еволюционните изчисления 6 (1): 58-73.
  11. Trelea, I.C. (2003). „Алгоритъмът за оптимизиране на рояка частици: анализ на конвергенцията и избор на параметри.“ Писма за обработка на информация 85 : 317-325.
  12. (2008) „Опростен рекомбинантен PSO“. Вестник за изкуствена еволюция и приложения.
  13. Евърс Г.Автоматичен механизъм за прегрупиране за справяне със стагнацията в оптимизацията на рояк частици. - Университетът на Тексас - Панамерикански, катедра по електротехника, 2009 г.
  14. Pedersen M.E.H.Настройка и опростяване на евристична оптимизация. - Университет на Саутхемптън, Училище по инженерни науки, Група за компютърно инженерство и дизайн, 2010 г.
  15. Pedersen, M.E.H.; Чипърфийлд, А. Дж. (2010). „Опростяване на оптимизацията на рояк частици“. Приложни меки изчисления 10 : 618-628.
  16. (2002) „Моделът на жизнения цикъл: комбиниране на оптимизация на рояк частици, генетични алгоритми и катерачи.“ Сборник за паралелно решаване на проблеми от природата VII (PPSN): 621-630.
  17. (2010) „Ефективен хибриден подход, базиран на PSO, ACO и k-средни за клъстерен анализ.“ Приложни меки изчисления 10 (1): 183-197.
  18. (2002) „Разширяване на оптимизаторите на рояк частици със самоорганизирана критичност“. Доклади на Четвъртия конгрес по еволюционни изчисления (CEC) 2 : 1588-1593.
  19. Xinchao, Z. (2010). „Алгоритъм на смутен рояк частици за числена оптимизация.“ Приложни меки изчисления 10 (1): 119-124.
  20. (2009) „Адаптивна оптимизация на рояк частици.“ Транзакции на IEEE относно системи, човек и кибернетика 39 (6): 1362-1381.

Връзки

  • Централен рояк частици. Новини, хора, места, програми, статии и т.н. По-специално вижте актуалния стандарт на ДПС. (Английски)
  • SwarmOps. Избор на параметри/калибриране на MRF и други методи за мета-оптимизация. Софтуерна библиотека на езиците C и C#.
  • EvA2 е цялостен инструмент за еволюционна оптимизация и MRM с отворен код, написан на Java.
  • ParadisEO е мощна C++ рамка, предназначена за създаване на различни метаевристики, включително MRF алгоритми. Готови за използване алгоритми, много уроци, които ви помагат бързо да създадете своя собствена версия на MRF.
  • MFC код във FORTRAN Измерване на производителността на тестови функции.
  • - GPL симулация на изчислителна интелигентност и изследователска среда, написана на Java, включва различни PSO реализации
  • Използване на реализация на Python на MRF за решаване на пъзел с пресичане на стълбище.
  • ECF - Evolutionary Computation Framework различни алгоритми, генотипове, паралелизиране, учебници.

MRF оптимизира функция, като поддържа популация от възможни решения, наречени частици, и премества тези частици през пространството на разтвора съгласно проста формула. Преместванията се подчиняват на принципа на най-добрата позиция, открита в това пространство, която постоянно се променя, когато частиците намерят по-изгодни позиции.

Алгоритъм

Позволявам f: ℝ н→ ℝ е целевата функция, която трябва да бъде минимизирана, С- броят на частиците в рояка, всяка от които е свързана с координата х i ∈ ℝ нв пространството на решението и скоростта v i ∈ ℝ н. Нека също стр i е най-известната позиция на частицата аз, А ж- най-известното състояние на рояка като цяло. Тогава общата форма на метода на рояка от частици е следната.

  • За всяка частица аз = 1, …, Снаправи:
    • Генерирайте началната позиция на частица с помощта на произволен вектор хаз ~ U(b lo, b нагоре), имащи многомерно равномерно разпределение. b loИ b нагореса съответно долната и горната граница на пространството на решението.
    • Присвоете най-известната позиция на частицата на нейната първоначална стойност: стр i ← хаз
    • ако ( f(стри)< f(ж)), след това актуализирайте най-известното състояние на рояка: жстраз
    • Задайте стойност на скоростта на частиците: vаз ~ U(-(b нагоре-b lo), (b нагоре-b lo)).
  • Докато не бъде изпълнен критерият за спиране (например достигане на определения брой повторения или изискваната стойност на целевата функция), повторете:
    • За всяка частица аз = 1, …, Снаправи:
      • Генериране на произволни вектори rп, r g~ U(0,1).
      • Актуализиране на скоростта на частиците: v i ← ω v i + φ p r p×( страз - х i) + φg r g×( ж-х i), където операцията × означава умножение по компоненти.
      • Актуализирайте позицията на частиците с превод х i за вектор на скоростта: х i ← х i+ vаз Имайте предвид, че тази стъпка се изпълнява независимо от подобрението на стойността на целевата функция.
      • ако ( f(хи)< f(стр i)), след това направете:
        • Актуализиране на най-известната позиция на частиците: стр i ← хаз
        • ако ( f(стри)< f(ж)), след това актуализирайте най-известното състояние на рояка като цяло: жстраз
  • Сега жсъдържа най-доброто намерено решение.

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

Избор на параметри

Изборът на оптимални параметри за метода на рояка от частици е тема на значително количество изследователска работа, вижте например работата на Ший и Еберхарт, Карлайл и Дозер, ван ден Берг, Клерк и Кенеди, Трели, Братън и Блекуел и Евърс.

Прост и ефективен начин за избор на параметрите на метода е предложен от Pedersen и други автори. Те също така проведоха числени експерименти с различни оптимизационни проблеми и параметри. Техниката за избор на тези параметри се нарича мета-оптимизация, тъй като се използва различен алгоритъм за оптимизация за „настройка“ на параметрите на MRF. Установено е, че входните параметри на MFC с най-добра ефективност противоречат на основните принципи, описани в литературата, и често дават задоволителни резултати за оптимизация за прости случаи на MFC. Тяхната реализация може да бъде намерена в отворената библиотека SwarmOps.

Опции на алгоритъма

Постоянно се предлагат нови варианти на алгоритъма за рояк частици, за да се подобри ефективността на метода. Има няколко тенденции в това изследване, една от които предлага създаването на хибриден метод за оптимизация, използващ MRF в комбинация с други алгоритми, вижте напр. Друга тенденция предполага по някакъв начин ускоряване на метода, например чрез преместване назад или промяна на реда на движение на частиците (за повече информация вижте). Има и опити за адаптиране на поведенческите параметри на ДПС в процеса на оптимизация.

Напишете отзив за статията "Метод на рояка от частици"

Бележки

  1. (1995) "Оптимизация на рояк частици". Сборник на Международната конференция на IEEE за невронни мрежи IV: 1942-1948.
  2. (1998) "Модифициран оптимизатор на рояк частици". Сборник на Международната конференция на IEEE по еволюционни изчисления: 69-73.
  3. Интелигентност на рояка. - Морган Кауфман, 2001 г.
  4. Поли, Р. (2007). "". Технически доклад CSM-469(Департамент по компютърни науки, Университет на Есекс, Обединеното кралство).
  5. Поли, Р. (2008). "". : 1-10. DOI:10.1155/2008/685175.
  6. (1998) „Избор на параметри при оптимизация на рояк частици“. Сборник с еволюционно програмиране VII (EP98): 591-600.
  7. (2000) "Сравняване на инерционните тегла и коефициентите на свиване при оптимизирането на рояк частици". Доклади на Конгреса по еволюционни изчисления 1 : 84-88.
  8. (2001) „Готов PSO“. Доклади на семинара за оптимизиране на рояк частици: 1-6.
  9. ван ден Берг Ф.Анализ на оптимизаторите на рояк частици. - Университет на Претория, Факултет по природни и селскостопански науки, 2001 г.
  10. (2002) „Роят от частици – експлозия, стабилност и конвергенция в многомерно сложно пространство.“ Транзакции на IEEE относно еволюционните изчисления 6 (1): 58-73.
  11. Trelea, I.C. (2003). „Алгоритъмът за оптимизиране на рояка частици: анализ на конвергенцията и избор на параметри.“ Писма за обработка на информация 85 : 317-325.
  12. (2008) „Опростен рекомбинантен PSO“. Вестник за изкуствена еволюция и приложения.
  13. Евърс Г.. - Университетът на Тексас - Панамерикански, катедра по електротехника, 2009 г.
  14. Pedersen M.E.H.. - Университет на Саутхемптън, Училище по инженерни науки, Група за компютърно инженерство и дизайн, 2010 г.
  15. Pedersen, M.E.H.; Чипърфийлд, А. Дж. (2010). "". Приложни меки изчисления 10 : 618-628.
  16. (2002) „Моделът на жизнения цикъл: комбиниране на оптимизация на рояк частици, генетични алгоритми и катерачи.“ Сборник за паралелно решаване на проблеми от природата VII (PPSN): 621-630.
  17. (2010) „Ефективен хибриден подход, базиран на PSO, ACO и k-средни за клъстерен анализ.“ Приложни меки изчисления 10 (1): 183-197.
  18. (2002) „Разширяване на оптимизаторите на рояк частици със самоорганизирана критичност“. Доклади на Четвъртия конгрес по еволюционни изчисления (CEC) 2 : 1588-1593.
  19. Xinchao, Z. (2010). „Алгоритъм на смутен рояк частици за числена оптимизация.“ Приложни меки изчисления 10 (1): 119-124.
  20. (2009) „Адаптивна оптимизация на рояк частици.“ Транзакции на IEEE относно системи, човек и кибернетика 39 (6): 1362-1381.

Връзки

  • . Новини, хора, места, програми, статии и т.н. По-специално вижте актуалния стандарт на ДПС. (Английски)

Откъс, характеризиращ метода на рояка от частици

— Да — каза Ростов, сякаш произнасянето на тази дума отне много усилия и седна на съседната маса.
И двамата мълчаха; В стаята седяха двама немски и един руски офицер. Всички мълчаха и се чуваха звуците на ножове по чинии и подсмърчането на лейтенанта. Когато Телянин свърши закуската, той извади от джоба си двоен портфейл, раздърпа пръстените с малките си бели пръсти, извити нагоре, извади един златен и като повдигна вежди, даде парите на слугата.
„Моля, побързайте“, каза той.
Златната беше нова. Ростов се изправи и се приближи до Телянин.
— Дай ми да видя портфейла ти — каза той с тих, едва доловим глас.
С стрелнали очи, но все така повдигнати вежди, Телянин подаде портфейла.
- Да, хубав портфейл... Да... да... - каза той и изведнъж пребледня. — Виж, млади човече — добави той.
Ростов взе портфейла в ръце и го погледна, и парите, които бяха в него, и Телянин. Лейтенантът се огледа, както си беше навик, и изведнъж сякаш стана много весел.
„Ако сме във Виена, ще оставя всичко там, но сега няма къде да го сложим в тези скапани малки градчета“, каза той. - Е, хайде, младежо, аз ще отида.
Ростов мълчеше.
- Ами ти? Да закусвам ли и аз? „Хранят ме прилично“, продължи Телянин. - Хайде.
Той протегна ръка и грабна портфейла. Ростов го освободи. Телянин взе портфейла и започна да го пъха в джоба на клина си, а веждите му се повдигнаха небрежно, а устата му леко се отвори, сякаш казваше: „да, да, слагам портфейла си в джоба и много е просто и на никой не му пука.” .
- Е, какво, младежо? - каза той, въздъхна и погледна в очите на Ростов изпод повдигнати вежди. Някаква светлина от очите със скоростта на електрическа искра премина от очите на Телянин към очите на Ростов и обратно, обратно и обратно, всичко в един миг.
— Ела тук — каза Ростов и хвана Телянин за ръката. Почти го завлече до прозореца. „Това са парите на Денисов, ти ги взе...“ – прошепна той в ухото му.
– Какво?... Какво?... Как смееш? Какво?...”, каза Телянин.
Но тези думи прозвучаха като тъжен, отчаян вик и молба за прошка. Щом Ростов чу този звук на гласа, огромен камък на съмнение падна от душата му. Изпита радост и в същия миг му стана жал за нещастника, който стоеше пред него; но беше необходимо да се завърши започнатата работа.
„Хората тук, Бог знае какво могат да си помислят“, измърмори Телянин, грабна шапката си и се насочи към малка празна стая, „трябва да се обясним…
„Знам това и ще го докажа“, каза Ростов.
- Аз…
Уплашеното, бледо лице на Телянин започна да трепери с всички мускули; очите все още бягаха, но някъде долу, без да се вдигат към лицето на Ростов, се чуваха ридания.
„Бройте!... не съсипвайте младежа... тези бедни пари, вземете ги...“ Той ги хвърли на масата. – Баща ми е стар човек, майка ми!...
Ростов взе парите, избягвайки погледа на Телянин, и без да каже дума, излезе от стаята. Но той спря на вратата и се обърна. „Боже мой“, каза той със сълзи на очи, „как можа да направиш това?“
— Бройте — каза Телянин, приближавайки се до кадета.
— Не ме докосвай — каза Ростов и се дръпна. - Ако имате нужда, вземете тези пари. „Хвърли портфейла си по него и избяга от кръчмата.

Вечерта на същия ден имаше оживен разговор между офицерите на ескадрилата в апартамента на Денисов.
„И аз ви казвам, Ростов, че трябва да се извините на командира на полка“, каза висок щаб-капитан с прошарена коса, огромни мустаци и едри черти на набръчкано лице, обръщайки се към пурпурния, развълнуван Ростов.
Щабният капитан Кирстен беше понижен във войник два пъти по въпроси на честта и служи два пъти.
– Няма да позволя на никого да ми каже, че лъжа! - изкрещя Ростов. „Той ми каза, че лъжа, а аз му казах, че лъже.“ Така и ще си остане. Може всеки ден да ме назначава на пост и да ме арестува, но никой няма да ме принуди да се извиня, защото ако той като командир на полка се смята за недостоен да ми даде удовлетворение, тогава...
- Само почакай, татко; — Чуйте ме — прекъсна щаба капитанът с басовия си глас, като спокойно приглаждаше дългите си мустаци. - Пред други офицери казвате на командира на полка, че офицерът е откраднал...
„Не съм виновен, че разговорът започна пред други служители.“ Може би не трябваше да говоря пред тях, но аз не съм дипломат. След това се присъединих към хусарите, мислех, че няма нужда от тънкости, но той ми каза, че лъжа... та нека ми даде удовлетворение...
- Всичко това е добре, никой не мисли, че сте страхливец, но не това е важното. Питайте Денисов, прилича ли ви това кадет да иска удовлетворение от командира на полка?
Денисов, хапейки мустаци, слушаше разговора с мрачен поглед, очевидно не искайки да се включва в него. На въпроса на капитанската служба той поклати отрицателно глава.
— Кажете на командира на полка за този мръсен номер пред офицерите — продължи капитанът. - Богданич (командирът на полка се казваше Богданич) ви обсади.
- Не го обсади, а каза, че лъжа.
- Ами да, и ти му каза нещо глупаво и трябва да се извиниш.
- Никога! - извика Ростов.
— Не съм мислил това от теб — каза капитанът сериозно и строго. „Не искаш да се извиняваш, но ти, татко, не само пред него, но и пред целия полк, пред всички нас, ти си напълно виновен. Ето как: да бяхте помислили и се посъветвали как да постъпите с тая работа, иначе щеше да пиеш направо пред офицерите. Какво да прави сега командирът на полка? Трябва ли офицерът да бъде съден и целият полк да бъде опетнен? Заради един негодник целият полк е опозорен? И така, какво мислите? Но според нас не е така. А Богданич е страхотен, каза ти, че лъжеш. Неприятно е, но какво да правиш, отче, сам те нападнаха. И сега, като искат да потулят въпроса, поради някакъв фанатизъм не искаш да се извиниш, а искаш да кажеш всичко. Обиден си, че си на служба, ама защо да се извиняваш на стар и честен офицер! Независимо какъв е Богданич, той все пак е честен и храбър стар полковник, колко е срамно за вас; Става ли ти да цапаш полка? – гласът на капитана започна да трепери. - Вие, отче, сте от една седмица в полка; днес тук, утре преместен за адютанти някъде; не ви пука какво казват: "има крадци сред павлоградските офицери!" Но ни пука. И какво, Денисов? Не всички еднакви?
Денисов мълчеше и не помръдваше, като от време на време поглеждаше Ростов с блестящите си черни очи.
„Вие цените собственото си фанаберство, не искате да се извинявате“, продължи капитанът от щаба, „но за нас старите, как сме израснали, и дори да умрем, дай Боже, ще ни доведат в полка, така че честта на полка ни е скъпа и Богданич знае това. О, какъв път, татко! И това не е добре, не е добре! Обиден или не, винаги ще кажа истината. Не е добре!
И капитанът на щаба се изправи и се обърна от Ростов.
- Pg "avda, chog" вземи го! - извика Денисов, скачайки. - Е, G'skeleton!
Ростов, изчервявайки се и пребледнявайки, погледна първо единия офицер, после другия.
- Не, господа, не... не си мислете... Наистина разбирам, грешите, като мислите за мен така... Аз... за мен... Аз съм за честта на полк. И какво от това? Ще покажа това на практика, а за мен честта на знамето... е, все едно, наистина, аз съм виновен!.. - Сълзи стояха в очите му. - Виновен съм, виновен съм наоколо!... Е, какво повече ви трябва?...
„Това е, графе“, извика капитанът на щаба, обърна се и го удари по рамото с голямата си ръка.
— Казвам ви — извика Денисов, — той е хубаво малко момче.
— Така е по-добре, графе — повтори капитанът от щаба, сякаш за негово признание започваха да го наричат ​​титла. - Елате и се извинете, ваше превъзходителство, да, сър.
„Господа, ще направя всичко, никой няма да чуе нито дума от мен“, каза Ростов с умоляващ глас, „но не мога да се извиня, за Бога, не мога, каквото искате!“ Как ще се извиня, като малко дете, за прошка?
Денисов се засмя.
- За теб е по-лошо. Богданич е отмъстителен, ще си платиш за ината си“, каза Кирстен.
- За Бога, не инат! Не мога да ви опиша какво е чувството, не мога...

Дял