Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/30/15 12:40:20 (9 years ago)
Author:
pfleck
Message:

#2269 Moved updating of terminators to concrete ALPS implementation instead of abstract base class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Alps.cs

    r12531 r12548  
    162162    #region Preconfigured Terminators
    163163    [Storable]
    164     private ComparisonTerminator<IntValue> evaluationsTerminator;
     164    protected ComparisonTerminator<IntValue> evaluationsTerminator;
    165165    [Storable]
    166     private SingleObjectiveQualityTerminator qualityTerminator;
     166    protected SingleObjectiveQualityTerminator qualityTerminator;
    167167    [Storable]
    168     private ExecutionTimeTerminator executionTimeTerminator;
     168    protected ExecutionTimeTerminator executionTimeTerminator;
    169169    #endregion
    170170
     
    201201      layerQualityAnalyzer = new BestAverageWorstQualityAnalyzer();
    202202
     203      evaluationsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.Less, new IntValue(int.MaxValue)) { Name = "Evaluations" };
     204      qualityTerminator = new SingleObjectiveQualityTerminator() { Name = "Quality" };
     205      executionTimeTerminator = new ExecutionTimeTerminator(this, new TimeSpanValue(TimeSpan.FromMinutes(5)));
     206
    203207      ParameterizeAgeLimits();
    204208      ParameterizeAgeInheritanceReduction();
     
    207211      UpdateAnalyzers();
    208212
    209       CreateTerminators();
    210213      ParameterizeTerminators();
    211       UpdateTerminators();
    212214
    213215      Initialize();
     
    231233      ParameterizeTerminators();
    232234      UpdateAnalyzers();
    233       UpdateTerminators();
    234235      Problem.Evaluator.QualityParameter.ActualNameChanged += Evaluator_QualityParameter_ActualNameChanged;
    235236    }
     
    262263        ParameterizeStochasticOperator(@operator);
    263264      UpdateAnalyzers();
    264       UpdateTerminators();
    265265      base.Problem_OperatorsChanged(sender, e);
    266266    }
     
    410410      }
    411411    }
    412     protected virtual void UpdateTerminators() {
    413       var newTerminators = new Dictionary<ITerminator, bool> {
    414         {evaluationsTerminator, Terminators.Operators.Contains(evaluationsTerminator) && Terminators.Operators.ItemChecked(evaluationsTerminator)},
    415         {qualityTerminator, Terminators.Operators.Contains(qualityTerminator) && Terminators.Operators.ItemChecked(qualityTerminator) },
    416         {executionTimeTerminator, Terminators.Operators.Contains(executionTimeTerminator) && Terminators.Operators.ItemChecked(executionTimeTerminator)}
    417       };
    418       if (Problem != null) {
    419         foreach (var terminator in Problem.Operators.OfType<ITerminator>())
    420           newTerminators.Add(terminator, !Terminators.Operators.Contains(terminator) || Terminators.Operators.ItemChecked(terminator));
    421       }
    422 
    423       Terminators.Operators.Clear();
    424 
    425       foreach (var newTerminator in newTerminators)
    426         Terminators.Operators.Add(newTerminator.Key, newTerminator.Value);
    427     }
    428     protected virtual void CreateTerminators() {
    429       evaluationsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.Less, new IntValue(int.MaxValue)) { Name = "Evaluations" };
    430       qualityTerminator = new SingleObjectiveQualityTerminator() { Name = "Quality" };
    431       executionTimeTerminator = new ExecutionTimeTerminator(this, new TimeSpanValue(TimeSpan.FromMinutes(5)));
    432     }
    433412    #endregion
    434413  }
Note: See TracChangeset for help on using the changeset viewer.