Esempio n. 1
0
        private static void RunFireworks2010()
        {
            // 1. Define a problem to solve
            Problem problem = Sphere.Create();

            // 2. Setup algorithm stop condition
            CounterStopCondition stopCondition = new CounterStopCondition(10000);

            problem.QualityCalculated += stopCondition.IncrementCounter;

            // 3. Initialize algorithm run settings
            FireworksAlgorithmSettings settings = new FireworksAlgorithmSettings
            {
                LocationsNumber = 5,
                ExplosionSparksNumberModifier    = 50.0,
                ExplosionSparksNumberLowerBound  = 0.04,
                ExplosionSparksNumberUpperBound  = 0.8,
                ExplosionSparksMaximumAmplitude  = 40.0,
                SpecificSparksNumber             = 5,
                SpecificSparksPerExplosionNumber = 1
            };

            // 4. Instantiate desired implementation of the algorithm (per 2010 paper in this case)
            IFireworksAlgorithm fwa2010 = new FireworksAlgorithm(problem, stopCondition, settings);

            // 5. Finally, find a solution
            Solution solution = fwa2010.Solve();
        }
Esempio n. 2
0
        public void Constructor_NegativeParams_ArgumentNullExceptionThrown(
            Problem problem,
            IStopCondition stopCondition,
            FireworksAlgorithmSettings settings,
            string expectedParamName)
        {
            ArgumentNullException actualException = Assert.Throws <ArgumentNullException>(() => new FireworksAlgorithm(problem, stopCondition, settings));

            Assert.NotNull(actualException);
            Assert.Equal(expectedParamName, actualException.ParamName);
        }
Esempio n. 3
0
        private FireworksAlgorithm GetFireworksAlgorithm()
        {
            CounterStopCondition testStopCondition = new CounterStopCondition(1);

            testProblem.QualityCalculated += testStopCondition.IncrementCounter;

            FireworksAlgorithmSettings testFireworksAlgoritmSetting = new FireworksAlgorithmSettings
            {
                LocationsNumber = 1,
                ExplosionSparksNumberModifier    = 1,
                ExplosionSparksNumberLowerBound  = 0.04,
                ExplosionSparksNumberUpperBound  = 0.8,
                ExplosionSparksMaximumAmplitude  = 0.5,
                SpecificSparksNumber             = 1,
                SpecificSparksPerExplosionNumber = 1
            };

            return(new FireworksAlgorithm(testProblem, testStopCondition, testFireworksAlgoritmSetting));
        }