Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/28/15 09:47:23 (9 years ago)
Author:
pfleck
Message:

#2027
Inverted the conditions to check the continue criteria instead of termination criteria.
Conditions are then specified more naturally: "while generations < max" instead of "break if generations > min".
If any Continue-Check returns false, the algorithm will be terminated.

The naming "Terminator" has to be discussed because it suggest to specify the criteria when the algorithm should stop, instead of continue.

File:
1 edited

Legend:

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

    r12405 r12407  
    351351      UpdateAnalyzers();
    352352
    353       generationsTerminator = new ComparisonTerminator<IntValue>("Generations", ComparisonType.GreaterOrEqual, new IntValue(50)) { Name = "Generations" };
    354       evaluatedSolutionsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.GreaterOrEqual, new IntValue(int.MaxValue)) { Name = "Evaluations" };
    355       selectionPressureTerminator = new ComparisonTerminator<DoubleValue>("SelectionPressure", ComparisonType.GreaterOrEqual, new DoubleValue(200)) { Name = "Selection Pressure" };
    356       qualityTerminator = new ComparisonTerminator<DoubleValue>(threshold: new DoubleValue()) { Name = "Quality" };
     353      generationsTerminator = new ComparisonTerminator<IntValue>("Generations", ComparisonType.Less, new IntValue(50)) { Name = "Generations" };
     354      evaluatedSolutionsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.Less, new IntValue(int.MaxValue)) { Name = "Evaluations" };
     355      selectionPressureTerminator = new ComparisonTerminator<DoubleValue>("SelectionPressure", ComparisonType.Less, new DoubleValue(200)) { Name = "Selection Pressure" };
     356      qualityTerminator = new ComparisonTerminator<DoubleValue>(new DoubleValue()) { Name = "Quality" };
    357357      executionTimeTerminator = new ExecutionTimeTerminator(this, new TimeSpanValue(TimeSpan.FromMinutes(5))) { Name = "Execution Time" };
    358358      ParameterizeTerminators();
     
    508508        if (maximizationParameter != null) {
    509509          bool maximization = maximizationParameter.Value.Value;
    510           qualityTerminator.Comparison = maximization ? ComparisonType.GreaterOrEqual : ComparisonType.LessOrEqual;
    511           qualityTerminator.Threshold.Value = maximization ? double.MaxValue : double.MinValue;
     510          qualityTerminator.Comparison = maximization ? ComparisonType.Less : ComparisonType.Greater;
     511          qualityTerminator.Threshold.Value = maximization ? double.MinValue : double.MaxValue;
    512512        }
    513513      }
Note: See TracChangeset for help on using the changeset viewer.