135
Sürü zekâsında yeni bir yaklaşım: Kuş sürüsü algoritması
Bu avantajlarından dolayı metasezgisel
algoritmalar; yönetim bilimi, mühendislik,
bilgisayar gibi birçok farklı alanda yoğun olarak
kullanılmakta
ve
yeni
versiyonları
önerilmektedir. Son zamanlarda, canlıların sürü
halindeki davranışlarından esinlenerek geliştiri-
len sürü zekâsı tabanlı optimizasyon algoritma-
ları da matematiksel model oluşturulamayan
veya oluşturulsa bile çözüm zamanı çok uzun
zaman alan birçok kompleks problemin
çözümünde popüler hale gelmeye başlamıştır.
Bu çalışmada sürü zekâsı optimizasyon
algoritmalarının en güncellerinden birisi olan
Kuş Sürüsü Algoritması (KSA) incelenmiştir.
Ayrıca KSA’nın performansı, yine popüler sürü
zekâsı ve metasezgisel algoritmalardan parçacık
sürü optimizasyonu, yapay balık sürü
optimizasyonu, kırlangıç sürü optimizasyonu ve
karga arama algoritması ile tek ve çok modlu
kalite
testi
fonksiyonlarında
ilk kez
karşılaştırmalı olarak sunulmuştur.
Materyal ve Yöntem
Sürü zekâsı merkezi olmayan kontrol, doğal ya
da yapay kendi kendini organize eden
sistemlerin gösterdiği toplu davranış biçimidir
(Bonabeau vd., 1999). Özellikle bireylerin
birbirleriyle
ve
çevreleriyle
yerel
etkileşimlerinden
kaynaklanan
kolektif
davranışlar üzerine odaklanan disiplindir. Hiçbir
kontrol mekanizması olmadan sürüdeki bireyler
basit yapı ve özellikte olup basit iletişim yolları
ile az maliyet harcayarak, esnek ve sağlam bir
yapı oluşturup zekice hareket etmeleri ve kendi
karşılaştıkları problemlere çözüm getirmeleri
biyologların ilgisini çektiği gibi bilgisayar
bilimcilerin ve mühendislerin de ilgisini
çekmektedir. Çünkü iletişim, taşımacılık,
endüstriyel üretim ve robot-bilimi gibi birçok
alanda çözümler getirmeye çalışan bilgisayar ve
mühendislik bilimleri bu alanların birçoğunda
çözülmesi oldukça zor veya zaman ya da
maliyet olarak masraflı olan problemlerle karşı
karşıya kalmaktadır. Sürülerin karşılaştıkları ve
çözümledikleri problemlerin birçoğu bu
problemlerle paralellik göstermektedir. Bu da
sürü zekâsı kavramının geliştirilmesinde önemli
bir rol oynamıştır. Aşağıda şimdiye kadar farklı
araştırmacıların önerdiği ve bu makalede
performans karşılaştırması için seçilen sürü
zekâsı optimizasyon algoritmaları alt başlıklar
halinde açıklanmıştır.
Parçacık Sürü Optimizasyon Algoritması
Parçacık Sürü Optimizasyonu (PSO), ilk olarak
Kennedy ve Eberhart tarafından 1995 yılında
geliştirilmiş bir optimizasyon yöntemidir
(Kennedy ve Eberhart, 1995). PSO balık, böcek,
kuş vb. hayvan sürülerinin davranışından
esinlenerek geliştirilmiştir. Yöntem, genel
olarak söz konusu sürünün, besin kaynağı
ararken ortaya koyduğu davranış üzerine
kuruludur. Tek başlarına bir şey yapamayan bu
tür hayvanlar sürü halinde zeki davranışlar
sergileyebilmektedir. PSO;
• Her bir bireyin kendi hafızalarında yer etmiş
olan iyi konuma gitme eğilimi olarak
tanımlanabilecek bilişsel davranış biçimi,
• Her bir bireyin iyi konumlarda bulunan diğer
bireyleri
takip
etme
eğilimi
olarak
tanımlanabilecek sosyal davranış biçimi,
• Her bir bireyin rastgele arama yapma
eğilimini tanımlayabilecek keşifsel davranış
biçimleri arasında bir denge olduğu varsayımına
dayanmaktadır (Eberhart ve Kennedy 1995;
Karaboğa, 2011). Sürünün bu davranışı formüle
edilerek optimizasyon problemlerinin
çözümünde kullanılmaktadır. Şekil 1’de
PSO’nun akış diyagramı görülmektedir.
Algoritma temel olarak aşağıdaki basamaklar-
dan oluşur.
Adım 1: Rastgele üretilen başlangıç
pozisyonları ve hızları ile başlangıç sürüsü
oluşturulur.
Adım 2: Sürüdeki parçacıkların uygunluk
değerleri hesaplanır.
Adım 3: Her bir parçacık için mevcut nesilden
yerel en iyi bulunur. Sürü içerisinde en iyilerin
sayısı parçacık sayısı kadardır.
Adım 4: Mevcut nesildeki yerel eniyiler
içerisinden global en iyi (gbest) seçilir.
Adım 5: Pozisyon ve hızlar güncellenir.
Adım 6: Durdurma kriteri sağlanıncaya kadar
Adım 2, 3, 4 ve 5 tekrar edilir.
136
E. Varol, B. Alataş
Başlangıç sürüsünü, hızları ve pozisyonları oluştur.
Sürüdeki bütün parçacıkların uygunluk değerlerini
hesapla.
Her jenerasyonda tüm parçacıkları önceki jenerasyonun
en iyisi ile karşılaştır. Daha iyi ise yer değiştir.
En iyi yerel değerleri kendi arasında karşılaştır ve en iyi
olanı küresel en iyi olarak ata.
Hız ve pozisyon değerlerini yenile.
Durdurma kriteri
Sonucu göster.
Evet
Hayır
Şekil 1. PSO’nun akış diyagramı
PSO algoritması, her bir parçacığın problem için
muhtemel bir çözümü temsil ettiği parçacıkların
bir sürüsü (popülasyonu) ile uğraşır. Evrimsel
hesaplama paradigmalarına benzer olarak, sürü
popülasyona karşılık gelmekte ve parçacıklar
bireylere benzemektedir. Basit bir ifadeyle,
parçacıklar çok boyutlu araştırma uzayı boyunca
akış içerisindedirler ve her bir parçacığın
pozisyonu kendi ve komşularının tecrübelerine
göre ayarlanmaktadır.
PSO genel olarak iki ana amaca yönelik olarak
özelleşmiştir. Birincisi global en iyiyi bulma
(Global En iyi PSO ya da kısaca Gbest-PSO),
ikincisi lokal en iyiyi bulma (Lokal En iyi PSO
ya da Lbest-PSO). Gbest-PSO için her bir
parçacığın komşuluğu sürünün bütününü
kapsamaktadır. Gbest-PSO’nun sahip olduğu
sosyal ağ, yıldız topolojisini temsil etmektedir.
Yıldız komşuluk topolojisinde parçacık hız
değişiminin sosyal bileşeni, sürüdeki tüm
parçacıklardan elde edilen bilgiyi temel almaktadır.
Yapay Balık Sürüsü Optimizasyon
Algoritması
Yeni bir evrimsel hesaplama tekniği olan Yapay
Balık Sürüsü Algoritması (YBSA) ilk kez 2002’
de önerilmiştir (Liv vd., 2002). YBSA’nın fikri
sürü teorisine ve basitleştirilmiş balık sürüsünün
doğal sosyal davranışlarının simülasyonuna
dayanmaktadır.
YBSA genetik algoritmada kullanılan mutasyon
süreçleri ve çaprazlamaya sahip değildir. Bu
yüzden daha kolay bir şekilde yürütülmektedir.
Sistem başlangıçta rastgele üretilen bir dizi
potansiyel çözümlerle başlatılmakta ve daha
sonra tekrarlı bir şekilde optimum bir çözüm
elde etmek için arama yapmaktadır (Zhang vd.,
2000).
Gerçek balığın hayali bir varlığı olan Yapay
Balık (YB), problemin açıklanmasında,
analizinin yapılmasında ve hayvanlar için
ekoloji kavramının fark edilebilmesinde rol
oynamaktadır. Kuyruk ve yüzgeçlerin kontrolü
ile uyarıcı bir tepki verilmektedir. Bundan
sonraki davranış onun çevresinin durumuna ve
bugünkü durumuna bağlıdır (şu anda soru
çözümlerinin kalitesi ve diğer eşlik eden
arkadaşların durumları da dâhil). Bu çevre, onun
kendi aktivitelerini ve diğer eşlik eden
arkadaşlarının aktivitelerini de etkilemektedir
(Zhang vd., 2007; Mehdi vd., 2012).
YB’nin
davranışlarını
içeren
temel
fonksiyonlar; YB_Av, YB_Sürü, YB_Takip,
YB_Hareket, YB_Atlama ve YB_Değerlendirme’dir.
Balık genellikle birçok yiyecek ile bir yerde
kalır. Bu yüzden YBSA’nın temel fikri olan
global
optimumu
bulmak
için
bu
karakteristiklere dayalı balıkların davranışlarını
taklit etmektedirler. YB’nin maksimum amaç
değeri elde etmek için temel davranışları
aşağıdaki gibidir (Bao vd., 2016; Quan vd.,
2016):