Changeset 14677 for branches/OptimizationNetworks/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/VRPEvaluation.cs
- Timestamp:
- 02/16/17 15:16:55 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OptimizationNetworks/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/VRPEvaluation.cs
r14185 r14677 21 21 22 22 using System.Collections.Generic; 23 using System.Globalization; 24 using System.Linq; 25 using System.Text; 23 26 24 27 namespace HeuristicLab.Problems.VehicleRouting.ProblemInstances { 25 28 public class StopInsertionInfo { 26 29 private int start; 27 28 30 public int Start { 29 31 get { return start; } … … 31 33 32 34 private int end; 33 34 35 public int End { 35 36 get { return end; } 36 37 } 37 38 38 public StopInsertionInfo(int start, int end) 39 private double distance; 40 public double Distance { 41 get { return distance; } 42 } 43 44 public StopInsertionInfo(int start, int end, double distance) 39 45 : base() { 40 46 this.start = start; 41 47 this.end = end; 48 this.distance = distance; 49 } 50 51 protected virtual void GetStopInsertionReport(StringBuilder builder) { 52 builder.Append("From\t"); 53 builder.Append(Start.ToString(CultureInfo.CurrentCulture)); 54 builder.Append("\tto\t"); 55 builder.AppendLine(End.ToString(CultureInfo.CurrentCulture)); 56 builder.Append("Distance:\t"); 57 builder.AppendLine(Distance.ToString(CultureInfo.CurrentCulture)); 58 } 59 60 public virtual void GetReport(StringBuilder builder) { 61 GetStopInsertionReport(builder); 42 62 } 43 63 } … … 46 66 public double Penalty { get; set; } 47 67 public double Quality { get; set; } 68 public double Distance { get { return stopInsertionInfos.Count > 0 ? stopInsertionInfos.Sum(x => x.Distance) : 0; } } 48 69 49 70 public int Vehicle { get; set; } 50 71 51 pr ivateList<StopInsertionInfo> stopInsertionInfos;72 protected List<StopInsertionInfo> stopInsertionInfos; 52 73 53 74 public TourInsertionInfo(int vehicle) … … 68 89 return stopInsertionInfos.Count; 69 90 } 91 92 protected virtual void GetTourInsertionReport(StringBuilder builder) { 93 builder.AppendLine("=== Tour ==="); 94 builder.Append("Vehicle:\t"); 95 builder.AppendLine(Vehicle.ToString(CultureInfo.CurrentCulture)); 96 builder.Append("Distance:\t"); 97 builder.AppendLine(Distance.ToString(CultureInfo.CurrentCulture)); 98 builder.Append("Quality:\t"); 99 builder.AppendLine(Quality.ToString(CultureInfo.CurrentCulture)); 100 builder.Append("Penalty:\t"); 101 builder.AppendLine(Penalty.ToString(CultureInfo.CurrentCulture)); 102 } 103 104 public virtual void GetReport(StringBuilder builder) { 105 GetTourInsertionReport(builder); 106 builder.AppendLine("==== Stops ===="); 107 for (var i = 0; i < stopInsertionInfos.Count; i++) { 108 stopInsertionInfos[i].GetReport(builder); 109 } 110 } 70 111 } 71 112 … … 85 126 return tourInsertionInfos[tour]; 86 127 } 128 129 protected virtual void GetInsertionReport(StringBuilder builder) { 130 builder.AppendLine("== VRP Route Report =="); 131 } 132 133 public virtual void GetReport(StringBuilder builder) { 134 GetInsertionReport(builder); 135 for (var i = 0; i < tourInsertionInfos.Count; i++) { 136 tourInsertionInfos[i].GetReport(builder); 137 } 138 } 87 139 } 88 140 … … 98 150 InsertionInfo = new InsertionInfo(); 99 151 } 152 153 protected virtual void GetEvaluationReport(StringBuilder builder) { 154 builder.AppendLine("= VRP Solution Report ="); 155 builder.Append("Quality:\t"); 156 builder.AppendLine(Quality.ToString(CultureInfo.CurrentCulture)); 157 builder.Append("Penalty:\t"); 158 builder.AppendLine(Penalty.ToString(CultureInfo.CurrentCulture)); 159 builder.Append("Distance:\t"); 160 builder.AppendLine(Distance.ToString(CultureInfo.CurrentCulture)); 161 builder.Append("Vehicles used:\t"); 162 builder.AppendLine(VehicleUtilization.ToString(CultureInfo.CurrentCulture)); 163 } 164 165 public virtual void GetReport(StringBuilder builder) { 166 GetEvaluationReport(builder); 167 InsertionInfo.GetReport(builder); 168 } 100 169 } 101 170 }
Note: See TracChangeset
for help on using the changeset viewer.