コード例 #1
0
        public Individuo(PaisajeAptitud funcion, int cantidad)
        {
            this.funcion        = funcion;
            FitnessTiempo       = -1.0;
            FitnessDistancia    = -1.0;
            distanciaEcluidiana = -1.0;
            Rank                = -1;
            NumeroDeJefes       = 0;
            DistanciaCrowding   = 0;
            ConjuntoDeDominados = new List <int>();
            recorrido           = new int[cantidad];
            int i = 0;

            for (; i < cantidad; i++)
            {
                recorrido[i] = -1;
            }
        }
コード例 #2
0
        public void inicializar(Cruce funcionCruce, Mutacion funcionMutacion, Seleccion funcionSeleccion, PaisajeAptitud funcionAptitud, Reemplazo funcionReemplazo, int numIteraciones, int dimensiones, double porcentaje)
        {
            this.dimensiones     = dimensiones;
            this.tamañoPoblacion = (int)((dimensiones / 2) * porcentaje);
            inicializar(funcionCruce, funcionMutacion, funcionSeleccion, funcionAptitud, funcionReemplazo, numIteraciones);
            this.P = new List <List <Individuo> >();
            int i = 0, fraccion = (int)(dimensiones * porcentaje);

            padres = new Individuo[tamañoPoblacion];
            for (; i < tamañoPoblacion; i++)
            {
                padres[i] = new Individuo(funcionAptitud, dimensiones);
                inicializarAleatorio(padres, i, fraccion);
                if (dimensiones > fraccion)
                {
                    inicializarSecuencial(padres, i);
                }
            }
            P.Add(padres.ToList());
        }