Changeset 17253 for branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInsertionLocalImprovement.cs
- Timestamp:
- 09/16/19 16:12:21 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInsertionLocalImprovement.cs
r17226 r17253 21 21 22 22 using System; 23 using System.Collections.Generic; 24 using System.Linq; 23 25 using System.Threading; 26 using HEAL.Attic; 24 27 using HeuristicLab.Common; 25 28 using HeuristicLab.Core; … … 29 32 using HeuristicLab.Optimization; 30 33 using HeuristicLab.Parameters; 31 using HEAL.Attic;32 34 33 35 namespace HeuristicLab.Problems.PTSP { … … 70 72 } 71 73 72 public ILookupParameter< DistanceMatrix> DistanceMatrixParameter {73 get { return (ILookupParameter< DistanceMatrix>)Parameters["DistanceMatrix"]; }74 public ILookupParameter<IProbabilisticTSPData> ProbabilisticTSPDataParameter { 75 get { return (ILookupParameter<IProbabilisticTSPData>)Parameters["PTSP Data"]; } 74 76 } 75 77 76 public ILookupParameter< ItemList<BoolArray>> RealizationsParameter {77 get { return (ILookupParameter< ItemList<BoolArray>>)Parameters["Realizations"]; }78 public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter { 79 get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["Realizations"]; } 78 80 } 79 81 … … 90 92 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value of the assignment.")); 91 93 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."));94 Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the p-TSP.")); 93 95 Parameters.Add(new LookupParameter<ItemList<BoolArray>>("Realizations", "The list of samples drawn from all possible stochastic instances.")); 94 96 } … … 98 100 } 99 101 100 public static void Improve(Permutation assignment, DoubleMatrix distances, DoubleValue quality, IntValue localIterations, IntValue evaluatedSolutions, bool maximization, int maxIterations, ItemList<BoolArray> realizations, CancellationToken cancellation) { 101 var distanceM = (DistanceMatrix)distances; 102 Func<int, int, double> distance = (a, b) => distanceM[a, b]; 102 public static void Improve(Permutation assignment, IProbabilisticTSPData data, DoubleValue quality, IntValue localIterations, IntValue evaluatedSolutions, bool maximization, int maxIterations, IEnumerable<BoolArray> realizations, CancellationToken cancellation) { 103 103 for (var i = localIterations.Value; i < maxIterations; i++) { 104 104 TranslocationMove bestMove = null; … … 106 106 double evaluations = 0.0; 107 107 foreach (var move in ExhaustiveInsertionMoveGenerator.Generate(assignment)) { 108 double moveQuality = PTSPEstimatedInsertionMoveEvaluator.EvaluateMove(assignment, move, d istance, realizations);109 evaluations += realizations.Count * 6.0 / (assignment.Length * assignment.Length);108 double moveQuality = PTSPEstimatedInsertionMoveEvaluator.EvaluateMove(assignment, move, data, realizations); 109 evaluations += realizations.Count() * 6.0 / (assignment.Length * assignment.Length); 110 110 if (maximization && moveQuality > bestQuality 111 111 || !maximization && moveQuality < bestQuality) { … … 127 127 var assignment = PermutationParameter.ActualValue; 128 128 var maximization = MaximizationParameter.ActualValue.Value; 129 var distances = DistanceMatrixParameter.ActualValue;130 129 var quality = QualityParameter.ActualValue; 131 130 var localIterations = LocalIterationsParameter.ActualValue; 132 131 var evaluations = EvaluatedSolutionsParameter.ActualValue; 132 var data = ProbabilisticTSPDataParameter.ActualValue; 133 133 var realizations = RealizationsParameter.ActualValue; 134 134 if (localIterations == null) { … … 137 137 } 138 138 139 Improve(assignment, d istances, quality, localIterations, evaluations, maximization, maxIterations, realizations, CancellationToken);139 Improve(assignment, data, quality, localIterations, evaluations, maximization, maxIterations, realizations, CancellationToken); 140 140 141 141 localIterations.Value = 0;
Note: See TracChangeset
for help on using the changeset viewer.