示例#1
0
        //Operador de AG: cruza, tipo: 1 punto
        //Cruza a este individuo con otro, intercalando apartir del punto de cruza una parte del cromosoma
        //Regresa dos individuos, uno más parecido el padre y otro mas parecido a la madre
        public Individuo[] CruzaPor1Punto(Individuo individuo, int puntoDeCruza)
        {
            Gene genePadre = this.cromosoma.getGene();
            Gene geneMadre = individuo.cromosoma.getGene();

            Individuo[] hijos = new Individuo[2];
            string      hijo1 = genePadre.GetBinario().Substring(0, puntoDeCruza) + geneMadre.GetBinario().Substring(puntoDeCruza);
            string      hijo2 = geneMadre.GetBinario().Substring(0, puntoDeCruza) + genePadre.GetBinario().Substring(puntoDeCruza);

            hijos[0] = new Individuo(hijo1, valorMinimo, valorMaximo, particiones);
            hijos[1] = new Individuo(hijo2, valorMinimo, valorMaximo, particiones);

            return(hijos);
        }
示例#2
0
        //Representacion del cromosoma con formato: [CodigoGray]:[CodigoBinario]:[RepresentacionReal]
        public override string ToString()
        {
            string s = "Cromosoma:\n";

            s += "[" + gene.GetGrey() + "] : [" + gene.GetBinario() + "] : [" + GetValorReal() + "]\n";
            return(s);
        }