3.1. Giriş
Parçacık sürü optimizasyonu (PSO), son yıllarda sıkça kullanılan evrimsel optimizasyon yöntemlerinden biridir. 1995 yılında ilk olarak Kennedy ve Eberhart tarafından uçan kuş sürülerinin sosyal davranışlarından esinlenerek geliştirilen popülasyon temelli bir tekniktir [69]. PSO, kuş ve balık sürülerindeki gibi sosyal etkileşim ve iletişime dayanır.
Algoritma, evrimsel ve popülasyon temelli olduğundan, PSO algoritmasında yer alan üyeler, en iyi performansı gösteren grup liderini izleme eğilimi içerisindedirler. PSO algoritması, genetik algoritmalara benzer şekilde çalışan bir yöntemdir. Her iki algoritma da gelişi güzel üretilmiş bir popülasyon grubu ile çalışır ve bu popülasyon grubunu değerlendirecek uygunluk değerlerine sahiptir. Her iki algoritma popülasyon grubunu güncelleştirir ve arama yapar. Ancak PSO, çarpazlama ve mutasyon gibi operatörlerin kullanılmadığı diğer evrimsel tipi yöntemlerden farklıdır. Arama uzayı içerisinde en iyi konuma doğru aramayı yönlendirmek için fertler arasında bilgiyi sosyal bir şekilde paylaşmak amacıyla popülasyonu oluşturan sürü içerisindeki üyelerin arama yöntemi boyunca korunması ve hem kendilerinin hem de tüm sürünün geçmiş deneyimlerinden faydalanılması, algoritmanın farklılığını gösterir.
PSO algoritmasının bellek ve işlemci gereksinimleri düşük olduğundan bu algoritma kolayca uygulanabilir ve hesapsal olarak ağır değildir. Ayrıca göz önünde bulundurulan amaç fonksiyonun değişimini elde etmek için matematiksel işlemlere ihtiyaç duymayan, yalnızca değerinin bilinmesinin yeterli olduğu algoritmadır.
PSO algoritması, birçok global optimizasyon problemleri için etkili bir yöntem olarak ortaya çıkmaktadır ve bazı durumlarda diğer evrimsel hesaplama teknikleri ile rastlanılan zorlukların üstesinden gelebilmektedir [69-70].
42
Evrimsel hesaplama tekniklerinde başlıca üreme (yeni popülasyon), mutasyon ve seçim operatörleri olmak üzere üç ana işlem vardır. PSO algoritmasında doğrudan bir üreme operatörü yoktur. Fakat hem parçacığın bir önceki en iyi konumuna doğru hem de sürünün en iyi parçacığına doğru olan bir parçacığın hızı, evrimsel hesaplamadaki üreme işlemine benzerdir [71-72].
PSO algoritmasında, her bir üye “parçacık” olarak çağırılır. Her bir parçacık, genetik algoritmalarındaki gibi uyumlu iki ebeveynden yeni bir fert oluşturma yerine, parçacığın sahip olduğu kendi deneyimi ve tüm sürünün ya da komşu parçacığın deneyimi ile devamlı olarak güncelleştirilen bir hız sayesinde, çok boyutlu arama uzayı içerisinde gezinir. Bunun yanında, PSO algoritmasının konum güncelleme işlemi, genetik algoritmanın mutasyon işlemine benzerdir.
PSO aslında, “en uyumlunun hayatta kaldığı” kavramını kullanmayan tek evrimsel algoritmadır. Algoritma, evrimsel algoritmalarda kullanılan bir seçim fonksiyonunu kullanmaz. Böylece daha düşük uygunluklu parçacıklar, optimizasyon süreci boyunca hayatta kalabilir ve potansiyel olarak arama uzayının herhangi bir noktasını ziyaret edebilirler [72].
3.2. Algoritmanın İçeriği
Evrimsel algoritmalara benzer şekilde PSO algoritmasında da her bir aday çözüm, parçacıkla (particle); popülasyon ise sürü ile ifade edilir. Her bir aday çözüm (particle) bir sonraki konumunu hız (velocity) vektörü, kendi tecrübesi (yerel en iyi - pbest) ve sürü tecrübesine (küresel en iyi - gbest) göre ayarlar.
PSO algoritmasında, yerel en iyi ve küresel en iyi olmak üzere iki değişken geliştirilir. Her parçacık, o ana kadar başardığı en iyi çözümlü kordinatlarını problem uzayında takip eder. Bu değer, pbest olarak adlandırılır. PSO tarafından takip edilen diğer bir en iyi değer, o ana kadar sürü içerisinde bulunan parçacıklar arasındaki en iyi değere sahip parçacığın elde ettiği değerdir. Bu parçacık, gbest olarak adlandırılır. Özetlemek gerekirse PSO, her bir iterasyonda parçacığın pbest ve gbest konumuna doğru olan hızının değişmesinden ibarettir.
43
PSO, çok boyutlu bir arama uzayında sürü parçacıklarının arama davranışına dayalı iteratif bir yöntemdir. Her bir iterasyonda, tüm parçacıkların hızları ve pozisyonları güncellenir. Her parçacık, sahip olduğu o anki konum ile pbest arasındaki mesafeye ve de gbest arasındaki mesafeye göre o anki konumunu ve hızını ayarlar. Burdan yola çıkılarak i. parçacığın konumundaki değişim hızı, yani parçacık hızı (Vi), aşağıda
verildiği gibi hesaplanır.
( 1) ( 1) ( 1)
) (n V n 1r1 pbest P n 2r2 gbestP n Vi i i i i (3.1) iP , i. parçacığın konumunu r ve 1 r , 0 ile 1 arasında rastgele seçilmiş sayıları ve 2 1 ve ’de pozitif öğrenme katsayılarını gösterir. ise, aşağıda verilen deklem ile 2 belirlenen ve sınırlayıcı faktör olarak adlandırılan değişkendir.
4 , , 4 2 2 2 1 2 (3.2)
Bu tanımlamalar yapıldıktan sonra tüm parçacıklar hız vektörleriyle bu iki en iyi konuma (pbest ve gbest) ulaşmaya çalışırlar. Bir parçacığın hızı Vi, konumu Pi olarak
tanımlanırsa algoritmanın n. iterasyonu sonucunda i. parçacığın yeni konum bilgisi şu şekilde güncellenir [73]. ) ( ) 1 ( ) (n P n V n Pi i i (3.3)
3.3. Pseudo Kodu ve Notasyon
PSO algoritmasında optimizasyon işlemi için izlenecek adımlar aşağıda açıklandığı gibi yapılabilir.
• Optimize edilecek parametrelerin alt ve üst sınırları belirlenir.
• Her bir parçacığın arama uzayındaki başlangıç konumları ve hızları, belirlenen sınırlar içerisinde rastgele atanır.
• Parçacıkların uygunluk değerleri ile pbest ve gbest konumları belirlenir.
• Her parçacığın uygunluk değeri, pbest’in uygunluk değeri ile karşılaştırılır. Eğer parçacığın o anki konumunun uygunluk değeri daha iyi ise parçacığın konumu ve uygunluk değeri, pbest’e ve pbest’in uygunluk değerine aktarılır.
44
• pbest vektörünün en iyi uygunluk değeri, gbest’in uygunluk değeri ile karşılaştırılır. Eğer pbest vektörünün en iyi uygunluk değeri daha iyi ise o parçacığın konumu ve uygunluk değeri, gbest ve gbest’in uygunluk değerine aktarılır.
• Parçacıkların hızları ve konumları Denklem (3.1) ve (3.3)’e göre güncellenir.
• Süreç, iterasyon sayısı tamamlanıncaya ya da belirlenen en iyi uygunluk değeri elde edilinceye kadar üçüncü adımdan itibaren tekrarlanır.
• Evrim sonunda elde edilen gbest en iyi konum, problemin çözümü olarak alınır.
PSO algoritması ile elde edilen çözüm, optimal bir çözümdür. Ancak elde edilen çözüm her zaman en uygun çözüm olmayabilir. PSO, diğer evrimsel optimizasyon yöntemlerine göre yazılımı daha basit, daha az kod satırına ihtiyaç duyan ve daha az iterasyonla yakınsayabilen bir algoritmadır. Şekil 3.1’de standart bir PSO algoritmasının komut dizimi görülmektedir.
Rasgele başangıç sürüsünü o luştur.(P adet parçac ık)
Tekrarla
i=1’den P’ye kadar yap
pi parçacığı ile sistemi çözümle
Eğer uygunluk (pi) < uygunluk (pbesti) ise pbesti= pi
Eğer uygunluk (p
i) < uygunluk (gbest) ise gbest = pi
i. parçacığın hızını Denklem 3.1 ile hesapla i. parçacığın konumunu Denklem 3.3 ile güncelle
son
Sonlandırma kriteri sa ğlanıncaya kadar
Şekil 3.1. PSO algoritmasının genel işleyiş yapısı
PSO algoritması ile optimizasyonu yapılacak bir probleminin PSO yöntemine uyarlanması için çözümün gösterimi ve uygunluk fonksiyonun tanımlanması gerekmektedir. Algoritmanın en büyük avantajlarından biri parçacıkların reel sayı olarak tanımlanabilmesidir. Genel bir optimizasyon problemi için PSO algoritmasında yer alacak değişkenlerin gösterimi ile ilgili notasyon aşağıda verildiği gibi belirlenebilir.
:
i
P Sürüdeki i.ci parçacık; Pi
pi1 pi2 pi3 ...pim
:
ij
45
:
i
V Sürüdeki i.ci parçacığın hızı; Vi
vi1vi2vi3 ...vim
:
ij
v i.ci parçacık hızına ait j.ci elemanın değeri ( j1,2,3,...,m)
:
swarm adet parçacıktan olaşan sürü (sürü boyutu, ); swarm
P1P2P3...P
T:
i
pbest i.ci parçacığn en iyi konumu; pbesti
pbesti1 pbesti2 pbesti3 ... pbestin
:
ij
pbest j.ci boyuta göre i.ci yerel en iyi parçacığın konum değeri (j 1,2,3,...,n)
:
gbest Küresel en iyi parçacığın konumu; gbest
gbest1gbest2gbest3 ... gbestn
Yukarıdaki adımlar oluşturulurken başlangıç parçacık miktarı, tipik olarak 20–50 arasında seçilen miktarda belirlenir. Bu miktar problemin büyüklüğüne göre daha düşük ya da daha yüksek olabilir. Parçacıkların boyutu, optimize edilecek probleme bağlı bir değişkendir. Dolayısıyla, optimize edilecek fonksiyon kaç boyutlu ise parçacıkların boyutları da bu miktarda olacaktır. Parçacıkların değer aralığı, yine probleme bağlı bir parametredir. Optimize edilecek değişkenlerin değer aralığını belirtir.
3.4. Sonuç
Bu bölümde, Stewart Platform’un kontrolü için tasarlanan kontrolörlere ait parametrelerin ayarlanmasında kullanılan parçacık sürü optimizasyon algoritmasından bahsedilmiştir. Kuş ve balık sürülerinin sosyal davranışları gözlemlenerek geliştirilen PSO algoritması, global optimumu hızlı bir şekilde yakalayan, basit ve kolay kodlanabilir bir algoritmadır.
PSO algoritmasında ideal olarak tüm tasarım parametreleri bağımsız birer değişken olarak kabul edilir ve en iyi çözüm aranır. Ayrıca, PSO yöntemin en büyük üstünlüğü klasik optimizasyon algoritmalarından farklı olarak türev bilgisine, ağır matematiksel hesaplamaya ihtiyaç duymamasıdır. Bu üstünlük, çalışılan sistem modelinin bilinmediği durumlarda çok belirgin olarak ortaya çıkmaktadır.
46