public void ParticleSwarmOptimizer_OptimizeBest()
        {
            var parameters = new ParameterBounds[]
            {
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
            };
            var sut    = new ParticleSwarmOptimizer(parameters, 100);
            var actual = sut.OptimizeBest(Minimize);

            Assert.AreEqual(actual.Error, -0.64324321766401094, 0.0000001);
            Assert.AreEqual(actual.ParameterSet.Length, 3);

            Assert.AreEqual(actual.ParameterSet[0], -4.92494268653156, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[1], 10, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[2], -0.27508308116943514, 0.0000001);
        }
        public void ParticleSwarmOptimizer_OptimizeBest()
        {
            var parameters = new double[][]
            {
                new double[] { -10.0, 10.0 },
                new double[] { -10.0, 10.0 },
                new double[] { -10.0, 10.0 }
            };
            var sut    = new ParticleSwarmOptimizer(parameters, 100);
            var actual = sut.OptimizeBest(Minimize);

            Assert.AreEqual(actual.Error, -0.38111188515223809, 0.0000001);
            Assert.AreEqual(actual.ParameterSet.Length, 3);

            Assert.AreEqual(actual.ParameterSet[0], 10, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[1], 0.003223641308240488, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[2], 0.42745032466778454, 0.0000001);
        }
Example #3
0
        public void ParticleSwarmOptimizer_OptimizeBest()
        {
            var parameters = new ParameterBounds[]
            {
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
                new ParameterBounds(-10.0, 10.0, Transform.Linear),
            };
            var sut    = new ParticleSwarmOptimizer(parameters, 100);
            var actual = sut.OptimizeBest(Minimize);

            Assert.AreEqual(actual.Error, -0.45484916939206588, 0.0000001);
            Assert.AreEqual(actual.ParameterSet.Length, 3);

            Assert.AreEqual(actual.ParameterSet[0], -10, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[1], -10, 0.0000001);
            Assert.AreEqual(actual.ParameterSet[2], 0.0035692182837614439, 0.0000001);
        }