Parçacık Sürü Optimizasyonu

0
5917
Parçacık Sürü Optimizasyonu nedir

Optimizasyon; Verilen amaç için belirli işlem uygularken iyi çözüm elde etme sürecine optimizasyon denir. Optimizasyon terminolojisinde her zaman en iyiye ulaşma söz konusudur.  Optimizasyon problemlerinde daha önce matematiksel fonksiyonlarla tanımlanıyordu. Bu tür yöntemlerin esnek olmaması ve dezavantajının fazla olması sebebiyle yeni yöntemler geliştirilmeye çalışılmış ve doğadaki olaylardan esinlenmeye başlanılmıştır. Doğadaki olaylar temel alınarak geliştirilen optimizasyon algoritmaları sezgisel olarak adlandırılmaktadır. Bu algoritmaların en yaygın olanlarından bir tanesi parçacık sürü optimizasyonu algoritmasıdır.

Parçacık Sürü Optimizasyonu Nedir

Parçacık sürü optimizasyonu temelde sürüdeki bireylerin birbirlerini geliştirmesine dayanan bir algoritmadır. Bu algoritma sürü halinde hareket eden balıklar ve böceklerden esinlenerek Dr. Kennedy ve Dr. Eberhart 1995 yılında geliştirilmiştir. Sürü halinde hareket eden hayvanların yiyecek ve güvenlik hayati ihtiyaçlarını giderirken rastgele sergiledikleri hareketlerin, sürüdeki diğer bireyleri etkilediğini ve sürünü amacına daha kolay ulaşmalarını sağladığı görülmüştür. Her bireye parçacık denir ve bu parçacıkların oluşturduğu popülasyona da sürü denir.

Amaç sürüdeki en iyi konuma sahip parçacığının yerinin tespit edilip diğer parçacıkların da o yöne hareketinin sağlanmasıdır. Parçacıklar bir sonraki konumunu geçmiş tecrübelerine ve sürüdeki en iyi pozisyona sahip bireye dayanarak iyileştirmeyi hedefler. Akış diyagramı aşağıdaki gibidir:

optimizasyon

Algoritma temel olarak aşağıdaki basamaklardan oluşur;

  • Rastgele üretilen başlangıç pozisyonları ve hızları ile başlangıç sürüsü oluşturulur.
  • Sürü içerisindeki tüm parçacıkların uygunluk değerleri hesaplanır.
  • Her bir parçacık için mevcut jenerasyondan yerel en iyi (pbest) bulunur. Sürü içerisinde en iyilerin sayısı parçacık sayısı kadardır.
  • Mevcut jenerasyondaki yerel eniyiler içerisinden küresel en iyi (gbest) seçilir.
  • Pozisyon ve hızlar aşağıdaki gibi yenilenir.

Parçacık Sürü Optimizasyonu formülü

Pgd: Problemimiz için en iyi değere sahip konum vektörü.(gbest),

Xid: İ. Bireyin şu  anki konum vektörü,

Pid: Kişisel i. Parçacığın en iyi olduğu konum (pbest),

Vid: İ. Bireyin şu  anki hız vektörü,

C1, C2  : Çözümün başında bizim belirlediğimiz sayılar.

W : Momentum katsayısı,

rand1, rand2 :  0-1 arasındaki rastgele sayılar

NOT: Eşitliğin sol tarafında yer alan değerler ise i. Parçacığın işlem sonundaki hız ve konum vektörleridir.

Şimdi gelin bu algoritmayı biraz daha sadeleştirerek bir örnek üzerinde anlayalım:

x y
P1 -3 1
P2 2 -4
P3 0 -2
P4 1 9
P5 6 0

W=0,1

C1,C2=2

Yandaki tabloda x-y koordinat düzleminde konumları verilen 5 tane parçacığımız yer almaktadır. Yukarıdaki değerler önceden belirlediğimiz değerlerdir. Amacımız f(x,y)=2x^2-y fonksiyonumuzun minimum olduğu noktayı bulmak. Öncelikle her bir parçanın konum vektörlerini fonksiyonda yerine yazarak uygunluk değerlerini hesaplayacağız.

P1=17  P2=12  P3=2  P4=-7  P5=72

Uygunluk değerlerini hesapladığımızda P4 amacımıza uygun olarak en iyi değere sahip birey oluyor.Bu durumda P4 gbest oluyor.Bundan sonra değerleri  formülümüzde yerine yazarak her bir parçacığın bir sonraki hızı ve konumu bulunur. Birinci iterasyonda bir önceki konumları olmadığı için Pid (pbest) şu anki konumu olarak alınır. Tüm parçacıkların bir sonraki konumu bulunduğunda birinci iterasyon tamamlanmış olur.Ardından tekrar uygunluk değerleri hesaplanıp yeni gbest bulunur ve ikinci iterasyonun tamamlanmasının ardından en iyi çözüm üretilene kadar iterasyonlar devam eder.

Düşünceleriniz Nedir?