Changeset 9431 for branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/DuplicateSolutionsAnalyzer.cs
- Timestamp:
- 05/03/13 10:08:38 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 }
Note: See TracChangeset
for help on using the changeset viewer.