Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/04/13 20:46:18 (12 years ago)
Author:
sforsten
Message:

#1980:

  • added GA subsumption
  • simplified deletion before covering
  • simplified XCSDeletionOperator
Location:
branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3
Files:
2 edited

Legend:

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

    r9105 r9110  
    2424using HeuristicLab.Core;
    2525using HeuristicLab.Data;
     26using HeuristicLab.Encodings.ConditionActionEncoding;
    2627using HeuristicLab.Operators;
    2728using HeuristicLab.Optimization.Operators;
     
    3637  [StorableClass]
    3738  public sealed class LCSAdaptedGeneticAlgorithm : AlgorithmOperator {
     39    private const string TEMPID = "TempID";
     40    private const string SUBSUMEDBY = "SubsumedBy";
     41    private const string SUBSUMED = "Subsumed";
     42
    3843    #region Parameter properties
    3944    public ValueLookupParameter<IRandom> RandomParameter {
     
    7580    public ValueLookupParameter<IntValue> PopulationSizeParameter {
    7681      get { return (ValueLookupParameter<IntValue>)Parameters["PopulationSize"]; }
     82    }
     83    public ValueLookupParameter<BoolValue> DoGASubsumptionParameter {
     84      get { return (ValueLookupParameter<BoolValue>)Parameters["DoGASubsumption"]; }
    7785    }
    7886    private ScopeParameter CurrentScopeParameter {
     
    113121      Parameters.Add(new ValueLookupParameter<IntValue>("EvaluatedSolutions", "The number of times solutions have been evaluated."));
    114122      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population."));
     123      Parameters.Add(new ValueLookupParameter<BoolValue>("DoGASubsumption", "Sets if GA subsumption is executed."));
    115124      Parameters.Add(new ScopeParameter("CurrentScope", "The current scope which represents a population of solutions on which the genetic algorithm should be applied."));
    116125      #endregion
     
    126135      Placeholder crossover = new Placeholder();
    127136      Placeholder afterCrossover = new Placeholder();
    128       StochasticBranch stochasticBranch = new StochasticBranch();
    129137      Placeholder mutator = new Placeholder();
    130138      SubScopesRemover subScopesRemover = new SubScopesRemover();
     
    136144      ConditionalBranch conditionalBranch = new ConditionalBranch();
    137145
     146      TempSubScopeIDAssigner tempIdAssigner = new TempSubScopeIDAssigner();
     147      ConditionalBranch doGASubsumptionBranch1 = new ConditionalBranch();
     148      UniformSubScopesProcessor setSubsumptionFalseSubScopesProcessor = new UniformSubScopesProcessor();
     149      Assigner setSubsumpByAssigner = new Assigner();
     150      Assigner setSubsumptionFalseAssigner = new Assigner();
     151      CheckGASubsumptionOperator checkGASubsumptionOperator = new CheckGASubsumptionOperator();
     152      ConditionalBranch doGASubsumptionBranch2 = new ConditionalBranch();
     153      ExecuteGASubsumptionOperator executeGAsubsumptionOperator = new ExecuteGASubsumptionOperator();
     154      ConditionalSelector subsumptionSelector = new ConditionalSelector();
     155      LeftReducer subsumptionLeftReducer = new LeftReducer();
     156
    138157      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class GeneticAlgorithm expects this to be called Generations
    139158
     
    144163      analyzer1.OperatorParameter.ActualName = "Analyzer";
    145164
     165      tempIdAssigner.LeftSideParameter.ActualName = TEMPID;
     166
     167      setSubsumpByAssigner.LeftSideParameter.ActualName = SUBSUMEDBY;
     168      setSubsumpByAssigner.RightSideParameter.Value = new IntValue(-1);
     169
     170      setSubsumptionFalseAssigner.LeftSideParameter.ActualName = SUBSUMED;
     171      setSubsumptionFalseAssigner.RightSideParameter.Value = new BoolValue(false);
     172
    146173      selector.Name = "Selector";
    147174      selector.OperatorParameter.ActualName = "Selector";
     
    155182      afterCrossover.OperatorParameter.ActualName = "AfterCrossover";
    156183
    157       stochasticBranch.ProbabilityParameter.ActualName = "MutationProbability";
    158       stochasticBranch.RandomParameter.ActualName = "Random";
    159 
    160184      mutator.Name = "Mutator";
    161185      mutator.OperatorParameter.ActualName = "Mutator";
    162186
     187      doGASubsumptionBranch1.ConditionParameter.ActualName = DoGASubsumptionParameter.ActualName;
     188
     189      checkGASubsumptionOperator.ChildClassifiersParameter.ActualName = "CombinedIntegerVector";
     190      checkGASubsumptionOperator.ParentsClassifiersParameter.ActualName = "CombinedIntegerVector";
     191      checkGASubsumptionOperator.NumerositiesParameter.ActualName = "Numerosity";
     192      checkGASubsumptionOperator.ExperiencesParameter.ActualName = "Experience";
     193      checkGASubsumptionOperator.ErrorsParameter.ActualName = "Error";
     194      checkGASubsumptionOperator.TempIDParameter.ActualName = TEMPID;
     195      checkGASubsumptionOperator.ErrorZeroParameter.ActualName = "ErrorZero";
     196      checkGASubsumptionOperator.ThetaSubsumptionParameter.ActualName = "ThetaSubsumption";
     197      checkGASubsumptionOperator.SubsumedByParameter.ActualName = SUBSUMEDBY;
     198      checkGASubsumptionOperator.SubsumedParameter.ActualName = SUBSUMED;
     199
    163200      subScopesRemover.RemoveAllSubScopes = true;
     201
     202      doGASubsumptionBranch2.ConditionParameter.ActualName = DoGASubsumptionParameter.ActualName;
     203
     204      executeGAsubsumptionOperator.NumerositiesParameter.ActualName = "Numerosity";
     205      executeGAsubsumptionOperator.TempIDParameter.ActualName = TEMPID;
     206      executeGAsubsumptionOperator.SubsumedByParameter.ActualName = SUBSUMEDBY;
     207
     208      subsumptionSelector.ConditionParameter.ActualName = SUBSUMED;
     209      subsumptionSelector.CopySelected = new BoolValue(false);
    164210
    165211      subScopesCounter.Name = "Increment EvaluatedSolutions";
     
    184230      variableCreator.Successor = resultsCollector1;
    185231      resultsCollector1.Successor = analyzer1;
    186       analyzer1.Successor = selector;
     232      analyzer1.Successor = tempIdAssigner;
     233      tempIdAssigner.Successor = setSubsumptionFalseSubScopesProcessor;
     234      setSubsumptionFalseSubScopesProcessor.Operator = setSubsumpByAssigner;
     235      setSubsumpByAssigner.Successor = setSubsumptionFalseAssigner;
     236      setSubsumptionFalseAssigner.Successor = null;
     237      setSubsumptionFalseSubScopesProcessor.Successor = selector;
    187238      selector.Successor = subScopesProcessor1;
    188239      subScopesProcessor1.Operators.Add(new EmptyOperator());
     
    193244      uniformSubScopesProcessor1.Successor = subScopesCounter;
    194245      crossover.Successor = afterCrossover;
    195       afterCrossover.Successor = stochasticBranch;
    196       stochasticBranch.FirstBranch = mutator;
    197       stochasticBranch.SecondBranch = null;
    198       stochasticBranch.Successor = subScopesRemover;
    199       mutator.Successor = null;
     246      afterCrossover.Successor = mutator;
     247      mutator.Successor = doGASubsumptionBranch1;
     248      doGASubsumptionBranch1.TrueBranch = checkGASubsumptionOperator;
     249      doGASubsumptionBranch1.FalseBranch = new EmptyOperator();
     250      doGASubsumptionBranch1.Successor = subScopesRemover;
    200251      subScopesRemover.Successor = null;
    201252      subScopesCounter.Successor = null;
    202       mergingReducer.Successor = intCounter;
     253      mergingReducer.Successor = doGASubsumptionBranch2;
     254      doGASubsumptionBranch2.TrueBranch = executeGAsubsumptionOperator;
     255      doGASubsumptionBranch2.FalseBranch = new EmptyOperator();
     256      executeGAsubsumptionOperator.Successor = subsumptionSelector;
     257      subsumptionSelector.Successor = subsumptionLeftReducer;
     258      subsumptionLeftReducer.Successor = null;
     259      doGASubsumptionBranch2.Successor = intCounter;
    203260      intCounter.Successor = comparator;
    204261      comparator.Successor = analyzer2;
  • branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LearningClassifierSystemMainLoop.cs

    r9105 r9110  
    2323using HeuristicLab.Core;
    2424using HeuristicLab.Data;
     25using HeuristicLab.Encodings.CombinedIntegerVectorEncoding;
    2526using HeuristicLab.Encodings.ConditionActionEncoding;
    26 using HeuristicLab.Encodings.IntegerVectorEncoding;
    2727using HeuristicLab.Operators;
    2828using HeuristicLab.Optimization;
     
    3939  [StorableClass]
    4040  public sealed class LearningClassifierSystemMainLoop : AlgorithmOperator {
     41    private const string HASTOBEDELETED = "HasToBeDeleted";
     42    private const string HASBEENSUBSUMED = "HasBeenSubsumed";
    4143
    4244    #region Parameter Properties
     
    6264    private DoDeletionBeforeCoveringOperator doDeletionBeforeCovering;
    6365    private CoveringOperator covering;
    64     private ConditionalSelector subsumptionSelector;
     66
     67    private UniformSomePositionManipulator test;
    6568
    6669    private Placeholder evaluator;
     
    8891      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.", new ItemSet<ICrossover>() { new HeuristicLab.Encodings.CombinedIntegerVectorEncoding.SinglePointCrossover() }, new HeuristicLab.Encodings.CombinedIntegerVectorEncoding.SinglePointCrossover()));
    8992      Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions. This operator is executed in parallel, if an engine is used which supports parallelization."));
    90       UniformOnePositionManipulator test = new UniformOnePositionManipulator();
    91       test.IntegerVectorParameter.ActualName = "CombinedIntegerVector";
    92       Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.", new ItemSet<IManipulator>() { new UniformOnePositionManipulator() }, test));
     93      test = new UniformSomePositionManipulator();
     94      test.ProbabilityParameter.ActualName = "MutationProbability";
     95      test.ChildParameter.ActualName = "CombinedIntegerVector";
     96      Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.", new ItemSet<IManipulator>() { new UniformSomePositionManipulator() }, test));
    9397      XCSAfterCrossoverOperator afterCrossover = new XCSAfterCrossoverOperator();
    9498      Parameters.Add(new ConstrainedValueParameter<IOperator>("AfterCrossover", "The operator used to select solutions for reproduction.", new ItemSet<IOperator>() { new XCSAfterCrossoverOperator() }, afterCrossover));
     
    113117      doDeletionBeforeCovering = new DoDeletionBeforeCoveringOperator();
    114118      ConditionalBranch doDeletionBeforeCoveringConditionalBranch = new ConditionalBranch();
    115       MergingReducer matchSetMergingReducerForDeletion = new MergingReducer();
    116       SubScopeVariableCopier subscopeVariableCopier = new SubScopeVariableCopier();
    117119      XCSDeletionOperator deletionOperator = new XCSDeletionOperator();
    118120      ConditionalSelector deletionSelector = new ConditionalSelector();
    119121      LeftReducer leftReducerAfterDeletionSelection = new LeftReducer();
    120       UniformSubScopesProcessor matchConditionAfterDeletionSubScopesProcessor = new UniformSubScopesProcessor();
    121       ConditionalSelector conditionMatchSelectorAfterDeletion = new ConditionalSelector();
    122       SubScopesProcessor matchSetAfterDeletionSubScopesProcessor = new SubScopesProcessor();
    123       CountNumberOfUniqueActions countNumberOfUniqueActionsAfterDeletion = new CountNumberOfUniqueActions();
    124       SubScopesProcessor coveringAfterDeletionSubScopesProcessor = new SubScopesProcessor();
    125122      covering = new CoveringOperator();
    126123      MergingReducer actionSetMergingReducer = new MergingReducer();
     
    134131      UniformSubScopesProcessor updateParametersSubScopesProcessor = new UniformSubScopesProcessor();
    135132      ConditionalBranch actionSetSubsumptionBranch = new ConditionalBranch();
    136       subsumptionSelector = new ConditionalSelector();
     133      UniformSubScopesProcessor setSubsumedToFalseSubScopeProcessor = new UniformSubScopesProcessor();
     134      Assigner setSubsumedToFalseAssigner = new Assigner();
     135      ConditionalSelector subsumptionSelector = new ConditionalSelector();
    137136      LeftReducer leftReducer = new LeftReducer();
    138137      XCSCheckIfGAShouldBeApplied checkIfGAShouldRun = new XCSCheckIfGAShouldBeApplied();
     
    143142      IntCounter currentPopulationSizeCounter = new IntCounter();
    144143      CalculateNumberOfDeletionsOperator calculateNumberOfDeletions = new CalculateNumberOfDeletionsOperator();
     144      UniformSubScopesProcessor setDeletionFalseSubScopeProcessor1 = new UniformSubScopesProcessor();
     145      UniformSubScopesProcessor setDeletionFalseSubScopeProcessor2 = new UniformSubScopesProcessor();
     146      Assigner setDeletionFalseAssigner = new Assigner();
     147      InsertInPopulationOperator insertInPopulation = new InsertInPopulationOperator();
    145148      XCSDeletionOperator deletionOperatorAfterGA = new XCSDeletionOperator();
    146149      ConditionalSelector deletionSelectorAfterGA = new ConditionalSelector();
     
    169172
    170173      conditionMatchSelector.CopySelected = new BoolValue(false);
    171       conditionMatchSelector.ConditionParameter.ActualName = "MatchCondition";
    172 
    173       conditionMatchSelectorAfterDeletion.CopySelected = new BoolValue(false);
    174       conditionMatchSelectorAfterDeletion.ConditionParameter.ActualName = "MatchCondition";
     174      conditionMatchSelector.ConditionParameter.ActualName = matchConditionOperator.MatchConditionParameter.ActualName;
    175175
    176176      countNumberOfUniqueActions.ClassifiersParameter.ActualName = "CombinedIntegerVector";
    177177
    178       countNumberOfUniqueActionsAfterDeletion.ClassifiersParameter.ActualName = "CombinedIntegerVector";
    179 
    180       subscopeVariableCopier.SubScopeIndexParameter.Value = new IntValue(1);
    181 
     178      doDeletionBeforeCovering.ClassifiersParameter.ActualName = "CombinedIntegerVector";
     179      doDeletionBeforeCovering.MatchConditionParameter.ActualName = matchConditionOperator.MatchConditionParameter.ActualName;
    182180      doDeletionBeforeCovering.CurrentPopulationSizeParameter.ActualName = "CurrentPopulationSize";
    183       doDeletionBeforeCovering.NumberOfUniqueActionsParameter.ActualName = countNumberOfUniqueActions.NumberOfUniqueActionsParameter.ActualName;
    184181      doDeletionBeforeCovering.PopulationSizeParameter.ActualName = "N";
    185182
    186183      doDeletionBeforeCoveringConditionalBranch.ConditionParameter.ActualName = doDeletionBeforeCovering.DoDeletionParameter.ActualName;
    187184
     185      setDeletionFalseAssigner.LeftSideParameter.ActualName = HASTOBEDELETED;
     186      setDeletionFalseAssigner.RightSideParameter.Value = new BoolValue(false);
     187
    188188      deletionOperator.NumberToDeleteParameter.ActualName = doDeletionBeforeCovering.NumberToDeleteParameter.ActualName;
     189      deletionOperator.HasToBeDeletedParameter.ActualName = HASTOBEDELETED;
    189190      deletionOperator.AverageActionSetSizesParameter.ActualName = "AverageActionSetSize";
    190191      deletionOperator.FitnessesParameter.ActualName = "Fitness";
     
    195196      deletionOperator.RandomParameter.ActualName = "Random";
    196197
    197       deletionSelector.ConditionParameter.ActualName = deletionOperator.HasToBeDeletedVariableName;
     198      deletionSelector.ConditionParameter.ActualName = HASTOBEDELETED;
    198199      deletionSelector.CopySelected = new BoolValue(false);
    199200
     
    219220      actionSetSubsumptionBranch.ConditionParameter.ActualName = "DoActionSetSubsumption";
    220221
     222      setSubsumedToFalseAssigner.LeftSideParameter.ActualName = HASBEENSUBSUMED;
     223      setSubsumedToFalseAssigner.RightSideParameter.Value = new BoolValue(false);
     224
     225      subsumptionSelector.ConditionParameter.ActualName = HASBEENSUBSUMED;
    221226      subsumptionSelector.CopySelected = new BoolValue(false);
    222227
     
    274279      adaptedGeneticAlgorithmMainLoop.MaximumGenerationsParameter.ActualName = "ZeroIntValue";
    275280      adaptedGeneticAlgorithmMainLoop.QualityParameter.ActualName = "Fitness";
    276       adaptedGeneticAlgorithmMainLoop.MutationProbabilityParameter.Value = new PercentValue(10);
     281      adaptedGeneticAlgorithmMainLoop.MutationProbabilityParameter.ActualName = "MutationProbability";
    277282      adaptedGeneticAlgorithmMainLoop.MaximizationParameter.Value = new BoolValue(true);
    278283      adaptedGeneticAlgorithmMainLoop.AfterCrossoverParameter.ActualName = AfterCrossoverParameter.Name;
     
    281286      currentPopulationSizeCounter.Increment = new IntValue(2);
    282287
     288      insertInPopulation.ClassifiersParameter.ActualName = "CombinedIntegerVector";
     289      insertInPopulation.NumerositiesParameter.ActualName = "Numerosity";
     290      insertInPopulation.HasToBeDeletedParameter.ActualName = HASTOBEDELETED;
     291      insertInPopulation.InsertInPopulationParameter.ActualName = "InsertInPopulation";
     292
    283293      calculateNumberOfDeletions.CurrentPopulationSizeParameter.ActualName = "CurrentPopulationSize";
    284294      calculateNumberOfDeletions.PopulationSizeParameter.ActualName = "N";
    285295
    286296      deletionOperatorAfterGA.NumberToDeleteParameter.ActualName = calculateNumberOfDeletions.NumberOfDeletionsParameter.ActualName;
     297      deletionOperatorAfterGA.HasToBeDeletedParameter.ActualName = HASTOBEDELETED;
    287298      deletionOperatorAfterGA.AverageActionSetSizesParameter.ActualName = "AverageActionSetSize";
    288299      deletionOperatorAfterGA.FitnessesParameter.ActualName = "Fitness";
     
    293304      deletionOperatorAfterGA.RandomParameter.ActualName = "Random";
    294305
    295       deletionSelectorAfterGA.ConditionParameter.ActualName = deletionOperatorAfterGA.HasToBeDeletedVariableName;
     306      deletionSelectorAfterGA.ConditionParameter.ActualName = HASTOBEDELETED;
    296307      deletionSelectorAfterGA.CopySelected = new BoolValue(false);
    297308      #endregion
     
    307318      classifierFetcher.Successor = matchCondtionSubScopesProcessor;
    308319      matchCondtionSubScopesProcessor.Operator = matchConditionOperator;
    309       matchCondtionSubScopesProcessor.Successor = conditionMatchSelector;
     320      matchCondtionSubScopesProcessor.Successor = doDeletionBeforeCovering;
     321      doDeletionBeforeCovering.Successor = doDeletionBeforeCoveringConditionalBranch;
     322      doDeletionBeforeCoveringConditionalBranch.TrueBranch = setDeletionFalseSubScopeProcessor1;
     323      doDeletionBeforeCoveringConditionalBranch.FalseBranch = conditionMatchSelector;
     324      setDeletionFalseSubScopeProcessor1.Operator = setDeletionFalseAssigner;
     325      setDeletionFalseSubScopeProcessor1.Successor = deletionOperator;
     326      deletionOperator.Successor = deletionSelector;
     327      deletionSelector.Successor = leftReducerAfterDeletionSelection;
     328      //if a classifier with a unique action for the match set has been deleted, then there are still to many classifiers in the population
     329      leftReducerAfterDeletionSelection.Successor = doDeletionBeforeCovering;
    310330      conditionMatchSelector.Successor = matchSetSubScopesProcessor;
    311331      matchSetSubScopesProcessor.Operators.Add(new EmptyOperator());
    312332      matchSetSubScopesProcessor.Operators.Add(countNumberOfUniqueActions);
    313       matchSetSubScopesProcessor.Successor = subscopeVariableCopier;
    314       subscopeVariableCopier.Successor = doDeletionBeforeCovering;
    315       doDeletionBeforeCovering.Successor = doDeletionBeforeCoveringConditionalBranch;
    316       doDeletionBeforeCoveringConditionalBranch.TrueBranch = matchSetMergingReducerForDeletion;
    317       matchSetMergingReducerForDeletion.Successor = deletionOperator;
    318       deletionOperator.Successor = deletionSelector;
    319       deletionSelector.Successor = leftReducerAfterDeletionSelection;
    320       leftReducerAfterDeletionSelection.Successor = matchConditionAfterDeletionSubScopesProcessor;
    321       doDeletionBeforeCoveringConditionalBranch.FalseBranch = coveringAfterDeletionSubScopesProcessor;
    322       coveringAfterDeletionSubScopesProcessor.Operators.Add(new EmptyOperator());
    323       coveringAfterDeletionSubScopesProcessor.Operators.Add(covering);
    324       coveringAfterDeletionSubScopesProcessor.Successor = matchSetMergingReducer;
    325       matchConditionAfterDeletionSubScopesProcessor.Operator = matchConditionOperator;
    326       matchConditionAfterDeletionSubScopesProcessor.Successor = conditionMatchSelectorAfterDeletion;
    327       conditionMatchSelectorAfterDeletion.Successor = matchSetAfterDeletionSubScopesProcessor;
    328       matchSetAfterDeletionSubScopesProcessor.Operators.Add(new EmptyOperator());
    329       matchSetAfterDeletionSubScopesProcessor.Operators.Add(countNumberOfUniqueActionsAfterDeletion);
    330       matchSetAfterDeletionSubScopesProcessor.Successor = matchSetMergingReducer;
    331       countNumberOfUniqueActionsAfterDeletion.Successor = covering;
    332 
     333      countNumberOfUniqueActions.Successor = covering;
     334      matchSetSubScopesProcessor.Successor = matchSetMergingReducer;
    333335      covering.Successor = predictionArrayCalculator;
    334336      predictionArrayCalculator.Successor = actionSelector;
     
    345347      updateParametersSubScopesProcessor.Operator = evaluator;
    346348      updateParametersSubScopesProcessor.Successor = actionSetSubsumptionBranch;
    347       actionSetSubsumptionBranch.TrueBranch = actionSetSubsumption;
     349      actionSetSubsumptionBranch.TrueBranch = setSubsumedToFalseSubScopeProcessor;
     350      setSubsumedToFalseSubScopeProcessor.Operator = setSubsumedToFalseAssigner;
     351      setSubsumedToFalseSubScopeProcessor.Successor = actionSetSubsumption;
    348352      actionSetSubsumption.Successor = subsumptionSelector;
    349353      subsumptionSelector.Successor = leftReducer;
     
    359363      actionSetSubScopesProcessor.Successor = actionSetMergingReducer;
    360364
    361       matchSetMergingReducer.Successor = calculateNumberOfDeletions;
     365      matchSetMergingReducer.Successor = setDeletionFalseSubScopeProcessor2;
     366      setDeletionFalseSubScopeProcessor2.Operator = setDeletionFalseAssigner;
     367      setDeletionFalseSubScopeProcessor2.Successor = insertInPopulation;
     368      insertInPopulation.Successor = calculateNumberOfDeletions;
    362369      calculateNumberOfDeletions.Successor = deletionOperatorAfterGA;
    363370      deletionOperatorAfterGA.Successor = deletionSelectorAfterGA;
     
    388395      classifierFetcher.OperatorParameter.ActualName = problem.ClassifierFetcherParameter.Name;
    389396
     397      test.FetchedClassifierParameter.ActualName = problem.ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
     398      test.PossibleActionsParameter.ActualName = problem.PossibleActionsConcreteClassParameter.Name;
     399
    390400      actionExecuter.OperatorParameter.ActualName = problem.ActionExecuterParameter.Name;
    391401
     
    396406      problem.ActionSetSubsumptionOperator.NumerositiesParameter.ActualName = "Numerosity";
    397407
    398       subsumptionSelector.ConditionParameter.ActualName = problem.ActionSetSubsumptionOperator.HasBeenSubsumedParameterName;
     408      problem.ActionSetSubsumptionOperator.HasBeenSubsumedParameter.ActualName = HASBEENSUBSUMED;
    399409
    400410      actionSetSubsumption.OperatorParameter.ActualName = problem.ActionSetSubsumptionOperatorParameter.Name;
Note: See TracChangeset for help on using the changeset viewer.