public GeneticAlgorithm( double mutationProbability, double crossoverPropability, int minPopulationSize, int maxPopulationSize, IMutation mutationOperator, ICrossover crossoverOperator, IFitnessEvaluator <TWorkload> fitnessEvaluator, IInitialPopulationCreator initialPopulationCreator, ITerminationCondition <TState> terminationCondition, ISelectionStrategy selectionStrategy, IReinsertionStrategy reinsertionStrategy, IDeploymentChromosomeFactory chromosomeFactory, TState currentState, TWorkload workload, IRandomProvider randomProvider) { MutationProbability = mutationProbability; CrossoverProbability = crossoverPropability; MinPopulationSize = minPopulationSize; MaxPopulationSize = maxPopulationSize; MutationOperator = mutationOperator; CrossoverOperator = crossoverOperator; FitnessEvaluator = fitnessEvaluator; InitialPopulationCreator = initialPopulationCreator; TerminationCondition = terminationCondition; SelectionStrategyStrategy = selectionStrategy; ReinsertionStrategy = reinsertionStrategy; ChromosomeFactory = chromosomeFactory; CurrentState = currentState; Workload = workload; RandomProvider = randomProvider; }
public TestGeneticAlgorithm( double mutationProbability, double crossoverPropability, int minPopulationSize, int maxPopulationSize, IMutation mutationOperator, ICrossover crossoverOperator, IFitnessEvaluator <TestWorkload> fitnessEvaluator, IInitialPopulationCreator initialPopulationCreator, ITerminationCondition <TestState> terminationCondition, ISelectionStrategy selectionStrategy, IReinsertionStrategy reinsertionStrategy, IDeploymentChromosomeFactory chromosomeFactory, TestState currentState, TestWorkload workload, IRandomProvider randomProvider) : base( mutationProbability, crossoverPropability, minPopulationSize, maxPopulationSize, mutationOperator, crossoverOperator, fitnessEvaluator, initialPopulationCreator, terminationCondition, selectionStrategy, reinsertionStrategy, chromosomeFactory, currentState, workload, randomProvider) { }
public void Run_Once_CallsRightMethods() { var deploymentModel = CreateDeploymentModel(); A.CallTo(() => _terminationCondition.HasReached(null, null)).WithAnyArguments().ReturnsNextFromSequence(false, true); _deploymentChromosomeFactory = new DeploymentChromosomeFactory(); _initialPopulationCreator = new CloneInitialPopulationCreator(); _selectionStrategy = new EliteSelection(); _crossoverOperator = new IdCrossover(); _mutationOperator = new IdMutation(); _reinsertionStrategy = new EliteReinsertion(); ConstructGeneticAlgorithm(); var bestDeploymentModel = _testGeneticAlgorithm.Run(deploymentModel); Assert.AreEqual(1, _currentState.Count); }
public void SetUp() { _mutationProbability = 1; _crossoverProbability = 1; _minPopulationSize = 2; _maxPopulationSize = 4; _mutationOperator = A.Fake <IMutation>(); _crossoverOperator = A.Fake <ICrossover>(); _fitnessEvaluator = A.Fake <IFitnessEvaluator <TestWorkload> >(); _initialPopulationCreator = A.Fake <IInitialPopulationCreator>(); _terminationCondition = A.Fake <ITerminationCondition <TestState> >(); _selectionStrategy = A.Fake <ISelectionStrategy>(); _reinsertionStrategy = A.Fake <IReinsertionStrategy>(); _deploymentChromosomeFactory = A.Fake <IDeploymentChromosomeFactory>(); _currentState = new TestState(); _workload = new TestWorkload(); _randomProvider = new DefaultRandomProvider(); }