• Sonuç bulunamadı

3. TEMEL KAVRAMLAR

3.7. Parçacık Sürü Optimizasyonu

3.7.2. PSO Algoritması

Yukarıda bahsedildiği gibi, PSO Algoritması kuşların uçuşu veya balıkların sürü halindeki hareketinden esinlenerek ortaya atılan bir yöntemdir. Senaryo olarak bir alanda rastgele yiyecek arayan bir kuş grubunun olduğunu ve arama yapılan alanda yalnızca bir parça yiyecek olduğunu varsayalım. Kuşların hiçbiri yiyeceğin nerede olduğunu bilmesin. Fakat her bir iterasyon sonunda yiyeceğin ne kadar uzakta olduğunu bilsinler. Bu durumda en iyi strateji, yiyeceğe en yakın olan kuşu takip etmektir.

PSO bu senaryoya göre çalışır ve optimizasyon problemlerini çözmek için kullanılır. PSO’ da her bir çözüm arama uzayındaki bir kuşu temsil eder ve bunlar birer “parçacık” olarak isimlendirilir. Tüm parçacıkların, optimize edilecek uygunluk fonksiyonu tarafından değerlendirilen bir uygunluk değeri ve uçuşlarını yönlendiren hız bilgileri vardır. Parçacıklar, problem uzayında mevcut optimum parçacıkları takip ederek uçarlar.

PSO, bir grup rastgele üretilmiş çözümle (parçacıkla) başlatılır (başlangıç popülasyonunun oluşturulması) ve jenerasyonlar güncellenerek en uygun değer araştırılır. Başlangıç popülasyonu, rastgele noktalara yerleştirilen ve rastgele hızlara sahip bir sürü olarak ifade edilir. Her iterasyondaki, her bir parçacık iki “en iyi” değere göre güncellenir.

 Bunlardan birincisi bir parçacığın o ana kadar bulduğu en iyi uygunluk değeridir. Ayrıca bu değer daha sonra kullanılmak üzere hafıza tutulur ve “pbest” yani parçacığın en iyi değeri olarak isimlendirilir.

 Diğer en iyi değer ise popülâsyondaki herhangi bir parçacık tarafından o ana kadar elde edilmiş en iyi uygunluk değerine sahip çözümdür. Bu değer popülasyon için global en iyi değerdir ve “gbest” olarak isimlendirilir.

D adet parametreden oluşan n adet parçacık için popülasyon matrisi yukarıdaki gibi ifade edilir. Matrise göre, i. parçacık xi

x xi1, i2,...,xiD

için bu değerler

1, 2,...,

i i i iD

pbestp p p gbesti

p p1, 2,...,pD

şeklinde gösterilir. i. ninci parçacığın

11 1 1 D n nD nxD a a x a a           

her konumdaki değişim miktarını gösteren hız vektörü vi

v vi1, i2,...,viD

olarak ifade edilir. Bu iki en iyi değer bulunduktan sonra; parçacık, hızını ve konumu sırasıyla aşağıdaki Eşitlikler (3-20) ve (3-21)’ e göre günceller.

Atalet Kişisel Hafıza Sosyal Hafıza

1 1 1 2 2 . . . . . k k k k k k k k i i i i i

v  w vc rand pbestxc rand gbestx (3-20)

1 1

k k k

i i i

x  xv  (3-21)

Burada rand (0,1) arasında üretilen rastgele bir değeri, i parçacık numarasını, k ise iterasyon sayısını gösterir. c1 ve c2 öğrenme faktörleridir. Bunlar parçacıkları pbest

(personal best) ve gbest (global best) konumlarına doğru yönlendiren sabitlerdir. c1

parçacığın kendi tecrübelerine göre (kişisel hafıza), c2 ise sürüdeki diğer parçacıkların

