Cırcır Böceği Algoritması(Cricket Algorithm)

Cırcır Böceği Algoritması(Cricket Algorithm)’nın adım adım işlenmesi:

Adım 1: Verilen problemdeki limitlere uygun ilk popülasyon değerleri rastgele
oluşturulur. Bu değerler uygunluk fonksiyonuna gönderilerek böceklerin çıkardıkları
sesin şiddeti için ilk değer atamaları yapılır.
Adım 2: Kanat çırpış sayısı rastgele üretilir. Üretilen kanat çırpış sayısı ile havanın
sıcaklığı Dolbear yasasına göre elde edilir.
Adım 3: Bu sıcaklıktaki sesin hızı hesaplanır. Bu hızdaki frekans değeri hesaplanır.
Adım 4: Bu frekans ve hız değerlerine göre böceklerin koordinatları güncellenir.
Güncellenen bu değerler hedef fonksiyona gönderilir.
Adım 5: Mevcut değerden daha küçük bir değer elde edilirse en iyi değer olarak bu değer kabul edilir. Aksi takdirde yeni değerler elde edilerek çözüme devam edilir.
Adım 6: Maksimum iterasyona veya tolerans değerine ulaşana kadar en iyi çözüm aranır.
Adım 7: Algoritmanın sonunda en iyi çözümler ve bu çözümlerden elde edilen uygunluk fonksiyonu değeri gösterilir.

Cırcır Böceği Algoritması(Cricket Algorithm)’nın akış şeması:

cba

Cırcır Böceği Algoritması(Cricket Algorithm)’nın sözde kodu:

cba-sozde-kodu

Not: Denklemler için aşağıdaki kodları veya Murat CANAYAZ’ın doktora tezini inceleyebilirsiniz.

Cırcır Böceği Algoritması(Cricket Algorithm)’nın MATLAB kodu:

cricket_algorithm.m dosyası:

CoefCalculate.m dosyası:

alpha_new.m dosyası:

Fun.m dosyası:

Sphere.m dosyası:

simplebounds.m dosyası:

2 boyutlu Sphere için 10^(-6) hata toleransında durdurma koşulu ile elde edilen sonuçlar:

2d-sphere

10 boyutlu Sphere için 10^(-6) hata toleransında durdurma koşulu ile elde edilen sonuçlar:

10d-sphere

100 boyutlu Sphere için 10^(-6) hata toleransında durdurma koşulu ile elde edilen sonuçlar:

Number of evaluations: 26675
fmin: 1.2702e-07
Elapsed time is 3.801380 seconds.

Kaynak: http://ahmetcevahircinar.com.tr/2016/12/16/circir-bocegi-algoritmasi-yeni-bir-meta-sezgisel-yaklasim-ve-uygulamalari/

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir