Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/07/18 20:55:57 (6 years ago)
Author:
abeham
Message:

#1614: updates from last night ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1614_GeneralizedQAP/HeuristicLab.OptimizationExpertSystem.Common/3.3/KnowledgeCenter.cs

    r15255 r15736  
    2020#endregion
    2121
     22using System;
     23using System.Collections.Generic;
     24using System.Drawing;
     25using System.IO;
     26using System.Linq;
     27using System.Threading;
     28using System.Threading.Tasks;
     29using HeuristicLab.Algorithms.DataAnalysis;
    2230using HeuristicLab.Analysis;
    2331using HeuristicLab.Analysis.SelfOrganizingMaps;
     
    3240using HeuristicLab.Problems.DataAnalysis;
    3341using HeuristicLab.Random;
    34 using System;
    35 using System.Collections.Generic;
    36 using System.Drawing;
    37 using System.IO;
    38 using System.Linq;
    39 using System.Threading;
    40 using System.Threading.Tasks;
    41 using HeuristicLab.Algorithms.DataAnalysis;
    4242using Algorithm = HeuristicLab.Clients.OKB.Administration.Algorithm;
    4343using Problem = HeuristicLab.Clients.OKB.Administration.Problem;
     
    296296
    297297    private static readonly HashSet<string> InterestingValueNames = new HashSet<string>() {
    298       "QualityPerEvaluations", "Problem Name", "Problem Type", "Algorithm Name", "Algorithm Type", "Maximization", "BestKnownQuality"
     298      "QualityPerEvaluations", "QualityPerClock", "Problem Name", "Problem Type", "Algorithm Name", "Algorithm Type", "Maximization", "BestKnownQuality"
    299299    };
    300300
     
    517517
    518518          IItem bkParam;
    519           if (!prob.Parameters.TryGetValue("BestKnownQuality", out bkParam) || !(bkParam is DoubleValue)) {
     519          if (!prob.Parameters.TryGetValue("BestKnownQuality", out bkParam) || !(bkParam is DoubleValue) || double.IsNaN(((DoubleValue)bkParam).Value)) {
    520520            var list = kvp.Value.SelectMany(x => x.Value)
    521               .Where(x => x.Results.ContainsKey("QualityPerEvaluations"))
    522               .Select(x => ((IndexedDataTable<double>)x.Results["QualityPerEvaluations"]).Rows.First().Values.Last().Item2);
     521              .Where(x => x.Results.ContainsKey("QualityPerClock"))
     522              .Select(x => (IndexedDataTable<double>)x.Results["QualityPerClock"])
     523              .Where(x => x.Rows.Count > 0 && x.Rows.First().Values.Count > 0)
     524              .Select(x => x.Rows.First().Values.Last().Item2);
    523525            if (!list.Any()) continue;
    524526            bkParam = new DoubleValue(maximization ? list.Max() : list.Min());
     
    765767      return knowledgeBase.Where(x => ((StringValue)x.Parameters["Problem Name"]).Value == ((StringValue)problemInstance.Parameters["Problem Name"]).Value)
    766768                          .GroupBy(x => algorithmId2AlgorithmInstanceMapping.GetByFirst(algorithmId2RunMapping.GetBySecond(x).Single()))
    767                           .ToDictionary(x => x.Key, x => ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerEvaluations", target, Maximization).ExpectedRuntime);
     769                          .ToDictionary(x => x.Key, x => ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerClock", target, Maximization).ExpectedRuntime);
    768770    }
    769771
     
    773775      return knowledgeBase.Where(x => ((StringValue)x.Parameters["Problem Name"]).Value == ((StringValue)problemInstance.Parameters["Problem Name"]).Value)
    774776                          .GroupBy(x => algorithmId2AlgorithmInstanceMapping.GetByFirst(algorithmId2RunMapping.GetBySecond(x).Single()))
    775                           .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerEvaluations", target, Maximization).ExpectedRuntime));
     777                          .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerClock", target, Maximization).ExpectedRuntime));
    776778    }
    777779
     
    806808          var max = ((BoolValue)prob.Parameters["Maximization"]).Value;
    807809          var bkq = ((DoubleValue)prob.Parameters["BestKnownQuality"]).Value;
    808           var ert = ExpectedRuntimeHelper.CalculateErt(pr.ToList(), "QualityPerEvaluations", GetTarget(bkq, target, max), max).ExpectedRuntime;
     810          var ert = ExpectedRuntimeHelper.CalculateErt(pr.ToList(), "QualityPerClock", GetTarget(bkq, target, max), max).ExpectedRuntime;
    809811          if (double.IsInfinity(ert)) ert = int.MaxValue;
    810812          ds.AddRow(new object[] { pr.Key }.Concat(f.Cast<object>()).Concat(new object[] { ert }));
     
    872874
    873875        var values = pr.GroupBy(x => algorithmId2RunMapping.GetBySecond(x).Single())
    874                        .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerEvaluations", GetTarget(bkq, target, max), max).ExpectedRuntime));
     876                       .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerClock", GetTarget(bkq, target, max), max).ExpectedRuntime));
    875877        var ranks = ClusteringHelper<long>.Cluster(nClasses, values, x => double.IsInfinity(x.Value))
    876878          .GetByCluster().ToList();
Note: See TracChangeset for help on using the changeset viewer.