- Timestamp:
- 11/17/10 07:41:28 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs
r4722 r4825 40 40 get { return (ILookupParameter<DoubleMatrix>)Parameters["Coordinates"]; } 41 41 } 42 public ILookupParameter<D oubleMatrix> DistanceMatrixParameter {43 get { return (ILookupParameter<D oubleMatrix>)Parameters["DistanceMatrix"]; }42 public ILookupParameter<DistanceMatrix> DistanceMatrixParameter { 43 get { return (ILookupParameter<DistanceMatrix>)Parameters["DistanceMatrix"]; } 44 44 } 45 45 public ILookupParameter<BoolValue> UseDistanceMatrixParameter { … … 54 54 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The TSP solution given in path representation which should be evaluated.")); 55 55 Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities.")); 56 Parameters.Add(new LookupParameter<D oubleMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));56 Parameters.Add(new LookupParameter<DistanceMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities.")); 57 57 Parameters.Add(new LookupParameter<BoolValue>("UseDistanceMatrix", "True if a distance matrix should be calculated and used for evaluation, otherwise false.")); 58 } 59 60 [StorableHook(HookType.AfterDeserialization)] 61 private void AfterDeserialization() { 62 // BackwardsCompatibility3.3 63 #region Backwards compatible code (remove with 3.4) 64 LookupParameter<DoubleMatrix> oldDistanceMatrixParameter = Parameters["DistanceMatrix"] as LookupParameter<DoubleMatrix>; 65 if (oldDistanceMatrixParameter != null) { 66 Parameters.Remove(oldDistanceMatrixParameter); 67 Parameters.Add(new LookupParameter<DistanceMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities.")); 68 DistanceMatrixParameter.ActualName = oldDistanceMatrixParameter.ActualName; 69 } 70 #endregion 58 71 } 59 72 … … 61 74 if (UseDistanceMatrixParameter.ActualValue.Value) { 62 75 Permutation p = PermutationParameter.ActualValue; 63 D oubleMatrix dm = DistanceMatrixParameter.ActualValue;76 DistanceMatrix dm = DistanceMatrixParameter.ActualValue; 64 77 65 78 if (dm == null) { // calculate distance matrix 66 79 DoubleMatrix c = CoordinatesParameter.ActualValue; 67 80 68 dm = new D oubleMatrix(c.Rows, c.Rows);81 dm = new DistanceMatrix(c.Rows, c.Rows); 69 82 for (int i = 0; i < dm.Rows; i++) { 70 83 for (int j = 0; j < dm.Columns; j++) 71 84 dm[i, j] = CalculateDistance(c[i, 0], c[i, 1], c[j, 0], c[j, 1]); 72 85 } 73 DistanceMatrixParameter.ActualValue = (D oubleMatrix)dm.AsReadOnly();86 DistanceMatrixParameter.ActualValue = (DistanceMatrix)dm.AsReadOnly(); 74 87 } 75 88
Note: See TracChangeset
for help on using the changeset viewer.