Esempio n. 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;
        }
Esempio n. 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;
        }
Esempio n. 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;
        }
Esempio n. 4
0
 public Poblacion doSel(Poblacion pob)
 {
     Poblacion _pob = new Poblacion (pob.TamPob ());
     List<Individuo> _ind;
     for (int i = 0; i < pob.TamPob (); i++) {
         _ind = new List<Individuo> (4);
         for (int j = 0; j < 4; j++) {
             _ind.Add (pob.getIndi ((int) (RNG.RandomNumber () * pob.TamPob ())));
             //Console.WriteLine ((int) (RNG.RandomNumber() * pob.TamPob()));
         }
         _pob.addIndi (doTurney (_ind));
     }
     //Console.WriteLine ("Torneo ------>>>> TAMAÑO DE LA POBLACION!!!  -->  " + _pob.TamPob() );
     return _pob;
 }