public Kromozom Fonksiyon(Kromozom kr1) { genDeger1 = rnd.Next(Convert.ToInt32(gx1), Convert.ToInt32(hx)); genDeger2 = rnd.Next(Convert.ToInt32(gx2), Convert.ToInt32(hx)); kr1.fx = Math.Sin(genDeger1 + genDeger2) - (genDeger1 * 2) - 1.5 * genDeger1 + 2.5 * genDeger2 + 1; return(kr1); }
public List <Kromozom> Caprazlama() { double beta = kr.YeniDegerUret(); Kromozom yeniKrDeger = new Kromozom(); for (int i = 0; i < Populasyon.Count(); i++) { yeniKrDeger.genDeger1 = beta * Convert.ToDouble(Populasyon[i].genDeger1) + ((1 - beta) * Convert.ToDouble(Populasyon[i].genDeger2)); yeniKrDeger.genDeger2 = ((1 - beta) * Convert.ToDouble(Populasyon[i].genDeger1)) + beta * Convert.ToDouble(Populasyon[i].genDeger2); Populasyon.Add(yeniKrDeger); Populasyon.RemoveAt(i); } return(Populasyon); }
public List <Kromozom> TurnuvaSecimi() { Kromozom secilenKromozom; Kromozom kr1 = new Kromozom(); int rastgele1 = rnd.Next(0, Populasyon.Count()); int rastgele2 = rnd.Next(0, Populasyon.Count()); double uygunluk1 = Populasyon[rastgele1].genDeger1; double uygunluk2 = Populasyon[rastgele2].genDeger2; if (uygunluk1 > uygunluk2) { secilenKromozom = Populasyon[rastgele1]; Populasyon.RemoveAt(rastgele1); Populasyon.Add(secilenKromozom); return(Populasyon); } else { secilenKromozom = Populasyon[rastgele2]; Populasyon.RemoveAt(rastgele2); return(Populasyon); } }