Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/23/12 16:28:05 (12 years ago)
Author:
abeham
Message:

#1722:

  • In QAPExhaustiveSwap2LocalImprovement moved local search code to a static method
  • Otherwise minor changes to the QAP
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/LocalImprovement/QAPExhaustiveSwap2LocalImprovement.cs

    r7259 r7878  
    100100    }
    101101
    102     public override IOperation Apply() {
    103       int maxIterations = MaximumIterationsParameter.ActualValue.Value;
    104       Permutation assignment = AssignmentParameter.ActualValue;
    105       bool maximization = MaximizationParameter.ActualValue.Value;
    106       DoubleMatrix weights = WeightsParameter.ActualValue;
    107       DoubleMatrix distances = DistancesParameter.ActualValue;
    108 
    109       double evaluatedSolutions = 0.0;
     102    public static double Improve(Permutation assignment, double quality, DoubleMatrix weights, DoubleMatrix distances, bool maximization, int maxIterations, out double evaluatedSolutions) {
     103      evaluatedSolutions = 0.0;
    110104      double evalSolPerMove = 4.0 / assignment.Length;
    111105
     
    124118        if (bestMove == null) break;
    125119        Swap2Manipulator.Apply(assignment, bestMove.Index1, bestMove.Index2);
    126         QualityParameter.ActualValue.Value += bestQuality;
     120        quality += bestQuality;
    127121      }
    128       EvaluatedSolutionsParameter.ActualValue.Value += (int)Math.Ceiling(evaluatedSolutions);
     122      return quality;
     123    }
     124
     125    public override IOperation Apply() {
     126      int maxIterations = MaximumIterationsParameter.ActualValue.Value;
     127      Permutation assignment = AssignmentParameter.ActualValue;
     128      bool maximization = MaximizationParameter.ActualValue.Value;
     129      DoubleMatrix weights = WeightsParameter.ActualValue;
     130      DoubleMatrix distances = DistancesParameter.ActualValue;
     131      double quality = QualityParameter.ActualValue.Value;
     132
     133      double evaluations;
     134      QualityParameter.ActualValue.Value = Improve(assignment, quality, weights, distances, maximization, maxIterations, out evaluations);
     135      EvaluatedSolutionsParameter.ActualValue.Value += (int)Math.Ceiling(evaluations);
    129136      return base.Apply();
    130137    }
Note: See TracChangeset for help on using the changeset viewer.