Changeset 2988 for trunk/sources/HeuristicLab.Problems.TSP
- Timestamp:
- 03/10/10 04:16:18 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.TSP/3.3
- Files:
-
- 2 added
- 1 deleted
- 1 edited
- 8 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs
r2985 r2988 22 22 using HeuristicLab.Core; 23 23 using HeuristicLab.Data; 24 using HeuristicLab.Encodings.Permutation; 24 25 using HeuristicLab.Parameters; 25 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 31 32 [Item("TSPCoordinatesPathEvaluator", "A base class for operators which evaluate TSP solutions given in path representation using city coordinates.")] 32 33 [EmptyStorableClass] 33 public abstract class TSPCoordinatesPathEvaluator : TSPPathEvaluator, ITSPCoordinatesPathEvaluator { 34 public abstract class TSPCoordinatesPathEvaluator : TSPEvaluator, ITSPCoordinatesPathEvaluator { 35 public ILookupParameter<Permutation> PermutationParameter { 36 get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } 37 } 34 38 public ILookupParameter<DoubleMatrixData> CoordinatesParameter { 35 39 get { return (ILookupParameter<DoubleMatrixData>)Parameters["Coordinates"]; } … … 38 42 protected TSPCoordinatesPathEvaluator() 39 43 : base() { 44 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The TSP solution given in path representation which should be evaluated.")); 40 45 Parameters.Add(new LookupParameter<DoubleMatrixData>("Coordinates", "The x- and y-Coordinates of the cities.")); 41 46 } 42 47 43 protected sealed override double CalculateDistance(int a, int b) { 44 DoubleMatrixData coordinates = CoordinatesParameter.ActualValue; 45 return CalculateDistance(coordinates[a, 0], coordinates[a, 1], 46 coordinates[b, 0], coordinates[b, 1]); 48 public sealed override IOperation Apply() { 49 Permutation p = PermutationParameter.ActualValue; 50 DoubleMatrixData c = CoordinatesParameter.ActualValue; 51 52 double length = 0; 53 for (int i = 0; i < p.Length - 1; i++) 54 length += CalculateDistance(c[p[i], 0], c[p[i], 1], c[p[i + 1], 0], c[p[i + 1], 1]); 55 length += CalculateDistance(c[p[p.Length - 1], 0], c[p[p.Length - 1], 1], c[p[0], 0], c[p[0], 1]); 56 QualityParameter.ActualValue = new DoubleData(length); 57 58 return base.Apply(); 47 59 } 48 60 -
trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPDistanceMatrixPathEvaluator.cs
r2985 r2988 22 22 using HeuristicLab.Core; 23 23 using HeuristicLab.Data; 24 using HeuristicLab.Encodings.Permutation; 24 25 using HeuristicLab.Parameters; 25 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 32 33 [Creatable("Test")] 33 34 [EmptyStorableClass] 34 public sealed class TSPDistanceMatrixPathEvaluator : TSPPathEvaluator, ITSPDistanceMatrixPathEvaluator { 35 public sealed class TSPDistanceMatrixPathEvaluator : TSPEvaluator, ITSPDistanceMatrixPathEvaluator { 36 public ILookupParameter<Permutation> PermutationParameter { 37 get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } 38 } 35 39 public ILookupParameter<DoubleMatrixData> DistanceMatrixParameter { 36 40 get { return (ILookupParameter<DoubleMatrixData>)Parameters["DistanceMatrix"]; } … … 39 43 public TSPDistanceMatrixPathEvaluator() 40 44 : base() { 45 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The TSP solution given in path representation which should be evaluated.")); 41 46 Parameters.Add(new LookupParameter<DoubleMatrixData>("DistanceMatrix", "The distance matrix of the cities.")); 42 47 } 43 48 44 protected override double CalculateDistance(int a, int b) { 45 DoubleMatrixData distanceMatrix = DistanceMatrixParameter.ActualValue; 46 return distanceMatrix[a, b]; 49 public sealed override IOperation Apply() { 50 Permutation p = PermutationParameter.ActualValue; 51 DoubleMatrixData d = DistanceMatrixParameter.ActualValue; 52 53 double length = 0; 54 for (int i = 0; i < p.Length - 1; i++) 55 length += d[p[i], p[i + 1]]; 56 length += d[p[p.Length - 1], p[0]]; 57 QualityParameter.ActualValue = new DoubleData(length); 58 59 return base.Apply(); 47 60 } 48 61 } -
trunk/sources/HeuristicLab.Problems.TSP/3.3/HeuristicLab.Problems.TSP-3.3.csproj
r2975 r2988 84 84 </ItemGroup> 85 85 <ItemGroup> 86 <Compile Include="TSPCoordinatesPathEvaluator.cs" /> 87 <Compile Include="ITSPDistanceMatrixPathEvaluator.cs" /> 88 <Compile Include="ITSPCoordinatesPathEvaluator.cs" /> 89 <Compile Include="ITSPPathEvaluator.cs" /> 86 <Compile Include="Evaluators\TSPCoordinatesPathEvaluator.cs" /> 87 <Compile Include="Evaluators\TSPDistanceMatrixPathEvaluator.cs" /> 88 <Compile Include="Evaluators\TSPEvaluator.cs" /> 89 <Compile Include="Evaluators\TSPRoundedEuclideanPathEvaluator.cs" /> 90 <Compile Include="Interfaces\ITSPCoordinatesPathEvaluator.cs" /> 91 <Compile Include="Interfaces\ITSPDistanceMatrixPathEvaluator.cs" /> 92 <Compile Include="Interfaces\ITSPEvaluator.cs" /> 93 <Compile Include="Interfaces\ITSPPathEvaluator.cs" /> 90 94 <Compile Include="HeuristicLabProblemsTSPPlugin.cs" /> 91 <Compile Include="TSPEvaluator.cs" />92 <Compile Include="ITSPEvaluator.cs" />93 <Compile Include="TSPDistanceMatrixPathEvaluator.cs" />94 95 <Compile Include="TSPLIBParser.cs" /> 95 <Compile Include="TSPRoundedEuclideanPathEvaluator.cs" />96 <Compile Include="TSPPathEvaluator.cs" />97 96 <Compile Include="TSP.cs" /> 98 97 <Compile Include="Properties\AssemblyInfo.cs" />
Note: See TracChangeset
for help on using the changeset viewer.