public static GVREncoding ConvertFrom(List <int> route, IVRPProblemInstance problemInstance) { GVREncoding solution = new GVREncoding(problemInstance); TourEncoding.ConvertFrom(route, solution); return(solution); }
public static GVREncoding ConvertFrom(IVRPEncoding encoding, IVRPProblemInstance problemInstance) { GVREncoding solution = new GVREncoding(problemInstance); TourEncoding.ConvertFrom(encoding, solution, problemInstance); return(solution); }
public static PotvinEncoding ConvertFrom(IVRPEncoding encoding, IVRPProblemInstance instance) { PotvinEncoding solution = new PotvinEncoding(instance); TourEncoding.ConvertFrom(encoding, solution, instance); List <int> vehicles = new List <int>(); for (int i = 0; i < instance.Vehicles.Value; i++) { vehicles.Add(i); } int[] assignment = new int[instance.Vehicles.Value]; for (int i = 0; i < assignment.Length; i++) { assignment[i] = -1; } for (int i = 0; i < solution.Tours.Count; i++) { int vehicle = encoding.GetVehicleAssignment(i); assignment[i] = vehicle; vehicles.Remove(vehicle); } for (int i = 0; i < instance.Vehicles.Value; i++) { if (assignment[i] == -1) { int vehicle = vehicles[0]; assignment[i] = vehicle; vehicles.RemoveAt(0); } } solution.VehicleAssignment = new Permutation(PermutationTypes.Absolute, assignment); return(solution); }