Ejemplo n.º 1
0
        public void GridSearchOptimizer_Optimize(int?maxDegreeOfParallelism)
        {
            var parameters = new GridParameterSpec[]
            {
                new GridParameterSpec(10.0, 37.5)
            };

            var sut = maxDegreeOfParallelism.HasValue ?
                      new GridSearchOptimizer(parameters, true, maxDegreeOfParallelism.Value) :
                      new GridSearchOptimizer(parameters);

            var actual = sut.Optimize(Minimize);

            var expected = new OptimizerResult[]
            {
                new OptimizerResult(new double[] { 37.5 }, 111.20889999999987),
                new OptimizerResult(new double[] { 10 }, 31638.9579)
            };

            Assert.AreEqual(expected.First().Error, actual.First().Error, 0.0001);
            Assert.AreEqual(expected.First().ParameterSet.First(), actual.First().ParameterSet.First(), 0.0001);

            Assert.AreEqual(expected.Last().Error, actual.Last().Error, 0.0001);
            Assert.AreEqual(expected.Last().ParameterSet.First(), actual.Last().ParameterSet.First(), 0.0001);
        }
Ejemplo n.º 2
0
        public void GridSearchOptimizer_Optimize(int?maxDegreeOfParallelism)
        {
            var parameters = new GridParameterSpec[]
            {
                new GridParameterSpec(10.0, 20.0, 30.0, 35.0, 37.5, 40.0, 50.0, 60.0)
            };

            var sut = maxDegreeOfParallelism.HasValue ?
                      new GridSearchOptimizer(parameters, true, maxDegreeOfParallelism.Value) :
                      new GridSearchOptimizer(parameters);

            var actual = sut.Optimize(MinimizeWeightFromHeight);

            var expected = new OptimizerResult[]
            {
                new OptimizerResult(new double[] { 10 }, 31638.9579),
                new OptimizerResult(new double[] { 60 }, 20500.6279)
            };

            Assert.AreEqual(expected.First().Error, actual.First().Error, Delta);
            Assert.AreEqual(expected.First().ParameterSet.First(),
                            actual.First().ParameterSet.First(), Delta);

            Assert.AreEqual(expected.Last().Error, actual.Last().Error, Delta);
            Assert.AreEqual(expected.Last().ParameterSet.First(),
                            actual.Last().ParameterSet.First(), Delta);
        }
Ejemplo n.º 3
0
        public void GridSearchOptimizer_OptimizeBest(int?maxDegreeOfParallelism)
        {
            var parameters = new GridParameterSpec[]
            {
                new GridParameterSpec(10.0, 20.0, 30.0, 35.0, 37.5, 40.0, 50.0, 60.0)
            };

            var sut = maxDegreeOfParallelism.HasValue ?
                      new GridSearchOptimizer(parameters, true, maxDegreeOfParallelism.Value) :
                      new GridSearchOptimizer(parameters);

            var actual = sut.OptimizeBest(Minimize);

            Assert.AreEqual(111.20889999999987, actual.Error, 0.00001);
            CollectionAssert.AreEqual(new double[] { 37.5 }, actual.ParameterSet);
        }