Changeset 9352 for branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3/DecisionListClassificationProblem.cs
- Timestamp:
- 04/10/13 15:15:13 (11 years ago)
- Location:
- branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3
- Property svn:ignore
-
old new 1 1 Plugin.cs 2 obj
-
- Property svn:ignore
-
branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3/DecisionListClassificationProblem.cs
r9342 r9352 27 27 using HeuristicLab.Encodings.DecisionList.Interfaces; 28 28 using HeuristicLab.Optimization; 29 using HeuristicLab.Optimization.Operators.LCS; 30 using HeuristicLab.Optimization.Operators.LCS.DefaultRule; 29 31 using HeuristicLab.Parameters; 30 32 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 33 using HeuristicLab.PluginInfrastructure; 32 34 using HeuristicLab.Problems.DataAnalysis; 35 using HeuristicLab.Problems.Instances; 33 36 34 37 namespace HeuristicLab.Problems.DecisionListClassification { … … 36 39 [StorableClass] 37 40 [Creatable("Problems")] 38 public class DecisionListClassificationProblem : HeuristicOptimizationProblem<IDecisionListEvaluator, IDecisionListCreator>, IDecisionListClassificationProblem { 41 public class DecisionListClassificationProblem : HeuristicOptimizationProblem<IDecisionListEvaluator, IDecisionListCreator>, 42 IDecisionListClassificationProblem, IGAssistProblem, 43 IProblemInstanceConsumer<DecisionListClassificationProblemData> { 39 44 40 45 #region parameter properties … … 105 110 : base(decisionlistEvaluator, decisionListCreator) { 106 111 Parameters.Add(new ValueParameter<IDecisionListClassificationProblemData>("ProblemData", "", problemData)); 107 Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "", new BoolValue( true)));112 Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "", new BoolValue(false))); 108 113 Parameters.Add(new FixedValueParameter<DoubleValue>("BestKnownQuality", "", new DoubleValue(0.5))); 109 114 Parameters.Add(new FixedValueParameter<IntValue>("SizePenaltyMinRules", "", new IntValue(4))); … … 116 121 // do differently 117 122 ((MDLEvaluator)Evaluator).MDLCalculatorParameter.Value = new MDLCalculator(ActivationIterationParameter.Value.Value, InitialTheoryLengthRatioParameter.Value.Value, WeightRelaxFactorParameter.Value.Value); 118 // do differently119 decisionListCreator.DefaultActionParameter.Value = problemData.FetchAction(0);120 123 121 124 InitializeOperators(); … … 123 126 124 127 private void InitializeOperators() { 128 foreach (var op in ApplicationManager.Manager.GetInstances<IDefaultRuleOperator>()) 129 Operators.Add(op); 125 130 foreach (var op in ApplicationManager.Manager.GetInstances<IDecisionListCrossover>()) 126 131 Operators.Add(op); … … 129 134 130 135 ParameterizeOperators(); 136 137 BestTrainingDecisionListAnalyzer analyzer = new BestTrainingDecisionListAnalyzer(); 138 analyzer.ProblemDataParameter.ActualName = ProblemDataParameter.Name; 139 analyzer.IndividualParameter.ActualName = SolutionCreator.DecisionListParameter.ActualName; 140 analyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 141 analyzer.ResultsParameter.ActualName = "Results"; 142 analyzer.MaximizationParameter.ActualName = MaximizationParameter.Name; 143 Operators.Add(analyzer); 131 144 } 132 145 133 146 private void ParameterizeOperators() { 147 var autoDefaultRule = Operators.Where(x => x is AutoDefaultRule).Select(x => x as AutoDefaultRule).First(); 148 autoDefaultRule.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 149 autoDefaultRule.GAssistNichesProblemDataParameter.ActualName = ProblemDataParameter.Name; 150 autoDefaultRule.NicheComparerParameter.Value = new DecisionListNicheComparer(); 151 foreach (IDefaultRuleOperator op in Operators.OfType<IDefaultRuleOperator>()) { 152 op.IndividualParameter.ActualName = SolutionCreator.DecisionListParameter.ActualName; 153 op.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 154 op.GAssistNichesProblemDataParameter.ActualName = ProblemDataParameter.Name; 155 op.GAssistNichesProblemDataParameter.Hidden = true; 156 op.NichingParameter.ActualName = "Niching"; 157 } 134 158 foreach (IDecisionListCrossover op in Operators.OfType<IDecisionListCrossover>()) { 135 159 op.ParentsParameter.ActualName = SolutionCreator.DecisionListParameter.ActualName; … … 148 172 return new DecisionListClassificationProblem(this, cloner); 149 173 } 174 175 IParameter IGAssistProblem.ProblemDataParameter { 176 get { return ProblemDataParameter; } 177 } 178 179 public string NichingParameterName { 180 get { return "Niching"; } 181 } 182 183 public void Load(DecisionListClassificationProblemData data) { 184 Name = data.Name; 185 Description = data.Description; 186 ProblemData = data; 187 } 150 188 } 151 189 }
Note: See TracChangeset
for help on using the changeset viewer.