[6076] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.Linq;
|
---|
| 4 | using System.Web;
|
---|
| 5 |
|
---|
| 6 | using HLWebOKBQueryPlugin.OKBQueryService;
|
---|
| 7 |
|
---|
| 8 | namespace HLWebOKBQueryPlugin.Helpers {
|
---|
| 9 | public class RunCollectionData : IResult, IParams {
|
---|
| 10 |
|
---|
| 11 | #region properties
|
---|
[6226] | 12 | // Run
|
---|
| 13 | public long Id { get; set; }
|
---|
| 14 |
|
---|
[6076] | 15 | // Result
|
---|
| 16 | public string ExecutionTime { get; set; }
|
---|
| 17 | public int EvaluatedSolutions { get; set; }
|
---|
| 18 | public int Generations { get; set; }
|
---|
| 19 | public string BestTSPSolution { get; set; }
|
---|
| 20 | public double CurrentBestQuality { get; set; }
|
---|
| 21 | public double CurrentAverageQuality { get; set; }
|
---|
| 22 | public double CurrentWorstQuality { get; set; }
|
---|
| 23 | public double BestQuality { get; set; }
|
---|
| 24 | public double BestKnownQuality { get; set; }
|
---|
| 25 | public double AbsoluteDifferenceBestKnownToBest { get; set; }
|
---|
| 26 | public double RelativeDifferenceBestKnownToBest { get; set; }
|
---|
| 27 | public string Qualities { get; set; }
|
---|
| 28 |
|
---|
| 29 | // Parameters
|
---|
| 30 | public int Seed { get; set; }
|
---|
| 31 | public bool SetSeedRandomly { get; set; }
|
---|
| 32 | public int PopulationSize { get; set; }
|
---|
| 33 | public string Selector { get; set; }
|
---|
| 34 | public bool Selector_CopySelected { get; set; }
|
---|
| 35 | public int Selector_NumberOfSelectedSubScopes { get; set; }
|
---|
| 36 | public bool Selector_Windowing { get; set; }
|
---|
| 37 | public string Crossover { get; set; }
|
---|
| 38 | public double MutationProbability { get; set; }
|
---|
| 39 | public string Mutator { get; set; }
|
---|
| 40 | public int Elites { get; set; }
|
---|
| 41 | public string Analyzer { get; set; }
|
---|
| 42 | public int Analyzer_UpdateInterval { get; set; }
|
---|
| 43 | public string Analyzer_1 { get; set; }
|
---|
| 44 | public bool Analyzer_1_StoreHistory { get; set; }
|
---|
| 45 | public int Analyzer_1_UpdateInterval { get; set; }
|
---|
| 46 | public string Analyzer_2 { get; set; }
|
---|
| 47 | public bool Analyzer_2_StoreHistory { get; set; }
|
---|
| 48 | public int Analyzer_2_UpdateInterval { get; set; }
|
---|
| 49 | public string Analyzer_0 { get; set; }
|
---|
| 50 | public string Analyzer_3 { get; set; }
|
---|
| 51 | public int MaximumGenerations { get; set; }
|
---|
| 52 | public string AlgorithmName { get; set; }
|
---|
| 53 | public string AlgorithmType { get; set; }
|
---|
| 54 | public bool Maximization { get; set; }
|
---|
| 55 | public string Coordinates { get; set; }
|
---|
| 56 | public string DistanceMatrix { get; set; }
|
---|
| 57 | public bool UseDistanceMatrix { get; set; }
|
---|
| 58 | public string SolutionCreator { get; set; }
|
---|
| 59 | public int SolutionCreator_Length { get; set; }
|
---|
| 60 | public string SolutionCreator_PermutationType { get; set; }
|
---|
| 61 | public string Evaluator { get; set; }
|
---|
| 62 | public string BestKnownSolution { get; set; }
|
---|
| 63 | public string ProblemName { get; set; }
|
---|
| 64 | public string ProblemType { get; set; }
|
---|
| 65 | #endregion
|
---|
| 66 |
|
---|
| 67 | #region constructor/initialisation
|
---|
| 68 | public RunCollectionData(Run run) {
|
---|
[6226] | 69 | Id = run.Id;
|
---|
[6076] | 70 |
|
---|
| 71 | // results
|
---|
| 72 | ExecutionTime = (string)getValue("Execution Time", run.ResultValues);
|
---|
| 73 | EvaluatedSolutions = (int)getValue("EvaluatedSolutions", run.ResultValues);
|
---|
| 74 | Generations = (int)getValue("Generations", run.ResultValues);
|
---|
| 75 | BestTSPSolution = (string)getValue("Best TSP Solution", run.ResultValues);
|
---|
| 76 | CurrentBestQuality = (double)getValue("CurrentBestQuality", run.ResultValues);
|
---|
| 77 | CurrentAverageQuality = (double)getValue("CurrentAverageQuality", run.ResultValues);
|
---|
| 78 | CurrentWorstQuality = (double)getValue("CurrentWorstQuality", run.ResultValues);
|
---|
| 79 | BestQuality = (double)getValue("BestQuality", run.ResultValues);
|
---|
| 80 | BestKnownQuality = (double)getValue("BestKnownQuality", run.ResultValues);
|
---|
| 81 | AbsoluteDifferenceBestKnownToBest = (double)getValue("AbsoluteDifferenceBestKnownToBest", run.ResultValues);
|
---|
| 82 | RelativeDifferenceBestKnownToBest = (double)getValue("RelativeDifferenceBestKnownToBest", run.ResultValues);
|
---|
| 83 | Qualities = (string)getValue("Qualities", run.ResultValues);
|
---|
| 84 |
|
---|
| 85 | // parameter
|
---|
| 86 | Seed = (int)getValue("Seed", run.ParameterValues);
|
---|
| 87 | SetSeedRandomly = (bool)getValue("SetSeedRandomly", run.ParameterValues);
|
---|
| 88 | PopulationSize = (int)getValue("PopulationSize", run.ParameterValues);
|
---|
| 89 | Selector = (string)getValue("Selector", run.ParameterValues);
|
---|
| 90 | Selector_CopySelected = (bool)getValue("Selector.CopySelected", run.ParameterValues);
|
---|
| 91 | Selector_NumberOfSelectedSubScopes = (int)getValue("Selector.NumberOfSelectedSubScopes", run.ParameterValues);
|
---|
| 92 | Selector_Windowing = (bool)getValue("Selector.Windowing", run.ParameterValues);
|
---|
| 93 | Crossover = (string)getValue("Crossover", run.ParameterValues);
|
---|
| 94 | MutationProbability = (double)getValue("MutationProbability", run.ParameterValues);
|
---|
| 95 | Mutator = (string)getValue("Mutator", run.ParameterValues);
|
---|
| 96 |
|
---|
| 97 | Elites = (int)getValue("Elites", run.ParameterValues);
|
---|
| 98 | Analyzer = (string)getValue("Analyzer", run.ParameterValues);
|
---|
| 99 | Analyzer_UpdateInterval = (int)getValue("Analyzer.UpdateInterval", run.ParameterValues);
|
---|
| 100 | Analyzer_1 = (string)getValue("Analyzer.1", run.ParameterValues);
|
---|
| 101 | Analyzer_1_StoreHistory = (bool)getValue("Analyzer.1.StoreHistory", run.ParameterValues);
|
---|
| 102 | Analyzer_1_UpdateInterval = (int)getValue("Analyzer.1.UpdateInterval", run.ParameterValues);
|
---|
| 103 | Analyzer_2 = (string)getValue("Analyzer.2", run.ParameterValues);
|
---|
| 104 | Analyzer_2_StoreHistory = (bool)getValue("Analyzer.2.StoreHistory", run.ParameterValues);
|
---|
| 105 | Analyzer_2_UpdateInterval = (int)getValue("Analyzer.2.UpdateInterval", run.ParameterValues);
|
---|
| 106 | Analyzer_0 = (string)getValue("Analyzer.0", run.ParameterValues);
|
---|
| 107 |
|
---|
| 108 | Analyzer_3 = (string)getValue("Analyzer.3", run.ParameterValues);
|
---|
| 109 | MaximumGenerations = (int)getValue("MaximumGenerations", run.ParameterValues);
|
---|
| 110 | AlgorithmName = (string)getValue("Algorithm Name", run.ParameterValues);
|
---|
| 111 | AlgorithmType = (string)getValue("Algorithm Type", run.ParameterValues);
|
---|
| 112 | Maximization = (bool)getValue("Maximization", run.ParameterValues);
|
---|
| 113 | Coordinates = (string)getValue("Coordinates", run.ParameterValues);
|
---|
| 114 | DistanceMatrix = (string)getValue("DistanceMatrix", run.ParameterValues);
|
---|
| 115 | UseDistanceMatrix = (bool)getValue("UseDistanceMatrix", run.ParameterValues);
|
---|
| 116 | SolutionCreator = (string)getValue("SolutionCreator", run.ParameterValues);
|
---|
| 117 | SolutionCreator_Length = (int)getValue("SolutionCreator.Length", run.ParameterValues);
|
---|
| 118 |
|
---|
| 119 | SolutionCreator_PermutationType = (string)getValue("SolutionCreator.PermutationType", run.ParameterValues);
|
---|
| 120 | Evaluator = (string)getValue("Evaluator", run.ParameterValues);
|
---|
| 121 | BestKnownQuality = (double)getValue("BestKnownQuality", run.ParameterValues);
|
---|
| 122 | BestKnownSolution = (string)getValue("BestKnownSolution", run.ParameterValues);
|
---|
| 123 | ProblemName = (string)getValue("Problem Name", run.ParameterValues);
|
---|
| 124 | ProblemType = (string)getValue("Problem Type", run.ParameterValues);
|
---|
| 125 |
|
---|
| 126 | }
|
---|
| 127 | #endregion
|
---|
| 128 |
|
---|
| 129 | private object getValue(string name, Value[] vals) {
|
---|
| 130 | foreach (Value val in vals) {
|
---|
| 131 | if (val.Name.Equals(name)) {
|
---|
| 132 | if (val.DataType.Name == typeof(OKBQueryService.BinaryValue).Name)
|
---|
| 133 | return ((BinaryValue)val).Value;
|
---|
| 134 | else if (val.DataType.Name == typeof(OKBQueryService.BoolValue).Name)
|
---|
| 135 | return ((BoolValue)val).Value;
|
---|
| 136 | else if (val.DataType.Name == typeof(OKBQueryService.DoubleValue).Name)
|
---|
| 137 | return ((DoubleValue)val).Value;
|
---|
| 138 | else if (val.DataType.Name == typeof(OKBQueryService.FloatValue).Name)
|
---|
| 139 | return ((FloatValue)val).Value;
|
---|
| 140 | else if (val.DataType.Name == typeof(OKBQueryService.IntValue).Name)
|
---|
| 141 | return ((IntValue)val).Value;
|
---|
| 142 | else if (val.DataType.Name == typeof(OKBQueryService.LongValue).Name)
|
---|
| 143 | return ((LongValue)val).Value;
|
---|
| 144 | else if (val.DataType.Name == typeof(OKBQueryService.StringValue).Name)
|
---|
| 145 | return ((StringValue)val).Value;
|
---|
| 146 | else if (val.DataType.Name == "PercentValue")
|
---|
| 147 | return ((DoubleValue)val).Value;
|
---|
| 148 | else
|
---|
| 149 | return val.DataType.Name;
|
---|
| 150 | }
|
---|
| 151 | }
|
---|
| 152 | return null;
|
---|
| 153 | }
|
---|
| 154 |
|
---|
| 155 | }
|
---|
| 156 | } |
---|