Changeset 9431 for branches/HeuristicLab.Analysis.AlgorithmBehavior
- Timestamp:
- 05/03/13 10:08:38 (12 years ago)
- Location:
- branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/AfterCrossoverCombinedOperator.cs
r9331 r9431 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Data; 24 25 using HeuristicLab.Optimization; 25 26 using HeuristicLab.Optimization.Operators; … … 52 53 get { return (IValueParameter<SingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 53 54 } 55 public ValueParameter<IntValue> UpdateIntervalParameter { 56 get { return (ValueParameter<IntValue>)Parameters["UpdateInterval"]; } 57 } 58 public ILookupParameter<IntValue> GenerationsParameter { 59 get { return (ILookupParameter<IntValue>)Parameters["Generations"]; } 60 } 54 61 55 62 [StorableConstructor] … … 67 74 Parameters.Add(new LookupParameter<IEvaluator>("Evaluator", "The operator which is used to evaluate new solutions.")); 68 75 Parameters.Add(new ValueParameter<SingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator")); 76 Parameters.Add(new ValueParameter<IntValue>("UpdateInterval", "The interval in which the operator should be applied.", new IntValue(2))); 77 Parameters.Add(new LookupParameter<IntValue>("Generations", "Nr of generations.")); 69 78 70 79 SimilarityCalculatorParameter.ValueChanged += new System.EventHandler(SimilarityCalculatorParameter_ValueChanged); … … 96 105 Operators.Add(selPressureAnalyzer); 97 106 } 107 108 public override IOperation Apply() { 109 if (GenerationsParameter.ActualValue.Value % UpdateIntervalParameter.Value.Value == 0) { 110 return base.Apply(); 111 } else { 112 return base.BaseApply(); 113 } 114 } 98 115 } 99 116 } -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/AfterMutationCombinedOperator.cs
r9054 r9431 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Data; 24 25 using HeuristicLab.Optimization; 25 26 using HeuristicLab.Optimization.Operators; … … 36 37 public IValueParameter<SingleObjectiveSolutionSimilarityCalculator> SimilarityCalculatorParameter { 37 38 get { return (IValueParameter<SingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; } 39 } 40 public ValueParameter<IntValue> UpdateIntervalParameter { 41 get { return (ValueParameter<IntValue>)Parameters["UpdateInterval"]; } 42 } 43 public ILookupParameter<IntValue> GenerationsParameter { 44 get { return (ILookupParameter<IntValue>)Parameters["Generations"]; } 38 45 } 39 46 … … 60 67 Parameters.Add(new LookupParameter<IEvaluator>("Evaluator", "The operator which is used to evaluate new solutions.")); 61 68 Parameters.Add(new ValueParameter<SingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator")); 69 Parameters.Add(new ValueParameter<IntValue>("UpdateInterval", "The interval in which the operator should be applied.", new IntValue(2))); 70 Parameters.Add(new LookupParameter<IntValue>("Generations", "Nr of generations.")); 62 71 63 72 SimilarityCalculatorParameter.ValueChanged += new System.EventHandler(SimilarityCalculatorParameter_ValueChanged); … … 87 96 Operators.Add(solToPopAnalyzer); 88 97 } 98 99 public override IOperation Apply() { 100 if (GenerationsParameter.ActualValue.Value % UpdateIntervalParameter.Value.Value == 0) { 101 return base.Apply(); 102 } else { 103 return base.BaseApply(); 104 } 105 } 89 106 } 90 107 } -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/CombinedOperator.cs
r8711 r9431 54 54 public virtual void InitializeOperators() { } 55 55 56 protected IOperation BaseApply() { 57 return base.Apply(); 58 } 59 56 60 public override IOperation Apply() { 57 61 if (Operators.Count == 0) -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/CrossoverPerformanceAnalyzer.cs
r9252 r9431 92 92 [Storable] 93 93 private int equalParents = 0; 94 [Storable] 95 private bool scalingFinished = false; 94 96 #endregion 95 97 … … 112 114 successHelper = (DataTableHelper)original.successHelper.Clone(cloner); 113 115 equalParentsHelper = (DataTableHelper)original.equalParentsHelper.Clone(cloner); 116 scalingFinished = original.scalingFinished; 114 117 } 115 118 … … 242 245 } 243 246 244 if (GenerationsParameter.ActualValue.Value == 1) { 247 if (WorstKnownQualityParameter.ActualValue != null && !scalingFinished) { 248 scalingFinished = true; 245 249 double bkQuality = BestKnownQualityParameter.ActualValue.Value; 246 250 double wkQuality = WorstKnownQualityParameter.ActualValue.Value; … … 322 326 successHelper.CleanUpAndCompressData(); 323 327 equalParentsHelper.CleanUpAndCompressData(); 328 scalingFinished = false; 324 329 } 325 330 } -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/DuplicateSolutionsAnalyzer.cs
r9418 r9431 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Data; 27 28 using HeuristicLab.Operators; 28 29 using HeuristicLab.Optimization; … … 52 53 get { return (ILookupParameter<ItemCollection<IItem>>)Parameters["Operators"]; } 53 54 } 55 public ValueParameter<IntValue> UpdateIntervalParameter { 56 get { return (ValueParameter<IntValue>)Parameters["UpdateInterval"]; } 57 } 58 public ILookupParameter<IntValue> GenerationsParameter { 59 get { return (ILookupParameter<IntValue>)Parameters["Generations"]; } 60 } 54 61 #endregion 55 62 … … 77 84 Parameters.Add(new ValueParameter<ISingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator")); 78 85 Parameters.Add(new LookupParameter<ItemCollection<IItem>>("Operators", "The operators and items that the problem provides to the algorithms.")); 86 Parameters.Add(new ValueParameter<IntValue>("UpdateInterval", "The interval in which the operator should be applied.", new IntValue(2))); 87 Parameters.Add(new LookupParameter<IntValue>("Generations", "Nr of generations.")); 79 88 80 89 chartingHelper = new DataTableHelper(); … … 93 102 similarityChartHelper.InitializeChart(Results, "Average Similarity", new string[] { "Avg. Similarity per Generation" }); 94 103 95 var similarities = SimilarityCalculatorParameter.Value.CalculateSolutionCrowdSimilarity(ExecutionContext.Scope); 96 List<double> similaritiesArr = new List<double>(); 97 int counter = 0; 98 for (int i = 0; i < similarities.Length; i++) { 99 for (int j = 0; j < similarities[i].Length; j++) { 100 if (similarities[i][j] == 1.0 && i != j) { 101 counter++; 102 break; 104 if (GenerationsParameter.ActualValue.Value % UpdateIntervalParameter.Value.Value == 0) { 105 var similarities = SimilarityCalculatorParameter.Value.CalculateSolutionCrowdSimilarity(ExecutionContext.Scope); 106 List<double> similaritiesArr = new List<double>(); 107 int counter = 0; 108 for (int i = 0; i < similarities.Length; i++) { 109 for (int j = 0; j < similarities[i].Length; j++) { 110 if (similarities[i][j] == 1.0 && i != j) { 111 counter++; 112 break; 113 } 114 } 115 for (int j = 0; j < similarities[i].Length; j++) { 116 if (i != j) { 117 similaritiesArr.Add(similarities[i][j]); 118 } 103 119 } 104 120 } 105 for (int j = 0; j < similarities[i].Length; j++) { 106 if (i != j) { 107 similaritiesArr.Add(similarities[i][j]); 108 } 109 } 121 122 similarityChartHelper.AddPoint(similaritiesArr.Average()); 123 chartingHelper.AddPoint(counter / (double)similarities.Length); 110 124 } 111 112 similarityChartHelper.AddPoint(similaritiesArr.Average());113 chartingHelper.AddPoint(counter / (double)similarities.Length);114 125 return base.Apply(); 115 126 } -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/MutationPerformanceAnalyzer.cs
r9341 r9431 84 84 [Storable] 85 85 private int cnt = 0, lastGeneration = 0, success = 0; 86 [Storable] 87 private bool scalingFinished = false; 86 88 87 89 [StorableConstructor] … … 95 97 lastGeneration = original.lastGeneration; 96 98 success = original.success; 99 scalingFinished = original.scalingFinished; 97 100 } 98 101 … … 165 168 } 166 169 167 if (GenerationsParameter.ActualValue.Value == 1) { 170 if (WorstKnownQualityParameter.ActualValue != null && !scalingFinished) { 171 scalingFinished = true; 168 172 double bkQuality = BestKnownQualityParameter.ActualValue.Value; 169 173 double wkQuality = WorstKnownQualityParameter.ActualValue.Value; … … 182 186 } 183 187 188 184 189 if (GenerationsParameter.ActualValue.Value != 0) { 185 190 if (GenerationsParameter.ActualValue.Value > lastGeneration) { … … 208 213 diversityPlotHelper.CleanUp(); 209 214 successHelper.CleanUpAndCompressData(); 215 scalingFinished = false; 210 216 } 211 217 -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/SelectionPressureAnalyzer.cs
r9384 r9431 71 71 [Storable] 72 72 private int lastGeneration = 0; 73 [Storable] 74 private bool scalingFinished = false; 73 75 #endregion 74 76 … … 82 84 selIntensityPlot = (ScatterPlotHelper)original.selIntensityPlot.Clone(cloner); 83 85 SolutionQualityName = original.SolutionQualityName; 86 scalingFinished = original.scalingFinished; 84 87 } 85 88 … … 136 139 double quality = ParentsQualityParameter.ActualValue.Average(x => x.Value); 137 140 138 if (GenerationsParameter.ActualValue.Value == 1) { 141 if (WorstKnownQualityParameter.ActualValue != null && !scalingFinished) { 142 scalingFinished = true; 139 143 double bkQuality = BestKnownQualityParameter.ActualValue.Value; 140 144 double wkQuality = WorstKnownQualityParameter.ActualValue.Value; … … 181 185 selPressurePlot.CleanUp(); 182 186 selIntensityPlot.CleanUp(); 187 scalingFinished = false; 183 188 } 184 189 -
branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/SolutionToPopulationAnalyzer.cs
r9252 r9431 80 80 [Storable] 81 81 private int lastGeneration = 0; 82 [Storable] 83 private bool scalingFinished = false; 82 84 #endregion 83 85 … … 91 93 populationQualityPlot = (ScatterPlotHelper)original.populationQualityPlot.Clone(cloner); 92 94 qualityPlot = (ScatterPlotHelper)original.qualityPlot.Clone(cloner); 95 scalingFinished = original.scalingFinished; 93 96 } 94 97 … … 162 165 } 163 166 164 if (GenerationsParameter.ActualValue.Value == 1) { 167 if (WorstKnownQualityParameter.ActualValue != null && !scalingFinished) { 168 scalingFinished = true; 165 169 double bkQuality = BestKnownQualityParameter.ActualValue.Value; 166 170 double wkQuality = WorstKnownQualityParameter.ActualValue.Value; … … 210 214 populationDiversityPlot.CleanUp(); 211 215 qualityPlot.CleanUp(); 216 scalingFinished = false; 212 217 } 213 218
Note: See TracChangeset
for help on using the changeset viewer.