Changeset 10435
- Timestamp:
- 02/04/14 16:21:15 (11 years ago)
- Location:
- trunk/sources
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/CordeauFormat/CordeauFormatInstanceProvider.cs
r9456 r10435 23 23 24 24 namespace HeuristicLab.Problems.Instances.VehicleRouting { 25 public abstract class CordeauFormatInstanceProvider : VRPInstanceProvider <MDCVRPTWData>{26 protected override MDCVRPTWData LoadData(Stream stream) {25 public abstract class CordeauFormatInstanceProvider : VRPInstanceProvider { 26 protected override VRPData LoadData(Stream stream) { 27 27 return LoadInstance(new CordeauParser(stream)); 28 28 } … … 31 31 get { return true; } 32 32 } 33 public override MDCVRPTWData ImportData(string path) {33 public override VRPData ImportData(string path) { 34 34 return LoadInstance(new CordeauParser(path)); 35 35 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/GoldenFormat/GoldenFormatInstanceProvider.cs
r9456 r10435 24 24 25 25 namespace HeuristicLab.Problems.Instances.VehicleRouting { 26 public abstract class GoldenFormatInstanceProvider : VRPInstanceProvider <CVRPTWData>{27 protected override CVRPTWData LoadData(Stream stream) {26 public abstract class GoldenFormatInstanceProvider : VRPInstanceProvider { 27 protected override VRPData LoadData(Stream stream) { 28 28 return LoadInstance(new GoldenParser(stream)); 29 29 } … … 32 32 get { return true; } 33 33 } 34 public override CVRPTWData ImportData(string path) {34 public override VRPData ImportData(string path) { 35 35 return LoadInstance(new GoldenParser(path)); 36 36 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimFormatInstanceProvider.cs
r9456 r10435 23 23 24 24 namespace HeuristicLab.Problems.Instances.VehicleRouting { 25 public abstract class LiLimFormatInstanceProvider : VRPInstanceProvider <PDPTWData>{26 protected override PDPTWData LoadData(Stream stream) {25 public abstract class LiLimFormatInstanceProvider : VRPInstanceProvider { 26 protected override VRPData LoadData(Stream stream) { 27 27 return LoadInstance(new LiLimParser(stream)); 28 28 } … … 31 31 get { return true; } 32 32 } 33 public override PDPTWData ImportData(string path) {33 public override VRPData ImportData(string path) { 34 34 return LoadInstance(new LiLimParser(path)); 35 35 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonFormatInstanceProvider.cs
r9456 r10435 23 23 24 24 namespace HeuristicLab.Problems.Instances.VehicleRouting { 25 public abstract class SolomonFormatInstanceProvider : VRPInstanceProvider <CVRPTWData>{26 protected override CVRPTWData LoadData(Stream stream) {25 public abstract class SolomonFormatInstanceProvider : VRPInstanceProvider { 26 protected override VRPData LoadData(Stream stream) { 27 27 return LoadInstance(new SolomonParser(stream)); 28 28 } … … 31 31 get { return true; } 32 32 } 33 public override CVRPTWData ImportData(string path) {33 public override VRPData ImportData(string path) { 34 34 return LoadInstance(new SolomonParser(path)); 35 35 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/TSPLibFormatInstanceProvider.cs
r9456 r10435 25 25 26 26 namespace HeuristicLab.Problems.Instances.VehicleRouting { 27 public abstract class TSPLibFormatInstanceProvider : VRPInstanceProvider <CVRPData>{28 protected override CVRPData LoadData(Stream stream) {27 public abstract class TSPLibFormatInstanceProvider : VRPInstanceProvider { 28 protected override VRPData LoadData(Stream stream) { 29 29 return LoadInstance(new TSPLIBParser(stream)); 30 30 } … … 33 33 get { return true; } 34 34 } 35 public override CVRPData ImportData(string path) {35 public override VRPData ImportData(string path) { 36 36 return LoadInstance(new TSPLIBParser(path)); 37 37 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardFormatInstanceProvider.cs
r9456 r10435 23 23 24 24 namespace HeuristicLab.Problems.Instances.VehicleRouting { 25 public abstract class TaillardFormatInstanceProvider : VRPInstanceProvider <CVRPData>{26 protected override CVRPData LoadData(Stream stream) {25 public abstract class TaillardFormatInstanceProvider : VRPInstanceProvider { 26 protected override VRPData LoadData(Stream stream) { 27 27 return LoadInstance(new TaillardParser(stream)); 28 28 } … … 31 31 get { return true; } 32 32 } 33 public override CVRPData ImportData(string path) {33 public override VRPData ImportData(string path) { 34 34 return LoadInstance(new TaillardParser(path)); 35 35 } -
trunk/sources/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs
r9456 r10435 29 29 30 30 namespace HeuristicLab.Problems.Instances.VehicleRouting { 31 public abstract class VRPInstanceProvider <T> : ProblemInstanceProvider<T>, IVRPInstanceProvider where T : IVRPData{31 public abstract class VRPInstanceProvider : ProblemInstanceProvider<VRPData>, IVRPInstanceProvider { 32 32 protected abstract string FileName { get; } 33 33 … … 52 52 } 53 53 54 public override TLoadData(IDataDescriptor id) {54 public override VRPData LoadData(IDataDescriptor id) { 55 55 var descriptor = (VRPDataDescriptor)id; 56 56 var instanceArchiveName = GetResourceName(FileName + @"\.zip"); … … 76 76 } 77 77 78 private static void LoadSolution(Stream stream, Tinstance) {78 private static void LoadSolution(Stream stream, VRPData instance) { 79 79 List<List<int>> routes = new List<List<int>>(); 80 80 … … 99 99 } 100 100 101 public static void LoadSolution(string path, Tinstance) {101 public static void LoadSolution(string path, VRPData instance) { 102 102 using (FileStream stream = new FileStream(path, FileMode.Open)) { 103 103 LoadSolution(stream, instance); … … 105 105 } 106 106 107 protected abstract TLoadData(Stream stream);107 protected abstract VRPData LoadData(Stream stream); 108 108 109 109 public IVRPData Import(string vrpFile, string tourFile) { … … 116 116 117 117 public void Export(IVRPData instance, string path) { 118 ExportData(( T)instance, path);118 ExportData((VRPData)instance, path); 119 119 } 120 120 -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs
r10363 r10435 39 39 40 40 namespace HeuristicLab.Problems.VehicleRouting { 41 public interface IVRPInstanceConsumer :42 IProblemInstanceConsumer<CVRPData>, IProblemInstanceConsumer<CVRPTWData>,43 IProblemInstanceConsumer<MDCVRPData>, IProblemInstanceConsumer<MDCVRPTWData>,44 IProblemInstanceConsumer<PDPTWData> {45 }46 47 41 [Item("Vehicle Routing Problem", "Represents a Vehicle Routing Problem.")] 48 42 [Creatable("Problems")] 49 43 [StorableClass] 50 public sealed class VehicleRoutingProblem : Problem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent, I VRPInstanceConsumer{44 public sealed class VehicleRoutingProblem : Problem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent, IProblemInstanceConsumer<VRPData> { 51 45 public string Filename { get; set; } 52 46 … … 390 384 } 391 385 } 392 393 public void Load(CVRPData data) { 394 Load(data, new CVRPInterpreter()); 395 } 396 397 public void Load(CVRPTWData data) { 398 Load(data, new CVRPTWInterpreter()); 399 } 400 401 public void Load(MDCVRPData data) { 402 Load(data, new MDCVRPInterpreter()); 403 } 404 405 public void Load(MDCVRPTWData data) { 406 Load(data, new MDCVRPTWInterpreter()); 407 } 408 409 public void Load(PDPTWData data) { 410 Load(data, new PDPTWInterpreter()); 386 #endregion 387 388 #region IProblemInstanceConsumer<VRPData> Members 389 390 public void Load(VRPData data) { 391 Type interpreterType = typeof(IVRPDataInterpreter<>).MakeGenericType(data.GetType()); 392 var interpreters = ApplicationManager.Manager.GetInstances(interpreterType); 393 IVRPDataInterpreter interpreter = null; 394 foreach (object i in interpreters) { 395 var parentInterfaces = i.GetType().BaseType.GetInterfaces(); 396 var interfaces = i.GetType().GetInterfaces().Except(parentInterfaces); 397 var interpreterInterface = interfaces.First(j => typeof(IVRPDataInterpreter).IsAssignableFrom(j)); 398 var interpreterDataType = interpreterInterface.GetGenericArguments()[0]; 399 if (interpreterDataType == data.GetType()) { 400 interpreter = i as IVRPDataInterpreter; 401 break; 402 } 403 } 404 405 if (interpreter == null) 406 throw new ArgumentException("No interpreter found for the VRP type"); 407 Load(data, interpreter); 411 408 } 412 409
Note: See TracChangeset
for help on using the changeset viewer.