Strona główna Algorytmy i Struktury Danych Optymalizacja rojem cząstek — inteligencja roju

🐝 Optymalizacja rojem cząstek — inteligencja roju

Rój cząstek przeszukuje dwuwymiarowy krajobraz kosztu, a każda cząstka jest przyciągana ku swojemu najlepszemu i globalnie najlepszemu punktowi. Obserwuj zbieżność roju do minimum globalnego na wielu funkcjach testowych.

Algorytmy i Struktury Danych2DŚredni60 FPS
particle-swarm ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O optymalizacji rojem cząstek

Optymalizacja rojem cząstek (PSO) to metaheurystyka oparta na populacji, inspirowana zbiorowym zachowaniem stad ptaków i ławic ryb. Każda cząstka w roju utrzymuje pozycję w przestrzeni przeszukiwania oraz wektor prędkości; jest przyciągana zarówno do swojej własnej najlepszej znanej pozycji, jak i do globalnie najlepszej pozycji znalezionej przez dowolnego członka roju. Technika ta została wprowadzona przez Kennedy'ego i Eberharta w 1995 roku i jest szeroko stosowana do ciągłych problemów optymalizacyjnych w inżynierii, treningu sieci neuronowych oraz modelowaniu finansowym.

W tej symulacji możesz dostosować rozmiar roju, wagę bezwładności (ω), współczynnik poznawczy (c₁) oraz współczynnik społeczny (c₂), by zaobserwować, jak sterują one prędkością zbieżności i ryzykiem przedwczesnej stagnacji. Kolorowe ślady ukazują, jak poszczególne cząstki eksplorują dwuwymiarowy krajobraz przystosowania, zanim rój zbiorowo zbliży się do minimum globalnego.

Najczęściej zadawane pytania

Jak cząstka aktualizuje swoją prędkość w PSO?

W każdym kroku czasowym nowa prędkość wynosi v = ω·v + c₁·r₁·(pBest − x) + c₂·r₂·(gBest − x), gdzie ω to bezwładność, c₁ i c₂ to współczynniki przyspieszenia, a r₁, r₂ to niezależne liczby losowe w [0, 1]. Typowe wartości początkowe to ω = 0,729, c₁ = c₂ = 1,494, które spełniają warunki zbieżności wyprowadzone przez Clerca i Kennedy'ego w 2002 roku.

Czym jest waga bezwładności i dlaczego ma znaczenie?

Waga bezwładności ω skaluje poprzednią prędkość cząstki, balansując eksplorację (wysokie ω) wobec eksploatacji (niskie ω). Popularna strategia to zacząć od ω ≈ 0,9 i liniowo zmniejszać ją do 0,4 w trakcie przebiegu, zachęcając do szerokiego przeszukiwania na początku i drobnoziarnistej zbieżności później. Ustawienie ω ≥ 1 zwykle powoduje rozbieganie się roju.

Czy PSO może utknąć w optimum lokalnym?

Tak — PSO nie gwarantuje znalezienia optimum globalnego. Na funkcjach wielomodalnych, takich jak benchmarki Rastrigina czy Ackleya, przedwczesna zbieżność występuje, gdy wszystkie cząstki skupiają się wokół minimum lokalnego, zanim sąsiedztwo zostało odpowiednio zbadane. Środki zaradcze obejmują zwiększenie rozmiaru populacji, użycie losowej reinicjalizacji dla stagnujących cząstek lub hybrydyzację z przeszukiwaniem lokalnym.

Jaka jest różnica między topologią globalnego a lokalnego najlepszego?

W topologii globalnej (gbest) każda cząstka jest przyciągana do pojedynczej najlepszej pozycji znalezionej przez dowolną cząstkę. W topologii pierścieniowej (lbest) każda cząstka widzi tylko małe sąsiedztwo, co spowalnia zbieżność, ale poprawia eksplorację na zwodniczych krajobrazach wielomodalnych. Symulacja używa topologii gbest dla przejrzystości.

Jak PSO wypada w porównaniu z algorytmem genetycznym?

Obie są metaheurystykami opartymi na populacji, ale PSO nie ma operatorów krzyżowania ani mutacji. Zamiast tego dzielenie się informacją jest niejawne, poprzez regułę aktualizacji prędkości. PSO zwykle zbiega szybciej na problemach ciągłych, ale brakuje mu mechanizmu rekombinacji, który pomaga algorytmom genetycznym uciekać z optimów lokalnych na problemach kombinatorycznych.

Do jakich rzeczywistych problemów wykorzystuje się PSO?

PSO zostało zastosowane do projektowania anten, optymalizacji układu farm wiatrowych, strojenia hiperparametrów głębokich sieci neuronowych, planowania sieci energetycznej oraz optymalizacji portfela inwestycyjnego. Jego siła leży w problemach z ciągłymi, wielowymiarowymi przestrzeniami przeszukiwania, gdzie informacja o gradiencie jest niedostępna lub kosztowna do obliczenia.

Jakie funkcje testowe są powszechnie używane do testowania PSO?

Standardowe benchmarki obejmują funkcje Sphere (unimodalna, łatwa), Rosenbrock (wąska zakrzywiona dolina), Rastrigin (silnie wielomodalna z 10ⁿ minimami lokalnymi), Ackley oraz Griewank. Zestawy testowe konkursu CEC dostarczają znormalizowanych zbiorów testowych ze znanymi optimami globalnymi, by umożliwić uczciwe porównania między algorytmami.

Czy rozmiar roju wpływa na wydajność?

Większe roje dokładniej eksplorują przestrzeń przeszukiwania, ale wymagają więcej ewaluacji funkcji na iterację. Empirycznie rozmiary roju między 20 a 50 cząstek dobrze sprawdzają się na problemach niskowymiarowych (n ≤ 30), podczas gdy problemy wyższowymiarowe mogą skorzystać na 100–200 cząstkach. Zbyt mały rój dramatycznie zwiększa ryzyko przedwczesnej zbieżności.

Czy PSO jest deterministyczne?

Nie. Liczby losowe r₁ i r₂ w aktualizacji prędkości sprawiają, że każdy przebieg jest stochastyczny. Wyniki różnią się więc między przebiegami, a porównania algorytmów powinny raportować statystyki (mediana, najlepszy, najgorszy) na wielu niezależnych przebiegach — zwykle od 25 do 51 przebiegów na funkcję testową, zgodnie z wytycznymi benchmarkingu CEC.

Czym jest ograniczanie prędkości i dlaczego jest stosowane?

Ograniczanie prędkości ogranicza każdy składnik prędkości do zakresu [−Vmax, +Vmax], by zapobiec wylatywaniu cząstek poza przestrzeń przeszukiwania w jednym kroku. Bez ograniczania na problemach wysokowymiarowych niekontrolowane prędkości mogą powodować rozbieganie się roju. Popularny wybór to Vmax = 0,1 × (zakres domeny) na wymiar.

Podobne symulacje