logologo

Ateşböceği Algoritması

fav gif
Kaydet
viki star outline
firefly photo 3.png
Ateşböceği Algoritması (Görsel yapay zeka ile oluşturulmuştur.)
Geliştirici
Xin-She Yang
Geliştirme Yılı
2008
Algoritma Türü
MetasezgiselDoğadan esinlenenSürü tabanlı
Esin Kaynağı
Doğada biyolüminesans gösteren ateşböcekleri

Ateşböceği Algoritması, ilk olarak 2008 yılında Xin-She Yang tarafından geliştirilen, doğadan esinlenilmiş bir metasezgisel optimizasyon algoritmasıdır. Bu algoritma, doğada ateşböceklerinin biyolüminesans yoluyla birbirlerini etkileme davranışını matematiksel olarak taklit eder. Parlaklığı yüksek olan ateşböcekleri, diğerlerini kendilerine doğru çeker; bu yaklaşım, çözüm uzayında daha iyi çözümlere doğru yönelimi sağlar. Algoritma, popülasyon tabanlı bir yapıya sahip olup hem sürekli hem de ayrık optimizasyon problemlerinde başarıyla kullanılmaktadır. Basit yapısı, esnekliği ve çok amaçlı kullanım imkânı sayesinde mühendislik tasarımından rota optimizasyonuna, makine öğrenmesinden kaynak planlamasına kadar çok çeşitli uygulama alanlarında yaygın olarak tercih edilmektedir.

Çalışma Prensibi

Ateşböceği Algoritması üç temel ilkeye dayanır:

  • Tüm ateşböcekleri cinsiyetsiz olarak kabul edilir; bu nedenle bir ateşböceği, diğer ateşböceklerinin cinsiyetine bakmaksızın onlara doğru çekilebilir.
  • Çekicilik, parlaklıkla doğru orantılıdır. Parlaklık, bireyin temsil ettiği çözümün uygunluk (fitness) değeri ile ilişkilidir. Daha kaliteli çözümler daha parlak olarak kabul edilir ve diğer bireylerin hareketinde belirleyici olur. İki ateşböceği arasında, daha az parlak olan, daha parlak olana doğru hareket eder. Eğer kendisinden daha parlak bir ateşböceği yoksa bu durumda rastgele hareket eder.
  • Parlaklık ve çekicilik, aradaki mesafe arttıkça üstel biçimde azalır. Böylece bir ateşböceği kendisine daha yakın olan parlak bireylerden etkilenir. Bu da yakın çevredeki çözümlere odaklanarak yerel iyileştirme sağlar; ancak rastgelelik sayesinde küresel keşif de korunmuş olur.

Matematiksel Model

Ateşböceği Algoritması' nın temel hareket denklemi aşağıdaki gibidir:


xi=xi+β0eγrij2(xjxi)+aϵix_i=x_i+\beta_0e^{-\gamma r_{ij}^2}(x_j-x_i) + a\epsilon_i

Burada:

  • xix_i ve xjx_j : Sırasıyla ateşböceği ii ve daha parlak olan ateşböceği jj' nin konumlarıdır.
  • rijr_{ij}: İki ateşböceği arasındaki öklidyen mesafedir.
  • β0\beta_0: Başlangıç çekicilik katsayısıdır.
  • γ\gamma: Işık emilim (soğurma) katsayısıdır.
  • α\alpha: Rastgelelik katsayısıdır.
  • ϵi\epsilon_i : Rastgele bir sayı vektörüdür (genellikle [-0.5, 0.5] aralığında).

Algoritma Adımları

  1. Başlangıç popülasyonu (ateşböcekleri) rastgele oluşturulur.
  2. Her ateşböceğin parlaklığı uygunluk fonksiyonuna göre hesaplanır.
  3. Daha az parlak ateşböcekleri, daha parlak olanlara doğru hareket eder.
  4. Her hareket sonrası yeni çözümlerin uygunluk değeri güncellenir.
  5. Belirli bir iterasyon sayısına kadar veya durma kriteri sağlanana dek süreç tekrarlanır.


