Changeset 3634 for trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/BestTSPSolutionAnalyzer.cs
- Timestamp:
- 05/05/10 14:28:22 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/BestTSPSolutionAnalyzer.cs
r3618 r3634 36 36 [Item("BestTSPSolutionAnalyzer", "An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")] 37 37 [StorableClass] 38 public sealed class BestTSPSolutionAnalyzer : SingleSuccessorOperator, I PopulationAnalyzer {38 public sealed class BestTSPSolutionAnalyzer : SingleSuccessorOperator, ISolutionAnalyzer { 39 39 public LookupParameter<DoubleMatrix> CoordinatesParameter { 40 40 get { return (LookupParameter<DoubleMatrix>)Parameters["Coordinates"]; } 41 41 } 42 public SubScopesLookupParameter<Permutation> PermutationParameter {43 get { return ( SubScopesLookupParameter<Permutation>)Parameters["Permutation"]; }42 public LookupParameter<Permutation> PermutationParameter { 43 get { return (LookupParameter<Permutation>)Parameters["Permutation"]; } 44 44 } 45 public SubScopesLookupParameter<DoubleValue> QualityParameter {46 get { return ( SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }45 public LookupParameter<DoubleValue> QualityParameter { 46 get { return (LookupParameter<DoubleValue>)Parameters["Quality"]; } 47 47 } 48 48 public LookupParameter<PathTSPTour> BestSolutionParameter { … … 56 56 : base() { 57 57 Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities.")); 58 Parameters.Add(new SubScopesLookupParameter<Permutation>("Permutation", "The TSP solutions given in path representation from which the best solutionshould be analyzed."));59 Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the TSP solutionswhich should be analyzed."));58 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The TSP solution given in path representation which should be analyzed.")); 59 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the TSP solution which should be analyzed.")); 60 60 Parameters.Add(new LookupParameter<PathTSPTour>("BestSolution", "The best TSP solution.")); 61 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the bestTSP solution should be stored."));61 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the TSP solution should be stored.")); 62 62 } 63 63 64 64 public override IOperation Apply() { 65 65 DoubleMatrix coordinates = CoordinatesParameter.ActualValue; 66 ItemArray<Permutation> permutations= PermutationParameter.ActualValue;67 ItemArray<DoubleValue> qualities= QualityParameter.ActualValue;66 Permutation permutation = PermutationParameter.ActualValue; 67 DoubleValue quality = QualityParameter.ActualValue; 68 68 ResultCollection results = ResultsParameter.ActualValue; 69 70 int i = qualities.Select((x, index) => new { index, x.Value }).OrderBy(x => x.Value).First().index;71 69 72 70 PathTSPTour tour = BestSolutionParameter.ActualValue; 73 71 if (tour == null) { 74 tour = new PathTSPTour(coordinates, permutation s[i], qualities[i]);72 tour = new PathTSPTour(coordinates, permutation, quality); 75 73 BestSolutionParameter.ActualValue = tour; 76 74 results.Add(new Result("Best TSP Solution", tour)); 77 75 } else { 78 if (tour.Quality.Value > qualit ies[i].Value) {76 if (tour.Quality.Value > quality.Value) { 79 77 tour.Coordinates = coordinates; 80 tour.Permutation = permutation s[i];81 tour.Quality = qualit ies[i];78 tour.Permutation = permutation; 79 tour.Quality = quality; 82 80 results["Best TSP Solution"].Value = tour; 83 81 }
Note: See TracChangeset
for help on using the changeset viewer.