Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/04/13 16:16:38 (12 years ago)
Author:
sforsten
Message:

#1980:

  • deleted not needed interface IMatching
  • finished VariableVector encoding
  • the algorithm LearningClassifierSystem is now independent of a specific encoding. It still needs the ConditionActionEncoding.
  • merged r9191:9203 HeuristicLab.Core from trunk to branch
Location:
branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformActionManipulator.cs

    r9089 r9204  
    4747    }
    4848
    49     protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector child, CombinedIntegerVector parent) {
    50       return Manipulate(random, parent, child, PossibleActionsParameter.ActualValue);
     49    protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector child, CombinedIntegerVector input) {
     50      return Manipulate(random, child, PossibleActionsParameter.ActualValue);
    5151    }
    5252
    53     public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, IEnumerable<CombinedIntegerVector> possibleActions) {
    54       var otherActions = possibleActions.Except(((CombinedIntegerVector)parent.Action).ToEnumerable());
     53    public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector child, IEnumerable<CombinedIntegerVector> possibleActions) {
     54      var otherActions = possibleActions.Except(((CombinedIntegerVector)child.Action).ToEnumerable());
    5555      int actionIndex = random.Next(otherActions.Count());
    5656      CombinedIntegerVector newAction = otherActions.ElementAt(actionIndex);
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformOnePositionInConditionManipulator.cs

    r9090 r9204  
    4141    }
    4242
    43     protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child) {
    44       return Manipulate(parent, child, random.Next(((CombinedIntegerVector)child.Condition).Length));
     43    protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector input, CombinedIntegerVector child) {
     44      return Manipulate(input, child, random.Next(((CombinedIntegerVector)child.Condition).Length));
    4545    }
    4646
    47     public static CombinedIntegerVector Manipulate(CombinedIntegerVector parent, CombinedIntegerVector child, int index) {
     47    public static CombinedIntegerVector Manipulate(CombinedIntegerVector input, CombinedIntegerVector child, int index) {
    4848      int max = child.Bounds[index % child.Bounds.Rows, 1] - 1;
    4949      if (child[index].Equals(max)) {
    50         child[index] = parent[index];
     50        child[index] = input[index];
    5151      } else {
    5252        child[index] = max;
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/Manipulator/UniformSomePositionManipulator.cs

    r9154 r9204  
    2323using HeuristicLab.Core;
    2424using HeuristicLab.Data;
     25using HeuristicLab.Encodings.ConditionActionEncoding;
    2526using HeuristicLab.Parameters;
    2627using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2728
    2829namespace HeuristicLab.Encodings.CombinedIntegerVectorEncoding {
    29   public class UniformSomePositionManipulator : CombinedIntegerVectorManipulator {
     30  public class UniformSomePositionManipulator : CombinedIntegerVectorManipulator, IProbabilityMutatorOperator {
    3031
    3132    public IValueLookupParameter<PercentValue> ProbabilityParameter {
     
    5051    }
    5152
    52     protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child) {
    53       return Manipulate(random, parent, child, ProbabilityParameter.ActualValue.Value, PossibleActionsParameter.ActualValue);
     53    protected override CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector input, CombinedIntegerVector child) {
     54      return Manipulate(random, input, child, ProbabilityParameter.ActualValue.Value, PossibleActionsParameter.ActualValue);
    5455    }
    5556
    56     public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
    57       child = ManipulateCondition(random, parent, child, probability);
    58       return ManipulateAction(random, parent, child, probability, possibleActions);
     57    public static CombinedIntegerVector Manipulate(IRandom random, CombinedIntegerVector input, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
     58      child = ManipulateCondition(random, input, child, probability);
     59      return ManipulateAction(random, child, probability, possibleActions);
    5960    }
    6061
    61     public static CombinedIntegerVector ManipulateCondition(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability) {
     62    public static CombinedIntegerVector ManipulateCondition(IRandom random, CombinedIntegerVector input, CombinedIntegerVector child, double probability) {
    6263      int conditionLength = child.Length - child.ActionLength;
    6364      for (int index = 0; index < child.Length - child.ActionLength; index++) {
    6465        if (random.NextDouble() < probability) {
    65           child = UniformOnePositionInConditionManipulator.Manipulate(parent, child, index);
     66          child = UniformOnePositionInConditionManipulator.Manipulate(input, child, index);
    6667        }
    6768      }
     
    6970    }
    7071
    71     public static CombinedIntegerVector ManipulateAction(IRandom random, CombinedIntegerVector parent, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
     72    public static CombinedIntegerVector ManipulateAction(IRandom random, CombinedIntegerVector child, double probability, IItemSet<CombinedIntegerVector> possibleActions) {
    7273      if (child.ActionLength > 0 && random.NextDouble() < probability) {
    73         UniformActionManipulator.Manipulate(random, parent, child, possibleActions);
     74        UniformActionManipulator.Manipulate(random, child, possibleActions);
    7475      }
    7576      return child;
Note: See TracChangeset for help on using the changeset viewer.