예제 #1
0
        public void NextGenClick(object sender, RoutedEventArgs routedEventArgs)
        {
            Individu[] newPop = new Individu[Population.MAXINDIVIDUS];

            for (int i = 0; i < Population.MAXINDIVIDUS; i++)
            {
                int      rnd = MidiComposer.GetRandom(0, 100);
                Individu newInd;

                if (rnd < Population.CROSSOVER)
                {
                    Individu parent1 = SelectParent();
                    Individu parent2 = SelectParent();

                    newInd = new Individu(parent1, parent2);
                }
                else
                {
                    Individu parent = SelectParent();

                    newInd = new Individu(parent);
                }

                newInd.Mutate();
                newPop[i] = newInd;
            }

            Generation mg = new Generation(newPop);

            Survival();
            Gens.Add(mg);
            //populations[nbPopulation] = new Population(nbPopulation + 1, newPop);
        }
예제 #2
0
파일: Unit.cs 프로젝트: kostua16/GenMethods
        public void Generate(int countgens, int len, int min, int max)
        {
            var r = new Random();

            for (var i = 0; i < countgens; i++)
            {
                var temp   = r.Next(min, max);
                var result = DecToBin(temp - min, len);
                Gens.Add(result);
            }
        }
예제 #3
0
        public void CreateClick(object sender, RoutedEventArgs routedEventArgs)
        {
            Individu[] individus = new Individu[Population.MAXINDIVIDUS];

            for (int i = 0; i < Population.MAXINDIVIDUS; i++)
            {
                individus[i] = new Individu();
            }


            Generation gen = new Generation(individus);

            Gens.Add(gen);
        }
예제 #4
0
        public void LoadPopulation(string filename)
        {
            XmlTextReader xr = new XmlTextReader(filename);
            XmlSerializer xs = new XmlSerializer(typeof(Generation[]));


            Generation[] lol  = ((Generation[])xs.Deserialize(xr));
            int          test = lol.First().NumGeneration + 1;

            Generation.GenerationCpt = test;
            Individu.NbIndividus     = test * 10;


            Gens.Clear();
            foreach (Generation gen in lol)
            {
                Gens.Add(gen);
            }
        }