137
Sürü zekâsında yeni bir yaklaşım: Kuş sürüsü algoritması
YB_Av:
Bu gıda eğilimi temel biyolojik bir
davranıştır. Genellikle balık görme ve hissetme
duyusu ile hareket belirlemek için, su gıda
yoğunlaşmasını algılar ve sonra eğilimi seçer.
YB_Sürü:
Sürü davranışı bir balığın sürünün
merkezine doğru giden ve aşırı kalabalıktan
kaçan bir davranıştır. Güncel durumdaki bir
YB’ye eşlik eden arkadaşının numarasını ve
onun
bugünkü
komşuluk()’ta merkezi
konumunu arar. Eğer balık kolonisinin
merkezindeyse yeterli yiyecek vardır ve çok
kalabalık değildir anlamına gelmektedir. Balık
koloninin varlığını garanti etmek ve
tehlikelerden kaçmak için bir tür yaşam
alışkanlığı olan hareketli süreçte doğal bir
biçimde gruplar halinde toplanacaktır.
YB_Hareket: Balık suda rastgele yüzer. Aslında
daha büyük aralıklarda yiyecek ya da eşlik
edecek arkadaş arar.
YB_Atlama: Objektif değerlerdeki farklılık bazı
iterasyonlarda daha küçük olmakta ve böylece
yerel ekstremum noktasına düşmektedir.
Parametrelerdeki rastgele değişiklik dışarı sızan
mevcut değişiklik durumunu bildirmektedir.
Tablo 1. YBSA’nın sözde kodları (Mehdi vd., 2012)
Prosedür Yapay_Balık_Sürüsü_Algoritması
YB_başlatma()
While sonuçtan memnun
Switch (YB_yiyecekkararlılık())
Case değer1
YB_Takip();
Case değer2
YB_Sürü();
Default
YB_Arama();
End switch
YB_Hareket();
Get_sonuç();
End while
End Yapay_Balık_Sürüsü_Algoritması
YBSA sürecinde arama davranışı YB’nin
temelini oluşturmaktadır. Davranış seçimi
algoritmanın
kararlılığını
ve
yüksek
verimliliğini garanti eder. Davranış seçim
yoluyla YBSA yüksek verimlilik ile
optimizasyon stratejisi oluşturabilmektedir.
YBSA’nın sözde kodları Tablo 1’de
gösterilmiştir.
Kırlangıç Sürüsü Optimizasyon Algoritması
Kırlangıç Sürüsü Optimizasyonu (KSO) sürü
zekâsına dayalı yeni bir algoritmadır. Bu
optimizasyon yöntemi kırlangıç sürüsünün
hareketlerini ve davranışlarını inceleyen yeni bir
optimizasyon yöntemidir. Bu yöntemde
parçacıkların 3 tipi vardır. Bunlar; kâşif
parçacıklar, amaçsız parçacıklar ve lider
parçacıklardır. Her parçacığın kişisel bir özelliği
vardır ama bunların ortak özelliği, uçan bir
merkezi kolonisinin olmasıdır. Her parçacık
sürekli olarak adaptif bir yarıçap ile çevreyi
araştırarak akıllı bir davranış sergilemektedir.
Komşu parçacıkların durumları genel lider ve
lokal lider olarak kabul edilmekte ve daha sonra
bir hamle yapılmaktadır (Mehdi vd., 2012).
KSO
algoritmasıyla
yüksek
verimlilik
kanıtlanmıştır. Bu yüksek verimlilik; düz
alanlarda hızlı hareketi (bu alanlarda gıda
bulunmadığı için türev sıfıra eşittir), elde kalmış
lokal ekstremum noktaları, yüksek yakınsama
hızını ve parçacıkların farklı gruplar içindeki
akıllı katılımını sağlamaktadır (Mehdi vd.,
2012).
Bu parçacıklar birbirlerine paralel olarak
hareket eder ve her zaman etkileşim
halindedirler. Kolonideki her parçacık (her
koloni alt kolonilerden oluşmaktadır) bir şeyler
yaparak ve deneyerek daha iyi bir duruma doğru
kolonileri yönlendirmeden sorumludur.
Kırlangıç hareketlerinin yüksek hız ve yüksek
dinamikte gerçekleşmesi nedeniyle alt koloniler
arasındaki gerçek sınırlar asla işaretlenemez.
Kırlangıçların diyagramı ve sayıları alt koloni
büyüklüklerine göre değişir.
Bu parçacıkların tümü sürekli birbirleriyle
etkileşim halindedir ve her parçacık bu üç
rolden birini üstlenir. Arama süresi sırasında bu
parçacıklar sık sık rollerini değişebilir ama
öncelikli hedef optimum noktayı bulmaktır
(Mehdi vd., 2012).
138
E. Varol, B. Alataş
Karga Arama Algoritması
Kargalar en zeki hayvanların başında
gelmektedir. Yüzleri hatırlayabilmekte, araç
kullanabilmekte, diğer kargalarla iletişe
geçebilmekte, mevsimlerde yiyecek bulup
saklayabilmektedir. Daha iyi yiyecek kaynağını
bulabilmek için birbirlerini takip ederler. Karga
Arama Algoritması (KAA) da kargaların bir
sürü şeklindeki yaşamları, saklandıkları yerleri
hatırlayabilme kabiliyetleri, yiyecek bulmadaki
birbirlerini takip etmeleri ve gizlendikleri yerleri
koruma davranışları göz önüne alınarak
Askarzadeh tarafından 2016’da önerilmiştir
(Askarzadeh, 2016). Bu açıklamalara bağlı
olarak kargaların davranışı ve popülasyon
tabanlı metasezgisel algoritma arasındaki
benzerlik
Tablo
2’de
gösterilmiştir.
Algoritmanın akış diyagramı ise Şekil 2’de
gösterilmiştir (Askarzadeh, 2016; Akyol ve
Alatas, 2016).
Tablo 2. Kargalar ve metasezgisel optimizasyon
arasındaki benzerlik
Kargalar
Metasezgisel
Optimizasyon
Kargalar
Arama ajanları
Çevre
Arama Uzayı
Çevrenin her
pozisyonu
Uygun çözümler
Yiyecek kaynağının
kalitesi
Amaç fonksiyonu
Çevrenin en iyi
yiyecek kaynağı
Global çözüm
Kuş Sürüsü Algoritması
Kuş
Sürüsü
Algoritması
(KSA)
kuş
sürülerindeki sosyal davranış ve sosyal
etkileşim temelli sürü zekâsı optimizasyon
algoritmalarının en yenilerindendir Kuşların
çoğunlukla üç davranış biçimi vardır. Bunlar
beslenme davranış biçimi, uyanıklık davranışı
ve uçma davranışıdır. Kuşlar yiyecek arayabilir
ve hayatta kalma şansını artırabilmek için sosyal
etkileşimler
aracılığıyla
avcılardan
kaçabilmektedirler. Böyle sosyal davranışları
modelleyerek, sosyal etkileşimler ve ilişkili sürü
zekâsı, beş temel kural ile dört arama stratejisi
KSA’da formüle edilmiştir (Meng vd., 2016).
Başla
Problem
parametrelerini
ayarla
- karar değişkenleri
- sınırlayıcılar
Algoritma
parametrelerini
ayarla
- Sürü boyutu (N)
- maksimum
iterasyon sayısı
(maksiter)
- uçuş uzunluğu (uu)
- farkındalık olasılığı
(FA)
Başlangıç pozisyon
ve karga hafızalarını
üret
Son
Evet
Hayır
Uygunluk fonksiyon
değerlerini hesapla
Yeni pozisyonlar
üret ve fizibiliteyi
test et
Yeni pozisyonların
uygunluklarını
hesapla
Hafızayı güncelle
Sonlandırma
kriteri
Şekil 2. KAA’nın akış diyagramı
İspinoz gibi birçok kuş türü sürü halinde
yaşamaktadır. Toplu bir şekilde sürüde
uçabilmekte, yiyecek arayışında bulunabilmekte
ve konaklayabilmektedirler (Anderson, 2006).
Böyle davranışlar ayrılık, hizalama, uyum gibi
basit kurallardan kaynaklanan acil davranışlar
olarak kabul edilmektedir. En basit sosyal
etkileşim yoluyla sürü davranışlarında kompleks
hareketler ve etkileşimler geliştirilebilmektedir.
Sürüde yiyecek arayan kuşlar kendi hisleriyle
yola çıkarak daha fazla bilgi toplayabilmekte ve
hayatta kalma şansına sahip olup, iyi ve verimli
besin arayışında bulunabilmektedirler. Eğer bir
kuş farklı yiyecek yolları bulursa diğerleri
onlardan beslenir (Kennedy vd., 2001). Besin
ararken kuşlar genellikle avlanma tehdidine
karşı bir araya toplanmaktadırlar (Krause ve
Ruxton, 2002). Sık sık kafalarını kaldırarak
çevrelerini taramaktadırlar. Böyle davranışlar
uyanıklık davranışı olarak (Anderson, 2006)
yorumlanmakta ve tespit eden avcılar için
elverişli olabilmektedir (Lima ve Dill, 1990).
Çalışmalar kuşların rastgele bir şekilde yiyecek
arama ve uyanık kalma arasındaki seçimi
göstermektedir (Bednekoff ve Lima, 1998).
Yırtıcı bir hayvan tespit ettiklerinde kuşlar