Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebApplication/MVC2/HLWebOKBQueryPlugin/Helpers/RunCollectionData.cs @ 6076

Last change on this file since 6076 was 6076, checked in by msammer, 13 years ago

#1446 Changed RunCollectionTable for using it in the MVC-pluginhost. Changes for using real Run-objects in the table

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