Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/11/17 11:57:56 (6 years ago)
Author:
abeham
Message:

#1614: finished wiring

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Operators/Crossovers/CordeauCrossover.cs

    r15504 r15506  
    3535  public class CordeauCrossover : GQAPCrossover,
    3636    IQualitiesAwareGQAPOperator, IProblemInstanceAwareGQAPOperator {
    37 
    38     public ILookupParameter<BoolValue> MaximizationParameter {
    39       get { return (ILookupParameter<BoolValue>)Parameters["Maximization"]; }
    40     }
     37   
    4138    public IScopeTreeLookupParameter<DoubleValue> QualityParameter {
    4239      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
     
    5653    public CordeauCrossover()
    5754      : base() {
    58       Parameters.Add(new LookupParameter<BoolValue>("Maximization", ""));
    5955      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality of the parents", 1));
    6056      Parameters.Add(new ScopeTreeLookupParameter<Evaluation>("Evaluation", GQAP.EvaluationDescription, 1));
     
    6662    }
    6763
    68     public static IntegerVector Apply(IRandom random, bool maximization,
     64    public static IntegerVector Apply(IRandom random,
    6965      IntegerVector parent1, DoubleValue quality1,
    7066      IntegerVector parent2, DoubleValue quality2,
     
    8076     
    8177      bool onefound = false;
    82       double fbest, fbestAttempt = maximization ? double.MinValue : double.MaxValue;
     78      double fbest, fbestAttempt = double.MaxValue;
    8379      IntegerVector bestAttempt = null;
    8480      IntegerVector result = null;
    8581
    8682      fbest = quality1.Value;
    87       if (maximization && quality1.Value < quality2.Value
    88         || !maximization && quality1.Value > quality2.Value) {
     83      if (quality1.Value > quality2.Value) {
    8984        var temp = parent1;
    9085        parent1 = parent2;
     
    10297          var childFit = problemInstance.ToSingleObjective(problemInstance.Evaluate(child));
    10398          evaluatedSolutions.Value++;
    104           if (maximization && childFit >= fbest
    105             || !maximization && childFit <= fbest) {
     99          if (childFit <= fbest) {
    106100            fbest = childFit;
    107101            result = child;
    108102            onefound = true;
    109103          }
    110           if (!onefound && (maximization && fbestAttempt < childFit || !maximization && fbestAttempt > childFit)) {
     104          if (!onefound && fbestAttempt > childFit) {
    111105            bestAttempt = child;
    112106            fbestAttempt = childFit;
     
    130124        }
    131125
    132         if (!onefound && (maximization && fbestAttempt < childFit || !maximization && fbestAttempt > childFit)) {
     126        if (!onefound && fbestAttempt > childFit) {
    133127          bestAttempt = child;
    134128          fbestAttempt = childFit;
     
    203197
    204198      var qualities = QualityParameter.ActualValue;
    205       return Apply(random, MaximizationParameter.ActualValue.Value,
     199      return Apply(random,
    206200        parents[0], qualities[0],
    207201        parents[1], qualities[1],
Note: See TracChangeset for help on using the changeset viewer.