示例#1
0
        public Poblacion cruceP(Poblacion p)
        {
            Poblacion H = new Poblacion(p.TamPob ());
            List<Individuo> ind;

            for(int i = 0; i < p.TamPob (); i+=2)
            {
                ind = new List<Individuo>(2);
                if (RNG.RandomNumber () < pCruce) {
                    ind = cruceI (p.getIndi (i), p.getIndi (i + 1));
                } else {
                    ind.Add (p.getIndi (i));
                    ind.Add (p.getIndi (i + 1));
                }
                mutacion (ind);
                H.addIndis (ind);
            }

            return H;
        }
示例#2
0
        public Poblacion doSel(Poblacion pA, Poblacion pB)
        {
            List<Individuo> _ind;
            Poblacion _pob = new Poblacion (pA.TamPob ());

            for (int i = 0; i < pA.TamPob (); i += 2) {
                _ind = new List<Individuo> (2);
                if (pA.getIndi (i).getFit () < pB.getIndi (i).getFit ()) {
                    _ind.Add (pA.getIndi (i));
                } else {
                    _ind.Add (pB.getIndi (i));
                }

                if (pA.getIndi (i+1).getFit () < pB.getIndi (i+1).getFit ()) {
                    _ind.Add (pA.getIndi (i+1));
                } else {
                    _ind.Add (pB.getIndi (i+1));
                }
                _pob.addIndis (_ind);
            }
            return _pob;
        }
示例#3
0
        public Poblacion cruceP(Poblacion p)
        {
            Poblacion H = new Poblacion(p.TamPob ());
            //Console.WriteLine ("Cruce ------>>>> TAMAÑO DE LA POBLACION!!!  -->  " + p.TamPob() );
            List<Individuo> ind;

            for(int i = 0; i < p.TamPob (); i+=2)
            {
                ind = new List<Individuo> (2);
                if (RNG.RandomNumber () < pCruce) {
                    ind = cruceI (p.getIndi (i), p.getIndi (i + 1));
                } else {
                    ind.Add (p.getIndi (i));
                    ind.Add (p.getIndi (i + 1));
                }
                //Console.WriteLine ("---->> " + ind.Count);
                mutacion (ind);
                H.addIndis (ind);
                //Console.WriteLine (i + " ---->>>>>  " + p.TamPob() + " -----> " + H.TamPob());
             				//Console.WriteLine ("CruceFinal ------>>>> TAMAÑO DE LA POBLACION!!!  -->  " + H.TamPob() );
            }
            return H;
        }