• Sonuç bulunamadı

4. SEZGĠSEL ALGORĠTMALAR

4.2. Parçacık Sürü Optimizasyonu (PSO)

PSO, 1995‟de James Kennedy ve Russell Eberhart‟in geliĢtirdiği sezgisel bir algoritmadır (Akbulut, 2009). Bu algoritmada doğadaki bütün canlılarda bulunan sosyal zeka temeline dayanan sezgisel bir algoritmadır. Ġnsanların bilgiyi konuĢarak paylaĢması, kuĢların yön tayininde birbirlerinden yararlanmaları, balık sürülerinin hareketlerini ortak bir kararla almaları sosyal bir varlığın kanıtıdır. PSO‟lar kuĢların yön tayininde birbirlerinden faydalanmalarından ve balık sürülerinin hep birlikte hareket etmesinden esinlenerek geliĢtirilmiĢtir (Eldem, 2014). PSO, GA gibi evrimsel optimizasyon teknikleri ile benzerlik gösterir fakat evrimsel operatörler (çaprazlama ve mutasyon gibi) bulunmamaktadır. PSO‟da parçacık olarak adlandırılan çözümler, çözüm içerisindeki en iyi sonuçları takip ederek problem uzayında gezinirler.

PSO, GA ile karĢılaĢtırıldığında gerçekleĢtirilmesi daha kolaydır ve ayarlanması gereken parametre sayısı çok azdır. Bundan dolayı PSO‟lar günümüzde uygulama olarak bir çok alanda kullanılmaktadır (Eldem, 2014).

4.2.1. PSO Algoritmasının temel adımları

PSO‟nun temel mantığını bir kuĢ sürüsünde, kuĢların bulduğu yiyecek kaynağını diğer kuĢlara bildirmesi ve kuĢların bu kaynaklardan en iyi olanına doğru hareket ederek arama yapmasıdır. Bu arama da neredeyse bütün arama uzayı araĢtırılarak en iyi çözüme yakın bir çözüme ulaĢılabilir. Sürüde bulunan kuĢların kendi hafızaları bulunmakta ve ayrıca en iyi yiyecek kaynağının yerini de bilmektedirler (Demirci, 2011). PSO‟ların en büyük avantajı olan parametre sayısının az olmasıdır. PSO‟ların çalıĢmasında kullanılan bazı ifadelerin açıklanması, algoritmanın daha iyi anlaĢılmasını sağlayacaktır. PSO‟da kullanılan bazı ifadeler aĢağıda verilmiĢtir (Terzi, 2009).

Parçacık sayısı: PSO‟da kuĢu ifade eden değiĢkendir. Algoritmada bu değer 20 ile 40 arasında olabilir fakat birçok uygulamada 10 parçacık kullanmak yeter olmaktadır. PSO‟nun uygulanacağı problem karmaĢık ve özel ise parçacık sayısı 100-200 olarak belirlenebilir.

Parçacık boyutu: PSO ile optimize edilecek probleme göre değiĢen bir parametredir.

Parçacık aralığı: PSO ile optimize edilecek probleme göre değiĢen bir parametredir ayrıca farklı boyutlarda ve aralıklarda parçacıklar tanımlanabilir.

Vmax: Bir iterasyonda, parçacıkta oluĢacak maksimum hızı belirlemek için kullanılan bir parametredir. Parçacık aralığına göre belirlenen bu değer örneğin xn parçacığı (-30,30) aralığında ise Vmax=60 olarak hesaplanabilir.

Öğrenme Faktörleri: c1 ve c2 değerleri çözüm uzayında optimizasyonun gbest ve pbest değerlerine yaklaĢmalarını sağlayan parametrelerdir. Bu değiĢkenler uygulamalarda genel olarak 2 seçilir. Fakat c1, c2 ye eĢit ve [0, 4] aralığında da seçildiği uygulamalar bulunmaktadır.

Atalet ağırlığı: Atalet ağırlığı parçacığın bir önceki hızının yeni hıza 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 değerinin büyük olması parçacığın çözüm uzayında global aramalar yapmasına, küçük olması ise bölgesel aramalar yapmasını sağlamaktadır. Genellikle [0,4-0,9] 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. Dinamik olarak azaltılan atalet değeri için uygulamalarda wmax= 0,9 , wmin= 0,4 olarak alınarak Denklem 4.6‟daki ifade ile her iterasyonda lineer olarak azaltılabilmektedir. max min max- k iterasyon i w w w w Toplam iterasyon k Mevcut    (4.6)

Durma KoĢulu: Algoritmanın ne zaman sonlanacağını belirleyen kriterlerdir. Algoritma belirlenen iterasyon sayısına ulaĢtığında, fonksiyonun uygunluk değeri belirlenen hata sınırları içerisinde ya da belirlenen değere ulaĢtığında ayrıca belirlenen zaman gerçekleĢtiğinde algoritma durdurulabilir. Burada durdurma kriteri belirlenirken algoritmanın erken yakınsamasına sebep vermemeli ve durdurma Ģartı hesaplama süresini çok uzatmamasına dikkat edilmelidir.

PSO algoritmasının genel adımları ġekil 4.7‟de verilmiĢtir.

ġekil 4.7. PSO akıĢ Ģeması

PSO algoritmasının genel adımları aĢağıdaki Ģekilde sıralanabilir (Demirci, 2011); 1. Popülasyon oluĢturulur. Her parçacığın baĢlangıç değeri ve hızı rastgele atanır. 2. Her bir parçacığın uygunluk değeri amaç fonksiyonuna göre hesaplanır.

3. Parçacığın en iyi değeri bulunur. Bir önceki adımda hesaplanan uygunluk değeri parçacığın hafızasında bulunan en iyi kiĢisel değer (pbest) ile karĢılaĢtırılır. Eğer bir önceki adımda bulunan sonuç mevcut “pbest” değerinden daha iyi sonuç ise yeni değer “pbest” olarak değiĢtirilir.

4. Küresel en iyi parçacık bulunur. Ġkinci adımda her parçacık için hesaplanan uygunluk değeri programın hafızasında tutulan küresel en iyi çözüm “gbest” ile karĢılaĢtırılır. Eğer daha iyi bir sonuç varsa bu sonuç “gbest” ile değiĢtirilir. 5. Her parçacığın hızı ve konumu Denklem 4.7‟deki formüle göre parçacığın hız

değiĢkeni, Denklem 4.8‟e göre de parçacığın konumu ayarlanır. r1 ve r [0,1] 2

aralığında rasgele üretilen sayılardır.

1 1 1( ) 2 2( ) k k k k k k i i i i i v  w vc r pbestxc r gbestx (4.7) 1 1 k k k i i i x  xv  (4.8)

6. Durdurma Ģartı veya Ģartları sağlanıncaya kadar 2-5 adımları arasındaki iĢlemler tekrarlanır.

Denklem 4.7‟deki ifade 3 parçadan oluĢmaktadır. Birinci kısım hız değerinin atalet ağırlığını göstermektedir. Parçacıkların hız değerlerinde ani değiĢiklikler olmamalı, parçacıklar bir önceki hızlarına bağlı kalarak hız güncellemesi yapmalıdırlar. Aksi takdirde parçacıklar çözüm uzayında ani yön değiĢiklikleri yaparak uygun bir arama gerçekleĢtiremeyeceklerdir. Ġkinci kısım ise kişisel hafıza kısmı: Bu kısım vasıtasıyla parçacıkların konumlarını geçmiĢte elde ettikleri en iyi konuma (pbest) doğru çekilirler. Bu kısımda elde edilen değer c r değeri ile ölçeklenmiĢtir. Üçüncü 1 1

kısmı ise sosyal hafıza kısmı: Bu kısımda parçacıklar sürünün en iyi konum değerine (gbest) doğru çekilirler. Bu kısımda da elde edilen değer c r değeri ile ölçeklenmiĢtir 2 2

(Ortakcı, 2011).

PSO algoritmasının yazılımında bazı durumlar dikkate alınmalıdır.

Pozisyon değerleri: Parçacıkların alabileceği değerler (pozisyonları) herhangi bir çözüm aralığında sınırların dıĢına çıkarsa pozisyon Denklem 4.9‟daki gibi düzenlenir.

max max min min ise ise i i i i x x x x x x x x     (4.9)

Hız değerleri: PSO algoritmasında hız değerleri pozitif ve negatif değerler alarak çok yönlü hareket sağlanabilmektedir. Parçacığın çözüm uzayı dıĢına çıkması durumunda hız değerlerinin kontrolü Denklem 4.10‟daki gibi düzenlenebilir.

min max max max min min ise ise i i i i v v v v v v v v v v       (4.10)