示例#1
0
        public Pair <Cromozom, Cromozom> Recombina(Cromozom parinte2)
        {
            var copil1 = new Cromozom();
            var copil2 = new Cromozom();

            for (var i = Config.MarimeGena - 1; i >= 0; i--)
            {
                var ran = Config.RandomGenerator.Next();
                if (ran % 2 == 0)
                {
                    copil1.Gena.Add(this.Gena[Config.RandomGenerator.Next(Config.MarimeGena - 1)]);
                    copil2.Gena.Add(parinte2.Gena[Config.RandomGenerator.Next(Config.MarimeGena - 1)]);
                }
                else
                {
                    copil2.Gena.Add(this.Gena[Config.RandomGenerator.Next(Config.MarimeGena - 1)]);
                    copil1.Gena.Add(parinte2.Gena[Config.RandomGenerator.Next(Config.MarimeGena - 1)]);
                }
            }

            copil1.Reglare();
            copil2.Reglare();

            return(new Pair <Cromozom, Cromozom>(copil1, copil2));
        }
 public void InitPopulatie()
 {
     ListaCromozomi = new List <Cromozom>(Config.MarimePopulatie);
     for (var i = 0; i < Config.MarimePopulatie; i++)
     {
         var cromozom = new Cromozom();
         cromozom.CreateRandom();
         ListaCromozomi.Add(cromozom);
     }
 }