- Timestamp:
- 04/10/13 15:15:13 (12 years ago)
- Location:
- branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3
- Files:
-
- 3 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/IAction.cs
r9334 r9352 22 22 using System.Collections.Generic; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Optimization.Operators.LCS; 24 25 25 26 namespace HeuristicLab.Encodings.DecisionList { 26 public interface IAction : I Item{27 public interface IAction : IGAssistNiche { 27 28 string VariableName { get; } 28 29 29 30 int Possibilities { get; } 30 31 void Randomize(IRandom random); 32 void Randomize(IRandom random, IEnumerable<IAction> except); 31 33 32 34 bool Match(IAction action); -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/IntAction.cs
r9334 r9352 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Optimization.Operators.LCS; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 29 … … 31 32 [Item("IntAction", "")] 32 33 public class IntAction : Item, IAction<int> { 34 35 public static IEqualityComparer<IGAssistNiche> Comparer { 36 get { return new DecisionListNicheComparer(); } 37 } 38 IEqualityComparer<IGAssistNiche> IGAssistNiche.Comparer { 39 get { return Comparer; } 40 } 33 41 34 42 [Storable] … … 88 96 } 89 97 98 public void Randomize(IRandom random, IEnumerable<IAction> except) { 99 if (except.Count() == 0) { 100 Randomize(random); 101 return; 102 } 103 try { 104 var exceptInt = except.Cast<IntAction>().Select(x => x.currentAction); 105 var newPossibleFeatures = possibleFeatures.Except(exceptInt); 106 currentAction = newPossibleFeatures.ElementAt(random.Next(0, newPossibleFeatures.Count())); 107 } 108 catch (InvalidCastException) { 109 throw new InvalidCastException("Actions have to be of type IntAction"); 110 } 111 } 112 90 113 public bool Match(IAction action) { 91 114 var targetCast = action as IntAction; … … 103 126 104 127 public override string ToString() { 105 return currentAction.ToString(); 128 return variableName + ": " + currentAction.ToString(); 129 } 130 131 public bool SameNiche(IGAssistNiche niche) { 132 return Match(niche as IAction); 133 } 134 135 public int GetNicheHashCode() { 136 int result = 1; 137 result = 37 * result + currentAction; 138 result = 37 * result + variableName.GetHashCode(); 139 foreach (var feature in possibleFeatures) { 140 result = 37 * result + feature; 141 } 142 return result; 106 143 } 107 144 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Action/StringAction.cs
r9334 r9352 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Optimization.Operators.LCS; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 29 … … 31 32 [Item("StringAction", "")] 32 33 public class StringAction : Item, IAction<string> { 34 35 public static IEqualityComparer<IGAssistNiche> Comparer { 36 get { return new DecisionListNicheComparer(); } 37 } 38 39 IEqualityComparer<IGAssistNiche> IGAssistNiche.Comparer { 40 get { return Comparer; } 41 } 33 42 34 43 [Storable] … … 92 101 } 93 102 103 public void Randomize(IRandom random, IEnumerable<IAction> except) { 104 if (except.Count() == 0) { 105 Randomize(random); 106 return; 107 } 108 try { 109 var exceptInt = except.Cast<StringAction>().Select(x => x.CurrentActionIndex); 110 var newPossibleFeatures = Enumerable.Range(0, possibleFeatures.Count()).Except(exceptInt); 111 currentActionIndex = newPossibleFeatures.ElementAt(random.Next(0, newPossibleFeatures.Count())); 112 } 113 catch (InvalidCastException) { 114 throw new InvalidCastException("Actions have to be of type IntAction"); 115 } 116 } 117 94 118 public bool Match(IAction action) { 95 119 var targetCast = action as StringAction; … … 107 131 108 132 public override string ToString() { 109 return CurrentAction; 133 return variableName + ": " + CurrentAction; 134 } 135 136 public bool SameNiche(IGAssistNiche niche) { 137 return Match(niche as IAction); 138 } 139 140 public int GetNicheHashCode() { 141 int result = 1; 142 result = 37 * result + currentActionIndex; 143 result = 37 * result + variableName.GetHashCode(); 144 foreach (var feature in possibleFeatures) { 145 result = 37 * result + feature.GetHashCode(); 146 } 147 return result; 110 148 } 111 149 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Creators/UniformRandomDecisionListCreator.cs
r9342 r9352 51 51 } 52 52 53 return new DecisionList(rules); //, DefaultActionParameter.ActualValue);53 return new DecisionList(rules); 54 54 } 55 55 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Crossover/SinglePointCrossover.cs
r9342 r9352 48 48 49 49 public static DecisionList Apply(IRandom random, DecisionList parent1, DecisionList parent2) { 50 if (!parent1.DefaultAction.Match(parent2.DefaultAction)) { throw new ArgumentException("Default action of parents have to match!"); } 51 50 52 int rulesP1 = random.Next(0, parent1.Rules.Count()); 51 53 int rulesP2 = random.Next(0, parent2.Rules.Count()); -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionList.cs
r9342 r9352 109 109 #region IGAssistIndividual Members 110 110 111 public IGAssistNiche Niche { 112 get { return defaultAction; } 113 } 114 115 public void SetNiche(IRandom random, IGAssistNiche niche) { 116 var action = niche as IAction; 117 if (action == null) { 118 throw new ArgumentException("Niche has to be an action"); 119 } 120 if (Niche != null) { 121 throw new ArgumentException("Niche has already been set. It cannot be set again."); 122 } 123 defaultAction = action; 124 var except = new List<IAction>() { action }; 125 foreach (var rule in rules.Where(x => x.Action.SameNiche(niche))) { 126 rule.Action.Randomize(random, except); 127 } 128 } 129 111 130 public void ApplySplit(IRandom random, double probability) { 112 131 foreach (var rule in rules) { … … 126 145 } 127 146 } 128 129 147 #endregion 130 148 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/DecisionListCreator.cs
r9342 r9352 52 52 get { return (ILookupParameter<IRandom>)Parameters["Random"]; } 53 53 } 54 public IValueLookupParameter<IAction> DefaultActionParameter {55 get { return (IValueLookupParameter<IAction>)Parameters["DefaultAction"]; }56 }57 54 #endregion 58 55 -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/HeuristicLab.Encodings.DecisionList-3.3.csproj
r9342 r9352 92 92 <Compile Include="Action\IAction.cs" /> 93 93 <Compile Include="Action\IntAction.cs" /> 94 <Compile Include="Analyzer\BestTrainingDecisionListAnalyzer.cs" /> 94 95 <Compile Include="Creators\UniformRandomDecisionListCreator.cs" /> 95 96 <Compile Include="Crossover\SinglePointCrossover.cs" /> … … 97 98 <Compile Include="DecisionListCrossover.cs" /> 98 99 <Compile Include="DecisionListManipulator.cs" /> 100 <Compile Include="DecisionListNicheComparer.cs" /> 99 101 <Compile Include="DecisionListSolution.cs" /> 100 102 <Compile Include="Evaluator\DecisionListEvaluator.cs" /> -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListClassificationProblemData.cs
r9342 r9352 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Data; 26 using HeuristicLab.Optimization.Operators.LCS; 26 27 using HeuristicLab.Problems.DataAnalysis; 27 28 28 29 namespace HeuristicLab.Encodings.DecisionList { 29 public interface IDecisionListClassificationProblemData : I NamedItem{30 public interface IDecisionListClassificationProblemData : IGAssistNichesProblemData { 30 31 Dataset Dataset { get; } 31 32 ICheckedItemList<StringValue> ConditionVariables { get; } … … 45 46 int Classes { get; } 46 47 47 I FixedValueParameter<Rule> SampleRuleParameter { get; }48 IValueParameter<Rule> SampleRuleParameter { get; } 48 49 49 50 DecisionListInput FetchInput(int row); -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Interfaces/IDecisionListCreator.cs
r9342 r9352 31 31 IValueLookupParameter<IntValue> InitialNumberOfRulesParameter { get; } 32 32 IValueLookupParameter<PercentValue> OneProbabilityParameter { get; } 33 IValueLookupParameter<IAction> DefaultActionParameter { get; }34 33 } 35 34 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Properties/AssemblyInfo.cs
r9334 r9352 21 21 22 22 using System.Reflection; 23 using System.Runtime.CompilerServices; 23 24 using System.Runtime.InteropServices; 24 25 … … 54 55 // [assembly: AssemblyVersion("1.0.*")] 55 56 [assembly: AssemblyVersion("3.3.0.0")] 56 [assembly: AssemblyFileVersion("3.3.7.9 204")]57 [assembly: AssemblyFileVersion("3.3.7.9342")] -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Rule.cs
r9342 r9352 73 73 sb.Append(variable.Value + "|"); 74 74 } 75 sb.Append( Action);75 sb.Append("|" + Action); 76 76 return sb.ToString(); 77 77 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.DecisionList/3.3/Variable/Variable.cs
r9342 r9352 76 76 public override string ToString() { 77 77 StringBuilder sb = new StringBuilder(); 78 sb.Append(variableName + ": "); 78 79 foreach (var attr in attributes) { 79 80 if (attr) {
Note: See TracChangeset
for help on using the changeset viewer.