Changeset 8497 for trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/Capacitated
- Timestamp:
- 08/17/12 14:32:54 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/Capacitated/CapacityRelaxationVRPAnalyzer.cs
r8053 r8497 60 60 get { return (IValueParameter<DoubleValue>)Parameters["MinPenaltyFactor"]; } 61 61 } 62 public IValueParameter<DoubleValue> MaxPenaltyFactorParameter { 63 get { return (IValueParameter<DoubleValue>)Parameters["MaxPenaltyFactor"]; } 64 } 62 65 63 66 public ValueLookupParameter<ResultCollection> ResultsParameter { … … 80 83 Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Overload", "The overloads of the VRP solutions which should be analyzed.")); 81 84 82 Parameters.Add(new ValueParameter<DoubleValue>("Sigma", "The sigma applied to the penalty factor.", new DoubleValue(0. 04)));83 Parameters.Add(new ValueParameter<DoubleValue>("Phi", "The phi applied to the penalty factor.", new DoubleValue(0. 01)));85 Parameters.Add(new ValueParameter<DoubleValue>("Sigma", "The sigma applied to the penalty factor.", new DoubleValue(0.5))); 86 Parameters.Add(new ValueParameter<DoubleValue>("Phi", "The phi applied to the penalty factor.", new DoubleValue(0.5))); 84 87 Parameters.Add(new ValueParameter<DoubleValue>("MinPenaltyFactor", "The minimum penalty factor.", new DoubleValue(0.01))); 88 Parameters.Add(new ValueParameter<DoubleValue>("MaxPenaltyFactor", "The maximum penalty factor.", new DoubleValue(100000))); 85 89 86 90 Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the best VRP solution should be stored.")); … … 95 99 } 96 100 101 [StorableHook(HookType.AfterDeserialization)] 102 private void AfterDeserialization() { 103 // BackwardsCompatibility3.3 104 #region Backwards compatible code, remove with 3.4 105 if (!Parameters.ContainsKey("MaxPenaltyFactor")) { 106 Parameters.Add(new ValueParameter<DoubleValue>("MaxPenaltyFactor", "The maximum penalty factor.", new DoubleValue(100000))); 107 } 108 #endregion 109 } 110 97 111 public override IOperation Apply() { 98 112 ICapacitatedProblemInstance cvrp = ProblemInstanceParameter.ActualValue as ICapacitatedProblemInstance; … … 105 119 double phi = PhiParameter.Value.Value; 106 120 double minPenalty = MinPenaltyFactorParameter.Value.Value; 121 double maxPenalty = MaxPenaltyFactorParameter.Value.Value; 107 122 108 123 for (int j = 0; j < qualities.Length; j++) { … … 124 139 if (cvrp.OverloadPenalty.Value < minPenalty) 125 140 cvrp.OverloadPenalty.Value = minPenalty; 141 if (cvrp.OverloadPenalty.Value > maxPenalty) 142 cvrp.OverloadPenalty.Value = maxPenalty; 126 143 127 144 for (int j = 0; j < qualities.Length; j++) {
Note: See TracChangeset
for help on using the changeset viewer.