Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/20/13 18:44:04 (10 years ago)
Author:
sawinkle
Message:

#2109:

  • Removed the parameters MaxFunctionDefinitions and MaxFunctionArguments from GEArtificialAntProblem.cs, because automatically defined functions (adf) won't be supported by the Grammatical Evolution implementation of the Artificial Ant problem.
  • Switched from SharpDevelop to Visual Studio 2012 and installed 'Productivity Power Tools 2012'. This extension includes the options 'Format Document on save' and 'Remove and Sort Usings on save', so that some usings were deleted, sorted and the formating changed slightly. Furthermore 'Visual Studio 2010 text editor settings.vssettings' were included.
  • Added new folders ArtificialAnt and Symbolic to separate the files for the ArtificialAnt problem and the Symbolic Regression problem (single objective).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/GEArtificialAntProblem.cs

    r10039 r10068  
    4242  public sealed class GEArtificialAntProblem : SingleObjectiveHeuristicOptimizationProblem<GEArtificialAntEvaluator, IIntegerVectorCreator>, IStorableContent {
    4343    public string Filename { get; set; }
    44    
     44
    4545    #region constant for default world (Santa Fe)
    4646    private readonly bool[,] santaFeAntTrail = new bool[,] {
     
    8787      get { return (IValueParameter<IntValue>)Parameters["MaximumExpressionLength"]; }
    8888    }
    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     }
    9589    public IValueParameter<BoolMatrix> WorldParameter {
    9690      get { return (IValueParameter<BoolMatrix>)Parameters["World"]; }
     
    119113      get { return MaxExpressionLengthParameter.Value; }
    120114      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; }
    129115    }
    130116    public ArtificialAntExpressionGrammar ArtificialAntExpressionGrammar {
     
    164150      RegisterEventHandlers();
    165151    }
     152
    166153    public override IDeepCloneable Clone(Cloner cloner) {
    167154      return new GEArtificialAntProblem(this, cloner);
    168155    }
     156
    169157    public GEArtificialAntProblem()
    170158      : base(new GEArtificialAntEvaluator(), new UniformRandomIntegerVectorCreator()) {
    171159      BoolMatrix world = new BoolMatrix(santaFeAntTrail);
    172160      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)));
    175161      Parameters.Add(new ValueParameter<ISymbolicExpressionGrammar>("ArtificialAntExpressionGrammar", "The grammar that should be used for artificial ant expressions.", new ArtificialAntExpressionGrammar()));
    176162      Parameters.Add(new ValueParameter<BoolMatrix>("World", "The world for the artificial ant with scattered food items.", world));
    177163      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 } });
    179165      Parameters.Add(new ValueParameter<IntMatrix>("Bounds", "The integer number range in which the single genomes of a genotype are created.", m));
    180166      Parameters.Add(new ValueParameter<IGenotypeToPhenotypeMapper>("GenotypeToPhenotypeMapper", "Maps the genotype (an integer vector) to the phenotype (a symbolic expression tree).", new DepthFirstMapper()));
    181      
     167
    182168      Maximization.Value = true;
    183169      MaximizationParameter.Hidden = true;
    184170      BestKnownQuality = new DoubleValue(89);
    185      
     171
    186172      SolutionCreator.IntegerVectorParameter.ActualName = "AntTrailSolutionIntegerVector";
    187173      Evaluator.SymbolicExpressionTreeParameter.ActualName = "AntTrailSolutionTree";
    188174      Evaluator.SymbolicExpressionTreeGrammarParameter.ActualName = "ArtificialAntExpressionGrammar";
    189175      Evaluator.QualityParameter.ActualName = "FoodEaten";
    190      
     176
    191177      InitializeOperators();
    192178      RegisterEventHandlers();
     
    196182    protected override void OnSolutionCreatorChanged() {
    197183      base.OnSolutionCreatorChanged();
    198      
     184
    199185      SolutionCreator.IntegerVectorParameter.ActualName = "AntTrailSolutionIntegerVector";
    200186      SolutionCreator.IntegerVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged);
    201      
    202       ParameterizeAnalyzers();
    203       ParameterizeOperators();
    204     }
    205    
     187
     188      ParameterizeAnalyzers();
     189      ParameterizeOperators();
     190    }
     191
    206192    protected override void OnEvaluatorChanged() {
    207193      base.OnEvaluatorChanged();
    208      
     194
    209195      Evaluator.SymbolicExpressionTreeParameter.ActualName = "AntTrailSolutionTree";
    210196      Evaluator.SymbolicExpressionTreeGrammarParameter.ActualName = "ArtificialAntExpressionGrammar";
    211197      Evaluator.QualityParameter.ActualName = "FoodEaten";
    212      
     198
    213199      Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged);
    214200      Evaluator.SymbolicExpressionTreeGrammarParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged);
    215201      Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    216      
    217       ParameterizeAnalyzers();
    218       ParameterizeOperators();
    219     }
    220    
     202
     203      ParameterizeAnalyzers();
     204      ParameterizeOperators();
     205    }
     206
    221207    private void SolutionCreator_IntegerVectorParameter_ActualNameChanged(object sender, EventArgs e) {
    222208      ParameterizeAnalyzers();
    223209      ParameterizeOperators();
    224210    }
    225    
     211
    226212    private void Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) {
    227213      ParameterizeAnalyzers();
    228214      ParameterizeOperators();
    229215    }
    230    
     216
    231217    private void Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged(object sender, EventArgs e) {
    232218      ParameterizeAnalyzers();
    233219      ParameterizeOperators();
    234220    }
    235    
     221
    236222    private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) {
    237223      ParameterizeAnalyzers();
     
    242228    #region Helpers
    243229    private void RegisterEventHandlers() {
    244       SolutionCreator.IntegerVectorParameter.ActualNameChanged           += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged);
    245       Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged        += new EventHandler(Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged);
     230      SolutionCreator.IntegerVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_IntegerVectorParameter_ActualNameChanged);
     231      Evaluator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeParameter_ActualNameChanged);
    246232      Evaluator.SymbolicExpressionTreeGrammarParameter.ActualNameChanged += new EventHandler(Evaluator_SymbolicExpressionTreeGrammarParameter_ActualNameChanged);
    247233      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();
    263234    }
    264235
Note: See TracChangeset for help on using the changeset viewer.