Balina Optimizasyon Algoritmasının OneMax Problemindeki Performansı🐳

balina optimizasyon

Herkese yeniden bol optimizasyonlu günler 🛎️
Daha önce yayınlamış olduğum PSO algoritmasının One Max Problemine karşı performansı olan makalemden sonra daha çok ilgimi çeken bir optimizasyon algoritması ile karşınıza geldim. Bir problemde hangi optimizasyon algoritmasının ne denli iyi sonuç vereceğini bilemeyebiliriz. Çünkü her problem kendine has farklılıklar içerdiği için farklı optimizasyon algoritmaları da içerdiği yöntemler ile sonuçların farklılışmasına yol açmaktadır. Ben de sizler gibi merak ettim ve sonucu öğrenmek için öncelikle balinalarımızın neden bir optimizasyon problemi çözümünde örnek alındığını araştırdım ve sizler için derledim. Haydi birlikte öğrenmeye başlayalım 🏋🏼‍♀️

📢 Balina Optimizasyon Algoritması (BOA), tamamiyle kambur balinaların avlanma stratejisinden esinlenerek üretilen meta-sezgisel algoritmalardan birisidir. Kambur balinaların kendilerine özgü avlanma stratejileri sayesinde suyun altında nefes vererek kabarcıklar oluşturmakta ve bu sayede avlarına yaklaşmaktadırlar. Doğada aç kalmak tabiki hiçbir canlının isteyeceği bir durum değildir. Diğer balina türlerinden farklı olan bu kambur balinalar, sistemli bir avlanma tekniği geliştirerek içgüdüsel olarak avlarını etkisiz hale getirmeyi başarı ile tamamlamaktadır. BOA algoritması, avın etrafını sarma, ava doğru hareket etme ve av arama olarak 3 kısımda modellenmiştir 🐋.

Dilerseniz öncelikle şu kambur balinalara biraz daha detaylı yaklaşalım, haydi gelin 👩🏼‍🏫

[gdlr_core_space height=”30px”]

Kambur Balinalar

Kambur balinalar kendilerine özgü avlanma tekniği ile sürü halinde gezen balıkları avlamaktadır. Besinleri içinden süzmek için ağızlarına aldıkları büyük miktardaki suyla birlikte ağızlarına giren balıkları ve yengeçleri de tüketmiş olurlar. Kambur balinalar büyük olmalarına rağmen oldukça akrobatik sayılırlar. Vücutlarını su yüzeyinin üzerine fırlattıktan sonra suyu tokatlayarak sırt üstü tekrar kendilerini suya atarlar. Su yüzeyindeki hayvanları ve dipteki balıkları yiyerek hayatta kalan, 48 ton ağırlığa ve 19 metre uzunluğa ulaşabilen kambur balinalar, çoğunlukla Atlas ve Büyük Okyanusta bulunmaktadır 🌊

[gdlr_core_space height=”30px”]

Çalışma Prensibi ve Akış Şeması 📐

Kambur balinalar avlarının konumunu etrafını hava kabarcıkları ile sararak tahmin etmektedir.Bu optimizasyon algoritmasında balinalara göre av, ulaşılacak optimum nokta olarak kabul edilir. Optimizasyon problemlerinde optimum çözüm bilinmediğinden optimum nokta ulaşılan en iyi çözüm ya da ona yaklaşmaya çalışan bir nokta olarak kabul edilir.

Balinaların ava doğru hareket etme davranışı avın etrafındaki çemberi daraltma ve spiral hareket olmak üzere iki kısımda modellenmiştir. Avın etrafındaki çemberi daraltma, denklemdeki α ’nın değerini azaltmakla mümkün olabilmektedir ⚪️

Avın Etrafını Sarmada Kullanılan Spiral Hareket

[gdlr_core_space height=”30px”]

Akış Şeması

[gdlr_core_space height=”30px”]

Projede kullanılan test fonksiyonlarını incelemek gerekirse bunlar sırasıyla eggholder, schaffer, booth, mayas, cross_in_tray ve levi gibi optimizasyon fonksiyonlarıdır. Aşağıda bir bölümüne yer vermekteyim 👇🏻

