Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/16/19 16:12:21 (5 years ago)
Author:
abeham
Message:

#2521: worked on refactoring PTSP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalTwoPointFiveLocalImprovement.cs

    r17226 r17253  
    2222using System;
    2323using System.Threading;
     24using HEAL.Attic;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
     
    2930using HeuristicLab.Optimization;
    3031using HeuristicLab.Parameters;
    31 using HEAL.Attic;
    3232
    3333namespace HeuristicLab.Problems.PTSP {
     
    3939  /// </remarks>
    4040  [Item("PTSP Analytical 2.5 Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
    41   [StorableType("C139639F-D6DD-4756-8482-24F12A78C8E9")]
     41  [StorableType("6e07195e-0da7-45ea-9385-0c66594127db")]
    4242  public sealed class PTSPAnalyticalTwoPointFiveLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, ILocalImprovementOperator {
    4343
     
    7070    }
    7171
    72     public ILookupParameter<DistanceMatrix> DistanceMatrixParameter {
    73       get { return (ILookupParameter<DistanceMatrix>)Parameters["DistanceMatrix"]; }
    74     }
    75 
    76     public ILookupParameter<DoubleArray> ProbabilitiesParameter {
    77       get { return (ILookupParameter<DoubleArray>)Parameters["Probabilities"]; }
     72    public ILookupParameter<IProbabilisticTSPData> ProbabilisticTSPDataParameter {
     73      get { return (ILookupParameter<IProbabilisticTSPData>)Parameters["PTSP Data"]; }
    7874    }
    7975
     
    9086      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value of the assignment."));
    9187      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem should be maximized or minimized."));
    92       Parameters.Add(new LookupParameter<DistanceMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));
    93       Parameters.Add(new LookupParameter<DoubleArray>("Probabilities", "The list of probabilities of the cities to appear."));
     88      Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the p-TSP."));
    9489    }
    9590
     
    9893    }
    9994
    100     public static void Improve(Permutation assignment, DoubleMatrix distances, DoubleValue quality, IntValue localIterations, IntValue evaluatedSolutions, bool maximization, int maxIterations, DoubleArray probabilities, CancellationToken cancellation) {
    101       var distanceM = (DistanceMatrix)distances;
    102       Func<int, int, double> distance = (a, b) => distanceM[a, b];
     95    public static void Improve(Permutation assignment, IProbabilisticTSPData data, DoubleValue quality, IntValue localIterations, IntValue evaluatedSolutions, bool maximization, int maxIterations, CancellationToken cancellation) {
    10396      for (var i = localIterations.Value; i < maxIterations; i++) {
    10497        TwoPointFiveMove bestMove = null;
     
    10699        var evaluations = 0.0;
    107100        foreach (var move in ExhaustiveTwoPointFiveMoveGenerator.Generate(assignment)) {
    108           var moveQuality = PTSPAnalyticalTwoPointFiveMoveEvaluator.EvaluateMove(assignment, move, distance, probabilities);
     101          var moveQuality = PTSPAnalyticalTwoPointFiveMoveEvaluator.EvaluateMove(assignment, move, data);
    109102          evaluations++;
    110103          if (maximization && moveQuality > bestQuality
     
    127120      var assignment = PermutationParameter.ActualValue;
    128121      var maximization = MaximizationParameter.ActualValue.Value;
    129       var distances = DistanceMatrixParameter.ActualValue;
    130122      var quality = QualityParameter.ActualValue;
    131123      var localIterations = LocalIterationsParameter.ActualValue;
    132124      var evaluations = EvaluatedSolutionsParameter.ActualValue;
    133       var probabilities = ProbabilitiesParameter.ActualValue;
     125      var data = ProbabilisticTSPDataParameter.ActualValue;
    134126      if (localIterations == null) {
    135127        localIterations = new IntValue(0);
     
    137129      }
    138130
    139       Improve(assignment, distances, quality, localIterations, evaluations, maximization, maxIterations, probabilities, CancellationToken);
     131      Improve(assignment, data, quality, localIterations, evaluations, maximization, maxIterations, CancellationToken);
    140132
    141133      localIterations.Value = 0;
Note: See TracChangeset for help on using the changeset viewer.