tecrübelerine göre (sosyal hafıza) hareketi yönlendirir. Düşük değerler seçilmesi parçacıkların hedef bölgeye doğru çekilmeden önce, bu bölgeden uzak yerlerde dolaşmalarına imkân verir. Ancak hedefe ulaşma süresi uzayabilir. Diğer yandan, yüksek değerler seçilmesi, hedefe ulaşmayı hızlandırırken, beklenmedik hareketlerin oluşmasına ve hedef bölgenin es geçilmesine sebep olabilir. Genellikle c1=c2=2 olarak almanın iyi sonuçlar verdiği belirtilmiştir. w değeri ise her bir iterasyonda değeri düşürülerek bir önceki hız bilgisinin etkisini azaltmaya yarayan atalet ağırlığı (inertia weight) dır.

Eşitlik 3.20’ deki “Atalet” olarak belirtilen . k i

w v ifadesi hız değerinin atalet ağırlığını göstermektedir. Bu parametre parçacıkların hız değerlerinde ani değişme olmamasını, parçacıkların bir önceki hızlarına bağlı kalarak hız güncellemesi yapmasını sağlayarak çözüm uzayında parçacıkların ani hız değişimlerini engelleyerek uygun arama yapabilmesini sağlamaktadır. “Kişisel Hafıza” olarak belirtilen

1. 1.

k k k

i i

c rand pbestx ile parçacıkların c1 ve rand() ile ölçeklendirilerek parçacıkların yeni hızlarının belirlenmesinde geçmişteki en iyi konuma (pbest) yakınsaması sağlanmaktadır. “Sosyal Hafıza” olarak belirtilen c rand2. 2k.

gbestkxik

kısmı ile ise bir öncekine benzer şekilde parçacıkların c2 ve rand() ile ölçeklendirilerek parçacıkların

sürünün en iyisine (gbest) yakınsaması sağlanmaktadır. Görüldüğü gibi parçacığın mevcut konumundan bir sonraki konumuna geçişini sağlayan hızı hesaplanırken iterasyonlardaki her bir parçacığın kendi en iyi değeri ve popülasyonun en iyisinden faydalanılmaktadır.

PSO’ nun avantajlarından birisi reel sayılarla çalışıyor olmasıdır. Genetik algoritmalardaki gibi hesaplama yapabilmek için ikili kodlamadan dönüştürme yapılması ya da bazı kullanılması zorunlu özel operatörlere ihtiyaç duyulmaz. Örneğin

 

2 2 2

1 2 3

f xxxx fonksiyonu için çözümü bulmayı deneyelim. Burada 3 bilinmeyen olduğundan dolayı D=3 boyutludur ve parçacıklar

x x x1, 2, 3

şeklinde ayarlanır. f x

 

fonksiyonu da uygunluk fonksiyonu olarak kullanılır. Daha sonra yukarıda verilen standart prosedür optimumu bulmak için uygulanır. Sonlanma kriteri olarak maksimum iterasyon sayısı veya minimum hata koşulu sağlanması kullanılır. Görüldüğü gibi PSO’ da ihtiyaç duyulan çok az sayıda parametre vardır. Bu parametrelerin listesi ve tipik olarak aldıkları değerler aşağıda verilmektedir:

Parçacık Sayısı: genellikle 20 ila 40 arasında alınır. Aslında çoğu problem için sayıyı

10 almak iyi çözümler elde etmek için yeterlidir. Bazı zor veya özel problemler için 100 veya 200 parçacık kullanılması gerekebilir.

Parçacık boyutu: optimize edilecek probleme göre değişmektedir.

Parçacık değer aralığı (range): Optimize edilecek probleme göre değişmekle birlikte

farklı boyutlarda ve aralıklarda parçacıklar tanımlanabilir.

Vmax: Bir iterasyonda, bir parçacıkta meydana gelecek maksimum değişikliği (hız)

belirler. Genellikle parçacık aralığına göre belirlenir. Örneğin X1 parçacığı [-5,5] aralığında ise Vmax=10 sınırlandırılabilir.

