• Sonuç bulunamadı

Adım 4: Seçim işlemini gerçekleştir ve izleyen nesle kopyala

4.3. Parçacık Sürüsü Optimizasyonu

Sürü zekâsı ile hareket eden organizmalarda, kolektif zekâ ve dolayısıyla bireyler arasında gerçekleştirilen bilgi aktarımı oldukça önemli bir paya sahiptir. Bu aktarım, farklı organizmalarda farklı şekillerde gerçekleştirilebilir.

Örneğin karınca kolonilerinde, karıncalar besin kaynaklarına, diğer karıncaların etrafa yaydıkları feromon kokusunun daha fazla duyulduğu yere doğru hareket ederek ulaşmaya çalışırlar. Başka bir ifadeyle besin kaynağı civarındaki karınca sayısı zaman ilerledikçe artmaya başlar. Kaynak tüketildiğinde ise karıncalar tekrar feromon salınımını dikkate alarak farklı besin kaynaklarına yönelme eğilimindedirler.

Karıncaların besin kaynağı arayışındaki davranışlar Şekil 4.6’da gösterilmiştir. Bu davranış mekanizmasını temel alarak, çeşitli zor problemlere çözüm üretebilmek amacıyla Karınca Kolonisi Optimizasyonu (Dorigo et al., 1991; Dorigo et al., 1996) literatüre kazandırılmıştır.

Benzer yaklaşım arı kolonilerine de uygulanmıştır. Arı kolonilerinde ise bilgi aktarımı kovan (nest) içerisinde yapılan salınım dansı (waggle dance) ile gerçekleştirilir.

Bu dans ile besin kaynağının miktarı ve yeri hakkında arılar arasında bilgi aktarımı olur ve kaynaktaki besin miktarı yüksek ise o kaynağa daha fazla arı atanır. Şekil 4.7’de bu durum özetlenmiştir.

