private static IWeightMutationStrategy <double> CreateCardinalUniformResetStrategy(
            int selectCount, double weightScale)
        {
            var selectStrategy = new CardinalSubsetSelectionStrategy(selectCount);

            return(ResetWeightMutationStrategy <double> .CreateUniformResetStrategy(selectStrategy, weightScale));
        }
        private static IWeightMutationStrategy <double> CreateCardinalGaussianDeltaStrategy(
            int selectCount, double stdDev)
        {
            var selectStrategy = new CardinalSubsetSelectionStrategy(selectCount);

            return(DeltaWeightMutationStrategy.CreateGaussianDeltaStrategy(selectStrategy, stdDev));
        }
Example #3
0
        private static IWeightMutationStrategy <double> CreateCardinalUniformResetStrategy(
            int selectCount, double weightScale, IRandomSourceBuilder rngBuilder)
        {
            var selectStrategy = new CardinalSubsetSelectionStrategy(selectCount, rngBuilder.Create());

            return(ResetWeightMutationStrategy <double> .CreateUniformResetStrategy(selectStrategy, weightScale, rngBuilder.Create()));
        }
Example #4
0
        private static IWeightMutationStrategy <double> CreateCardinalGaussianDeltaStrategy(
            int selectCount, double stdDev, IRandomSourceBuilder rngBuilder)
        {
            var selectStrategy = new CardinalSubsetSelectionStrategy(selectCount, rngBuilder.Create());

            return(DeltaWeightMutationStrategy.CreateGaussianDeltaStrategy(selectStrategy, stdDev, rngBuilder.Create()));
        }
        public void TestCardinality()
        {
            var strategy = new CardinalSubsetSelectionStrategy(30, RandomDefaults.CreateRandomSource());

            for (int i = 0; i < 101; i++)
            {
                int[] idxArr = strategy.SelectSubset(i);
                int   expectedCardinality = Math.Min(30, i);
                Assert.AreEqual(expectedCardinality, idxArr.Length);
            }
        }
        public void TestUniqueness()
        {
            var strategy = new CardinalSubsetSelectionStrategy(30, RandomDefaults.CreateRandomSource());

            for (int i = 0; i < 20; i++)
            {
                int[]         idxArr = strategy.SelectSubset(20);
                HashSet <int> idxSet = new HashSet <int>();

                for (int j = 0; j < idxArr.Length; j++)
                {
                    int val = idxArr[j];
                    Assert.IsFalse(idxSet.Contains(val));
                    idxSet.Add(val);
                }
            }
        }
    public void SelectSubset_Uniqueness()
    {
        IRandomSource rng = RandomDefaults.CreateRandomSource();

        var strategy = new CardinalSubsetSelectionStrategy(30);

        for (int i = 0; i < 20; i++)
        {
            int[]         idxArr = strategy.SelectSubset(20, rng);
            HashSet <int> idxSet = new();

            for (int j = 0; j < idxArr.Length; j++)
            {
                int val = idxArr[j];
                Assert.DoesNotContain(val, idxSet);
                idxSet.Add(val);
            }
        }
    }