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()); }
public CruceYMutacion(double _pCruce, double _pMuta, Mutacion _mut) { pCruce = _pCruce; pMuta = _pMuta; mut = _mut; }