public List <KromozomS> caprazla(KromozomS ilkbry, KromozomS ikincibry, double caprazlamaOran) { minnaklar.Clear(); int rastgele = rnd.Next(0, ilkbry.Genler.Count); for (int i = 0; i < 2; i++) { KromozomS kromozom = new KromozomS(); for (int j = 0; j < ilkbry.Genler.Count; j++) { if (i == 0) { if (rastgele == j) { kromozom.genEkle(ikincibry.Genler[rastgele]); } else { kromozom.genEkle(ilkbry.Genler[j]); } } else { if (rastgele == j) { kromozom.genEkle(ilkbry.Genler[rastgele]); } else { kromozom.genEkle(ikincibry.Genler[j]); } } } minnaklar.Add(kromozom); } return(minnaklar); }
public void ilkPopulasyon() { FonkS fonksiyon = new EggHolder(); for (int i = 0; i < populasyonBuyuklugu; i++) { kromozom = new KromozomS(); for (int j = 0; j < fonksiyon.GenSayisi; j++) { kromozom.genEkle(new GenS(rnd.NextDouble() * (fonksiyon.UstSinir - fonksiyon.AltSinir) + fonksiyon.AltSinir)); } kromozom.UygDegeri = fonksiyon.hesapla(kromozom.Genler); populasyon.kromozomEkle(kromozom); } populasyon_sirala(populasyon.Kromozomlistesi); sonlanma_durumu(); bireyListele(dtIterasyon); enIyiUygunluklar.Add(populasyon.Kromozomlistesi[0].UygDegeri); }