Changeset 9352 for branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/DefaultRule/AutoDefaultRule.cs
- Timestamp:
- 04/10/13 15:15:13 (11 years ago)
- Location:
- branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3
-
Property
svn:ignore
set to
obj
Plugin.cs
-
Property
svn:ignore
set to
-
branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/DefaultRule/AutoDefaultRule.cs
r9342 r9352 44 44 get { return (ILookupParameter<ItemArray<DoubleValue>>)Parameters["Quality"]; } 45 45 } 46 public ILookupParameter<ItemArray<IGAssistIndividual>> IndividualParameter {47 get { return (ILookupParameter<ItemArray<IGAssistIndividual>>)Parameters["Individual"]; }48 }49 46 public IValueLookupParameter<IntValue> AccuraciesCountParameter { 50 47 get { return (IValueLookupParameter<IntValue>)Parameters["AccuraciesCount"]; } … … 70 67 Parameters.Add(new ValueLookupParameter<ItemDictionary<IGAssistNiche, ItemList<DoubleValue>>>("AverageAccuracies")); 71 68 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality")); 72 Parameters.Add(new ScopeTreeLookupParameter<IGAssistIndividual>("Individual"));73 69 Parameters.Add(new LookupParameter<IRandom>("Random")); 74 Parameters.Add(new ValueLookupParameter<IntValue>("AccuraciesCount" ));70 Parameters.Add(new ValueLookupParameter<IntValue>("AccuraciesCount", new IntValue(15))); 75 71 Parameters.Add(new ValueLookupParameter<IGAssistNicheEqualityComparer>("NicheComparer")); 76 Parameters.Add(new ValueLookupParameter<DoubleValue>("NicheStandardDeviation" ));72 Parameters.Add(new ValueLookupParameter<DoubleValue>("NicheStandardDeviation", new DoubleValue(0.005))); 77 73 } 78 74 public override IDeepCloneable Clone(Cloner cloner) { … … 82 78 public override IOperation Apply() { 83 79 if (NichingParameter.ActualValue == null) { 80 IList<IGAssistNiche> niches = GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches().ToList(); 84 81 NichingParameter.ActualValue = new BoolValue(true); 85 NichesParameter.ActualValue = new IntValue( PossibleDefaultClassesParameter.ActualValue.Count);86 AverageAccuraciesParameter.ActualValue = new ItemDictionary<IGAssistNiche, ItemList<DoubleValue>>(NicheComparerParameter.ActualValue );87 foreach (var niche in PossibleDefaultClassesParameter.ActualValue) {82 NichesParameter.ActualValue = new IntValue(niches.Count); 83 AverageAccuraciesParameter.ActualValue = new ItemDictionary<IGAssistNiche, ItemList<DoubleValue>>(NicheComparerParameter.ActualValue as IEqualityComparer<IGAssistNiche>); 84 foreach (var niche in GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches()) { 88 85 AverageAccuracies.Add(niche, new ItemList<DoubleValue>(AccuraciesCount)); 89 86 } 87 88 int i = 0; 89 foreach (var individual in IndividualParameter.ActualValue) { 90 individual.SetNiche(RandomParameter.ActualValue, niches[i]); 91 i++; 92 i %= niches.Count; 93 } 94 95 OperationCollection next = new OperationCollection(); 96 next.Add(EvaluateSubScopes()); 97 next.Add(base.Apply()); 98 return next; 90 99 } else { 91 100 var nicheFitness = new Dictionary<IGAssistNiche, double>(NicheComparerParameter.ActualValue); 92 foreach (var niche in PossibleDefaultClassesParameter.ActualValue) {101 foreach (var niche in GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches()) { 93 102 nicheFitness[niche] = 0.0; 94 103 while (AverageAccuracies[niche].Count >= AccuraciesCount) { … … 105 114 } 106 115 107 foreach (var niche in PossibleDefaultClassesParameter.ActualValue) {116 foreach (var niche in GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches()) { 108 117 AverageAccuracies[niche].Insert(0, new DoubleValue(nicheFitness[niche])); 109 118 } 110 119 111 var averages = new List<double>( PossibleDefaultClassesParameter.ActualValue.Count);120 var averages = new List<double>(GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches().Count()); 112 121 if (AverageAccuracies.Values.First().Count >= AccuraciesCount) { 113 122 foreach (var averageAccuracy in AverageAccuracies.Values) {
Note: See TracChangeset
for help on using the changeset viewer.