Ejemplo n.º 1
0
        internal static void NextGeneration()
        {
            Ord();

            for (int i = K; i < N; i++)
            {
                Cromozon temp = Incrucisare();
                temp.Mutate();
                cromozoni[i] = temp;
            }

            /*Cromozon[] nextGenes = new Cromozon[N];
             * for (int i = 0; i < N/4; i++)
             *  nextGenes[i] = cromozoni[i];
             *
             * for (int i = N / 4; i < N*2 / 4; i++)
             * {
             *  int j = Program.rnd.Next(K);
             *  cromozoni[j].Mutate();
             *  nextGenes[i] = cromozoni[j];
             * }
             *
             * for (int i = N * 2 / 4; i < N*3 / 4; i++)
             *  nextGenes[i] = Incrucisare();
             *
             * for (int i = N * 3 / 4; i < N; i++)
             *  nextGenes[i] = new Cromozon();
             * for(int i=0;i<N;i++)
             *  cromozoni[i] = nextGenes[i];*/
        }
Ejemplo n.º 2
0
        public static void InitPop(int n, int k)
        {
            N = n;
            K = k;

            cromozoni = new Cromozon[N];

            for (int i = 0; i < N; i++)
            {
                cromozoni[i] = new Cromozon();
            }
        }
Ejemplo n.º 3
0
        public static Cromozon Incrucisare()
        {
            int i, j;

            do
            {
                i = Program.rnd.Next(K);
                j = Program.rnd.Next(K);
            } while (i == j);

            Cromozon newCromozon = new Cromozon();

            newCromozon.gene[0] = cromozoni[i].gene[0];
            newCromozon.gene[1] = cromozoni[i].gene[1];
            newCromozon.gene[2] = cromozoni[j].gene[2];
            newCromozon.gene[3] = cromozoni[j].gene[3];
            newCromozon.gene[4] = cromozoni[j].gene[4];
            return(newCromozon);
        }