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.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
  • branches/LearningClassifierSystems/HeuristicLab.Optimization.Operators.LCS/3.3/DefaultRule/AutoDefaultRule.cs

    r9342 r9352  
    4444      get { return (ILookupParameter<ItemArray<DoubleValue>>)Parameters["Quality"]; }
    4545    }
    46     public ILookupParameter<ItemArray<IGAssistIndividual>> IndividualParameter {
    47       get { return (ILookupParameter<ItemArray<IGAssistIndividual>>)Parameters["Individual"]; }
    48     }
    4946    public IValueLookupParameter<IntValue> AccuraciesCountParameter {
    5047      get { return (IValueLookupParameter<IntValue>)Parameters["AccuraciesCount"]; }
     
    7067      Parameters.Add(new ValueLookupParameter<ItemDictionary<IGAssistNiche, ItemList<DoubleValue>>>("AverageAccuracies"));
    7168      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality"));
    72       Parameters.Add(new ScopeTreeLookupParameter<IGAssistIndividual>("Individual"));
    7369      Parameters.Add(new LookupParameter<IRandom>("Random"));
    74       Parameters.Add(new ValueLookupParameter<IntValue>("AccuraciesCount"));
     70      Parameters.Add(new ValueLookupParameter<IntValue>("AccuraciesCount", new IntValue(15)));
    7571      Parameters.Add(new ValueLookupParameter<IGAssistNicheEqualityComparer>("NicheComparer"));
    76       Parameters.Add(new ValueLookupParameter<DoubleValue>("NicheStandardDeviation"));
     72      Parameters.Add(new ValueLookupParameter<DoubleValue>("NicheStandardDeviation", new DoubleValue(0.005)));
    7773    }
    7874    public override IDeepCloneable Clone(Cloner cloner) {
     
    8278    public override IOperation Apply() {
    8379      if (NichingParameter.ActualValue == null) {
     80        IList<IGAssistNiche> niches = GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches().ToList();
    8481        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()) {
    8885          AverageAccuracies.Add(niche, new ItemList<DoubleValue>(AccuraciesCount));
    8986        }
     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;
    9099      } else {
    91100        var nicheFitness = new Dictionary<IGAssistNiche, double>(NicheComparerParameter.ActualValue);
    92         foreach (var niche in PossibleDefaultClassesParameter.ActualValue) {
     101        foreach (var niche in GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches()) {
    93102          nicheFitness[niche] = 0.0;
    94103          while (AverageAccuracies[niche].Count >= AccuraciesCount) {
     
    105114        }
    106115
    107         foreach (var niche in PossibleDefaultClassesParameter.ActualValue) {
     116        foreach (var niche in GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches()) {
    108117          AverageAccuracies[niche].Insert(0, new DoubleValue(nicheFitness[niche]));
    109118        }
    110119
    111         var averages = new List<double>(PossibleDefaultClassesParameter.ActualValue.Count);
     120        var averages = new List<double>(GAssistNichesProblemDataParameter.ActualValue.GetPossibleNiches().Count());
    112121        if (AverageAccuracies.Values.First().Count >= AccuraciesCount) {
    113122          foreach (var averageAccuracy in AverageAccuracies.Values) {
Note: See TracChangeset for help on using the changeset viewer.