Changeset 10068 for branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/GEArtificialAntProblem.cs
- Timestamp:
- 10/20/13 18:44:04 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/GEArtificialAntProblem.cs
r10039 r10068 42 42 public sealed class GEArtificialAntProblem : SingleObjectiveHeuristicOptimizationProblem<GEArtificialAntEvaluator, IIntegerVectorCreator>, IStorableContent { 43 43 public string Filename { get; set; } 44 44 45 45 #region constant for default world (Santa Fe) 46 46 private readonly bool[,] santaFeAntTrail = new bool[,] { … … 87 87 get { return (IValueParameter<IntValue>)Parameters["MaximumExpressionLength"]; } 88 88 } 89 public IValueParameter<IntValue> MaxFunctionDefinitionsParameter {90 get { return (IValueParameter<IntValue>)Parameters["MaximumFunctionDefinitions"]; }91 }92 public IValueParameter<IntValue> MaxFunctionArgumentsParameter {93 get { return (ValueParameter<IntValue>)Parameters["MaximumFunctionArguments"]; }94 }95 89 public IValueParameter<BoolMatrix> WorldParameter { 96 90 get { return (IValueParameter<BoolMatrix>)Parameters["World"]; } … … 119 113 get { return MaxExpressionLengthParameter.Value; } 120 114 set { MaxExpressionLengthParameter.Value = value; } 121 }122 public IntValue MaxFunctionDefinitions {123 get { return MaxFunctionDefinitionsParameter.Value; }124 set { MaxFunctionDefinitionsParameter.Value = value; }125 }126 public IntValue MaxFunctionArguments {127 get { return MaxFunctionArgumentsParameter.Value; }128 set { MaxFunctionArgumentsParameter.Value = value; }129 115 } 130 116 public ArtificialAntExpressionGrammar ArtificialAntExpressionGrammar { … … 164 150 RegisterEventHandlers(); 165 151 } 152 166 153 public override IDeepCloneable Clone(Cloner cloner) { 167 154 return new GEArtificialAntProblem(this, cloner); 168 155 } 156 169 157 public GEArtificialAntProblem() 170 158 : base(new GEArtificialAntEvaluator(), new UniformRandomIntegerVectorCreator()) { 171 159 BoolMatrix world = new BoolMatrix(santaFeAntTrail); 172 160 Parameters.Add(new ValueParameter<IntValue>("MaximumExpressionLength", "Maximal length of the expression to control the artificial ant.", new IntValue(30))); 173 Parameters.Add(new ValueParameter<IntValue>("MaximumFunctionDefinitions", "Maximal number of automatically defined functions in the expression to control the artificial ant.", new IntValue(3)));174 Parameters.Add(new ValueParameter<IntValue>("MaximumFunctionArguments", "Maximal number of arguments of automatically defined functions in the expression to control the artificial ant.", new IntValue(3)));175 161 Parameters.Add(new ValueParameter<ISymbolicExpressionGrammar>("ArtificialAntExpressionGrammar", "The grammar that should be used for artificial ant expressions.", new ArtificialAntExpressionGrammar())); 176 162 Parameters.Add(new ValueParameter<BoolMatrix>("World", "The world for the artificial ant with scattered food items.", world)); 177 163 Parameters.Add(new ValueParameter<IntValue>("MaximumTimeSteps", "The number of time steps the artificial ant has available to collect all food items.", new IntValue(600))); 178 IntMatrix m = new IntMatrix(new int[,] {{0,100}});164 IntMatrix m = new IntMatrix(new int[,] { { 0, 100 } }); 179 165 Parameters.Add(new ValueParameter<IntMatrix>("Bounds", "The integer number range in which the single genomes of a genotype are created.", m)); 180 166 Parameters.Add(new ValueParameter<IGenotypeToPhenotypeMapper>("GenotypeToPhenotypeMapper", "Maps the genotype (an integer vector) to the phenotype (a symbolic expression tree).", new DepthFirstMapper())); 181 167 182 168 Maximization.Value = true; 183 169 MaximizationParameter.Hidden = true; 184 170 BestKnownQuality = new DoubleValue(89); 185 171 186 172 SolutionCreator.IntegerVectorParameter.ActualName = "AntTrailSolutionIntegerVector"; 187 173 Evaluator.SymbolicExpressionTreeParameter.ActualName = "AntTrailSolutionTree"; 188 174 Evaluator.SymbolicExpressionTreeGrammarParameter.ActualName = "ArtificialAntExpressionGrammar"; 189 175 Evaluator.QualityParameter.ActualName = "FoodEaten"; 190 176 191 177 InitializeOperators(); 192 178 RegisterEventHandlers(); … … 196 182 protected override void OnSolutionCreatorChanged() { 197 183 base.OnSolutionCreatorChanged(); 198 184 199 185 SolutionCreator.IntegerVectorParameter.ActualName = "AntTrailSolutionIntegerVector"; 200 186 SolutionCreator.IntegerVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged); 201 202 ParameterizeAnalyzers(); 203 ParameterizeOperators(); 204 } 205 187 188 ParameterizeAnalyzers(); 189 ParameterizeOperators(); 190 } 191 206 192 protected override void OnEvaluatorChanged() { 207 193 base.OnEvaluatorChanged(); 208 194 209 195 Evaluator.SymbolicExpressionTreeParameter.ActualName = "AntTrailSolutionTree"; 210 196 Evaluator.SymbolicExpressionTreeGrammarParameter.ActualName = "ArtificialAntExpressionGrammar"; 211 197 Evaluator.QualityParameter.ActualName = "FoodEaten"; 212 198 213 199 Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged); 214 200 Evaluator.SymbolicExpressionTreeGrammarParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged); 215 201 Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 216 217 ParameterizeAnalyzers(); 218 ParameterizeOperators(); 219 } 220 202 203 ParameterizeAnalyzers(); 204 ParameterizeOperators(); 205 } 206 221 207 private void SolutionCreator_IntegerVectorParameter_ActualNameChanged(object sender, EventArgs e) { 222 208 ParameterizeAnalyzers(); 223 209 ParameterizeOperators(); 224 210 } 225 211 226 212 private void Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) { 227 213 ParameterizeAnalyzers(); 228 214 ParameterizeOperators(); 229 215 } 230 216 231 217 private void Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged(object sender, EventArgs e) { 232 218 ParameterizeAnalyzers(); 233 219 ParameterizeOperators(); 234 220 } 235 221 236 222 private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) { 237 223 ParameterizeAnalyzers(); … … 242 228 #region Helpers 243 229 private void RegisterEventHandlers() { 244 SolutionCreator.IntegerVectorParameter.ActualNameChanged 245 Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged 230 SolutionCreator.IntegerVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged); 231 Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged); 246 232 Evaluator.SymbolicExpressionTreeGrammarParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged); 247 233 Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 248 MaxFunctionArgumentsParameter.ValueChanged += new EventHandler(MaxFunctionArgumentsParameter_ValueChanged);249 MaxFunctionArguments.ValueChanged += new EventHandler(MaxFunctionArgumentsParameter_ValueChanged);250 MaxFunctionDefinitionsParameter.ValueChanged += new EventHandler(MaxFunctionDefinitionsParameter_ValueChanged);251 MaxFunctionDefinitions.ValueChanged += new EventHandler(MaxFunctionDefinitionsParameter_ValueChanged);252 }253 254 private void MaxFunctionDefinitionsParameter_ValueChanged(object sender, EventArgs e) {255 ArtificialAntExpressionGrammar.MaximumFunctionDefinitions = MaxFunctionDefinitions.Value;256 ParameterizeOperators();257 ParameterizeAnalyzers();258 }259 private void MaxFunctionArgumentsParameter_ValueChanged(object sender, EventArgs e) {260 ArtificialAntExpressionGrammar.MaximumFunctionArguments = MaxFunctionArguments.Value;261 ParameterizeOperators();262 ParameterizeAnalyzers();263 234 } 264 235
Note: See TracChangeset
for help on using the changeset viewer.