Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/12/15 21:49:06 (9 years ago)
Author:
mkommend
Message:

#2282: Fixed maximization flag and solution creators for binary problems.

Location:
trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems/BasicProblem.cs

    r11982 r11996  
    6767      Parameters.Add(new ValueParameter<TEncoding>("Encoding", "Describes the configuration of the encoding, what the variables are called, what type they are and their bounds if any."));
    6868      oldEncoding = Encoding;
     69      Parameterize();
    6970      RegisterEvents();
    7071    }
     
    9192
    9293    protected virtual void OnEncodingChanged() {
     94      Parameterize();
     95
     96      OnOperatorsChanged();
     97      OnReset();
     98    }
     99
     100    private void Parameterize() {
    93101      if (oldEncoding != null) {
    94102        AdaptEncodingOperators(oldEncoding, Encoding);
     
    107115        Encoding.SolutionCreator);
    108116      Parameters.Remove(SolutionCreatorParameter);
    109       Parameters.Add(solutionCreatorParam); 
    110       ((IValueParameter)solutionCreatorParam).ValueChanged += SolutionCreatorParameter_ValueChanged;     
     117      Parameters.Add(solutionCreatorParam);
     118      ((IValueParameter)solutionCreatorParam).ValueChanged += SolutionCreatorParameter_ValueChanged;
    111119
    112120      var multiEncoding = Encoding as MultiEncoding;
    113121      if (multiEncoding != null) multiEncoding.EncodingsChanged += MultiEncodingOnEncodingsChanged;
    114 
    115       OnOperatorsChanged();
    116       OnReset();
    117122    }
    118123
  • trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems/MultiObjectiveBasicProblem.cs

    r11970 r11996  
    4141    protected MultiObjectiveBasicProblem()
    4242      : base() {
    43       Parameters.Add(new ValueParameter<BoolArray>("Maximization", "Set to false if the problem should be minimized.", new BoolArray()));
     43      Parameters.Add(new ValueParameter<BoolArray>("Maximization", "Set to false if the problem should be minimized.", (BoolArray)new BoolArray(Maximization).AsReadOnly()));
    4444
    4545      Operators.Add(Evaluator);
     
    5757    public abstract double[] Evaluate(Individual individual, IRandom random);
    5858    public virtual void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) { }
    59 
    60     protected override void OnEncodingChanged() {
    61       base.OnEncodingChanged();
    62       Parameters["Maximization"].ActualValue = new BoolArray(Maximization);
    63     }
    6459
    6560    protected override void OnOperatorsChanged() {
  • trunk/sources/HeuristicLab.Optimization/3.3/BasicProblems/SingleObjectiveBasicProblem.cs

    r11990 r11996  
    5959    protected SingleObjectiveBasicProblem()
    6060      : base() {
    61       Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.", new BoolValue()));
     61      Parameters.Add(new FixedValueParameter<BoolValue>("Maximization", "Set to false if the problem should be minimized.", (BoolValue)new BoolValue(Maximization).AsReadOnly()) { Hidden = true });
    6262      Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this problem."));
    6363
     
    8282    public virtual IEnumerable<Individual> GetNeighbors(Individual individual, IRandom random) {
    8383      return Enumerable.Empty<Individual>();
    84     }
    85 
    86 
    87     protected override void OnEncodingChanged() {
    88       base.OnEncodingChanged();
    89       var max = (BoolValue)Parameters["Maximization"].ActualValue;
    90       max.Value = Maximization;
    9184    }
    9285
Note: See TracChangeset for help on using the changeset viewer.