Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/10/13 15:15:13 (11 years ago)
Author:
sforsten
Message:

#1980:

  • added DecisionListView
  • added event handlers in *ProblemData
  • renamed project Problems.XCS.Views to Problems.lCS.Views and Problems.Instances.ConditionActionClassification to Problems.Instances.LCS
  • integrated niching in GAssist and added NichingTournamentSelector
  • minor code improvements and property changes
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  
        11Plugin.cs
         2obj
  • branches/LearningClassifierSystems/HeuristicLab.Problems.DecisionListClassification/3.3/DecisionListClassificationProblem.cs

    r9342 r9352  
    2727using HeuristicLab.Encodings.DecisionList.Interfaces;
    2828using HeuristicLab.Optimization;
     29using HeuristicLab.Optimization.Operators.LCS;
     30using HeuristicLab.Optimization.Operators.LCS.DefaultRule;
    2931using HeuristicLab.Parameters;
    3032using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3133using HeuristicLab.PluginInfrastructure;
    3234using HeuristicLab.Problems.DataAnalysis;
     35using HeuristicLab.Problems.Instances;
    3336
    3437namespace HeuristicLab.Problems.DecisionListClassification {
     
    3639  [StorableClass]
    3740  [Creatable("Problems")]
    38   public class DecisionListClassificationProblem : HeuristicOptimizationProblem<IDecisionListEvaluator, IDecisionListCreator>, IDecisionListClassificationProblem {
     41  public class DecisionListClassificationProblem : HeuristicOptimizationProblem<IDecisionListEvaluator, IDecisionListCreator>,
     42                                                   IDecisionListClassificationProblem, IGAssistProblem,
     43                                                   IProblemInstanceConsumer<DecisionListClassificationProblemData> {
    3944
    4045    #region parameter properties
     
    105110      : base(decisionlistEvaluator, decisionListCreator) {
    106111      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)));
    108113      Parameters.Add(new FixedValueParameter<DoubleValue>("BestKnownQuality", "", new DoubleValue(0.5)));
    109114      Parameters.Add(new FixedValueParameter<IntValue>("SizePenaltyMinRules", "", new IntValue(4)));
     
    116121      // do differently
    117122      ((MDLEvaluator)Evaluator).MDLCalculatorParameter.Value = new MDLCalculator(ActivationIterationParameter.Value.Value, InitialTheoryLengthRatioParameter.Value.Value, WeightRelaxFactorParameter.Value.Value);
    118       // do differently
    119       decisionListCreator.DefaultActionParameter.Value = problemData.FetchAction(0);
    120123
    121124      InitializeOperators();
     
    123126
    124127    private void InitializeOperators() {
     128      foreach (var op in ApplicationManager.Manager.GetInstances<IDefaultRuleOperator>())
     129        Operators.Add(op);
    125130      foreach (var op in ApplicationManager.Manager.GetInstances<IDecisionListCrossover>())
    126131        Operators.Add(op);
     
    129134
    130135      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);
    131144    }
    132145
    133146    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      }
    134158      foreach (IDecisionListCrossover op in Operators.OfType<IDecisionListCrossover>()) {
    135159        op.ParentsParameter.ActualName = SolutionCreator.DecisionListParameter.ActualName;
     
    148172      return new DecisionListClassificationProblem(this, cloner);
    149173    }
     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    }
    150188  }
    151189}
Note: See TracChangeset for help on using the changeset viewer.