Exemplo n.º 1
0
        public GSIndividual Permutate(int iNum)
        {
            GSIndividual newInd = new GSIndividual(timeStamp, generation, iNum);

            newInd.red = GSTree.DeepClone(red);
            newInd.red.PermutateRandomNode();
            newInd.green = GSTree.DeepClone(green);
            newInd.green.PermutateRandomNode();
            newInd.blue = GSTree.DeepClone(blue);
            newInd.blue.PermutateRandomNode();
            newInd.alpha = GSTree.DeepClone(alpha);
            newInd.alpha.PermutateRandomNode();

            newInd.xpos = GSTree.DeepClone(xpos);
            newInd.xpos.PermutateRandomNode();
            newInd.ypos = GSTree.DeepClone(ypos);
            newInd.ypos.PermutateRandomNode();
            newInd.zpos = GSTree.DeepClone(zpos);
            newInd.zpos.PermutateRandomNode();

            return(newInd);
        }
Exemplo n.º 2
0
        public GSIndividual Crossover(GSIndividual ind, int iNum)
        {
            GSIndividual newInd = new GSIndividual(timeStamp, generation, iNum);

            newInd.red = GSTree.DeepClone(red);
            newInd.red.CrossoverRandom(ind.red);
            newInd.green = GSTree.DeepClone(green);
            newInd.green.CrossoverRandom(ind.green);
            newInd.blue = GSTree.DeepClone(blue);
            newInd.blue.CrossoverRandom(ind.blue);
            newInd.alpha = GSTree.DeepClone(alpha);
            newInd.alpha.CrossoverRandom(ind.alpha);

            newInd.xpos = GSTree.DeepClone(xpos);
            newInd.xpos.CrossoverRandom(ind.xpos);
            newInd.ypos = GSTree.DeepClone(ypos);
            newInd.ypos.CrossoverRandom(ind.ypos);
            newInd.zpos = GSTree.DeepClone(zpos);
            newInd.zpos.CrossoverRandom(ind.zpos);

            return(newInd);
        }