Changeset 9160 for branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification
- Timestamp:
- 01/15/13 10:47:09 (12 years ago)
- Location:
- branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3
- Property svn:ignore
-
old new 1 1 obj 2 2 Plugin.cs 3 *.user
-
- Property svn:ignore
-
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/HeuristicLab.Problems.ConditionActionClassification-3.3.csproj
r9154 r9160 78 78 <Private>False</Private> 79 79 </Reference> 80 <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" /> 80 81 <Reference Include="System" /> 81 82 <Reference Include="System.Core" /> -
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblem.cs
r9154 r9160 30 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 31 31 using HeuristicLab.Problems.DataAnalysis; 32 using HeuristicLab.Problems.Instances; 32 33 33 34 namespace HeuristicLab.Problems.ConditionActionClassification { 34 35 [StorableClass] 35 public class ConditionActionClassificationProblem : HeuristicOptimizationProblem<XCSEvaluator, UniformRandomCombinedIntegerVectorCreator>, IConditionActionProblem { 36 public class ConditionActionClassificationProblem : HeuristicOptimizationProblem<XCSEvaluator, UniformRandomCombinedIntegerVectorCreator>, IConditionActionProblem, 37 IProblemInstanceConsumer<ConditionActionClassificationProblemData> { 36 38 private const string ClassifierFetcherParameterName = "ClassifierFetcher"; 37 39 private const string ActionExecuterParameterName = "ActionExecuter"; … … 87 89 public ConditionActionClassificationProblemData ProblemData { 88 90 get { return ProblemDataParameter.Value; } 91 protected set { 92 ProblemDataParameter.Value = value; 93 if (value != null) { 94 SetProblemDataSpecificParameters(); 95 } 96 } 89 97 } 90 98 IParameter IConditionActionProblem.PossibleActionsConcreteClassParameter { … … 185 193 Evaluator.InitialPredictionParameter.ActualName = "InitialPrediction"; 186 194 195 coveringSolutionCreator.ChangeSymbolProbabilityParameter.ActualName = ChangeSymbolProbabilityInCoveringParameter.Name; 196 coveringSolutionCreator.CoverClassifierParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName; 197 coveringSolutionCreator.CreatedClassifierParameter.ActualName = "CombinedIntegerVector"; 198 199 ClassifierFetcher.ProblemDataParameter.ActualName = ProblemDataParameter.Name; 200 201 ActionExecuter.CurrentClassifierToMatchParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName; 202 ActionExecuter.NegativeRewardParameter.ActualName = NegativeRewardParameter.Name; 203 ActionExecuter.PositiveRewardParameter.ActualName = PositiveRewardParameter.Name; 204 205 ActionSetSubsumptionOperator.ClassifiersParameter.ActualName = "CombinedIntegerVector"; 206 207 SetProblemDataSpecificParameters(); 208 ThetaMinimalNumberOfActions.Value = PossibleActions.Count; 209 210 InitializeOperators(); 211 212 problemData.Changed += new System.EventHandler(problemData_Changed); 213 } 214 215 private void problemData_Changed(object sender, System.EventArgs e) { 216 SetProblemDataSpecificParameters(); 217 } 218 219 private void SetProblemDataSpecificParameters() { 187 220 SolutionCreator.ActionPartLengthParameter.ActualName = ProblemData.ActionLengthParameter.Name; 188 221 SolutionCreator.LengthParameter.ActualName = ProblemData.LengthParameter.Name; 189 222 SolutionCreator.BoundsParameter.ActualName = ProblemData.BoundsParameter.Name; 190 223 191 coveringSolutionCreator.ChangeSymbolProbabilityParameter.ActualName = ChangeSymbolProbabilityInCoveringParameter.Name;192 coveringSolutionCreator.CoverClassifierParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;193 coveringSolutionCreator.CreatedClassifierParameter.ActualName = "CombinedIntegerVector";194 195 ClassifierFetcher.ProblemDataParameter.ActualName = ProblemDataParameter.Name;196 197 ActionExecuter.CurrentClassifierToMatchParameter.ActualName = ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;198 ActionExecuter.NegativeRewardParameter.ActualName = NegativeRewardParameter.Name;199 ActionExecuter.PositiveRewardParameter.ActualName = PositiveRewardParameter.Name;200 201 ActionSetSubsumptionOperator.ClassifiersParameter.ActualName = "CombinedIntegerVector";202 203 SetPossibleActions();204 ThetaMinimalNumberOfActions.Value = PossibleActions.Count;205 206 InitializeOperators();207 208 problemData.Changed += new System.EventHandler(problemData_Changed);209 }210 211 private void problemData_Changed(object sender, System.EventArgs e) {212 224 SetPossibleActions(); 213 225 } … … 282 294 return actionBounds; 283 295 } 296 297 public void Load(ConditionActionClassificationProblemData data) { 298 Name = data.Name; 299 Description = data.Description; 300 ProblemData = data; 301 } 284 302 } 285 303 } -
branches/LearningClassifierSystems/HeuristicLab.Problems.ConditionActionClassification/3.3/Implementation/ConditionActionClassificationProblemData.cs
r9154 r9160 40 40 {0,0,1,1,0,0,0}, 41 41 {0,1,1,1,0,0,0}, 42 {0,0,1,0,0,0, 0},42 {0,0,1,0,0,0,1}, 43 43 {1,0,1,0,1,1,0} 44 44 }; … … 117 117 Parameters.Add(new FixedValueParameter<ReadOnlyCheckedItemList<StringValue>>("ActionVariables", "", actionVariables.AsReadOnly())); 118 118 Parameters.Add(new FixedValueParameter<ReadOnlyCheckedItemList<StringValue>>("ConditionVariables", "", conditionVariables.AsReadOnly())); 119 Parameters.Add(new FixedValueParameter<IntValue>("Length", "", new IntValue(7))); 120 Parameters.Add(new FixedValueParameter<IntValue>("ActionLength", "", new IntValue(1))); 121 int[,] elements = new int[,] { { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 3 }, { 0, 2 } }; 122 Parameters.Add(new FixedValueParameter<IntMatrix>("Bounds", "", new IntMatrix(elements))); 119 Parameters.Add(new FixedValueParameter<IntValue>("Length", "", new IntValue(allowedConditionVariables.Count() + allowedActionVariables.Count()))); 120 Parameters.Add(new FixedValueParameter<IntValue>("ActionLength", "", new IntValue(allowedActionVariables.Count()))); 121 Parameters.Add(new FixedValueParameter<IntMatrix>("Bounds", "", GetBoundsMatrix(dataset, allowedConditionVariables, allowedActionVariables))); 123 122 124 123 ((ValueParameter<Dataset>)DatasetParameter).ReactOnValueToStringChangedAndValueItemImageChanged = false; 124 } 125 126 private IntMatrix GetBoundsMatrix(Dataset dataset, IEnumerable<string> conditionVariables, IEnumerable<string> actionVariables) { 127 IntMatrix bounds = new IntMatrix(conditionVariables.Count() + actionVariables.Count(), 2); 128 int index = 0; 129 foreach (var variable in conditionVariables) { 130 var values = dataset.GetDoubleValues(variable); 131 bounds[index, 0] = (int)values.Min(); 132 bounds[index, 1] = (int)values.Max() + 2; 133 index++; 134 } 135 foreach (var variable in actionVariables) { 136 var values = dataset.GetDoubleValues(variable); 137 bounds[index, 0] = (int)values.Min(); 138 bounds[index, 1] = (int)values.Max() + 1; 139 index++; 140 } 141 return bounds; 125 142 } 126 143
Note: See TracChangeset
for help on using the changeset viewer.