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; } }
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()); }