Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/11/13 13:32:32 (11 years ago)
Author:
sforsten
Message:

#1980:

  • set plugin dependencies
  • added smart initialization
  • added hierarchical selection
  • fixed major and minor default rule
  • fixed several smaller bugs
  • some refactoring has been done
Location:
branches/LearningClassifierSystems/HeuristicLab.Algorithms.GAssist/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.GAssist/3.3/GAssist.cs

    r9411 r9605  
    201201      get { return (VariableCreator)RandomCreator.Successor; }
    202202    }
     203    private Placeholder InitialDefaultRuleExecution {
     204      get { return (Placeholder)VariableCreator.Successor; }
     205    }
    203206    private Placeholder MDLIterationPlaceholder {
    204       get { return (Placeholder)VariableCreator.Successor; }
     207      get { return (Placeholder)InitialDefaultRuleExecution.Successor; }
    205208    }
    206209    private ILASOperator ILASOperator {
     
    210213      get { return (InitializeDiscretizersOperator)ILASOperator.Successor; }
    211214    }
    212     private SolutionsCreator SolutionsCreator {
    213       get { return (SolutionsCreator)InitializeDiscretizers.Successor; }
     215    private NicheSolutionCreator SolutionsCreator {
     216      get { return (NicheSolutionCreator)InitializeDiscretizers.Successor; }
    214217    }
    215218    private GAssistMainLoop GeneticAlgorithmMainLoop {
     
    255258      RandomCreator randomCreator = new RandomCreator();
    256259      VariableCreator variableCreator = new VariableCreator();
     260      Placeholder initialDefaultRuleExecution = new Placeholder();
    257261      Placeholder mdlIterationPlaceholder = new Placeholder();
    258262      ILASOperator ilasOperator = new ILASOperator();
    259263      InitializeDiscretizersOperator initializeDiscretizers = new InitializeDiscretizersOperator();
    260       SolutionsCreator solutionsCreator = new SolutionsCreator();
     264      NicheSolutionCreator solutionsCreator = new NicheSolutionCreator();
    261265      SubScopesCounter subScopesCounter = new SubScopesCounter();
    262266      ResultsCollector resultsCollector = new ResultsCollector();
     
    272276
    273277      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class GAssistMainLoop expects this to be called Generations
    274       variableCreator.Successor = mdlIterationPlaceholder;
     278      variableCreator.Successor = initialDefaultRuleExecution;
     279
     280      initialDefaultRuleExecution.Name = "Initial Default Rule Execution";
     281      initialDefaultRuleExecution.OperatorParameter.ActualName = DefaultRuleParameter.Name;
     282      initialDefaultRuleExecution.Successor = mdlIterationPlaceholder;
    275283
    276284      mdlIterationPlaceholder.Name = "MDL Iteration Operator";
     
    315323      foreach (INichingSingleObjectiveSelector selector in ApplicationManager.Manager.GetInstances<INichingSingleObjectiveSelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name))
    316324        SelectorParameter.ValidValues.Add(selector);
    317       //INichingSingleObjectiveSelector proportionalSelector = SelectorParameter.ValidValues.FirstOrDefault(x => x.GetType().Name.Equals("ProportionalSelector"));
    318       //if (proportionalSelector != null) SelectorParameter.Value = proportionalSelector;
     325
    319326      ParameterizeSelectors();
    320327
     
    369376      SpecialStages.Operators.Clear();
    370377      var splitOperator = new SplitOperator();
    371       splitOperator.ProbabilityParameter.ActualName = "SplitProbability";
     378      splitOperator.ProbabilityParameter.ActualName = SplitProbabilityParameter.Name;
    372379      //change
    373380      splitOperator.IndividualParameter.ActualName = "DecisionList";
    374381      SpecialStages.Operators.Add(splitOperator);
    375382      var mergeOperator = new MergeOperator();
    376       mergeOperator.ProbabilityParameter.ActualName = "MergeProbability";
     383      mergeOperator.ProbabilityParameter.ActualName = MergeProbabilityParameter.Name;
    377384      //change
    378385      mergeOperator.IndividualParameter.ActualName = "DecisionList";
     
    381388      reinitializeOperator.ProbabilityParameter.ActualName = "ReinitializeProbability";
    382389      reinitializeOperator.DiscretizersParameter.ActualName = "Discretizers";
    383       reinitializeOperator.OneProbabilityParameter.ActualName = "OneProbability";
     390      reinitializeOperator.OneProbabilityParameter.ActualName = OneProbabilityParameter.Name;
    384391      //change
    385392      reinitializeOperator.IndividualParameter.ActualName = "DecisionList";
     
    508515      SolutionsCreator.EvaluatorParameter.ActualName = Problem.EvaluatorParameter.Name;
    509516      SolutionsCreator.SolutionCreatorParameter.ActualName = Problem.SolutionCreatorParameter.Name;
     517      SolutionsCreator.GAssistNichesProblemDataParameter.ActualName = Problem.ProblemDataParameter.Name;
    510518      // change!
    511       ((IGAssistIndividualCreator)Problem.SolutionCreatorParameter.ActualValue).DiscretizersParameter.ActualName = "Discretizers";
     519      ((IGAssistSolutionCreator)Problem.SolutionCreatorParameter.ActualValue).DiscretizersParameter.ActualName = "Discretizers";
    512520    }
    513521    private void ParameterizeGeneticAlgorithmMainLoop() {
     
    536544        selector.ParentsPerChildParameter.Value = new IntValue(2);
    537545        ParameterizeStochasticOperator(selector);
     546        ParameterizeIterationBasedOperators(selector);
    538547      }
    539548      if (Problem != null) {
    540         foreach (INichingSingleObjectiveSelector selector in SelectorParameter.ValidValues.OfType<INichingSingleObjectiveSelector>()) {
     549        foreach (INichingSingleObjectiveSelector selector in SelectorParameter.ValidValues) {
    541550          selector.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
    542551          selector.MaximizationParameter.Hidden = true;
     
    547556          //change
    548557          selector.IndividualParameter.ActualName = "DecisionList";
     558        }
     559        foreach (IHierarchicalSingleObjectiveSelector selector in SelectorParameter.ValidValues.OfType<IHierarchicalSingleObjectiveSelector>()) {
     560          selector.LengthParameter.ActualName = Problem.Evaluator.LengthParameter.ActualName;
    549561        }
    550562      }
     
    595607        else oldDefaultRule = null;
    596608      }
    597       if (oldDefaultRule == null && defaultdefaultRule != null)
     609      if (oldDefaultRule == null && defaultdefaultRule != null) {
    598610        DefaultRuleParameter.Value = defaultdefaultRule;
     611        SolutionsCreator.NichingParameter.ActualName = defaultdefaultRule.NichingParameter.ActualName;
     612      }
    599613    }
    600614    private void UpdateCrossovers() {
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.GAssist/3.3/Plugin.cs.frame

    r9334 r9605  
    2525  [Plugin("HeuristicLab.Algorithms.GAssist", "3.3.7.$WCREV$")]
    2626  [PluginFile("HeuristicLab.Algorithms.GAssist-3.3.dll", PluginFileType.Assembly)]
     27  [PluginDependency("HeuristicLab.Analysis", "3.3")]
    2728  [PluginDependency("HeuristicLab.Collections", "3.3")]
    2829  [PluginDependency("HeuristicLab.Common", "3.3")]
    29   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
     30  [PluginDependency("HeuristicLab.Core", "3.3")]
     31  [PluginDependency("HeuristicLab.Data", "3.3")]
     32  [PluginDependency("HeuristicLab.Operators", "3.3")]
     33  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     34  [PluginDependency("HeuristicLab.Optimization.Operators", "3.3")]
     35  [PluginDependency("HeuristicLab.Optimization.Operators.LCS", "3.3")]
     36  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    3037  [PluginDependency("HeuristicLab.Persistence", "3.3")]
     38  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
     39  [PluginDependency("HeuristicLab.Random", "3.3")]
     40  [PluginDependency("HeuristicLab.Selection", "3.3")]
    3141  public class HeuristicLabAlgorithmsGAssistPlugin : PluginBase {
    3242  }
Note: See TracChangeset for help on using the changeset viewer.