public double[] aramaBaslat(int sayac) { int sayacIlkhali = sayac; populasyonOlustur(); enIyiKedi = new Kedi(boyutSayisi, this.parametreAraliklari, this.goruntuIslemleri); double oncekiUygunluk = this.enIyiKedi.Uygunluk; while (sayac > 0) { if (oncekiUygunluk == this.enIyiKedi.Uygunluk) { sayac--; } else { oncekiUygunluk = this.enIyiKedi.Uygunluk; sayac = sayacIlkhali; } modlariAta(); hareketEt(); uygunluklariHesapla(); //Console.WriteLine("En iyi değer kso: " + enIyiKedi.Uygunluk + " Params: " + enIyiKedi.Konum[0] + ":" + enIyiKedi.Konum[1] + ":" + enIyiKedi.Konum[2]); } return(this.enIyiKedi.Konum); }
public void hizGuncelle(Kedi enIyi) { double r1 = r.NextDouble(); for (int i = 0; i < konum.Length; i++) { this.hiz[i] += r1 * c1 * (enIyi.Konum[i] - this.konum[i]); } }
public void populasyonOlustur() { populasyon = new Kedi[populasyonBuyuklugu]; for (int i = 0; i < populasyonBuyuklugu; i++) { populasyon[i] = new Kedi(boyutSayisi, parametreAraliklari, goruntuIslemleri); } }
public void izlemeModu(Kedi kedicik) { kedicik.hizGuncelle(enIyiKedi); for (int i = 0; i < boyutSayisi; i++) { kedicik.Konum[i] += kedicik.Hiz[i]; } kedicik.Konum = konumlariNormalizeEt(kedicik.Konum); }
public void aramaModu(Kedi kedicik) { Kedi[] adaylar = new Kedi[AHH]; for (int i = 0; i < adaylar.Length; i++) { //adaylar[i] = (Kedi) kedicik.Clone(); adaylar[i] = new Kedi(boyutSayisi, parametreAraliklari, goruntuIslemleri); adaylar[i].Konum[0] = kedicik.Konum[0]; adaylar[i].Konum[1] = kedicik.Konum[1]; adaylar[i].Konum[2] = kedicik.Konum[2]; adaylar[i].Uygunluk = kedicik.Uygunluk; } double[,] olasiKonumlar = new double[AHH, boyutSayisi]; Kedi enIyi = new Kedi(boyutSayisi, parametreAraliklari, goruntuIslemleri); //Kedi enIyi = (Kedi)kedicik.Clone(); enIyi.Konum[0] = adaylar[0].Konum[0]; enIyi.Konum[1] = adaylar[0].Konum[1]; enIyi.Konum[2] = adaylar[0].Konum[2]; enIyi.Uygunluk = adaylar[0].Uygunluk; // Olası konumları üret. for (int i = 0; i < AHH; i++) { for (int j = 0; j < boyutSayisi; j++) { olasiKonumlar[i, j] = rastgeleSayi(SBA[j, 0], SBA[j, 1]); //Olası konumları yeni üretilen kedilere ata. adaylar[i].Konum[j] += olasiKonumlar[i, j]; } adaylar[i].Konum = konumlariNormalizeEt(adaylar[i].Konum); adaylar[i].Uygunluk = goruntuIslemleri.ParametreleriDegerlendir(adaylar[i].Konum[0], adaylar[i].Konum[1], adaylar[i].Konum[2]); //secilmeIhtimaliHesapla(adaylar[i]); if (enIyi.Uygunluk < adaylar[i].Uygunluk) { enIyi.Konum = adaylar[i].getKonum(); enIyi.Uygunluk = adaylar[i].getUygunluk(); } } kedicik.Konum = enIyi.getKonum(); kedicik.Uygunluk = enIyi.getUygunluk(); }
public void secilmeIhtimaliHesapla(Kedi kedicik) { kedicik.SecilmeIhtimali = kedicik.Uygunluk; }