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(); }
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); }
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)); }