// eşleşme ve çaprazlama işlemi bu fonksiyonda yapılması planlandı. // Seçim işlemi için Sıralama Seçimi Ve Elitizim Birlikte Kullanıldı. public List <Kromozom> child_olustur() { int j = 0; double rastgele; double rastgele2; for (int i = 1; i < popülasyon2.Count; i += 2) { rastgele2 = rnd.NextDouble(); if (rastgele2 > çaprazlamaoranı) { continue; } child = new Kromozom(); for (int k = 0; k < 2; k++) { rastgele = rnd.NextDouble(); child.Gen[k] = (rastgele * popülasyon2[j].Gen[k]) + ((1 - rastgele) * popülasyon2[i].Gen[k]); } popülasyon2.Add(child); j += 2; } popülasyon.Clear(); popülasyon = popülasyon2.GetRange(0, popülasyon2.Count); popülasyon2 = sırala(); return(popülasyon2); }
public List <Kromozom> ilkatama() { for (int i = 0; i < Npop; i++) { k = new Kromozom(); for (int j = 0; j < 2; j++) { k.Gen[j] = (rnd.NextDouble() * (512 - (-512))) + (-512); } popülasyon.Add(k); } return(popülasyon); }