"Popülasyon optimizasyon algoritmaları: Parçacık sürüsü optimizasyonu (Particle Swarm Optimization, PSO)" makalesi için tartışma

 

Yeni makale Popülasyon optimizasyon algoritmaları: Parçacık sürüsü optimizasyonu (Particle Swarm Optimization, PSO) yayınlandı:

Bu makalede, popüler parçacık sürüsü optimizasyonu (Particle Swarm Optimization, PSO) algoritmasını ele alacağız. Bir önceki makalede, optimizasyon algoritmalarının yakınsama, yakınsama oranı, kararlılık, ölçeklenebilirlik gibi önemli özelliklerini tartıştık, ayrıca bir test ortamı geliştirdik ve en basit RNG algoritmasını inceledik.

Serinin ilk makalesinde kullandığımız (ve kullanmaya devam edeceğimiz), Şekil 2'de açıklanan algoritma oluşturma yapısının aynısını kullandığımız için, algoritmayı test ortamına bağlamak bizim için zor olmayacaktır.

Test ortamını çalıştırırken, aşağıda gösterilenlere benzer animasyonlar göreceğiz. Bu durumda, bir parçacık sürüsünün nasıl davrandığını açıkça görebiliriz. Sürü gerçekten de doğadaki bir sürü gibi davranmaktadır. Fonksiyonun ısı haritasında yoğun bir bulut şeklinde hareket etmektedir.

Hatırlayacağınız gibi, siyah daire fonksiyonun global optimumunu (maksimum) gösterirken, siyah nokta arama algoritmasının mevcut yineleme sırasında elde ettiği en iyi ortalama koordinatları göstermektedir. Ortalama değerlerin nereden geldiğini açıklayayım. Isı haritası koordinat cinsinden iki boyutludur ve optimize edilen fonksiyon yüzlerce değişken (ölçüm) içerebilir. Bu nedenle, sonucun koordinatlara göre ortalaması alınır.

n1

n2

n3

 

Animasyondan görebileceğiniz gibi, testler PSO'nun düzgün ilk fonksiyonla oldukça iyi başa çıktığını gösterdi (ancak yalnızca iki değişkeni optimize ederken). Arama uzayının boyutunun artmasıyla, algoritmanın verimliliği keskin bir şekilde düşmektedir. Bu durum özellikle ikinci ve ayrık üçüncü fonksiyonlarda belirgindir. Sonuçlar, bir önceki makalede açıklanan rastgele algoritmadan açık bir şekilde daha kötüdür. Karşılaştırmalı bir sonuç tablosu oluştururken sonuçlara geri dönecek ve onları ayrıntılı olarak tartışacağız.

Yazar: Andrey Dik

 
Algoritmaların güzel bir karşılaştırması! Arama boyunca atalet ağırlık terimini (w) doğrusal olarak sönümlerseniz, sürülerin yerel arama yeteneğini geliştireceğinden ve yakınsamayı hızlandıracağından şüpheleniyorum. Çoğu literatür w=0,4 alt sınırının uygulanmasını önermektedir. PSO şemasının bu değerle geniş bir problem sınıfı için çok etkili olduğunu gördüm.
 
koehnw alt sınırının uygulanmasını önermektedir. PSO şemasının bu değere sahip geniş bir problem sınıfı için çok etkili olduğunu gördüm.

yorum için teşekkürler! evet, optimizasyon algoritmasında bir gri kurt sürüsü tarafından yapıldığı gibi katsayıları iterasyonlara bağlamak mümkündür. lütfen aşağıdaki makalelerime bakın.

maalesef tüm makaleler henüz İngilizce olarak yayınlanmamıştır.
Popülasyon Optimizasyon Algoritmaları: Karınca Kolonisi Optimizasyonu (ACO): https://www.mql5.com/ru/articles/11602
Popülasyon optimizasyon algoritmaları: Yapay Arı Kolonisi (ABC): https://www.mql5.com/ru/articles/11736
Popülasyon optimizasyon algoritmaları: Bir Gri Kurt Sürüsü Tarafından Optimizasyon (GreyWolf Optimizer - GWO): https://www.mql5.com/ru/articles/11785

tahmi̇n tablosu
 

Meta sezgisel optimizasyon teknikleri hakkındaki bu makaleler harika! Harika bir iş yapıyorsun Andrey, bizimle paylaşmak zorunda olduğun bu kadar çok deneyim akıllara durgunluk veriyor, teşekkür ederim!

@METAQUOTES lütfen bu metasezgisel optimizasyon hedeflerini optimize ediciye uygulamayı düşünün! Yazılım için harika olurdu.

Kullanıcının OnTester() içinde ayarlayabileceği kolay bir şey:

OptimizerSetEngine("ACO"); // Karınca Kolonisi Optimizasyonu
OptimizerSetEngine("COA"); // cuckoo optimizasyon algoritması
OptimizerSetEngine("ABC"); // yapay arı kolonisi
OptimizerSetEngine("GWO"); // grey wolf optimizer
OptimizerSetEngine("PSO"); // parçacık sürüsü optimizasyonu 



Brezilya'dan teşekkürler

 
Vinicius Barenho Pereira #:

Meta sezgisel optimizasyon teknikleri hakkındaki bu makaleler harika! Harika bir iş çıkarıyorsun Andrey, bizimle bu kadar çok deneyim paylaşman akıllara durgunluk veriyor, teşekkürler!

@METAQUOTES lütfen bu metasezgisel optimizasyon hedeflerini optimize ediciye uygulamayı düşünün! Yazılım için harika olurdu.

Kullanıcının OnTester() içinde ayarlayabileceği kolay bir şey:


Brezilya'dan Şerefe

yorumunuz için teşekkürler! benim için her yeni makale yeni bir keşif, benimle birlikte olduğunuz için mutluyum.

 
Teşekkür ederim, ama korkarım ki bilgimin çok ötesindeyim.