Beispiel #1
0
        private void Recombinare()
        {
            for (var i = 0; i < Config.MarimePopulatie / 2; i++)
            {
                var parinte1 = SelecteazaParinte();
                var parinte2 = SelecteazaParinte();
                var copil    = Cromozom.Recombina(parinte1, parinte2);
                if (Config.BinaryToDecimal(copil.ListaGene[0]) >= Config.Domeniu.Count)
                {
                    //copii.First.ListaGene[0] = Config.DecimalToBinary(Config.Domeniu.Count - 1);
                    var modulo = Config.BinaryToDecimal(copil.ListaGene[0]) % (Config.Domeniu.Count - 1);
                    var y      = Config.DecimalToBinary(modulo);
                    copil.ListaGene[0] = y;
                }
//				if (Config.BinaryToDecimal(copii.Second.ListaGene[0]) >= Config.Domeniu.Count)
//				{
//					//copii.Second.ListaGene[0] = Config.DecimalToBinary(Config.Domeniu.Count - 1);
//					var modulo = Config.BinaryToDecimal(copii.Second.ListaGene[0]) % (Config.Domeniu.Count - 1);
//					var y = Config.DecimalToBinary(modulo);
//					copii.Second.ListaGene[0] = y;
//				}
                //ListaPopulatie.Add(copii.First);
                ListaPopulatie.Add(copil);
            }
        }