Exemple #1
0
 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();
 }