Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/08/15 15:52:05 (9 years ago)
Author:
mkommend
Message:

#2174: Worked on operators and programmable problem base classes and scripts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs

    r11619 r11739  
    3232  [Item("Multi-objective Evaluator", "Calls the Evaluate method of the problem definition and writes the return value into the scope.")]
    3333  [StorableClass]
    34   public class MultiObjectiveEvaluator : SingleSuccessorOperator, IMultiObjectiveProgrammableProblemEvaluator, IStochasticOperator {
     34  public class MultiObjectiveEvaluator : SingleSuccessorOperator, IMulitObjectiveEvaluationOperator, IStochasticOperator {
    3535
    3636    public ILookupParameter<IRandom> RandomParameter {
    3737      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
    38     }
    39 
    40     public ILookupParameter<IMultiObjectiveProblemDefinition> ProblemDefinitionParameter {
    41       get { return (ILookupParameter<IMultiObjectiveProblemDefinition>)Parameters["ProblemDefinition"]; }
    4238    }
    4339
     
    5046    }
    5147
     48    public Func<Individual, IRandom, double[]> EvaluateFunc { get; set; }
     49
    5250    [StorableConstructor]
    5351    protected MultiObjectiveEvaluator(bool deserializing) : base(deserializing) { }
     
    5553    public MultiObjectiveEvaluator() {
    5654      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    57       Parameters.Add(new LookupParameter<IMultiObjectiveProblemDefinition>("ProblemDefinition", "The host that holds the problem definition."));
    5855      Parameters.Add(new LookupParameter<IEncoding>("Encoding", "An item that holds the problem's encoding."));
    5956      Parameters.Add(new LookupParameter<DoubleArray>("Qualities", "The qualities of the parameter vector."));
     
    6663    public override IOperation Apply() {
    6764      var random = RandomParameter.ActualValue;
    68       var definition = ProblemDefinitionParameter.ActualValue;
    69       if (definition == null) throw new InvalidOperationException("Problem definition is null.");
    7065      var encoding = EncodingParameter.ActualValue;
    7166      var individual = encoding.GetIndividual(ExecutionContext.Scope);
    72       QualitiesParameter.ActualValue = new DoubleArray(definition.Evaluate(random, individual));
     67      QualitiesParameter.ActualValue = new DoubleArray(EvaluateFunc(individual, random));
    7368      return base.Apply();
    7469    }
Note: See TracChangeset for help on using the changeset viewer.