- Timestamp:
- 04/13/15 17:43:28 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PTSP/HeuristicLab.Problems.PTSP/3.3/EstimatedPTSP.cs
r12272 r12306 19 19 [StorableClass] 20 20 public sealed class EstimatedProbabilisticTravelingSalesmanProblem : ProbabilisticTravelingSalesmanProblem, IStorableContent, 21 IProblemInstanceConsumer< TSPData> {21 IProblemInstanceConsumer<PTSPData> { 22 22 23 private ItemList<ItemList<IntValue>> realizations; 23 24 #region Parameter Properties 25 public IValueParameter<ItemList<ItemList<IntValue>>> RealizationsParameter { 26 get { return (IValueParameter<ItemList<ItemList<IntValue>>>)Parameters["Realizations"]; } 27 } 28 #endregion 29 30 #region Properties 31 public ItemList<ItemList<IntValue>> Realizations { 32 get { return RealizationsParameter.Value; } 33 set { RealizationsParameter.Value = value; } 34 } 35 #endregion 24 36 25 37 [StorableConstructor] … … 38 50 MersenneTwister r = new MersenneTwister(); 39 51 double estimatedSum = 0; 40 for (int i = 0; i < realizations.Count; i++) {52 for (int i = 0; i < Realizations.Count; i++) { 41 53 int singleRealization = -1, firstNode = -1; 42 for (int j = 0; j < realizations[i].Count; j++) {43 if ( realizations[i][p[j]].Value == 1) {54 for (int j = 0; j < Realizations[i].Count; j++) { 55 if (Realizations[i][p[j]].Value == 1) { 44 56 if (singleRealization != -1) { 45 57 estimatedSum += DistanceMatrix[singleRealization, p[j]]; … … 54 66 } 55 67 } 56 return estimatedSum / SampleSize.Value;68 return estimatedSum / RealizationsSize.Value; 57 69 } 58 70 … … 90 102 91 103 public EstimatedProbabilisticTravelingSalesmanProblem() { 92 Parameters.Add(new ValueParameter<IntValue>("SampleSize", "Size of the sample for the estimation-based evaluation")); 104 Parameters.Add(new ValueParameter<IntValue>("RealizationsSize", "Size of the sample for the estimation-based evaluation")); 105 Parameters.Add(new ValueParameter<ItemList<ItemList<IntValue>>>("Realizations", "The concrete...")); 93 106 Operators.Add(new PTSPEstimatedInversionMovePathEvaluator()); 94 107 Operators.Add(new PTSPEstimatedInsertionEvaluator()); … … 134 147 } 135 148 136 public override void Load( TSPData data) {149 public override void Load(PTSPData data) { 137 150 base.Load(data); 138 151 // For now uses sample size of 20 but should use Student's t-test 139 152 //Ttest(data.Dimension); 140 SampleSize = new IntValue(100);153 RealizationsSize = new IntValue(100); 141 154 MersenneTwister r = new MersenneTwister(); 142 155 int countOnes = 0; 143 realizations = new ItemList<ItemList<IntValue>>(SampleSize.Value);144 for (int i = 0; i < SampleSize.Value; i++) {156 Realizations = new ItemList<ItemList<IntValue>>(RealizationsSize.Value); 157 for (int i = 0; i < RealizationsSize.Value; i++) { 145 158 ItemList<IntValue> newRealization = new ItemList<IntValue>(); 146 159 while (countOnes < 4) { //only generate realizations with at least 4 cities visited … … 157 170 } 158 171 countOnes = 0; 159 realizations.Add(newRealization);172 Realizations.Add(newRealization); 160 173 } 161 174 162 175 foreach (var op in Operators.OfType<PTSPPathMoveEvaluator>()) { 163 op.RealizationsParameter.Value = realizations;176 op.RealizationsParameter.Value = Realizations; 164 177 } 165 178 foreach (var op in Operators.OfType<PTSPExhaustiveInversionLocalImprovement>()) { 166 op.RealizationsParameter.Value = realizations;179 op.RealizationsParameter.Value = Realizations; 167 180 } 168 181 foreach (var op in Operators.OfType<PTSP25MoveEvaluator>()) { 169 op.RealizationsParameter.Value = realizations;182 op.RealizationsParameter.Value = Realizations; 170 183 } 171 184
Note: See TracChangeset
for help on using the changeset viewer.