Changeset 9167 for branches/LearningClassifierSystems
- Timestamp:
- 01/15/13 15:52:54 (12 years ago)
- Location:
- branches/LearningClassifierSystems
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs
r9160 r9167 54 54 get { return (ValueLookupParameter<IOperator>)Parameters["Selector"]; } 55 55 } 56 public ValueLookupParameter<IOperator> AfterCopyingParentsParameter { 57 get { return (ValueLookupParameter<IOperator>)Parameters["AfterCopyingParents"]; } 58 } 56 59 public ValueLookupParameter<IOperator> CrossoverParameter { 57 60 get { return (ValueLookupParameter<IOperator>)Parameters["Crossover"]; } … … 112 115 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution.")); 113 116 Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction.")); 117 Parameters.Add(new ValueLookupParameter<IOperator>("AfterCopyingParents", "The operator executed after copying a parent instead of using crossover.")); 114 118 Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions.")); 115 119 Parameters.Add(new ValueLookupParameter<IOperator>("AfterCrossover", "The operator executed after crossing the solutions.")); … … 135 139 RandomSelector randomSelector = new RandomSelector(); 136 140 PreservingRightReducer preservingRightReducer = new PreservingRightReducer(); 137 Assigner numerosityAssigner = new Assigner(); 138 Assigner experienceAssigner = new Assigner(); 141 Placeholder afterCopyingParents = new Placeholder(); 139 142 Placeholder crossover = new Placeholder(); 140 143 Placeholder afterCrossover = new Placeholder(); … … 182 185 randomSelector.NumberOfSelectedSubScopesParameter.Value = new IntValue(1); 183 186 187 afterCopyingParents.Name = "AfterCopyingParents"; 188 afterCopyingParents.OperatorParameter.ActualName = "AfterCopyingParents"; 189 184 190 crossover.Name = "Crossover"; 185 191 crossover.OperatorParameter.ActualName = "Crossover"; 186 187 numerosityAssigner.LeftSideParameter.ActualName = "Numerosity";188 numerosityAssigner.RightSideParameter.Value = new IntValue(1);189 190 experienceAssigner.LeftSideParameter.ActualName = "Experience";191 experienceAssigner.RightSideParameter.Value = new IntValue(0);192 192 193 193 afterCrossover.Name = "AfterCrossover"; … … 254 254 crossoverStochasticBranch.SecondBranch = randomSelector; 255 255 randomSelector.Successor = preservingRightReducer; 256 preservingRightReducer.Successor = numerosityAssigner; 257 numerosityAssigner.Successor = experienceAssigner; 258 experienceAssigner.Successor = null; 256 preservingRightReducer.Successor = afterCopyingParents; 259 257 crossoverStochasticBranch.Successor = mutator; 260 258 crossover.Successor = afterCrossover; -
branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LearningClassifierSystemMainLoop.cs
r9154 r9167 52 52 get { return (IConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; } 53 53 } 54 public IConstrainedValueParameter<IOperator> AfterCopyingParentsParameter { 55 get { return (IConstrainedValueParameter<IOperator>)Parameters["AfterCopyingParents"]; } 56 } 54 57 public IConstrainedValueParameter<IOperator> AfterCrossoverParameter { 55 58 get { return (IConstrainedValueParameter<IOperator>)Parameters["AfterCrossover"]; } … … 101 104 test.ChildParameter.ActualName = "CombinedIntegerVector"; 102 105 Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.", new ItemSet<IManipulator>() { new UniformSomePositionManipulator() }, test)); 106 XCSAfterCopyingParentOperator afterCopyingParents = new XCSAfterCopyingParentOperator(); 107 Parameters.Add(new ConstrainedValueParameter<IOperator>("AfterCopyingParents", "", new ItemSet<IOperator>() { new XCSAfterCopyingParentOperator() }, afterCopyingParents)); 103 108 XCSAfterCrossoverOperator afterCrossover = new XCSAfterCrossoverOperator(); 104 Parameters.Add(new ConstrainedValueParameter<IOperator>("AfterCrossover", " The operator used to select solutions for reproduction.", new ItemSet<IOperator>() { new XCSAfterCrossoverOperator() }, afterCrossover));109 Parameters.Add(new ConstrainedValueParameter<IOperator>("AfterCrossover", "", new ItemSet<IOperator>() { new XCSAfterCrossoverOperator() }, afterCrossover)); 105 110 Parameters.Add(new LookupParameter<IntValue>("MaxIterations", "The maximum number of iterations the algorithm will do.")); 106 111 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation.")); 107 112 #endregion 108 109 110 //test111 DataReducer testReducer = new DataReducer();112 testReducer.TargetParameter.ActualName = "TestCurrentPopulation";113 testReducer.ParameterToReduce.ActualName = "Numerosity";114 testReducer.ReductionOperation.Value = new ReductionOperation(ReductionOperations.Sum);115 testReducer.TargetOperation.Value = new ReductionOperation(ReductionOperations.Assign);116 113 117 114 #region Create operators … … 315 312 adaptedGeneticAlgorithmMainLoop.MaximizationParameter.Value = new BoolValue(true); 316 313 adaptedGeneticAlgorithmMainLoop.AfterCrossoverParameter.ActualName = AfterCrossoverParameter.Name; 314 adaptedGeneticAlgorithmMainLoop.AfterCopyingParentsParameter.ActualName = AfterCopyingParentsParameter.Name; 317 315 318 316 currentPopulationSizeCounter.ValueParameter.ActualName = "CurrentPopulationSize"; … … 351 349 initialPopulationConditionalBranch.Successor = maxIterationsComparator; 352 350 maxIterationsComparator.Successor = terminationConditionalBranch1; 353 terminationConditionalBranch1.TrueBranch = finalAnalyzer;351 //terminationConditionalBranch1.TrueBranch = finalAnalyzer; 354 352 terminationConditionalBranch1.FalseBranch = classifierFetcher; 355 353 classifierFetcher.Successor = matchCondtionSubScopesProcessor; … … 410 408 //iterationCounter.Successor = maxIterationsComparator; 411 409 412 iterationCounter.Successor = testReducer;413 testReducer.Successor = maxIterationsComparator;410 iterationCounter.Successor = finalAnalyzer; 411 finalAnalyzer.Successor = maxIterationsComparator; 414 412 #endregion 415 413 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.CombinedIntegerVectorEncoding/3.3/CombinedIntegerVector.cs
r9105 r9167 251 251 return result.GetHashCode(); 252 252 } 253 254 public bool Identical(IClassifier classifier) { 255 var cast = classifier as CombinedIntegerVector; 256 if (cast != null) { 257 for (int i = 0; i < array.Length; i++) { 258 if (!array[i].Equals(cast.array[i])) { 259 return false; 260 } 261 } 262 } 263 return true; 264 } 253 265 } 254 266 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/GA/XCSAfterCrossoverOperator.cs
r9110 r9167 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Data; 26 using HeuristicLab.Operators;27 26 using HeuristicLab.Parameters; 28 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 31 30 [Item("XCSAfterCrossoverOperator", "Description missing")] 32 31 [StorableClass] 33 public class XCSAfterCrossoverOperator : SingleSuccessorOperator {32 public class XCSAfterCrossoverOperator : XCSAfterCopyingParentOperator { 34 33 35 34 #region Parameter Properties 36 public IValueLookupParameter<IntValue> NumerosityParameter {37 get { return (IValueLookupParameter<IntValue>)Parameters["Numerosity"]; }38 }39 public IValueLookupParameter<IntValue> ExperienceParameter {40 get { return (IValueLookupParameter<IntValue>)Parameters["Experience"]; }41 }42 35 public IValueLookupParameter<IntValue> TimestampParameter { 43 36 get { return (IValueLookupParameter<IntValue>)Parameters["Timestamp"]; } … … 54 47 public IValueLookupParameter<DoubleValue> FitnessParameter { 55 48 get { return (IValueLookupParameter<DoubleValue>)Parameters["Fitness"]; } 56 }57 public IValueLookupParameter<BoolValue> InsertInPopulationParameter {58 get { return (IValueLookupParameter<BoolValue>)Parameters["InsertInPopulation"]; }59 }60 public IValueLookupParameter<IntValue> TempIDParameter {61 get { return (IValueLookupParameter<IntValue>)Parameters["TempID"]; }62 49 } 63 50 public ILookupParameter<IntValue> CurrentIterationParameter { … … 85 72 public XCSAfterCrossoverOperator() 86 73 : base() { 87 Parameters.Add(new ValueLookupParameter<IntValue>("Numerosity"));88 Parameters.Add(new ValueLookupParameter<IntValue>("Experience"));89 74 Parameters.Add(new ValueLookupParameter<IntValue>("Timestamp")); 90 75 Parameters.Add(new ValueLookupParameter<DoubleValue>("AverageActionSetSize")); … … 92 77 Parameters.Add(new ValueLookupParameter<DoubleValue>("Error")); 93 78 Parameters.Add(new ValueLookupParameter<DoubleValue>("Fitness")); 94 Parameters.Add(new ValueLookupParameter<BoolValue>("InsertInPopulation"));95 Parameters.Add(new ValueLookupParameter<IntValue>("TempID"));96 79 Parameters.Add(new LookupParameter<IntValue>("CurrentIteration")); 97 80 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("ParentAverageActionSetSize")); … … 105 88 106 89 public override IOperation Apply() { 107 NumerosityParameter.ActualValue = new IntValue(1);108 ExperienceParameter.ActualValue = new IntValue(0);109 90 TimestampParameter.ActualValue = new IntValue(CurrentIterationParameter.ActualValue.Value); 110 91 var parentAverageActionSetSize = ParentAverageActionSetSizeParameter.ActualValue; … … 116 97 ErrorParameter.ActualValue = new DoubleValue(0.25 * parentPrecisionError.Select(x => x.Value).Average()); 117 98 FitnessParameter.ActualValue = new DoubleValue(0.1 * parentFitness.Select(x => x.Value).Average()); 118 InsertInPopulationParameter.ActualValue = new BoolValue(true);119 TempIDParameter.ActualValue = new IntValue(-1);120 99 return base.Apply(); 121 100 } -
branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/HeuristicLab.Encodings.ConditionActionEncoding-3.3.csproj
r9160 r9167 97 97 <Compile Include="Evaluators\IXCSEvaluator.cs" /> 98 98 <Compile Include="GA\InsertInPopulationOperator.cs" /> 99 <Compile Include="GA\XCSAfterCopyingParentOperator.cs" /> 99 100 <Compile Include="GA\XCSAfterCrossoverOperator.cs" /> 100 101 <Compile Include="IClassifier.cs" /> -
branches/LearningClassifierSystems/HeuristicLab.Encodings.ConditionActionEncoding/3.3/IClassifier.cs
r9105 r9167 41 41 bool Equals(object obj); 42 42 int GetHashCode(); 43 44 //test 45 bool Identical(IClassifier classifier); 43 46 } 44 47 } -
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblem.cs
r9160 r9167 185 185 186 186 Parameters.Add(new ValueParameter<ICoveringSolutionCreator>("CoveringSolutionCreator", "", coveringSolutionCreator)); 187 Parameters.Add(new FixedValueParameter<PercentValue>("ChangeSymbolProbabilityInCovering", "", new PercentValue(0. 5)));187 Parameters.Add(new FixedValueParameter<PercentValue>("ChangeSymbolProbabilityInCovering", "", new PercentValue(0.33))); 188 188 189 189 Parameters.Add(new ValueParameter<ActionSetSubsumptionOperator>(ActionSetSubsumptionOperatorParameterName, "", new ActionSetSubsumptionOperator())); -
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblemData.cs
r9161 r9167 33 33 34 34 namespace HeuristicLab.Problems.ConditionActionClassification { 35 [StorableClass] 36 [Item("ConditionActionClassificationProblemData", "A problem data for LCS.")] 35 37 public class ConditionActionClassificationProblemData : ParameterizedNamedItem, IConditionActionProblemData { 36 38
Note: See TracChangeset
for help on using the changeset viewer.