private BasketListGenome GetBasketGenomeWithFitness(BasketDTO CurrBasket, string p_strUserName, float[] Wights) { BasketListGenome BasketGenomObject = new BasketListGenome(CurrBasket, (FROM_PRODUCTS / 2)); if (p_strUserName != null) { BasketGenomObject.UserName = p_strUserName; } this.CalcFitness(BasketGenomObject, Wights); return(BasketGenomObject); }
private BasketListGenome CalcFitness(BasketListGenome BasketGenomObject, float[] Wights) { // init the matrix float[][] Matrix = new float[BasketGenomObject.BasketObject.basketItems.Count][]; for (int i = 0; i < Matrix.Length; i++) { Matrix[i] = new float[enumFitnessSize]; } BasketGenomObject.MakeBasketMatrix(ref Matrix); float[] Params = BasketGenomObject.GetBasketNormalizedParams(Matrix); float Grade = BasketGenomObject.FitnessFunction(Params, Wights); return(BasketGenomObject); }
private Population GenerateNewPopulation(string p_strUserName, float[] Wights, List <BasketDTO> listBaskets) { List <BasketListGenome> Generation = new List <BasketListGenome>(); foreach (BasketDTO CurrBasket in listBaskets) { BasketListGenome BasketGenomObject = this.GetBasketGenomeWithFitness(CurrBasket, p_strUserName, Wights); Generation.Add(BasketGenomObject); } Population.IdialBaskets = null; return(new Population( Generation, NUMBER_OF_BASKETS, FROM_PRODUCTS / 2, NUMBER_OF_BASKETS, NUMBER_OF_BASKETS, MUTATION_PRECENT, MIN_FITNESS, MAX_FITNESS, Wights)); }