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.Problems.Binary/3.3
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.Binary/3.3/BinaryProblem.cs

    r11990 r11996  
    2323
    2424using System;
     25using System.Linq;
    2526using HeuristicLab.Common;
    2627using HeuristicLab.Core;
     
    6768    }
    6869
     70    public abstract double Evaluate(BinaryVector vector, IRandom random);
    6971    public sealed override double Evaluate(Individual individual, IRandom random) {
    7072      return Evaluate(individual.BinaryVector(), random);
    7173    }
    7274
    73     public abstract double Evaluate(BinaryVector vector, IRandom random);
     75    public override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
     76      base.Analyze(individuals, qualities, results, random);
     77      var best = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderByDescending(z => z.Quality).First();
     78      if (!results.ContainsKey("Best Solution")) {
     79        results.Add(new Result("Best Solution", typeof(BinaryVector)));
     80      }
     81      results["Best Solution"].Value = best.Individual.BinaryVector();
     82    }
    7483
    7584    protected override void OnEncodingChanged() {
  • trunk/sources/HeuristicLab.Problems.Binary/3.3/DeceptiveTrapProblem.cs

    r11987 r11996  
    6666      : base() {
    6767      Parameters.Add(new FixedValueParameter<IntValue>(TrapSizeParameterName, "", new IntValue(7)));
    68       Length = 49;
     68      Encoding.Length = 49;
    6969    }
    7070
  • trunk/sources/HeuristicLab.Problems.Binary/3.3/HIFFProblem.cs

    r11987 r11996  
    4848    public HIFFProblem()
    4949      : base() {
    50       Length = 64;
     50        Encoding.Length = 64;
    5151    }
    5252    // In the GECCO paper, Section 4.1
  • trunk/sources/HeuristicLab.Problems.Binary/3.3/OneMaxProblem.cs

    r11990 r11996  
    3939    public OneMaxProblem()
    4040      : base() {
    41       Encoding = new BinaryVectorEncoding("BinaryVector", 10);
    42       BestKnownQuality = Length;
     41      Encoding.Length = 10;
     42      BestKnownQuality = Encoding.Length;
    4343    }
    4444
     
    4949    public override IDeepCloneable Clone(Cloner cloner) {
    5050      return new OneMaxProblem(this, cloner);
    51     }
    52 
    53     public override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
    54       base.Analyze(individuals, qualities, results, random);
    55       var best = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderByDescending(z => z.Quality).First();
    56       if (!results.ContainsKey("Best Solution")) {
    57         results.Add(new Result("Best Solution", typeof(BinaryVector)));
    58       }
    59       results["Best Solution"].Value = best.Individual.BinaryVector();
    6051    }
    6152
Note: See TracChangeset for help on using the changeset viewer.