- Timestamp:
- 12/18/19 16:11:21 (5 years ago)
- Location:
- branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/CompiledProblemDefinition.cs
r17381 r17382 61 61 public abstract bool Maximization { get; } 62 62 63 public virtual doubleEvaluate(TEncodedSolution solution, IRandom random) {63 public virtual ISingleObjectiveEvaluationResult Evaluate(TEncodedSolution solution, IRandom random) { 64 64 return Evaluate(solution, random, CancellationToken.None); 65 65 } 66 public abstract doubleEvaluate(TEncodedSolution solution, IRandom random, CancellationToken cancellationToken);66 public abstract ISingleObjectiveEvaluationResult Evaluate(TEncodedSolution solution, IRandom random, CancellationToken cancellationToken); 67 67 68 68 public virtual void Evaluate(ISingleObjectiveSolutionContext<TEncodedSolution> solutionContext, IRandom random) { … … 70 70 } 71 71 public virtual void Evaluate(ISingleObjectiveSolutionContext<TEncodedSolution> solutionContext, IRandom random, CancellationToken cancellationToken) { 72 double quality= Evaluate(solutionContext.EncodedSolution, random, cancellationToken);73 solutionContext.EvaluationResult = new SingleObjectiveEvaluationResult(quality);72 var evaluationResult = Evaluate(solutionContext.EncodedSolution, random, cancellationToken); 73 solutionContext.EvaluationResult = evaluationResult; 74 74 } 75 75 -
branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProblemDefinitionScript.cs
r17366 r17382 51 51 public bool Maximization => CompiledProblemDefinition.Maximization; 52 52 53 doubleISingleObjectiveProblemDefinition<TEncoding, TEncodedSolution>.Evaluate(TEncodedSolution solution, IRandom random) {53 ISingleObjectiveEvaluationResult ISingleObjectiveProblemDefinition<TEncoding, TEncodedSolution>.Evaluate(TEncodedSolution solution, IRandom random) { 54 54 return CompiledProblemDefinition.Evaluate(solution, random); 55 55 } 56 56 57 doubleISingleObjectiveProblemDefinition<TEncoding, TEncodedSolution>.Evaluate(TEncodedSolution solution, IRandom random, CancellationToken cancellationToken) {57 ISingleObjectiveEvaluationResult ISingleObjectiveProblemDefinition<TEncoding, TEncodedSolution>.Evaluate(TEncodedSolution solution, IRandom random, CancellationToken cancellationToken) { 58 58 return CompiledProblemDefinition.Evaluate(solution, random, cancellationToken); 59 59 } -
branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs
r17363 r17382 111 111 ProblemDefinition.Evaluate(solutionContext, random, cancellationToken); 112 112 } 113 public override doubleEvaluate(TEncodedSolution individual, IRandom random, CancellationToken cancellationToken) {113 public override ISingleObjectiveEvaluationResult Evaluate(TEncodedSolution individual, IRandom random, CancellationToken cancellationToken) { 114 114 return ProblemDefinition.Evaluate(individual, random, cancellationToken); 115 115 } -
branches/2521_ProblemRefactoring/HeuristicLab.Problems.Programmable/3.3/Templates/SingleObjectiveProblem_Template.cs
r17381 r17382 23 23 //TODO add other methods 24 24 25 public override void Evaluate(ISingleObjectiveSolutionContext<SOLUTION_CLASS> solutionContext, IRandom random, CancellationToken cancellationToken) { 26 var quality = Evaluate(solutionContext.EncodedSolution, random, cancellationToken); 25 public override ISingleObjectiveEvaluationResult Evaluate(SOLUTION_CLASS solution, IRandom random, CancellationToken cancellationToken) { 26 // Use vars.yourVariable to access variables in the variable store i.e. yourVariable 27 var quality = 0.0; 27 28 var evaluationResult = new SingleObjectiveEvaluationResult(quality); 28 solutionContext.EvaluationResult =evaluationResult;29 return evaluationResult; 29 30 } 30 31 31 public override double Evaluate(SOLUTION_CLASS solution, IRandom random, CancellationToken cancellationToken) { 32 // Use vars.yourVariable to access variables in the variable store i.e. yourVariable 33 var quality = 0.0; 34 return quality; 35 } 36 37 public override void Analyze(ISingleObjectiveSolutionContext<TEncodedSolution>[] solutionContexts, ResultCollection results, IRandom random) { 32 public override void Analyze(ISingleObjectiveSolutionContext<SOLUTION_CLASS>[] solutionContexts, ResultCollection results, IRandom random) { 38 33 var solutions = solutionContexts.Select(c => c.EncodedSolution).ToArray(); 39 34 var qualities = solutionContexts.Select(c => c.EvaluationResult.Quality).ToArray();
Note: See TracChangeset
for help on using the changeset viewer.