Ateşböceği Algoritması’ na ait temel akışı gösteren sözde kodu aşağıdaki gibidir:


Begin  
  1) Amaç fonksiyonu: f(x),   x = (x₁, x₂, ..., x_d);  
  2) xᵢ (i = 1, 2, ..., n) ateşböceklerinden oluşan başlangıç popülasyonunu oluştur;  
  3) I ışık yoğunluğunu f(x) ile ilişkili olacak şekilde tanımla  
     (örneğin, maksimumlama problemleri için, I ∝ f(x) ya da basitçe I = f(x));  
  4) Soğurma katsayısı γ'yı tanımla  
  while (t < MaxGeneration)  
    for i = 1 : n (tüm n ateşböceği için)  
      for j = 1 : i (n ateşböceği için)  
        if (Iⱼ > Iᵢ),  
          Çekiciliği, mesafeye bağlı olarak exp(-γ r) ile değiştir;  
          Ateşböceği i’yi ateşböceği j yönünde hareket ettir;  
          Yeni çözümleri değerlendir ve ışık yoğunluğunu güncelle;  
        end if  
      end for  
    end for  
    Ateşböceklerini sırala ve en iyi çözümü bul;  
  end while  
end


Yukarıda verilen sözde kodda; algoritma, amaç fonksiyonuna bağlı olarak bireylerin parlaklığını hesaplar ve daha parlak bireylere doğru yönelim sağlar. İki ateşböceği arasındaki çekim gücü mesafeye bağlı olarak üstel biçimde azalır. Her iterasyonda, daha az parlak ateşböcekleri, daha parlak olanlara doğru hareket ederken yeni çözümler üretilir ve popülasyon güncellenir. Belirli bir nesil (iterasyon) sayısı boyunca en iyi çözüm izlenir ve sonunda en uygun çözüm elde edilir.

Uygulama Alanları

Ateşböceği Algoritması, doğadan esinlenen yapısı ve popülasyon temelli çalışma mekanizması sayesinde, geniş bir uygulama yelpazesine sahip genel amaçlı bir optimizasyon yöntemidir. Özellikle mühendislik alanında; yapısal tasarım optimizasyonu, enerji sistemleri, kontrol sistemleri ve ısı transferi gibi teknik problemlerin çözümünde yaygın olarak kullanılmaktadır. Üretim planlama, iş çizelgeleme, hat dengeleme ve kutu paketleme gibi yerleştirme ve kaynak tahsisi problemlerinde de etkin sonuçlar vermektedir. Yapay zekâ ve makine öğrenmesi alanlarında ise, sınıflandırma doğruluğunu artırmak amacıyla öznitelik seçimi ve hiperparametre ayarlamalarında kullanılmaktadır. Ayrıca mobil robotlar, kablosuz sensör ağları ve lojistik sistemlerinde rota optimizasyonu gibi ağ tabanlı problemlerde de başarıyla uygulanmıştır. Ekonomi ve finans alanlarında risk-getiri dengesi gözetilerek portföy optimizasyonu yapılabilirken; sağlık ve biyoenformatik alanlarında genetik dizilim hizalama ve medikal görüntü işleme gibi ileri düzey analizlerde de algoritmanın potansiyeli değerlendirilmektedir. 

Kaynakça

Yang, Xin-She. 2009. “Firefly Algorithms for Multimodal Optimization.” In Stochastic Algorithms: Foundations and Applications, 169–78. Springer. Erişim Adresi.

Yesodha, R., and T. Amudha. 2013. “Effectiveness of Firefly Algorithm in Solving Bin Packing Problem.” International Journal of Advanced Research in Computer Science and Software Engineering 3 (5): 1003–10. Erişim Adresi.

Yang, Xin-She. 2010. Nature-Inspired Metaheuristic Algorithms. 2nd ed. Frome, UK: Luniver Press. Erişim Adresi.

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarHanife Kan4 Mayıs 2025 11:15
KÜRE'ye Sor