Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/26/15 16:15:54 (9 years ago)
Author:
pfleck
Message:

#2027 Renamed TerminationCriterion to Terminator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/TerminationCriteria/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs

    r12368 r12402  
    116116      get { return (IFixedValueParameter<BoolValue>)Parameters["FillPopulationWithParents"]; }
    117117    }
    118     private IValueParameter<MultiTerminationCriterion> TerminationCriteriaParameter {
    119       get { return (IValueParameter<MultiTerminationCriterion>)Parameters["TerminationCriteria"]; }
     118    private IValueParameter<MultiTerminator> TerminatorsParameter {
     119      get { return (IValueParameter<MultiTerminator>)Parameters["Terminators"]; }
    120120    }
    121121    #endregion
     
    203203      set { FillPopulationWithParentsParameter.Value.Value = value; }
    204204    }
    205     private MultiTerminationCriterion TerminationCriteria {
    206       get { return TerminationCriteriaParameter.Value; }
     205    private MultiTerminator Terminators {
     206      get { return TerminatorsParameter.Value; }
    207207    }
    208208    private RandomCreator RandomCreator {
     
    222222    private SuccessfulOffspringAnalyzer successfulOffspringAnalyzer;
    223223    [Storable]
    224     private ComparisonTerminationCriterion<IntValue> maximumGenerationsTerminationCriterion;
    225     [Storable]
    226     private ComparisonTerminationCriterion<IntValue> maximumEvaluatedSolutionsTerminationCriterion;
    227     [Storable]
    228     private ComparisonTerminationCriterion<DoubleValue> maximumSelectionPressureTerminationCriterion;
    229     [Storable]
    230     private ComparisonTerminationCriterion<DoubleValue> qualityTerminationCriterion;
    231     [Storable]
    232     private ExecutionTimeTerminationCriterion executionTimeTerminationCriterion;
     224    private ComparisonTerminator<IntValue> generationsTerminator;
     225    [Storable]
     226    private ComparisonTerminator<IntValue> evaluatedSolutionsTerminator;
     227    [Storable]
     228    private ComparisonTerminator<DoubleValue> selectionPressureTerminator;
     229    [Storable]
     230    private ComparisonTerminator<DoubleValue> qualityTerminator;
     231    [Storable]
     232    private ExecutionTimeTerminator executionTimeTerminator;
    233233    #endregion
    234234
     
    255255      selectionPressureAnalyzer = cloner.Clone(original.selectionPressureAnalyzer);
    256256      successfulOffspringAnalyzer = cloner.Clone(original.successfulOffspringAnalyzer);
    257       maximumGenerationsTerminationCriterion = cloner.Clone(original.maximumGenerationsTerminationCriterion);
    258       maximumEvaluatedSolutionsTerminationCriterion = cloner.Clone(original.maximumEvaluatedSolutionsTerminationCriterion);
    259       maximumSelectionPressureTerminationCriterion = cloner.Clone(original.maximumSelectionPressureTerminationCriterion);
    260       qualityTerminationCriterion = cloner.Clone(original.qualityTerminationCriterion);
    261       executionTimeTerminationCriterion = cloner.Clone(original.executionTimeTerminationCriterion);
     257      generationsTerminator = cloner.Clone(original.generationsTerminator);
     258      evaluatedSolutionsTerminator = cloner.Clone(original.evaluatedSolutionsTerminator);
     259      selectionPressureTerminator = cloner.Clone(original.selectionPressureTerminator);
     260      qualityTerminator = cloner.Clone(original.qualityTerminator);
     261      executionTimeTerminator = cloner.Clone(original.executionTimeTerminator);
    262262      Initialize();
    263263    }
     
    287287      Parameters.Add(new ValueParameter<IntValue>("MaximumEvaluatedSolutions", "The maximum number of evaluated solutions (approximately).", new IntValue(int.MaxValue)));
    288288      Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true });
    289       Parameters.Add(new ValueParameter<MultiTerminationCriterion>("TerminationCriteria", "The termination criteria which sould be checked.", new MultiTerminationCriterion()));
     289      Parameters.Add(new ValueParameter<MultiTerminator>("Terminators", "The termination criteria which sould be checked.", new MultiTerminator()));
    290290
    291291      RandomCreator randomCreator = new RandomCreator();
     
    351351      UpdateAnalyzers();
    352352
    353       maximumGenerationsTerminationCriterion = new ComparisonTerminationCriterion<IntValue>("Generations", new IntValue(50), ComparisonType.GreaterOrEqual) { Name = "Maximum Generations" };
    354       maximumEvaluatedSolutionsTerminationCriterion = new ComparisonTerminationCriterion<IntValue>("EvaluatedSolutions", "MaximumEvaluatedSolutions", ComparisonType.GreaterOrEqual) { Name = "Maximum Evaluations" };
    355       maximumSelectionPressureTerminationCriterion = new ComparisonTerminationCriterion<DoubleValue>("SelectionPressure", "MaximumSelectionPressure", ComparisonType.GreaterOrEqual) { Name = "Maximum Selection Pressure" };
    356       qualityTerminationCriterion = new ComparisonTerminationCriterion<DoubleValue>() { Name = "Maximum/Minimum Quality" };
    357       executionTimeTerminationCriterion = new ExecutionTimeTerminationCriterion(this, TimeSpan.FromMinutes(5)) { Name = "Maximum Execution Time" };
    358       ParameterizeTerminationCriteria();
    359       UpdateTerminationCriteria();
     353      generationsTerminator = new ComparisonTerminator<IntValue>("Generations", new IntValue(50), ComparisonType.GreaterOrEqual) { Name = "Generations" };
     354      evaluatedSolutionsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", "MaximumEvaluatedSolutions", ComparisonType.GreaterOrEqual) { Name = "Evaluations" };
     355      selectionPressureTerminator = new ComparisonTerminator<DoubleValue>("SelectionPressure", "MaximumSelectionPressure", ComparisonType.GreaterOrEqual) { Name = "Selection Pressure" };
     356      qualityTerminator = new ComparisonTerminator<DoubleValue>() { Name = "Quality" };
     357      executionTimeTerminator = new ExecutionTimeTerminator(this, TimeSpan.FromMinutes(5)) { Name = "Execution Time" };
     358      ParameterizeTerminators();
     359      UpdateTerminators();
    360360
    361361      Initialize();
     
    377377      ParameterizeSelectors();
    378378      ParameterizeAnalyzers();
    379       ParameterizeTerminationCriteria();
     379      ParameterizeTerminators();
    380380      ParameterizeIterationBasedOperators();
    381381      UpdateCrossovers();
    382382      UpdateMutators();
    383383      UpdateAnalyzers();
    384       UpdateTerminationCriteria();
     384      UpdateTerminators();
    385385      Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    386386      base.OnProblemChanged();
     
    407407      UpdateMutators();
    408408      UpdateAnalyzers();
    409       UpdateTerminationCriteria();
     409      UpdateTerminators();
    410410      base.Problem_OperatorsChanged(sender, e);
    411411    }
     
    485485      }
    486486    }
    487     private void ParameterizeTerminationCriteria() {
     487    private void ParameterizeTerminators() {
    488488      if (Problem != null) {
    489489        bool maximization = ((BoolValue)Problem.MaximizationParameter.ActualValue).Value;
    490         qualityTerminationCriterion.Name = maximization ? "Maximum Quality" : "Minimum Quality";
    491         qualityTerminationCriterion.Comparison = new Comparison(maximization ? ComparisonType.GreaterOrEqual : ComparisonType.LessOrEqual);
    492         qualityTerminationCriterion.ValueParameter.ActualName = qualityAnalyzer.CurrentBestQualityParameter.Name;
    493         qualityTerminationCriterion.ThresholdParameter.Value = new DoubleValue(maximization ? double.MaxValue : double.MinValue);
     490        qualityTerminator.Comparison = new Comparison(maximization ? ComparisonType.GreaterOrEqual : ComparisonType.LessOrEqual);
     491        qualityTerminator.ValueParameter.ActualName = qualityAnalyzer.CurrentBestQualityParameter.Name;
     492        qualityTerminator.ThresholdParameter.Value = new DoubleValue(maximization ? double.MaxValue : double.MinValue);
    494493      }
    495494    }
     
    551550      Analyzer.Operators.Add(successfulOffspringAnalyzer, successfulOffspringAnalyzer.EnabledByDefault);
    552551    }
    553     private void UpdateTerminationCriteria() {
    554       TerminationCriteria.Operators.Clear();
    555       if (Problem != null) {
    556         foreach (var terminationCriterion in Problem.Operators.OfType<ITerminationCriterion>())
    557           TerminationCriteria.Operators.Add(terminationCriterion);
    558       }
    559       TerminationCriteria.Operators.Add(maximumGenerationsTerminationCriterion);
    560       TerminationCriteria.Operators.Add(maximumEvaluatedSolutionsTerminationCriterion);
    561       TerminationCriteria.Operators.Add(maximumSelectionPressureTerminationCriterion);
    562       TerminationCriteria.Operators.Add(qualityTerminationCriterion, checkedState: false);
    563       TerminationCriteria.Operators.Add(executionTimeTerminationCriterion, checkedState: false);
     552    private void UpdateTerminators() {
     553      Terminators.Operators.Clear();
     554      if (Problem != null) {
     555        foreach (var terminator in Problem.Operators.OfType<ITerminator>())
     556          Terminators.Operators.Add(terminator);
     557      }
     558      Terminators.Operators.Add(generationsTerminator);
     559      Terminators.Operators.Add(evaluatedSolutionsTerminator);
     560      Terminators.Operators.Add(selectionPressureTerminator);
     561      Terminators.Operators.Add(qualityTerminator, checkedState: false);
     562      Terminators.Operators.Add(executionTimeTerminator, checkedState: false);
    564563    }
    565564    private OffspringSelectionGeneticAlgorithmMainLoop FindMainLoop(IOperator start) {
Note: See TracChangeset for help on using the changeset viewer.