Schaffer Fonksiyonu 🟠

Schaffer fonksiyonun formülüne ise aşağıdan hemen ulaşabilirsiniz.

📌 Schaffer fonksiyonu çalıştırıldığında ise arama uzayı ve en iyiye yönelimin görselleştirilmesine ise aşağıdaki görselden ulaşabilirsiniz.

[gdlr_core_space height=”30px”]

Eggholder Fonksiyonu 🟢

Eggholder fonksiyonun formülüne ise aşağıdan hemen ulaşabilirsiniz.

📢 Burada yer verilen test fonksiyonları Balina Optimizasyon Algoritmasının Booth fonksiyonu için çalıştırıldığında ise aşağıdaki uygunluk değerine erişilmektedir.

OneMax probleminin çözümü için tıpkı diğer makalemde olduğu gibi Sigmoid fonksiyonu ile hesaplama yapıldığında boyut değerleri değiştirilerek toplamda 30 tane balina adına boyut değerleri sırasıyla 100, 500 ve 1000 için çalıştırılmıştır.

NOT ❗️

PSO algoritmasının One Max problemindeki performansı incelediğim bir diğer makaleme ise linkten erişebilirsiniz 🧷

[gdlr_core_space height=”30px”]

PSO algoritması için geçerli olan best_globalbest değeri bir numpy dizisinde tutulmuş ve daha sonra Wilcoxon istatistiği uygulanarak aşağıdaki değerlere ulaşılmıştır. BOA ve PSO algoritmalarındaki en iyi değer konumları bu şekilde karşılaştırılmış oldu. Projenin asıl hedefi olan PSO ve BOA algoritmalarının performans karşılaştırma işlemi için her iki sürü algoritmasında hesaplanan değerler arasındaki global en iyi tutulan değerler 30 kez çalıştırma sonucunda bir numpy dizisinde tutulmakta ve değerlendirmeye alınmaktadır.

D problemin boyutu: 100 , iterasyon sayısı : 100.000 ve toplam 30 kez çalıştırma

D problemin boyutu: 500 , iterasyon sayısı : 100.000 ve toplam 30 kez çalıştırma

D problemin boyutu: 1000 , iterasyon sayısı : 100.000 ve toplam 30 kez çalıştırma

PSO ve BOA ALGORİTMALARININ KARŞILAŞTIRILMASI

İncelediğim her iki optimizasyon algoritmasının sonucunda belirtilen argümanlar eşliğinde PSO Algoritmasının daha performanslı çalıştığı tablodaki değerlere bakılarak anlaşılmaktadır. PSO algoritması için hesaplanan en iyi değer D=1000 için w değeri 0.005, c1 değeri 0.005 ve c2 değeri ise 0.009 seçildiğinde 7.397751636520865e-05’e karşılık gelen değerdir. Boyut değerleri 100, 500 ve 1000 olarak artarken elde edilen değerler de PSO ve BOA algoritmaları için iyiye gitmektedir 🔍

Yapay Zeka alanında da sıkça ihtiyaç duyduğumuz optimizasyon algoritmalarının performanslarını da incelediğimize göre başka bir yazımda görüşmek dileğiyle. Sağlıklı günler 👩‍⚕️

Diğer yazılarıma buradan ulaşabilirsiniz.

REFERANSLAR

  1. Murat Canayaz, Recep Özdağ, Data Clustering Based On The Whale Optimization, Aralık 2017.
  2. Erkan TANYILDIZI, Tuncay CİGAL, Kaotik Haritalı Balina Optimizasyon Algoritmaları, Fırat Üniversitesi Müh. Bil. Dergisi, 29(1), 309-319, 2017.
  3. https://www.sfu.ca/~ssurjano/schaffer2.html adresinden alınmıştır.
  4. https://www.sfu.ca/~ssurjano/egg.html adresinden alınmıştır.
  5. https://www.sfu.ca/~ssurjano/booth.html adresinden alınmıştır.

Leave a Reply

Your email address will not be published. Required fields are marked *