Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/13/19 15:16:40 (5 years ago)
Author:
mkommend
Message:

#2521: Adapted GP basic problems to use read-only value parameters.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.GeneticProgramming/3.3/ArtificialAnt/Problem.cs

    r16946 r16947  
    8282      get { return (IValueParameter<BoolMatrix>)Parameters["World"]; }
    8383    }
    84     public IValueParameter<IntValue> MaxTimeStepsParameter {
    85       get { return (IValueParameter<IntValue>)Parameters["MaximumTimeSteps"]; }
     84    public IFixedValueParameter<IntValue> MaxTimeStepsParameter {
     85      get { return (IFixedValueParameter<IntValue>)Parameters["MaximumTimeSteps"]; }
    8686    }
    8787    #endregion
     
    9292      set { WorldParameter.Value = value; }
    9393    }
    94     public IntValue MaxTimeSteps {
    95       get { return MaxTimeStepsParameter.Value; }
    96       set { MaxTimeStepsParameter.Value = value; }
     94    public int MaxTimeSteps {
     95      get { return MaxTimeStepsParameter.Value.Value; }
     96      set { MaxTimeStepsParameter.Value.Value = value; }
    9797    }
    9898    #endregion
     
    119119      BoolMatrix world = new BoolMatrix(ToBoolMatrix(santaFeAntTrail));
    120120      Parameters.Add(new ValueParameter<BoolMatrix>("World", "The world for the artificial ant with scattered food items.", world));
    121       Parameters.Add(new ValueParameter<IntValue>("MaximumTimeSteps", "The number of time steps the artificial ant has available to collect all food items.", new IntValue(600)));
     121      Parameters.Add(new FixedValueParameter<IntValue>("MaximumTimeSteps", "The number of time steps the artificial ant has available to collect all food items.", new IntValue(600)));
    122122
    123123      var g = new SimpleSymbolicExpressionGrammar();
     
    128128      Encoding.TreeLength = 20;
    129129      Encoding.TreeDepth = 10;
     130      Encoding.GrammarParameter.ReadOnly = false;
    130131      Encoding.Grammar = g;
    131       base.BestKnownQuality = 89;
    132       base.Encoding.GrammarParameter.ReadOnly = true;
     132      Encoding.GrammarParameter.ReadOnly = true;
     133
     134      BestKnownQuality = 89;
     135      BestKnownQualityParameter.ReadOnly = true;
    133136    }
    134137
    135138
    136139    public override double Evaluate(ISymbolicExpressionTree tree, IRandom random) {
    137       var interpreter = new Interpreter(tree, World, MaxTimeSteps.Value);
     140      var interpreter = new Interpreter(tree, World, MaxTimeSteps);
    138141      interpreter.Run();
    139142      return interpreter.FoodEaten;
     
    146149
    147150      if (!results.ContainsKey(bestSolutionResultName)) {
    148         results.Add(new Result(bestSolutionResultName, new Solution(World, trees[bestIdx], MaxTimeSteps.Value, qualities[bestIdx])));
     151        results.Add(new Result(bestSolutionResultName, new Solution(World, trees[bestIdx], MaxTimeSteps, qualities[bestIdx])));
    149152      } else if (((Solution)(results[bestSolutionResultName].Value)).Quality < qualities[bestIdx]) {
    150         results[bestSolutionResultName].Value = new Solution(World, trees[bestIdx], MaxTimeSteps.Value, qualities[bestIdx]);
     153        results[bestSolutionResultName].Value = new Solution(World, trees[bestIdx], MaxTimeSteps, qualities[bestIdx]);
    151154      }
    152155    }
Note: See TracChangeset for help on using the changeset viewer.