void crossOver() { int r1, r2, breakPoint; while (eslesmeHavuzu.Count != 0) { do { r1 = rand.Next(0, eslesmeHavuzu.Count); //rastgele ebeyn 1 r2 = rand.Next(0, eslesmeHavuzu.Count); //rastgele ebeyn 2 } while (r1 == r2 && eslesmeHavuzu.ElementAt(r1).Equals(eslesmeHavuzu.ElementAt(r2))); breakPoint = rastgeleIndisSec(0); cocuklar.Add(Kromozom.onePointCrossover(eslesmeHavuzu.ElementAt(r1), eslesmeHavuzu.ElementAt(r2), breakPoint)); cocuklar.Add(Kromozom.onePointCrossover(eslesmeHavuzu.ElementAt(r2), eslesmeHavuzu.ElementAt(r1), breakPoint)); if (r1 > r2) { eslesmeHavuzu.RemoveAt(r1); eslesmeHavuzu.RemoveAt(r2); } else { eslesmeHavuzu.RemoveAt(r2); eslesmeHavuzu.RemoveAt(r1); } } }
static public Kromozom mutasyonIslemi(Kromozom partner) { partner.co1 = mut(partner.co1, 0.082); partner.co2 = mut(partner.co2, 0.082); partner.t1 = mut(partner.t1, 0.082); partner.t2 = mut(partner.t2, 0.082); return(partner); }
static public Kromozom onePointCrossover(Kromozom partner1, Kromozom partner2, int breakPoint) { Kromozom cocuk = new Kromozom(); cocuk.co1 = inputAtamaYap(partner1.co1, partner2.co1, breakPoint); cocuk.co2 = inputAtamaYap(partner1.co2, partner2.co2, breakPoint); cocuk.t1 = inputAtamaYap(partner1.t1, partner2.t1, breakPoint); cocuk.t2 = inputAtamaYap(partner1.t2, partner2.t2, breakPoint); return(cocuk); }
//swap mutation void mutasyonIslemi() { for (int i = 0; i < populasyonSayisi; i++) { // cocuklar.ElementAt(i)=Kromozom.mutasyonIslemi(cocuklar.ElementAt(i)); Kromozom kromozom = cocuklar.ElementAt(i); kromozom = Kromozom.mutasyonIslemi(kromozom); cocuklar.RemoveAt(i); cocuklar.Insert(i, kromozom); } }
int fitnessMinBul(List <Kromozom> gelen) { Kromozom min = new Kromozom(); min = ebeveynler.ElementAt(0); for (int i = 0; i < populasyonSayisi; i++) { if (ebeveynler.ElementAt(i).fitness < min.fitness) { min = ebeveynler.ElementAt(i); } } return(min.fitness); }
int minimumBul(List <Kromozom> gelen) { Kromozom min = new Kromozom(); min.deger = int.MaxValue; for (int i = 0; i < populasyonSayisi; i++) { if (gelen.ElementAt(i).deger == optimumSonuc) { return(gelen.ElementAt(i).deger); } } return(int.MaxValue); }