Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/06/10 02:00:55 (14 years ago)
Author:
abeham
Message:

#999

  • prepared TF visualization
  • removed obsolete TF solution analyzers
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs

    r3660 r3661  
    3636  /// An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.
    3737  /// </summary>
    38   [Item("PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer", "An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.")]
     38  [Item("BestSingleObjectiveTestFunctionSolutionAnalyzer", "An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.")]
    3939  [StorableClass]
    40   class PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IAnalyzer {
     40  class BestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IAnalyzer {
    4141
    42     public ILookupParameter<ItemArray<RealVector>> RealVectorParameter {
    43       get { return (ILookupParameter<ItemArray<RealVector>>)Parameters["RealVector"]; }
     42    public ScopeTreeLookupParameter<RealVector> RealVectorParameter {
     43      get { return (ScopeTreeLookupParameter<RealVector>)Parameters["RealVector"]; }
    4444    }
    4545    ILookupParameter IBestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter {
    4646      get { return RealVectorParameter; }
    4747    }
    48     public ILookupParameter<ItemArray<DoubleValue>> QualityParameter {
    49       get { return (ILookupParameter<ItemArray<DoubleValue>>)Parameters["Quality"]; }
     48    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     49      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5050    }
    5151    ILookupParameter IBestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter {
     
    5858      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
    5959    }
     60    public IValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator> EvaluatorParameter {
     61      get { return (IValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator>)Parameters["Evaluator"]; }
     62    }
    6063
    61     public PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer()
     64    public BestSingleObjectiveTestFunctionSolutionAnalyzer()
    6265      : base() {
    6366      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
    64 
    6567      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
    6668      Parameters.Add(new LookupParameter<SingleObjectiveTestFunctionSolution>("BestSolution", "The best SingleObjectiveTestFunction solution."));
    6769      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the SingleObjectiveTestFunction solution should be stored."));
     70      Parameters.Add(new ValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator>("Evaluator", "The evaluator with which the solution is evaluated."));
    6871    }
    6972
    7073    public override IOperation Apply() {
    71       ItemArray<RealVector> RealVectors = RealVectorParameter.ActualValue;
     74      ItemArray<RealVector> realVectors = RealVectorParameter.ActualValue;
    7275      ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
    7376      ResultCollection results = ResultsParameter.ActualValue;
     77      ISingleObjectiveTestFunctionProblemEvaluator evaluator = EvaluatorParameter.ActualValue;
    7478
    7579      int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
    7680      SingleObjectiveTestFunctionSolution solution = BestSolutionParameter.ActualValue;
    7781      if (solution == null) {
    78         solution = new SingleObjectiveTestFunctionSolution(RealVectors[i], QualityParameter.ActualValue[i]);
     82        solution = new SingleObjectiveTestFunctionSolution(realVectors[i], qualities[i], evaluator);
     83        solution.Population = realVectors;
    7984        BestSolutionParameter.ActualValue = solution;
    8085
    8186        results.Add(new Result("Best SingleObjectiveTestFunction Solution", solution));
    8287      } else {
    83         solution.RealVector = RealVectors[i];
    84         solution.Quality = QualityParameter.ActualValue[i];
     88        if (evaluator.Maximization && qualities[i].Value > solution.BestQuality.Value
     89          || !evaluator.Maximization && qualities[i].Value < solution.BestQuality.Value) {
     90          solution.BestRealVector = realVectors[i];
     91          solution.BestQuality = qualities[i];
     92        }
     93        solution.Population = realVectors;
    8594
    86         results["Best SingleObjectiveTestFunction Solution"].Value = solution;
     95        //results["Best SingleObjectiveTestFunction Solution"].Value = solution;
    8796      }
    8897
Note: See TracChangeset for help on using the changeset viewer.