Öğrenme Faktörleri: c1 ve c2 genellikle 2 olarak seçilir. Fakat farklı da seçilebilir. Genellikle c1, c2 ye eşit ve [0, 4] aralığında seçilir.

Durma Koşulu: Maksimum iterasyon sayısına ulaşıldığında veya değer fonksiyonu

iterasyonlar boyunca gbest çözümünün değişmemesi, belirli sayıda uygunluk fonksiyonunun hesaplanması ve belirtilen bir oranda minimum hata oranına göre gbest in elde edilmesi durdurma kriterleri olarak belirlenebilir.

Atalet Ağırlığı: Genellikle [0.9,0.4] aralığında alınarak, algoritmanın işleyişi süresince

değişmeyerek kullanılabilen, ya da her bir iterasyonda azaltılarak dinamik olarak kullanılabilen parametredir.

Pozisyon Değerleri: Parçacıkların pozisyonları (alabileceği değerler) herhangi bir

çözüm aralığında ise [xmin, xmax] bu sınırların dışına çıkacak yeni bir pozisyon bilgisi hesaplanırsa parçacığa verilecek bazı kısıtlamalar ile bu düzenlenir. Kısıtlamalar şu şekildedir: max max min min i i i i eğer x x ise x x eğer x x ise x x    

(3-22)

Hız Değerleri: Hız değerleri pozitif ve negatif değerler alabilmekte, bu sayede çok

yönlü hareketlilik sağlanmaktadır. Parçacıkların çözüm uzayı dışına çıkmasını engellemek hız değerlerinin kontrolü ile sağlanabilmektedir. Yukarıda da belirtildiği gibi parçacık aralığına göre belirlenen Vmax ın yanı sıra Vmin değeri de bulunmaktadır. Bunun için hız değerleri için sınırlar belirlenmiştir. Bu sınırlara ait kısıtlamalar şu şekildedir: min max max max min min i i i i V V olmak üzere eğerV V ise V V eğerV V ise V V      

(3-23)

Atalet Ağırlığı : Atalet ağırlığı parçacığın bir önceki hızının yeni hızına etkisini

belirleyen bir parametredir. Bu parametre parçacıkların hız değerlerinde ani değişme olmamasını, parçacıkların bir önceki hızlarına bağlı kalarak hız güncellemesi yapmasını sağlayarak çözüm uzayında parçacıkların ani hız değişimlerini engelleyerek uygun arama yapabilmesini sağlamaktadır.

Atalet ağırlığının büyük değerler alması parçacığın çözün uzayında global aramalar yapmasına, küçük değerler alması ise çözüm uzayında bölgesel aramalar yapmasını sağlamaktadır.

Genel olarak uygulamalarda wmax = 0.9, wmin = 0.4 olarak alınarak her bir

iterasyonda en büyük değerinden (başlangıç değeri) en küçük değerine (bitiş değeri) lineer bir şekilde azalması sağlanır.

max min max . i w w w w k toplamiterasyon k mevcut iterasyon     (3-24)

PSO algoritması biçimsel olarak aşağıdaki gibidir:

BEGIN

Başlangıç parametrelerini ayarla.

For her parçacık için

Parçacığı başlangıç konumuna getir

End

Do

For her parçacık için

Uygunluk değerini hesapla

Eğer uygunluk değeri pbest ten daha iyi ise,

Şimdiki değeri yeni pbest olarak ayarla (pbest güncellemesi)

End

Tüm parçacıkların bulduğu pbest değerlerinin en iyisini, tüm parçacıkların gbest'i olarak ayarla (gbest güncellemesi)

For her parçacık için

Eşitlik (3-20)’ye göre parçacık hızını hesapla Eşitlik (3-21)’e göre parçacık konumunu güncelle End

While maksimum iterasyon sayısına veya minimum hata koşulu sağlanana kadar devam

et.

4. KOMŞULUK OPERATÖRLERİ İLE KKO-PSO TABANLI HİYERARŞİK

Benzer Belgeler