public StoreElement(IExpressionViewModel expressionViewModel) { InitializeAvailableValues(expressionViewModel); DefaultValue = AvailableValues.FirstOrDefault(); InputDisplayName = "select Store".Localize(); }
public void Mutation(int cIndex) { Chromosome chromosome = Chromosomes[cIndex]; if (chromosome == null) { return; } int type = GeneticUtils.GetRandom(3); ushort[] newArray = new ushort[chromosome.Values.Length]; chromosome.Values.CopyTo(newArray, 0); switch (type) { case 0: int index = GeneticUtils.GetRandom(ChromosomeSize); int end = GeneticUtils.GetRandom(ChromosomeSize - index) + index; for (int i = index; i < end; i++) { newArray[i] = AvailableValues.GetRandom(); } if (LeaveInitialValues) { Array.Copy(InitialValues, newArray, InitialValues.Length); } break; case 1: newArray[GeneticUtils.GetRandom(ChromosomeSize)] = 0; break; case 2: int randIndex1 = GeneticUtils.GetRandom(40); int randIndex2 = GeneticUtils.GetRandom(40); ushort temp = newArray[randIndex1]; newArray[randIndex1] = newArray[randIndex2]; newArray[randIndex2] = temp; break; } if (LeaveInitialValues) { Array.Copy(InitialValues, newArray, InitialValues.Length); } Chromosome newChromosome = new Chromosome(Sim, AvailableValues, ChromosomeSize, newArray); if (newChromosome.Fitness > chromosome.Fitness && !Contains(newChromosome)) { Chromosomes[cIndex] = newChromosome; } }
public ShippingMethodSelector(IExpressionViewModel expressionViewModel) { InitializeAvailableValues(expressionViewModel); DefaultValue = AvailableValues.FirstOrDefault(); InputDisplayName = "select Shipping".Localize(); }