Changeset 8497
- Timestamp:
- 08/17/12 14:32:54 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/Capacitated/BestCapacitatedVRPSolutionAnalyzer.cs
r8053 r8497 30 30 using HeuristicLab.Problems.VehicleRouting.Interfaces; 31 31 using HeuristicLab.Problems.VehicleRouting.Variants; 32 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 32 33 33 34 namespace HeuristicLab.Problems.VehicleRouting { … … 87 88 88 89 public override IOperation Apply() { 90 IVRPProblemInstance problemInstance = ProblemInstanceParameter.ActualValue; 89 91 ItemArray<IVRPEncoding> solutions = VRPToursParameter.ActualValue; 90 92 ResultCollection results = ResultsParameter.ActualValue; … … 100 102 results.Add(new Result("Best VRP Solution Overload", new DoubleValue(overloads[i].Value))); 101 103 } else { 102 if (qualities[i].Value <= solution.Quality.Value) { 104 VRPEvaluation eval = problemInstance.Evaluate(solution.Solution); 105 if (qualities[i].Value <= eval.Quality) { 103 106 (results["Best VRP Solution Overload"].Value as DoubleValue).Value = overloads[i].Value; 104 107 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/PickupAndDelivery/BestPickupAndDeliveryVRPSolutionAnalyzer.cs
r8053 r8497 30 30 using HeuristicLab.Problems.VehicleRouting.Interfaces; 31 31 using HeuristicLab.Problems.VehicleRouting.Variants; 32 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 32 33 33 34 namespace HeuristicLab.Problems.VehicleRouting { … … 87 88 88 89 public override IOperation Apply() { 90 IVRPProblemInstance problemInstance = ProblemInstanceParameter.ActualValue; 89 91 ItemArray<IVRPEncoding> solutions = VRPToursParameter.ActualValue; 90 92 ResultCollection results = ResultsParameter.ActualValue; … … 101 103 results.Add(new Result("Best VRP Solution PickupViolations", new DoubleValue(pickupViolations[i].Value))); 102 104 } else { 103 if (qualities[i].Value <= solution.Quality.Value) { 105 VRPEvaluation eval = problemInstance.Evaluate(solution.Solution); 106 if (qualities[i].Value <= eval.Quality) { 104 107 (results["Best VRP Solution PickupViolations"].Value as DoubleValue).Value = pickupViolations[i].Value; 105 108 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/TimeWindowed/BestTimeWindowedVRPSolutionAnalyzer.cs
r8053 r8497 30 30 using HeuristicLab.Problems.VehicleRouting.Interfaces; 31 31 using HeuristicLab.Problems.VehicleRouting.Variants; 32 using HeuristicLab.Problems.VehicleRouting.ProblemInstances; 32 33 33 34 namespace HeuristicLab.Problems.VehicleRouting { … … 91 92 92 93 public override IOperation Apply() { 94 IVRPProblemInstance problemInstance = ProblemInstanceParameter.ActualValue; 93 95 ItemArray<IVRPEncoding> solutions = VRPToursParameter.ActualValue; 94 96 ResultCollection results = ResultsParameter.ActualValue; … … 106 108 results.Add(new Result("Best VRP Solution TravelTime", new DoubleValue(travelTimes[i].Value))); 107 109 } else { 108 if (qualities[i].Value <= solution.Quality.Value) { 110 VRPEvaluation eval = problemInstance.Evaluate(solution.Solution); 111 if (qualities[i].Value <= eval.Quality) { 109 112 (results["Best VRP Solution Tardiness"].Value as DoubleValue).Value = tardinesses[i].Value; 110 113 (results["Best VRP Solution TravelTime"].Value as DoubleValue).Value = travelTimes[i].Value; -
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++) { -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/PickupAndDelivery/PickupViolationsRelaxationVRPAnalyzer.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<IntValue>("PickupViolations", "The pickup violation 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 IPickupAndDeliveryProblemInstance pdp = ProblemInstanceParameter.ActualValue as IPickupAndDeliveryProblemInstance; … … 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 (pdp.PickupViolationPenalty.Value < minPenalty) 125 140 pdp.PickupViolationPenalty.Value = minPenalty; 141 if (pdp.PickupViolationPenalty.Value > maxPenalty) 142 pdp.PickupViolationPenalty.Value = maxPenalty; 126 143 127 144 for (int j = 0; j < qualities.Length; j++) { -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/ConstraintRelaxation/TimeWindowed/TimeWindowRelaxationVRPAnalyzer.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>("Tardiness", "The tardiness 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 ITimeWindowedProblemInstance vrptw = ProblemInstanceParameter.ActualValue as ITimeWindowedProblemInstance; … … 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 (vrptw.TardinessPenalty.Value < minPenalty) 125 140 vrptw.TardinessPenalty.Value = minPenalty; 141 if (vrptw.TardinessPenalty.Value > maxPenalty) 142 vrptw.TardinessPenalty.Value = maxPenalty; 126 143 127 144 for (int j = 0; j < qualities.Length; j++) {
Note: See TracChangeset
for help on using the changeset viewer.