Changeset 15736 for branches/1614_GeneralizedQAP/HeuristicLab.OptimizationExpertSystem.Common/3.3/KnowledgeCenter.cs
- Timestamp:
- 02/07/18 20:55:57 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1614_GeneralizedQAP/HeuristicLab.OptimizationExpertSystem.Common/3.3/KnowledgeCenter.cs
r15255 r15736 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 24 using System.Drawing; 25 using System.IO; 26 using System.Linq; 27 using System.Threading; 28 using System.Threading.Tasks; 29 using HeuristicLab.Algorithms.DataAnalysis; 22 30 using HeuristicLab.Analysis; 23 31 using HeuristicLab.Analysis.SelfOrganizingMaps; … … 32 40 using HeuristicLab.Problems.DataAnalysis; 33 41 using 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;42 42 using Algorithm = HeuristicLab.Clients.OKB.Administration.Algorithm; 43 43 using Problem = HeuristicLab.Clients.OKB.Administration.Problem; … … 296 296 297 297 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" 299 299 }; 300 300 … … 517 517 518 518 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)) { 520 520 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); 523 525 if (!list.Any()) continue; 524 526 bkParam = new DoubleValue(maximization ? list.Max() : list.Min()); … … 765 767 return knowledgeBase.Where(x => ((StringValue)x.Parameters["Problem Name"]).Value == ((StringValue)problemInstance.Parameters["Problem Name"]).Value) 766 768 .GroupBy(x => algorithmId2AlgorithmInstanceMapping.GetByFirst(algorithmId2RunMapping.GetBySecond(x).Single())) 767 .ToDictionary(x => x.Key, x => ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPer Evaluations", target, Maximization).ExpectedRuntime);769 .ToDictionary(x => x.Key, x => ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerClock", target, Maximization).ExpectedRuntime); 768 770 } 769 771 … … 773 775 return knowledgeBase.Where(x => ((StringValue)x.Parameters["Problem Name"]).Value == ((StringValue)problemInstance.Parameters["Problem Name"]).Value) 774 776 .GroupBy(x => algorithmId2AlgorithmInstanceMapping.GetByFirst(algorithmId2RunMapping.GetBySecond(x).Single())) 775 .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPer Evaluations", target, Maximization).ExpectedRuntime));777 .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPerClock", target, Maximization).ExpectedRuntime)); 776 778 } 777 779 … … 806 808 var max = ((BoolValue)prob.Parameters["Maximization"]).Value; 807 809 var bkq = ((DoubleValue)prob.Parameters["BestKnownQuality"]).Value; 808 var ert = ExpectedRuntimeHelper.CalculateErt(pr.ToList(), "QualityPer Evaluations", GetTarget(bkq, target, max), max).ExpectedRuntime;810 var ert = ExpectedRuntimeHelper.CalculateErt(pr.ToList(), "QualityPerClock", GetTarget(bkq, target, max), max).ExpectedRuntime; 809 811 if (double.IsInfinity(ert)) ert = int.MaxValue; 810 812 ds.AddRow(new object[] { pr.Key }.Concat(f.Cast<object>()).Concat(new object[] { ert })); … … 872 874 873 875 var values = pr.GroupBy(x => algorithmId2RunMapping.GetBySecond(x).Single()) 874 .ToDictionary(x => x.Key, x => Math.Log10(ExpectedRuntimeHelper.CalculateErt(x.ToList(), "QualityPer Evaluations", 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)); 875 877 var ranks = ClusteringHelper<long>.Cluster(nClasses, values, x => double.IsInfinity(x.Value)) 876 878 .GetByCluster().ToList();
Note: See TracChangeset
for help on using the changeset viewer.