Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/17/11 18:22:28 (13 years ago)
Author:
cneumuel
Message:

#1215

  • support for maximization problems
  • made base level algorithms stoppable
  • optimization for multiple goals possible (AverageQuality, AverageDeviation, AverageEvaluatedSolutions)
  • lots of fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/PMOProblemQualitiesAnalyzer.cs

    r5576 r6018  
    11using System.Linq;
     2using HeuristicLab.Analysis;
    23using HeuristicLab.Common;
    34using HeuristicLab.Core;
     
    78using HeuristicLab.Parameters;
    89using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    9 using System.Collections.Generic;
    10 using System;
    11 using HeuristicLab.Analysis;
    1210
    1311namespace HeuristicLab.Problems.MetaOptimization {
     
    3129      get { return (LookupParameter<ConstrainedItemList<IProblem>>)Parameters[MetaOptimizationProblem.ProblemsParameterName]; }
    3230    }
     31    public LookupParameter<BoolValue> MaximizationParameter {
     32      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
     33    }
    3334
    3435    public PMOProblemQualitiesAnalyzer()
     
    3839      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", ""));
    3940      Parameters.Add(new LookupParameter<ConstrainedItemList<IProblem>>(MetaOptimizationProblem.ProblemsParameterName));
     41      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized."));
    4042    }
    4143
     
    5153      ResultCollection results = ResultsParameter.ActualValue;
    5254      ItemArray<ParameterConfigurationTree> parameterTrees = ParameterConfigurationParameter.ActualValue;
    53       int idxBest = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index; // todo: respect Min/Max
    54       int idxWorst = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).Last().index;
    55      
     55      bool maximization = MaximizationParameter.ActualValue.Value;
     56
     57      int idxBest ;
     58      int idxWorst;
     59      if (maximization) {
     60        idxBest = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).Last().index;
     61        idxWorst = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
     62      } else {
     63        idxBest = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;
     64        idxWorst = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).Last().index;
     65      }
     66
    5667      int problemCount = ProblemsParameter.ActualValue.Count;
    5768
Note: See TracChangeset for help on using the changeset viewer.