Changeset 6090 for branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/AlgorithmRunsAnalyzer.cs
- Timestamp:
- 05/01/11 22:02:28 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/AlgorithmRunsAnalyzer.cs
r6038 r6090 54 54 public LookupParameter<BoolValue> MaximizationParameter { 55 55 get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; } 56 } 57 public LookupParameter<DoubleValue> QualityWeightParameter { 58 get { return (LookupParameter<DoubleValue>)Parameters[MetaOptimizationProblem.QualityWeightParameterName]; } 59 } 60 public LookupParameter<DoubleValue> StandardDeviationWeightParameter { 61 get { return (LookupParameter<DoubleValue>)Parameters[MetaOptimizationProblem.StandardDeviationWeightParameterName]; } 62 } 63 public LookupParameter<DoubleValue> EvaluatedSolutionsWeightParameter { 64 get { return (LookupParameter<DoubleValue>)Parameters[MetaOptimizationProblem.EvaluatedSolutionsWeightParameterName]; } 56 65 } 57 66 #endregion … … 75 84 Parameters.Add(new ScopeTreeLookupParameter<IntValue>("RepetitionIndex", "The index of the repetition")); 76 85 Parameters.Add(new LookupParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.")); 86 Parameters.Add(new LookupParameter<DoubleValue>(MetaOptimizationProblem.QualityWeightParameterName)); 87 Parameters.Add(new LookupParameter<DoubleValue>(MetaOptimizationProblem.StandardDeviationWeightParameterName)); 88 Parameters.Add(new LookupParameter<DoubleValue>(MetaOptimizationProblem.EvaluatedSolutionsWeightParameterName)); 77 89 } 78 90 protected AlgorithmRunsAnalyzer(AlgorithmRunsAnalyzer original, Cloner cloner) … … 92 104 bool maximization = MaximizationParameter.ActualValue.Value; 93 105 int repetitions = RepetitionsParameter.ActualValue.Value; 106 double qualityWeight = QualityWeightParameter.ActualValue.Value; 107 double standardDeviationWeight = StandardDeviationWeightParameter.ActualValue.Value; 108 double evaluatedSolutionsWeight = EvaluatedSolutionsWeightParameter.ActualValue.Value; 94 109 var resultNames = new List<string> { "BestQuality", "Execution Time", "EvaluatedSolutions" }; 95 110 int currentGeneration = GenerationsParameter.ActualValue != null ? GenerationsParameter.ActualValue.Value : 0; … … 149 164 parameterConfiguration.Runs = runs; 150 165 151 this.QualityParameter.ActualValue = new DoubleValue(MetaOptimizationUtil.Normalize(parameterConfiguration, referenceQualityAverages, referenceQualityDeviations, referenceEvaluatedSolutionAverages, 1, 0.1, 1, maximization));166 this.QualityParameter.ActualValue = new DoubleValue(MetaOptimizationUtil.Normalize(parameterConfiguration, referenceQualityAverages, referenceQualityDeviations, referenceEvaluatedSolutionAverages, qualityWeight, standardDeviationWeight, evaluatedSolutionsWeight, maximization)); 152 167 } else { 153 168 // something terrible happened -> most probably due to invalid parameters. … … 155 170 double penaltyValue; 156 171 if (maximization) 157 penaltyValue = results.ContainsKey("CurrentWorstQuality") ? ((DoubleValue)results["CurrentWorstQuality"] ).Value : referenceQualityAverages.Min();172 penaltyValue = results.ContainsKey("CurrentWorstQuality") ? ((DoubleValue)results["CurrentWorstQuality"].Value).Value : referenceQualityAverages.Min(); 158 173 else 159 penaltyValue = results.ContainsKey("CurrentWorstQuality") ? ((DoubleValue)results["CurrentWorstQuality"]).Value : referenceQualityAverages.Max(); 174 penaltyValue = results.ContainsKey("CurrentWorstQuality") ? ((DoubleValue)results["CurrentWorstQuality"].Value).Value : referenceQualityAverages.Max(); 175 160 176 this.QualityParameter.ActualValue = new DoubleValue(penaltyValue); 177 parameterConfiguration.Quality = new DoubleValue(penaltyValue); 178 179 parameterConfiguration.AverageExecutionTimes = new ItemList<TimeSpanValue>(Enumerable.Repeat(new TimeSpanValue(TimeSpan.Zero), problems.Count)); 180 parameterConfiguration.AverageEvaluatedSolutions = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 181 parameterConfiguration.Repetitions = new IntValue(repetitions); 182 parameterConfiguration.AverageQualities = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 183 parameterConfiguration.BestQualities = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 184 parameterConfiguration.WorstQualities = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 185 parameterConfiguration.QualityVariances = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 186 parameterConfiguration.QualityStandardDeviations = new DoubleArray(Enumerable.Repeat(0.0, problems.Count).ToArray()); 187 parameterConfiguration.Runs = null; 161 188 } 162 189
Note: See TracChangeset
for help on using the changeset viewer.