Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/25/13 12:37:18 (12 years ago)
Author:
sforsten
Message:

#1980:

  • fixed several bugs (crossover, subsumption, serialization etc.)
  • added ModuloOperator
  • CombinedIntegerVectorClassificationProblem\Data and VariableVectorClassificationProblem\Data inherit from ConditionActionClassificationProblem\Data
  • it can now be set how often the analyzers have to be executed
  • VariableVectorAction, VariableVectorCondition and VariableVectorInput now inherit from Item
Location:
branches/LearningClassifierSystems/HeuristicLab.Problems.VariableVectorClassification/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Problems.VariableVectorClassification/3.3/VariableVectorClassificationProblem.cs

    r9228 r9242  
    3333using HeuristicLab.Problems.DataAnalysis;
    3434
    35 namespace HeuristicLab.Problems.CombinedIntegerVectorClassification {
     35namespace HeuristicLab.Problems.VariableVectorClassification {
    3636  [StorableClass]
    3737  public class VariableVectorClassificationProblem : ConditionActionClassificationProblem<UniformRandomVariableVectorCreator,
    3838                                                            VariableVectorActionComparer,
    39                                                             VariableVectorClassificationProblemData> {
     39                                                            VariableVectorClassificationProblemData>, IVariableVectorClassificationProblem {
    4040    public override string ChildName {
    4141      get { return "VariableVector"; }
     
    4949      get { return (IFixedValueParameter<VariableVectorActionComparer>)Parameters["ClassifierComparer"]; }
    5050    }
     51    public IVariableVectorCoveringCreator VariableVectorCoveringCreator {
     52      get { return (IVariableVectorCoveringCreator)CoveringSolutionCreator; }
     53    }
    5154    #endregion
    5255
     
    5760        ProblemDataParameter.Value = value;
    5861        if (value != null) {
    59           SetProblemDataSpecificParameters();
     62          SetProblemDataSettings();
    6063        }
    6164      }
     
    9194      Parameters.Add(new FixedValueParameter<ItemSet<VariableVectorAction>>("PossibleActionsConcreteClass", new ItemSet<VariableVectorAction>(ClassifierComparer)));
    9295
    93       coveringSolutionCreator.SampleVariableVectorParameter.ActualName = problemData.SampleVariableVectorParameter.Name;
     96      SolutionCreator.VariableVectorParameter.ActualName = ChildName;
    9497
    95       SetProblemDataSpecificParameters();
     98      SetProblemDataSettings();
    9699
    97100      InitializeOperators();
    98 
    99       problemData.Changed += new System.EventHandler(problemData_Changed);
    100101    }
    101102
    102     private void problemData_Changed(object sender, System.EventArgs e) {
    103       SetProblemDataSpecificParameters();
    104     }
     103    protected override void SetProblemDataSettings() {
     104      SolutionCreator.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
    105105
    106     private void SetProblemDataSpecificParameters() {
    107       SolutionCreator.SampleVariableVectorParameter.Value = ProblemData.SampleVariableVectorParameter.Value;
    108       SolutionCreator.VariableVectorParameter.ActualName = ChildName;
    109       SolutionCreator.SpreadPercentageParameter.Value = ProblemData.SpreadPercentageParameter.Value;
     106      VariableVectorCoveringCreator.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
    110107
    111108      SetPossibleActions();
     
    130127      var sampleAction = ProblemData.SampleVariableVector.Action;
    131128      var actionKeys = sampleAction.Order;
    132       var actionsEnumeratorList = sampleAction.ToDictionary(x => x.Key, y => y.Value.GetAllPossibleActions().ToList());
     129      var actionsEnumeratorList = sampleAction.VariableDictionary.ToDictionary(x => x.Key, y => y.Value.GetAllPossibleActions().ToList());
    133130      int[] curPos = new int[actionsEnumeratorList.Count];
    134131      //initialize curPos
     
    145142        cur = 0;
    146143        foreach (var key in actionKeys) {
    147           curAction[key].SetTo(actionsEnumeratorList[key][curPos[cur]]);
     144          curAction.VariableDictionary[key].SetTo(actionsEnumeratorList[key][curPos[cur]]);
    148145          cur++;
    149146        }
  • branches/LearningClassifierSystems/HeuristicLab.Problems.VariableVectorClassification/3.3/VariableVectorClassificationProblemData.cs

    r9228 r9242  
    3333using HeuristicLab.Problems.DataAnalysis;
    3434
    35 namespace HeuristicLab.Problems.CombinedIntegerVectorClassification {
     35namespace HeuristicLab.Problems.VariableVectorClassification {
    3636  [StorableClass]
    3737  [Item("CombinedIntegerVectorClassificationProblemData", "A problem data for LCS.")]
    38   public class VariableVectorClassificationProblemData : ConditionActionClassificationProblemData {
     38  public class VariableVectorClassificationProblemData : ConditionActionClassificationProblemData, IVariableVectorClassificationProblemData {
    3939
    4040    #region parameter properites
     
    9090          var doubleValues = (variableValues as List<double>).Distinct();
    9191          if (doubleValues.All(x => x % 1 == 0)) {
    92             variable = new IntVariable(variableName, doubleValues.Select(x => Convert.ToInt32(x)));
     92            // ToList call is necessary, because otherwise it wouldn't be possible to serialize it
     93            variable = new IntVariable(variableName, doubleValues.Select(x => Convert.ToInt32(x)).ToList());
    9394          } else {
    9495            variable = new DoubleVariable(variableName, doubleValues);
     
    105106      if (!fetchInputCache.ContainsKey(rowNumber)) {
    106107        VariableVectorInput input = new VariableVectorInput();
    107         IEnumerable<string> variableNames = SampleVariableVector.Condition.Keys.Union(SampleVariableVector.Action.Keys);
     108        IEnumerable<string> variableNames = SampleVariableVector.Condition.VariableDictionary.Keys.Union(SampleVariableVector.Action.VariableDictionary.Keys);
    108109        foreach (var variableName in variableNames) {
    109           input.Add(variableName, Dataset.GetValue(rowNumber, variableName));
     110          input.InputDictionary.Add(variableName, Dataset.GetValue(rowNumber, variableName));
    110111        }
    111112        fetchInputCache.Add(rowNumber, input);
     
    118119      if (!fetchActionCache.ContainsKey(rowNumber)) {
    119120        var action = SampleVariableVector.Action.GetEmptyCopy();
    120         foreach (var variableName in action.Keys) {
    121           action[variableName].SetTo(Dataset.GetValue(rowNumber, variableName));
     121        foreach (var variableName in action.VariableDictionary.Keys) {
     122          action.VariableDictionary[variableName].SetTo(Dataset.GetValue(rowNumber, variableName));
    122123        }
    123124        fetchActionCache.Add(rowNumber, action);
Note: See TracChangeset for help on using the changeset viewer.