Merhabalar,
Bu yazımızda bir optimizasyon türünden bahsedeceğim. Sayın Prof. Dr. Derviş KARABOĞA ‘nın son halini kazandırdığı Yapay Arı Kolonisi Optimizasyonu Algoritması nedir, nasıl işler, terimleri nelerdir bunlardan bahsedeceğiz.
Öncelikle konuyu anlamamız açısından Yapay Arı Kolonisi Algoritması (YAKA)’nın da içinde bulunduğu Sürü Zekası tipindeki optimizasyonların nasıl işlediğini bilmemiz gerekir. Bunlardan bahsedelim.
Sürü Zekası Optimizasyon Algoritmaları
Sürü, birbirleriyle etkileşen dağınık yapılı bireyler yığını anlamına gelir. Bireyler insan, karınca, arı v.b. şekilde ifade edilebilir. Sürülerde N adet temsilci bir amaca yönelik davranışı gerçekleştirmek ve hedefe ulaşmak için birlikte çalışmaktadır. Kolaylıkla gözlenen bu “kollektif zeka” temsilciler arasında sık tekrarlanan davranışlardan doğmaktadır. Temsilciler faaliyetlerini idare etmek içi basit bireysel kurallar kullanmakta ve grubun alan kısmıyla etkileşim yolu ile sürü amaçlarına ulaşmaktadır. Grup faaliyetlerinin toplamından bir çeşit kendini örgütleme doğmaktadır.[1] Bu ve bunun gibi bazı sürü zekası optimizasyonu algoritması türleri:
•Ateş Böceği Algoritası
•Ateş Böceği Sürü Optimizasyonu
•Karınca Koloni Optimizasyonu
•Parçacık Sürü Optimizasyonu
•Yapay Balık Sürüsü Algoritması
•Yapay Arı Koloni Algoritması
•Bakteriyel Besin Arama Optimizasyonu Algoritması
•Kurt Kolonisi Algoritması
•Kedi Sürüsü Optimizasyonu
Yapay Arı Kolonisi Algoritması (YAKA)
Doğada arıların besin arama davranışları insanlara ilham kaynağı olmuş ve bunun neticesinde ise Yapay Arı Algoritması (YAKA) geliştirilmiştir. YAKA’ da arıların bütün davranışları bire bir modellenmiş ve bunun yanında da bazı varsayımlarda bulunulmuştur. Bu varsayımlar her bir nektarı çıkarılmasında sadece bir görevli arının olmasıdır. Dolayısıyla algoritmada yer alan ve kullanılacak olan besin sayısı ile görevli arı sayısının birbirine eşit olmasıdır. Böyle bir varsayımda bulunulmasına rağmen aslında bir nektara gidip gelen arının görevli olduğu besin kaynağı tükendiğinde bu arının Kaşif arı olması da söz konusudur. Bir besin kalitesi ne kadar yüksek ise o kaynağın uygunluk değeri de o kadar iyidir. Dolayısıyla YAKA ile optimum çözümün elde edilmesine çalışılır. Bu noktada algoritmayı kullanan kişinin amacı maksimizasyon ya da minimizasyon olsun nektar kalitesi çözümün uygunluk değerine denk gelmektedir.[2]
YAKA Terimleri
•Gözcü Arı
Kovanda beklerken dans alanını takip eden, uygunluk derecesine göre besin kaynağına yönelen arılar.
Kaşif Arı
Belirli alandaki rastgele kaynaklar hakkında çeşitli bilgi toplar ve kovana nektar örneği taşır. Sonrasında görevi değişebilir.
İşçi Arı
Nektar taşımakla görevli olan arılardır.
Besin Kaynağı
Nektar, polen ya da besin içeren bölge.
Dans Alanı
Kovanın içerisinde bulunan, kaşif arıların besin kaynağının konumunu ve kalitesini belirtmek içi dans ettikleri bölge.
Besin Kalitesi (Çözüm Değeri)
Bulunan besin kaynağının zenginlik derecesidir.
Dans Alanı
Dans alanında yapılan 3 çeşit dans vardır. Bunlar Titreme dansı, dairesel dans ve kuyruk dansı olarak isimlendirilir.
Dairesel Dans
50 ile 100 metre arasında bir nektar olduğunu belirten, yön ve açı bilgilerini içermeyen bir dans çeşididir.
Kuyruk Dansı
100 metre ile 10 km. arasındaki mesafelerde bulunan geniş bir kaynağı ifade etmek için kullanılan bir dans çeşididir. Besin kaynağına ait bir çok bilgiyi ( yeri ve yönü v.b.) içerir. Yön bilgisi dansın açı bilgisinden elde edilir.
Titreme Dansı
Bulunan nektar çok kaliteli olduğunda, miktar bakımından zengin olduğunda bu dans uygulanır.
YAKA Adımları
1.Rastgele Besin Kaynaklarının üretilmesi.
2.İşçi Arıların kaynaklara gönderilmesi.
3.Gözcü arıların uygunluk değerine göre besin kaynağı seçmesi.
4. Nektarı tükenen besin kaynağının terk edilmesi.
1.Rastgele Besin Kaynaklarının üretilmesi
Rastgele besi kaynakları oluşturulur. Bu besin kaynaklarına sadık kalınarak işçi arı sayısı ve gözcü arı sayısı belirlenir. Ayrıca limit değeri de tespit edilir ve kontrol amaçlı sayaç değişkeni oluşturulur.
Oluşturulan bu besin kaynaklarına ait her bir besinin çözüm değerleri amaç fonksiyonunun türüne göre hesaplanır.
2.İşçi Arıların kaynaklara gönderilmesi
Maksimum döngü sayısı belirlenerek işçi arılar besin kaynaklarına gönderilir. İşçi arılar rastgele bir besine yönelerek bu besin kaynağını incelemeye başlarlar. Besin kaynağı işlendikten sonra bu besine ait yeni besin kalitesi (çözüm değeri) hesaplanır. Elde edilen çözüm değeri önceki çözüm değerinden daha iyi ise bu besin ve besin ile ilgili bilgiler hafızaya alınırlar. Eğer çözüm değerinde bir iyileşme sağlanırsa limit değeri sıfırlanır, aksi halde limit değeri bir arttırılır. Limit değeri için belirli bir üst değer belirlemek algoritmanın çalıştırılması esnasında sonsuz döngüye girmeye engel olacaktır.
3.Gözcü arıların uygunluk değerine göre besin kaynağı seçmesi
İşçi arılardan sonra gözcü arılar devreye girerler. Besinlerin uygunluk değerine göre bir besin kaynağı seçilir. Gözcü arılar bu besin kaynağı üzerinde çalışmaya başlarlar Aynı şekilde elde edilen çözüm değeri önceki çözüm değerinden daha iyi ise bu besin ve besin ile ilgili bilgiler hafızaya alınırlar. Eğer besin kaynağında iyileşme sağlanırsa limit değeri sıfırlanır aksi takdirde limit değeri bir arttırılır. Bu safhada gözcü arılar işçi arılardan farklı olarak uygunluk değerine göre seçim yaparlar.
İşçi arı ve gözcü arı safhasından sonra kâşif arılar devreye girer. Kaşif arı safhasının esas nedeni algoritmanın yerel minimum ya da maksimumda takılmasına engel olmaktır. Dolayısıyla elde edilmiş olan çözümü tamamıyla bozarak ani limit değerleri tamamen sıfırlanarak yeni bir çözüm değeri ile önceden hafızaya alınmış olan çözüm değeri karşılaştırılır. Bu iki çözüm değerinden daha iyi olanın hafızada tutulmasına devam edilir.
4. Nektarı tükenen besin kaynağının terk edilmesi
Maksimum döngü sayısı sağlanıncaya kadar işçi arı, gözcü arı ve kaşif arı safhası devam ettirilir. Durdurma kriteri sağlanınca algoritma sonlandırılır.
Bu yazımızda Yapay Arı Kolonisinden bahsettik. Anlamadığınız ya da eksik olduğunuzu düşündüğünüz kısımları bana yorumlar aracılığı ile iletebilirsiniz.
Teşekkürler!
[1]Bilal ALATAŞ, Sinem AKYOL, sy. 38, Güncel Sürü Zekası Optimizasyon Algoritmaları, Nevşehir Üniversitesi Fen Bilimleri Enstitü Dergisi 1, 2012
[2]Karaboğa D., sy 206, Yapay Zeka Optimizasyon Algoritmaları, Nobel Yayın Dağıtım, Genişletilmiş 2. Basım, 2011