Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/26/15 21:32:52 (9 years ago)
Author:
abeham
Message:

#2431:

  • worked on IRRRun (early abort still troublesome)
  • Updated RLD view to allow defining targets
  • Attempting to handle maximization/minimization
Location:
branches/PerformanceComparison/HeuristicLab.Analysis/3.3/QualityAnalysis
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityPerClockAnalyzer.cs

    r12803 r12804  
    7575
    7676    public override IOperation Apply() {
    77       var lastUpdateTime = LastUpdateTimeParameter.ActualValue;
    78       if (lastUpdateTime == null) {
    79         lastUpdateTime = new DateTimeValue(DateTime.UtcNow.AddMilliseconds(-1));
    80         LastUpdateTimeParameter.ActualValue = lastUpdateTime;
    81       }
    82       var now = DateTime.UtcNow;
    83 
    8477      var bestQuality = BestQualityParameter.ActualValue.Value;
    85 
    8678      var dataTable = QualityPerClockParameter.ResultValue;
    8779      var values = dataTable.Rows["First-hit Graph"].Values;
    88       if (values.Count == 0 || values.Last().Item2 != bestQuality)
    89         dataTable.Rows["First-hit Graph"].Values.Add(Tuple.Create((now - lastUpdateTime.Value).TotalSeconds, bestQuality));
    9080
    91       lastUpdateTime.Value = now;
     81      if (values.Count == 0 || values.Last().Item2 != bestQuality) {
     82        var lastUpdateTime = LastUpdateTimeParameter.ActualValue;
     83        if (lastUpdateTime == null) {
     84          lastUpdateTime = new DateTimeValue(DateTime.UtcNow.AddMilliseconds(-1));
     85          LastUpdateTimeParameter.ActualValue = lastUpdateTime;
     86        }
     87
     88        var now = DateTime.UtcNow;
     89        var runtimeSoFar = (now - lastUpdateTime.Value).TotalSeconds + (values.Count > 0 ? values.Last().Item1 : 0);
     90        dataTable.Rows["First-hit Graph"].Values.Add(Tuple.Create(runtimeSoFar, bestQuality));
     91        lastUpdateTime.Value = now;
     92      }
    9293      return base.Apply();
    9394    }
  • branches/PerformanceComparison/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityPerEvaluationsAnalyzer.cs

    r12774 r12804  
    4444      get { return (ILookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; }
    4545    }
     46    public ILookupParameter<IntValue> EvaluatedMovesParameter {
     47      get { return (ILookupParameter<IntValue>)Parameters["EvaluatedMoves"]; }
     48    }
     49    public IValueLookupParameter<DoubleValue> MoveCostPerSolutionParameter {
     50      get { return (IValueLookupParameter<DoubleValue>)Parameters["MoveCostPerSolution"]; }
     51    }
    4652    public IResultParameter<IndexedDataTable<double>> QualityPerEvaluationsParameter {
    4753      get { return (IResultParameter<IndexedDataTable<double>>)Parameters["QualityPerEvaluations"]; }
     
    5460      : base() {
    5561      Parameters.Add(new LookupParameter<DoubleValue>("BestQuality", "The quality value that should be compared."));
    56       Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The quality value that should be compared."));
     62      Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of evaluated solutions."));
     63      Parameters.Add(new LookupParameter<IntValue>("EvaluatedMoves", "The number of evaluated moves."));
     64      Parameters.Add(new ValueLookupParameter<DoubleValue>("MoveCostPerSolution", "The cost to evaluate a move as a ratio to the cost of evaluating a solution.", new DoubleValue(1)));
    5765      Parameters.Add(new ResultParameter<IndexedDataTable<double>>("QualityPerEvaluations", "Data table containing the first hitting graph with evaluations as the x-axis."));
    5866      QualityPerEvaluationsParameter.DefaultValue = new IndexedDataTable<double>("Quality per Evaluations") {
     
    7482    public override IOperation Apply() {
    7583      var bestQuality = BestQualityParameter.ActualValue.Value;
    76       var evaluations = Math.Max(EvaluatedSolutionsParameter.ActualValue.Value, 1);
     84      var evalSols = EvaluatedSolutionsParameter.ActualValue;
     85      var evalMoves = EvaluatedMovesParameter.ActualValue;
     86      var evaluations = 0.0;
     87      if (evalSols != null) evaluations += evalSols.Value;
     88      if (evalMoves != null) evaluations += evalMoves.Value * MoveCostPerSolutionParameter.ActualValue.Value;
    7789
    7890      var dataTable = QualityPerEvaluationsParameter.ResultValue;
    7991      var values = dataTable.Rows["First-hit Graph"].Values;
     92      if (evaluations == 0 || values.Count > 0 && evaluations < values.Last().Item1) evaluations = 1;
    8093      if (values.Count == 0 || values.Last().Item2 != bestQuality)
    8194        values.Add(Tuple.Create((double)evaluations, bestQuality));
Note: See TracChangeset for help on using the changeset viewer.