Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/16/15 11:14:50 (9 years ago)
Author:
mkommend
Message:

#2174: Changed operator parameterization in programmable problem.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/New/SingleObjectiveProgrammableProblem.cs

    r11780 r11786  
    2020#endregion
    2121
     22using System.Collections.Generic;
    2223using System.Linq;
    2324using HeuristicLab.Analysis;
     
    4445    protected SingleObjectiveProgrammableProblem()
    4546      : base() {
    46       Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.", new BoolValue(Maximization)));
     47      Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.", new BoolValue()));
    4748      Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this problem."));
    4849
     
    6667    public abstract double Evaluate(Individual individual, IRandom random);
    6768    public virtual void Analyze(Individual[] individuals, double[] qualities, ResultCollection results) { }
     69    public virtual IEnumerable<Individual> GetNeighbors(Individual individual, IRandom random) {
     70      return Enumerable.Empty<Individual>();
     71    }
    6872
     73
     74    protected override void OnEncodingChanged() {
     75      base.OnEncodingChanged();
     76      var max = (BoolValue)Parameters["Maximization"].ActualValue;
     77      max.Value = Maximization;
     78    }
    6979
    7080    protected override void OnEvaluatorChanged() {
     
    7383    }
    7484
    75     protected override void ParameterizeOperators() {
    76       base.ParameterizeOperators();
     85    private void ParameterizeOperators() {
    7786      foreach (var op in Operators.OfType<ISingleObjectiveEvaluationOperator>())
    7887        op.EvaluateFunc = Evaluate;
    7988      foreach (var op in Operators.OfType<ISingleObjectiveAnalysisOperator>())
    8089        op.AnalyzeAction = Analyze;
     90      foreach (var op in Operators.OfType<INeighborBasedOperator>())
     91        op.GetNeighborsFunc = GetNeighbors;
    8192    }
    8293
Note: See TracChangeset for help on using the changeset viewer.