Пример #1
0
        public StoreElement(IExpressionViewModel expressionViewModel)
        {
            InitializeAvailableValues(expressionViewModel);

            DefaultValue     = AvailableValues.FirstOrDefault();
            InputDisplayName = "select Store".Localize();
        }
Пример #2
0
        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();
 }