Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/03/12 16:46:35 (12 years ago)
Author:
gkronber
Message:

#1847: merged r8084:8205 from trunk into GP move operators branch

Location:
branches/GP-MoveOperators
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/GP-MoveOperators

  • branches/GP-MoveOperators/HeuristicLab.Problems.LawnMower/3.3/Problem.cs

    r8059 r8206  
    4242    private const string MaxLawnMowerProgramDepthParameterName = "MaxProgramDepth";
    4343    private const string LawnMowerGrammarParameterName = "Grammar";
     44    private const string MaxFunctionDefinitionsParameterName = "MaxFunctionDefinitions";
     45    private const string MaxArgumentDefinitionsParameterName = "MaxArgumentDefinitions";
    4446
    4547    public IFixedValueParameter<IntValue> LawnWidthParameter {
     
    5860      get { return (IValueParameter<Grammar>)Parameters[LawnMowerGrammarParameterName]; }
    5961    }
     62    public IFixedValueParameter<IntValue> MaxFunctionDefinitionsParameter {
     63      get { return (IFixedValueParameter<IntValue>)Parameters[MaxFunctionDefinitionsParameterName]; }
     64    }
     65    public IFixedValueParameter<IntValue> MaxArgumentDefinitionsParameter {
     66      get { return (IFixedValueParameter<IntValue>)Parameters[MaxArgumentDefinitionsParameterName]; }
     67    }
    6068
    6169    [StorableConstructor]
     
    7381      Parameters.Add(new FixedValueParameter<IntValue>(MaxLawnMowerProgramDepthParameterName, "Maximal depth of the lawn mower program.", new IntValue(13)));
    7482      Parameters.Add(new FixedValueParameter<IntValue>(MaxLawnMowerProgramLengthParameterName, "Maximal length of the lawn mower program.", new IntValue(1000)));
     83      Parameters.Add(new FixedValueParameter<IntValue>(MaxFunctionDefinitionsParameterName, "Maximal number of automatically defined functions (ADF).", new IntValue(3)));
     84      Parameters.Add(new FixedValueParameter<IntValue>(MaxArgumentDefinitionsParameterName, "Maximal number of automatically defined arguments.", new IntValue(3)));
    7585      Parameters.Add(new ValueParameter<Grammar>(LawnMowerGrammarParameterName, "Grammar for the lawn mower program.",
    7686                     new Grammar()));
     
    105115      SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged +=
    106116        SymbolicExpressionTreeParameterOnActualNameChanged;
     117      MaxArgumentDefinitionsParameter.ValueChanged += ParameterizeGrammar;
     118      MaxFunctionDefinitionsParameter.ValueChanged += ParameterizeGrammar;
    107119    }
    108120
    109 
    110 
    111121    protected override void OnEvaluatorChanged() {
    112       base.OnEvaluatorChanged();
    113122      Evaluator.LawnMowerProgramParameter.ActualName = LawnMowerProgramParameterName;
    114123      Evaluator.LawnLengthParameter.ActualName = LawnLengthParameterName;
     
    117126      ParameterizeAnalyzers();
    118127      ParameterizeOperators();
     128      base.OnEvaluatorChanged();
    119129    }
    120130
    121131    protected override void OnSolutionCreatorChanged() {
    122       base.OnSolutionCreatorChanged();
    123132      SolutionCreator.SymbolicExpressionTreeParameter.ActualName = LawnMowerProgramParameterName;
    124133      SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += SymbolicExpressionTreeParameterOnActualNameChanged;
    125134      ParameterizeAnalyzers();
    126135      ParameterizeOperators();
     136      base.OnSolutionCreatorChanged();
    127137    }
    128138
     
    135145      ParameterizeAnalyzers();
    136146      ParameterizeOperators();
     147    }
     148
     149    private void ParameterizeGrammar(object sender, EventArgs eventArgs) {
     150      GrammarParameter.Value.MaximumFunctionArguments = MaxArgumentDefinitionsParameter.Value.Value;
     151      GrammarParameter.Value.MaximumFunctionDefinitions = MaxFunctionDefinitionsParameter.Value.Value;
    137152    }
    138153
     
    175190        op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
    176191      }
     192      foreach (ISymbolicExpressionTreeArchitectureAlteringOperator op in operators.OfType<ISymbolicExpressionTreeArchitectureAlteringOperator>()) {
     193        op.MaximumFunctionDefinitionsParameter.ActualName = MaxFunctionDefinitionsParameter.Name;
     194        op.MaximumFunctionArgumentsParameter.ActualName = MaxArgumentDefinitionsParameter.Name;
     195      }
    177196    }
    178197  }
Note: See TracChangeset for help on using the changeset viewer.