Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/05/13 13:12:54 (11 years ago)
Author:
sforsten
Message:

#1980:

  • added be project Optimization.Operators.LCS
  • added default rule strategies for GAssist
Location:
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3

    • Property svn:ignore
      •  

        old new  
        11*.user
         2Plugin.cs
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Creators/UniformRandomDecisionListCreator.cs

    r9334 r9342  
    2121
    2222using System.Collections.Generic;
    23 using HeuristicLab.Algorithms.GAssist;
    2423using HeuristicLab.Common;
    2524using HeuristicLab.Core;
     25using HeuristicLab.Optimization.Operators.LCS;
    2626using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2727
     
    5050        rules.Add(newRule);
    5151      }
    52       return new DecisionList(rules);
     52
     53      return new DecisionList(rules); //, DefaultActionParameter.ActualValue);
    5354    }
    5455  }
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Crossover/SinglePointCrossover.cs

    r9334 r9342  
    6262      }
    6363
    64       return new DecisionList(rules);
     64      return new DecisionList(rules, parent1.DefaultAction);
    6565    }
    6666
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionList.cs

    r9334 r9342  
    2525using HeuristicLab.Common;
    2626using HeuristicLab.Core;
     27using HeuristicLab.Optimization.Operators.LCS;
    2728using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
     
    3031  [StorableClass]
    3132  [Item("DecisionList", "")]
    32   public class DecisionList : Item {
     33  public class DecisionList : Item, IGAssistIndividual {
    3334    [Storable]
    3435    private IList<Rule> rules;
     
    4344    }
    4445
     46    // default rule (action) is part of the rule set size
     47    public int RuleSetSize {
     48      get { return defaultAction == null ? rules.Count : rules.Count + 1; }
     49    }
     50
    4551    [StorableConstructor]
    4652    protected DecisionList(bool deserializing) : base(deserializing) { }
    4753    protected DecisionList(DecisionList original, Cloner cloner)
    4854      : base(original, cloner) {
     55      defaultAction = original.DefaultAction;
     56      rules = new List<Rule>(original.rules.Count);
     57      foreach (var rule in original.Rules) {
     58        rules.Add(cloner.Clone(rule));
     59      }
    4960    }
    5061    public DecisionList()
     
    5667      : base() {
    5768      this.rules = rules;
    58       defaultAction = null;
     69      this.defaultAction = null;
    5970    }
    6071    public DecisionList(List<Rule> rules, IAction defaultAction)
     
    95106      return estimated;
    96107    }
     108
     109    #region IGAssistIndividual Members
     110
     111    public void ApplySplit(IRandom random, double probability) {
     112      foreach (var rule in rules) {
     113        rule.ApplySplit(random, probability);
     114      }
     115    }
     116
     117    public void ApplyMerge(IRandom random, double probability) {
     118      foreach (var rule in rules) {
     119        rule.ApplyMerge(random, probability);
     120      }
     121    }
     122
     123    public void ApplyReinitialize(IRandom random, double probability, double oneProbability, IEnumerable<IDiscretizer> discretizers) {
     124      foreach (var rule in rules) {
     125        rule.ApplyReinitialize(random, probability, oneProbability, discretizers);
     126      }
     127    }
     128
     129    #endregion
    97130  }
    98131}
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionListCreator.cs

    r9334 r9342  
    2020#endregion
    2121
    22 using HeuristicLab.Algorithms.GAssist;
    2322using HeuristicLab.Common;
    2423using HeuristicLab.Core;
    2524using HeuristicLab.Data;
    2625using HeuristicLab.Operators;
     26using HeuristicLab.Optimization.Operators.LCS;
    2727using HeuristicLab.Parameters;
    2828using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    5252      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
    5353    }
     54    public IValueLookupParameter<IAction> DefaultActionParameter {
     55      get { return (IValueLookupParameter<IAction>)Parameters["DefaultAction"]; }
     56    }
    5457    #endregion
    5558
     
    6770      Parameters.Add(new LookupParameter<DecisionList>("DecisionList", ""));
    6871      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
    69 
     72      Parameters.Add(new ValueLookupParameter<IAction>("DefaultAction", ""));
    7073    }
    7174
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/HeuristicLab.Encodings.DecisionList-3.3.csproj

    r9334 r9342  
    126126  </ItemGroup>
    127127  <ItemGroup>
    128     <ProjectReference Include="..\..\HeuristicLab.Algorithms.GAssist\3.3\HeuristicLab.Algorithms.GAssist-3.3.csproj">
    129       <Project>{f191a6fa-1b3c-4f82-a711-873b4d839bc0}</Project>
    130       <Name>HeuristicLab.Algorithms.GAssist-3.3</Name>
    131     </ProjectReference>
    132128    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    133129      <Project>{c36bd924-a541-4a00-afa8-41701378ddc5}</Project>
    134130      <Name>HeuristicLab.Core-3.3</Name>
     131    </ProjectReference>
     132    <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators.LCS\3.3\HeuristicLab.Optimization.Operators.LCS-3.3.csproj">
     133      <Project>{f2c6d3b0-bd4f-4747-b13e-b18e53a2a09d}</Project>
     134      <Name>HeuristicLab.Optimization.Operators.LCS-3.3</Name>
    135135    </ProjectReference>
    136136    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
     
    141141  <ItemGroup />
    142142  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
     143  <PropertyGroup>
     144    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
     145set ProjectDir=$(ProjectDir)
     146set SolutionDir=$(SolutionDir)
     147set Outdir=$(Outdir)
     148
     149call PreBuildEvent.cmd
     150</PreBuildEvent>
     151  </PropertyGroup>
    143152  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
    144153       Other similar extension points exist, see Microsoft.Common.targets.
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListClassificationProblemData.cs

    r9334 r9342  
    5151
    5252    IEnumerable<IAction> FetchAction(IEnumerable<int> rows);
     53    IAction FetchAction(int rows);
    5354
    5455    event EventHandler Changed;
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListCreator.cs

    r9334 r9342  
    2020#endregion
    2121
    22 using HeuristicLab.Algorithms.GAssist;
    2322using HeuristicLab.Core;
    2423using HeuristicLab.Data;
    2524using HeuristicLab.Optimization;
     25using HeuristicLab.Optimization.Operators.LCS;
    2626
    2727namespace HeuristicLab.Encodings.DecisionList {
     
    3131    IValueLookupParameter<IntValue> InitialNumberOfRulesParameter { get; }
    3232    IValueLookupParameter<PercentValue> OneProbabilityParameter { get; }
     33    IValueLookupParameter<IAction> DefaultActionParameter { get; }
    3334  }
    3435}
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListManipulator.cs

    r9334 r9342  
    2121
    2222using HeuristicLab.Core;
     23using HeuristicLab.Data;
    2324using HeuristicLab.Optimization;
    2425
     
    2627  public interface IDecisionListManipulator : IDecisionListOperator, IManipulator {
    2728    ILookupParameter<DecisionList> ChildParameter { get; }
     29    ILookupParameter<PercentValue> ActionMutationProbabilityParameter { get; }
    2830  }
    2931}
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Rule.cs

    r9334 r9342  
    2424using System.Linq;
    2525using System.Text;
    26 using HeuristicLab.Algorithms.GAssist;
    2726using HeuristicLab.Common;
    2827using HeuristicLab.Core;
     28using HeuristicLab.Optimization.Operators.LCS;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3030
     
    110110      return new Rule(crossedVariables, action);
    111111    }
     112
     113    public void ApplySplit(IRandom random, double probability) {
     114      foreach (var variable in variables.Values) {
     115        if (random.NextDouble() < probability)
     116          variable.Split(random);
     117      }
     118    }
     119
     120    public void ApplyMerge(IRandom random, double probability) {
     121      foreach (var variable in variables.Values) {
     122        if (random.NextDouble() < probability)
     123          variable.Merge(random);
     124      }
     125    }
     126
     127    public void ApplyReinitialize(IRandom random, double probability, double oneProbability, IEnumerable<IDiscretizer> discretizers) {
     128      foreach (var variable in variables.Values) {
     129        if (random.NextDouble() < probability)
     130          variable.Reinitialize(random, oneProbability, discretizers);
     131      }
     132    }
    112133  }
    113134}
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Variable/DoubleVariable.cs

    r9334 r9342  
    2323using System.Collections.Generic;
    2424using System.Linq;
    25 using HeuristicLab.Algorithms.GAssist;
    2625using HeuristicLab.Common;
    2726using HeuristicLab.Core;
     27using HeuristicLab.Optimization.Operators.LCS;
    2828using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2929
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Variable/IVariable.cs

    r9334 r9342  
    2222using System;
    2323using System.Collections.Generic;
    24 using HeuristicLab.Algorithms.GAssist;
    2524using HeuristicLab.Core;
     25using HeuristicLab.Optimization.Operators.LCS;
    2626
    2727namespace HeuristicLab.Encodings.DecisionList {
  • branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Variable/Variable.cs

    r9334 r9342  
    2323using System.Collections.Generic;
    2424using System.Text;
    25 using HeuristicLab.Algorithms.GAssist;
    2625using HeuristicLab.Common;
    2726using HeuristicLab.Core;
     27using HeuristicLab.Optimization.Operators.LCS;
    2828using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2929
Note: See TracChangeset for help on using the changeset viewer.