Changeset 11739 for branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs
- Timestamp:
- 01/08/15 15:52:05 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs
r11619 r11739 32 32 [Item("Multi-objective Evaluator", "Calls the Evaluate method of the problem definition and writes the return value into the scope.")] 33 33 [StorableClass] 34 public class MultiObjectiveEvaluator : SingleSuccessorOperator, IMul tiObjectiveProgrammableProblemEvaluator, IStochasticOperator {34 public class MultiObjectiveEvaluator : SingleSuccessorOperator, IMulitObjectiveEvaluationOperator, IStochasticOperator { 35 35 36 36 public ILookupParameter<IRandom> RandomParameter { 37 37 get { return (ILookupParameter<IRandom>)Parameters["Random"]; } 38 }39 40 public ILookupParameter<IMultiObjectiveProblemDefinition> ProblemDefinitionParameter {41 get { return (ILookupParameter<IMultiObjectiveProblemDefinition>)Parameters["ProblemDefinition"]; }42 38 } 43 39 … … 50 46 } 51 47 48 public Func<Individual, IRandom, double[]> EvaluateFunc { get; set; } 49 52 50 [StorableConstructor] 53 51 protected MultiObjectiveEvaluator(bool deserializing) : base(deserializing) { } … … 55 53 public MultiObjectiveEvaluator() { 56 54 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."));58 55 Parameters.Add(new LookupParameter<IEncoding>("Encoding", "An item that holds the problem's encoding.")); 59 56 Parameters.Add(new LookupParameter<DoubleArray>("Qualities", "The qualities of the parameter vector.")); … … 66 63 public override IOperation Apply() { 67 64 var random = RandomParameter.ActualValue; 68 var definition = ProblemDefinitionParameter.ActualValue;69 if (definition == null) throw new InvalidOperationException("Problem definition is null.");70 65 var encoding = EncodingParameter.ActualValue; 71 66 var individual = encoding.GetIndividual(ExecutionContext.Scope); 72 QualitiesParameter.ActualValue = new DoubleArray( definition.Evaluate(random, individual));67 QualitiesParameter.ActualValue = new DoubleArray(EvaluateFunc(individual, random)); 73 68 return base.Apply(); 74 69 }
Note: See TracChangeset
for help on using the changeset viewer.