Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/08/20 06:34:12 (4 years ago)
Author:
abeham
Message:

#2521: Completed porting of OrienteeringProblem

  • Adapted unit tests
  • Commented non-working unit test
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.Orienteering/3.3/OrienteeringProblem.cs

    r17525 r17526  
    110110      var data = OrienteeringProblemData;
    111111
    112       var best = GetBestSolution(vectors, qualities);
    113       var score = CalculateScore(OrienteeringProblemData, best.Item1);
    114       var travelCosts = CalculateTravelCosts(OrienteeringProblemData, best.Item1);
     112      var best = GetBestSolution(vectors, qualities).Item1;
     113      var score = CalculateScore(OrienteeringProblemData, best);
     114      var travelCosts = CalculateTravelCosts(OrienteeringProblemData, best);
    115115      var quality = CalculateQuality(OrienteeringProblemData, score, travelCosts);
    116116
    117       if (BestKnownQuality == double.NaN || best.Item2 > BestKnownQuality) {
    118         BestKnownQuality = best.Item2;
    119         BestKnownSolutionParameter.ActualValue = data.GetSolution((IntegerVector)best.Item1.Clone(), quality, score, travelCosts);
     117      if (double.IsNaN(BestKnownQuality) || IsBetter(quality, BestKnownQuality)) {
     118        BestKnownQuality = quality;
     119        BestKnownSolutionParameter.ActualValue = data.GetSolution((IntegerVector)best.Clone(), quality, score, travelCosts);
    120120      }
    121121
    122122      var bestSoFar = BestOrienteeringSolutionParameter.ActualValue;
    123123     
    124       if (bestSoFar == null) {
    125         bestSoFar = data.GetSolution((IntegerVector)best.Item1.Clone(), quality, score, travelCosts);
     124      if (bestSoFar == null || IsBetter(quality, bestSoFar.Quality.Value)) {
     125        bestSoFar = data.GetSolution((IntegerVector)best.Clone(), quality, score, travelCosts);
    126126        BestOrienteeringSolutionParameter.ActualValue = bestSoFar;
    127       } else {
    128         if (IsBetter(best.Item2, bestSoFar.Quality.Value)) {
    129           bestSoFar.Route = (IntegerVector)best.Item1.Clone();
    130           bestSoFar.Quality.Value = quality;
    131           bestSoFar.Score.Value = score;
    132           bestSoFar.TravelCosts.Value = travelCosts;
    133         }
    134127      }
    135128    }
Note: See TracChangeset for help on using the changeset viewer.