Example #1
0
        public static GVREncoding ConvertFrom(List <int> route, IVRPProblemInstance problemInstance)
        {
            GVREncoding solution = new GVREncoding(problemInstance);

            TourEncoding.ConvertFrom(route, solution);

            return(solution);
        }
Example #2
0
        public static GVREncoding ConvertFrom(IVRPEncoding encoding, IVRPProblemInstance problemInstance)
        {
            GVREncoding solution = new GVREncoding(problemInstance);

            TourEncoding.ConvertFrom(encoding, solution, problemInstance);

            return(solution);
        }
Example #3
0
        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);
        }