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ı:
Cırcır Böceği Algoritması(Cricket Algorithm)’nın sözde 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ı:
function [best,fmin,N_iter]=cricket_algorithm(para) % Varsayılan Parametreler if nargin<1, para=[25 0.5]; end n=para(1); % Population büyüklüğü alpha=para(2); betamin=0.2; d=2; pi=3.14; Lb=-1*ones(1,d);%Alt Limit Ub=1*ones(1,d); % Üst Limit Vektörleri Qmin=0; % Minimum frekans % İterasyon parametreleri tol=10^(-6); % Durdurma Kriteri N_iter=0; % Toplam gelişim sayısını tutan sayaç % Başlangıç vektörleri Q=zeros(n,1); v=zeros(n,d); for i=1:n, Sol(i,:)=Lb+(Ub-Lb).*rand(1,d); Fitness(i)=Fun(Sol(i,:)); end % Mevcut en iyiyi bulma [fmin,I]=min(Fitness); best=Sol(I,:); tic; % Algoritma başlangıç while(fmin>tol) for i=1:n, N(i,:) = randi([0 120],1,d); T(i,:)=0.891797*N(i,:)+40.0252; if(T(i,:)>180) T(i,:)=180; end if(T(i,:)<55) T(i,:)=55; end C(i,:)=(5/9)*(T(i,:)-32); V(i,:)=20.1*sqrt(273+C(i,:)); V(i,:)=sqrt(V(i,:))/1000; Z(i,:)=(Sol(i,:)-best); if(Z(i,:)==0) F(i,:)=0; else F(i,:)=V(i,:)/Z(i,:); end Q(i,:)=Qmin+(F(i,:)-Qmin)*rand; v(i,:)=v(i,:)+(Sol(i,:)-best)*Q(i)+V(i); S(i,:)=Sol(i,:)+v(i,:); SumF=sum(F(i,:))/i+10000; SumT=sum(C(i,:))/i; gamma=CoefCalculate(SumF,SumT); Solo=Sol; scale=(Ub-Lb); for j=1:n, if(Fitness(i)<Fitness(j)) distance=sqrt(sum((Sol(i,:)-Solo(j,:)).^2)); PS=Fitness(i)*(4*pi*(distance^2)); Lp=PS+10*log10(1/4*pi*(distance^2)); Aatm = (7.4 * ( ((F(i,:)^2)*distance)/ (50*(10^(-8))))); RLP=Lp-Aatm; K=(RLP)*exp(-gamma*distance.^2); beta=K+betamin; tmpf=alpha.*(rand(1,d)-0.5).*scale; M(i,:)=Sol(i,:).*(1-beta)+Solo(j,:).*beta+tmpf; else M(i,:)=best+0.01*randn(1,d); end end % Yeni çözümler üretme if(rand >gamma) u1(i,:)=S(i,:); else u1(i,:)=M(i,:); end u1(i,:)=simplebounds(u1(i,:),Lb,Ub); Fnew=Fun(u1(i,:)); if (Fnew<=Fitness(i)) Sol(i,:)=u1(i,:); Fitness(i)=Fnew; % Mevcut En iyiyi güncelleme if Fnew<=fmin, best=u1(i,:); fmin=Fnew; end end alpha=alpha_new(alpha); end N_iter=N_iter+n; end % Sonuçları Gösterme disp(['Number of evaluations: ',num2str(N_iter)]); disp(['Best =',num2str(best)]); disp(['fmin: ',num2str(fmin)]); toc;
CoefCalculate.m dosyası:
function[AbsorbCoef]=CoefCalculate(F,T) pres=1; relh=50; freq_hum=F; temp=T+273; C_humid=4.6151-6.8346*((273.15/temp)^1.261); hum=relh*(10^C_humid)*pres; tempr=temp/293.15; frO=pres*(24+4.04e4*hum*(0.02+hum)/(0.391+hum)); frN=pres*(tempr^-0.5)*(9+280*hum*exp(-4.17*((tempr^-1/3)-1))); alpha=8.686*freq_hum*freq_hum*(1.84e-11*(1/pres)*sqrt(tempr)... +(tempr^-2.5)*(0.01275*(exp(-2239.1/temp)*1/(frO+freq_hum*freq_hum/frO))... +0.1068*(exp(-3352/temp)*1/(frN+freq_hum*freq_hum/frN)))); db_humi=alpha; db_humi =round(1000*db_humi)/1000; AbsorbCoef=db_humi; end
alpha_new.m dosyası:
function alpha=alpha_new(alpha) delta=0.97; alpha=delta*alpha;
Fun.m dosyası:
function [Fonksiyon2]=Fun(u) [Fonksiyon2]=Sphere(u);
Sphere.m dosyası:
function z= Sphere(u) n = 2; s = 0; for j = 1:n s = s+u(j)^2; end z = s;
simplebounds.m dosyası:
function s=simplebounds(s,Lb,Ub) ns_tmp=s; I=ns_tmp<Lb; ns_tmp(I)=Lb(I); J=ns_tmp>Ub; ns_tmp(J)=Ub(J); s=ns_tmp;
2 boyutlu Sphere için 10^(-6) hata toleransında durdurma koşulu ile elde edilen sonuçlar:
10 boyutlu Sphere için 10^(-6) hata toleransında durdurma koşulu ile elde edilen sonuçlar:
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/
ASKON Konya’da MEVKA TeknoGirişim Girişimci-Yatırımcı Buluşmaları’na katıldım
ASKON Konya’nın MEVKA TeknoGirişim Girişimci-Yatırımcı Buluşmaları kapsamında 23 Ağustos 2023 Çarşamba günü ASKON Konya şubesinde>>>
Ağu
Matlab’da matrisin tüm elemanlarını belirli bir sayıdan nasıl çıkarırız?
Elimizde doğruluk oranlarının olduğu bir k matrisi olduğu varsayalım, bu matris içerisindeki tüm değerleri 1>>>
Şub
Matlab’ta iç içe döngüyle matris gezerek istediğimiz veriyi nasıl buluruz?
Başlık tam ifade eder mi bilmiyorum ama benim ihtiyacım olan şey 10 sütun, 1593 satıra>>>
Şub
A Review on Deep Learning-Based Methods Developed for Lung Cancer Diagnosis
Yüksek Lisans öğrencilerimden Türkan Beyza KARA’nın sunmuş olduğu “A Review on Deep Learning-Based Methods Developed>>>
Oca
İlk yabancı yazarlı ortak makalem yayınlandı
Birbirimizi hiç görmeden ve sesli olarak da hiç konuşmadan e-posta üzerinden tanışıp ortak bir çalışma>>>
4 Comments
Eki
Konya’da göz lazer ameliyatı oldum
25 yıldır takmakta olduğum ve kendisinden ayrılırken 6,5 numara olan gözlüğüme Konya’da göz lazer ameliyatımı>>>
Ağu
Tek kelimeyle beni nasıl tanımladılar?
YouTube üzerinden yapmış olduğum bir yoruma gelen yanıtta “…dürüst olun…” içeriğini görünce aklıma geçtiğimiz günlerde>>>
3 Comments
Ağu
Konya Akıllı Şehir HACKATHON’unda 3.olduk
Kısaca daha önceki yazımda bahsettiğim Konya Akıllı Şehir HACKATHON’unda 3.olduk. Selçuk Üniversitesi Teknoloji Fakültesi Bilgisayar>>>
1 Comment
May
Sentius ekibi olarak, Akıllı Şehir HACKATHON’una katıldık
Konya Akıllı Şehir HACKATHON’unda 3.olduk Konya Bilim Merkezi ile GDG Konya’nın düzenlediği Akıllı Şehir HACKATHON’una>>>
1 Comment
May
BİLMÖK 2022 için yazılmış gecikmiş bir yazı :)
Türkiye’nin en büyük öğrenci kongresi BİLMÖK 21-23 Mayıs 2022 günlerinde Konya’da Konya Teknik Üniversitesi’nin organizasyonuyla>>>
May
Genç Bakış Gazetesi’nden Beyzanur Polat’ın yaptığı haber…
Genç Bakış Gazetesi’nden Beyzanur Polat’ın yaptığı haber…>>>
Kas
Binary Sooty Tern Optimization Algorithms for solving Wind Turbine Placement Problem
Binary Sooty Tern Optimization Algorithms for solving Wind Turbine Placement Problem İndirmek için tıklayınız.>>>
Eyl
Konya Model Fabrika’yı Ziyaretim ve Konya Dijital Dönüşüm
“konya dijital dönüşüm” kelimesini Google üzerinden arattığım zaman Konya Model Fabrika‘yı keşfettim. 5 Ağustos 2021>>>
Ağu
Otomatlar, Biçimsel Diller ve Turing Makineleri – Dr. Emre Sermutlu – Cinius Yayınları
2020-2021 bahar yarıyılında Otomata Teorisi ve Biçimsel Diller dersini verirken kullanmam için Selçuk Üniversitesi Teknoloji>>>
Mar
4-6 MART 2021 ÇEVRİMİÇİ TÜBİTAK-2237-B PROJE EĞİTİMİ ETKİNLİĞİ KTÜ – TRABZON
Alanında dünyada öncü Prof. Dr. Yener EYÜBOĞLU, Prof. Dr. Asım KADIOĞLU, Prof. Dr. Nurettin YAYLI,>>>
Mar
ARDEB 1001 – 2020 Sonuçlarını Değerlendirme ve Yenilikler Toplantısı
>>>
Şub
2021 yılı içerisinde değerlendirilebilecek konferanslar
GLOBAL CONFERENCE on ENGINEERING RESEARCH online 2-5 June 2021 Abstract or Full Paper Submission: 2>>>
Şub
Sayfamda paylaştığım bütün Karikatürler silinmiştir
İsimsiz bir uyarı yorumuyla araştırdığım vakit gördüm ki bazı karikatüristler blog sayfalarında karikatür paylaşanlara dava>>>
Oca
MATLAB – Error: Functions cannot be indexed using {} or . indexing.
data = get(z9).OutputData{1}; satırında aşağıdaki şekilde hata vermekteydi. Error: Functions cannot be indexed using {}>>>
Oca
“ERASMUS+ Yüksek Öğretim” konulu seminer notları
“ERASMUS + Yüksek Öğretim” konulu seminer notları Dr. Öğretim Üyesi Kemal TÜTÜNCÜ hocam tarafından sunulan>>>
Oca