Şekil 4.6. Bir karınca kolonisinin besine erişimi ile ilgili bir gösterim (http://www.ankurkhetrapal.com/research/proteus.htm).

Şekil 4.7. Arı kolonisinin ile ilgili bir gösterim

(http://www.emo.org.tr/ekler/5a2d64e6d533a97_ek.pdf)

Bu şekilde A ve B olmak üzere iki farklı besin kaynağı vardır. T2 ile gösterilen rotada besin kaynağından kovana besin taşınır. Ancak besin miktarı fazla ise T1 rotaları ile dans alanında salınım dansı yapılır ve bu bilgi boşta olan diğer arılara aktarılarak o besin kaynağına daha fazla arı atanır. Besin kaynağı tükendikten sonra ise V rotasıyla besin toplayan arılar boşta kalarak salınım dansı izlemeye başlarlar. Son olarak K ile gösterilen rota ile kâşif arılar (scout bees), rassal olarak besin kaynağı ararlar. Bulunan besin kaynaklarının yerlerini ve miktarlarını ise yine salınım dansı ile boşta olan arılar ile paylaşırlar. Arıların besin arama konusundaki bu mekanizması bilgisayar ortamına uyarlanmış ve Arı Algoritması (Bees Algorithm) (Karaboğa, 2005; Pham et al., 2006;

Karaboğa ve Baştürk, 2007a; Karaboğa ve Baştürk, 2007b; Karaboğa ve Baştürk, 2007c; Karaboğa ve Akay, 2009; Karaboğa, 2010) adını almıştır.

Benzer şekilde balık ve kuş sürülerinde de aynı durum geçerlidir. Bu sürülerde de besin kaynağına erişim kolektif zekânın bir ürünüdür.

PSO, kuş ve balık sürüleri gibi topluca hareket eden sosyal organizmaların davranışlarının benzetimini yapan, sürü zekâsı tabanlı algoritmalardan bir tanesidir (Kennedy and Eberhart, 1995; Eberhart and Kennedy, 1995; Eberhart et al., 1996;

Kennedy, 1997; Angeline, 1998; Eberhart, et al., 2001).

PSO ile ilgili ayrıntılı bilgi verilmeden önce aşağıda önemli olduğu düşünülen bazı tanımlar verilmiştir.

Parçacık (particle): GA’daki kromozoma karşılık gelir ve her bir parçacık bir çözümü ifade eder.

Sürü (swarm): GA’daki popülasyona karşılık gelir ve parçacıkların oluşturduğu sürüyü ifade eder.

Sürü büyüklüğü (swarm size): Sürüdeki parçacık sayısıdır. GA’daki popülasyon büyüklüğüne karşılık gelir.

Atalet bileşeni (inertia component): Parçacık hızını azaltan yerel çözümleri hassaslaştıran bileşendir.

Atalet katsayısı (inertia coefficient): Atalet bileşenin şiddetini ayarlamakta kullanılan katsayıdır.

Bireysel bileşen (cognitive component): Parçacığın geçmiş tecrübelerini sakladığı ve bu tecrübelerden faydalanarak hızını ayarladığı bileşendir.

Bireysel katsayı (cognitive coefficient): Bireysel bileşenin şiddetini ayarlamakta kullanılan katsayıdır.

Sosyal bileşen (social component): Tüm sürünün eriştiği eniyi çözümün bireyler arasında kullanılarak ilgili parçacığın hızının ayarlandığı bileşendir.

Sosyal katsayı (social coefficient): Sosyal bileşenin şiddetini ayarlamakta kullanılan katsayıdır.

Bireysel eniyi (individual best): Bir parçacığın bireysel olarak herhangi bir t.

ardıştırmaya kadar erişebildiği eniyi çözümdür.

Algoritma eniyi (incumbent): Sürünün herhangi bir t. ardıştırmaya kadar erişebildiği eniyi çözümdür.

Hız vektörü (velocity vector): herhangi bir t anında parçacık bazında saklanabildiği gibi sürü için de saklanabilen, n, problemdeki değişken sayısı, S, sürü büyüklüğü iken sırasıyla 1xn ya da Sxn (matris) boyutlarında olabilen parçacıkların (t+1). ardıştırmadaki konumlarının hesaplanmasında kullanılan vektör ya da matris.

Konum vektörü (position vector): Problemdeki değişkenlerin tanım aralığı içerisindeki koordinatlarının saklandığı vektördür. Hız vektöründe olduğu gibi sürü bazında ya da parçacık bazında da tutulabilir.

PSO ilk olarak Kennedy ve Eberhart (1995) tarafından, sürekli doğrusal olmayan eniyileme (continuous nonlinear optimization) için önerilmiştir. Bu teknikte parçacıkların hızını ve konumunu ayarlamak için aşağıdaki denklemler kullanılır.

(4.1)

(4.2)

Bu denklemlerde, Vi(t) i. parçacığın t anındaki hızını, Xi(t) i. parçacığın t anındaki konumunu göstermektedir. w, c1 ve c2 sırasıyla atalet katsayısını, bireysel katsayıyı ve sosyal katsayıyı temsil etmekte, Ωi ise [0,1] aralığında sürekli düzgün dağılmış (continuous uniform distributed) rassal sayıları göstermektedir. i. parçacığın t anına kadar bulabildiği eniyi çözüm, ise sürü tarafından t anına kadar bulunabilen eniyi çözümdür.

(4.1)’den görülebildiği gibi i. parçacık (t+1). anındaki hızını t anındaki hızı, bireysel eniyi ve algoritma eniyiye göre ayarlamaktadır. w, c1 ve c2 katsayıları bu hızın hesaplanmasındaki ağırlıklardır. Örnek olarak yüksek bir c2 değeri parçacıkların hızlı bir şekilde algoritma eniyi etrafında toplanmasına sebep olurken, yüksek bir c1 değeri parçacıkların birbirinden kopuk olarak arama yapması anlamına gelmektedir. Benzer şekilde w değerinin yüksek seçilmesi parçacıkların yerel aramayı (local search) daha yüzeysel yapıp hızlıca eniyiye yakınsamasına, düşük seçilmesi ise yerel aramanın hassas yapılıp parçacıkların yavaş hareket etmesine sebep olmaktadır.

(4.2)’de ise i. parçacığın (t+1). ardıştırma için olması gereken hızı ile t anındaki konumu toplanarak, ilgili parçacığın (t+1) anındaki konumu elde edilmektedir.

PSO’da kullanılan parametre sayısının fazla olması algoritmanın başarısı açısından, önemli bir soruna işaret etmektedir. Bu nedenle, çeşitli denemeler sonrasında bu parametrelerin genellikle belirli aralıklarda kabul edilmesi, literatürde yaygınlık kazanmıştır. Örnek olarak w ∈ [0, 1.2], c1 ∈ [0,2], c2 ∈ [0,2] olarak kabul edilmektedir.

Ayrıca Clerc ve Kennedy’ye (2002) göre c1+c2=4.1 olarak kabul edilmiştir. Tüm bu varsayımlar altında, iyi sonuçlar türetebilmek için, parametrelerin olması gereken seviyelerinin belirlenmesi kolaylaşabilmektedir.

Hız vektörünün hesaplanmasında rassal bir parçacığın da etkisinin katıldığı çalışmalar mevcuttur. Aşağıdaki denklem (4.3), (4.1) denklemine ifadesinin eklenmesi ile elde edilmiştir. sürüdeki rassal bir parçacığın konum vektörüdür. ise (4.1)’deki gibi kullanılmaktadır.

Kesikli bir çözüm uzayı düşünüldüğünde, sürekli doğrusal olmayan eniyileme için önerilmiş PSO’nun uygulanması mümkün olamamaktadır.

Örnek olarak, problemin karar değişkenleri ∈ ve iken, 4 parçacıktan oluşan sürü aşağıdaki gibi verilmiş olsun.

Çizelge 4.1. 0-1 tamsayılı değişkenlerden oluşan bir sürü örneği

1 2 3

1 0 1 1

2 0 0 0

3 1 1 1

4 1 0 1

0-1 tamsayılı problemlerin çözüm uzayları hiperküp (hypercube) oluşturmaktadır. n değişken sayısı iken çözüm uzayında 2n tane uç nokta oluşmaktadır.

Uç nokta sayısına göre isimlendirilmiş bazı hiperküpler Şekil 4.8’de verilmiştir

Şekil 4.8. Çeşitli hiperküpler (http://en.wikipedia.org/wiki/Hypercube).

Şekil 4.9. Örnek problemdeki noktaların yerleri

Sürekli doğrusal olamayan problemler için önerilmiş (4.1) ve (4.2) numaralı PSO denklemleri böyle bir çözüm uzayında kullanılamamaktadır. Örnek olarak ifadesi sırasıyla 2. ve 3. parçacıkların konumlarının farkına karşılık geliyor iken, hız vektörüne bu bileşenden gelecek katkı, (0,0,0)-(1,1,1)=(-1,-1,-1) olmaktadır. Bu vektörün diğer bileşenlerden gelebilecek 0’dan küçük elemanlara sahip vektör ile toplanması, çeşitli katsayılarla çarpılması ve (4.2)’de kullanılması, parçacıkları çözüm uzayı dışına itecektir.

Bu nedenle farklı formülasyonlara ve uygulamalara ihtiyaç vardır. Bu konudaki ilk çalışma Kennedy ve Eberhart (1997) tarafından yapılmıştır.

Bu çalışmada hız vektörünün görevini gören bir lojistik transformasyon (logistic transformation) önermiş ve değişkenlerin alabilecekleri değerlerin bir sigmoid fonksiyonu yardımıyla belirlenebileceğini göstermişlerdir.

Bu yönteme göre i. parçacık için hız vektörü yine (4.1)’e göre hesaplanmakta fakat ardından denklem (4.4)’deki seçim uygulanmaktadır. Buna göre,

i. parçacığın d. boyutuna karşı gelen 0-1 değişken, i. parçacığın d.

boyutuna karşı gelen hız vektörü, rnd ∈ [0.0, 1.0] olmak üzere sürekli düzgün bir rassal sayı, S sigmoid fonksiyonu olsun.

(4.4)

0-1 tamsayılı modeller için önerilmiş yukarıdaki PSO’nun başarılı sonuçlar elde edebileceği gösterilmiş olsa da uygulama kolaylığı, gerekli çözüm zamanı ve elde edilen çözümün değerinin kolay hesaplanabilir olmaması açısından sıklıkla tercih edilen bir yöntem olarak günümüze ulaşamamıştır. Ayrıca problemdeki kısıtlar da göz önünde bulundurulduğunda yöntemin uygulanabilirliği son derece azalmaktadır.

Bu nedenle sürekli olmayan çözüm uzayları için Kennedy ve Eberhart’ın (1997) 0-1 PSO’sundan farklı yaklaşımlar geliştirilmiştir. Bu yaklaşımların çoğunda GA çaprazlama operatörü kullanılmış ve çalışmalar çoğunlukla kombinatoriyel problemler arasında iş-makine çizelgeleme problemleri üzerinde yoğunlaşmıştır. Bu alandaki eserler şu şekildedir: Anghinolfi ve Paolucci (2009), geliştirdikleri operatör yardımıyla iş sıralamalarını düzenleyen bir PSO önermişlerdir.

Pan

vd

.

(2008), Lian vd. (2006), Tseng ve Liao (2008), Niu vd. (2008), çeşitli GA çaprazlama ve mutasyon operatörlerini kullanan PSO geliştirmişlerdir.

Rotalamada ise kesikli uzayda PSO’nun uygulanması konusundaki yayınlar şu şekildedir: Shi vd. (2007) ve Fan (2010) GSP üzerinde yine çaprazlama operatörü kullanan bir PSO tabanlı yaklaşım geliştirmiştir. Marinakis vd. (2010) çeşitli komşuluk arama teknikleriyle PSO’yu melezlemişler ve bu yaklaşımın performansını KARP üzerinde incelemişlerdir. Marinakis ve Marinaki (2010) ise aynı problem üzerinde PSO’yu genellikle YAA’da kullanılan uyarlamalı hafıza (adaptive memory) ile birleştirip bu hafızadan hangi parçacıkların çekileceğini bir rassal sayı yardımıyla belirlemişlerdir. Hafızanın güncellenmesi ise belirli koşullara bağlanmıştır. Özellikle bu

çalışmadaki yaklaşım tez kapsamında PSO’ya uygulanan çaprazlama ölçeğine kaynak olmuştur.

Yukarıdaki çalışmalar haricinde, lieratürdeki farklı problemler üzerinde çaprazlama operatörü kullanan PSO ile ilgili çalışmalar (Kaur and Bhatt, 2011; Pant et al., 2007; Pant et al., 2009; Premalatha and Natarajan, 2009; Park et al., 2007; Su et al., 2009; Fan, 2010; Zhang et al., 2009) ile karşılaşmak da mümkündür.

Bu konu çok güncel ve araştırmaya açıktır. Son olarak Qin vd. (in press) PSO’nun kesikli uzaylara uygulanabilmesi amacıyla algoritmik bir yaklaşım geliştirmişlerdir.

Benzer Belgeler