예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 //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);
     }
 }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }