Ticket #2221: AnalyticalPTSP.cs.patch
File AnalyticalPTSP.cs.patch, 1.8 KB (added by ascheibe, 8 years ago) |
---|
-
HeuristicLab.Problems.PTSP/3.3/AnalyticalPTSP.cs
44 44 45 45 public override double Evaluate(Permutation tour, IRandom random) { 46 46 // Analytical evaluation 47 var probabilities = Probabilities; 48 var distanceMatrix = DistanceMatrix; 49 47 50 double firstSum = 0; 48 51 for (int i = 0; i < tour.Length - 1; i++) { 49 52 for (int j = i + 1; j < tour.Length - 1; j++) { 50 double sum1 = DistanceMatrix[tour[i], tour[j]] * Probabilities[tour[i]] * Probabilities[tour[j]];53 double sum1 = distanceMatrix[tour[i], tour[j]] * probabilities[tour[i]] * probabilities[tour[j]]; 51 54 for (int k = i + 1; k < j; k++) { 52 sum1 = sum1 * (1 - Probabilities[tour[k]]);55 sum1 = sum1 * (1 - probabilities[tour[k]]); 53 56 } 54 57 firstSum += sum1; 55 58 } … … 57 60 double secondSum = 0; 58 61 for (int j = 0; j < tour.Length - 1; j++) { 59 62 for (int i = 0; i < j; i++) { 60 double sum2 = DistanceMatrix[tour[j], tour[i]] * Probabilities[tour[i]] * Probabilities[tour[j]];63 double sum2 = distanceMatrix[tour[j], tour[i]] * probabilities[tour[i]] * probabilities[tour[j]]; 61 64 for (int k = j + 1; k < tour.Length - 1; k++) { 62 sum2 = sum2 * (1 - Probabilities[tour[k]]);65 sum2 = sum2 * (1 - probabilities[tour[k]]); 63 66 } 64 67 for (int k = 1; k < i; k++) { 65 sum2 = sum2 * (1 - Probabilities[tour[k]]);68 sum2 = sum2 * (1 - probabilities[tour[k]]); 66 69 } 67 70 secondSum += sum2; 68 71 }