Ejemplo n.º 1
0
        public override IOperation InstrumentedApply()
        {
            IVRPEncoding solution = VRPToursParameter.ActualValue;

            if (!(solution is PotvinEncoding))
            {
                VRPToursParameter.ActualValue = PotvinEncoding.ConvertFrom(solution, ProblemInstance);
            }

            return(base.InstrumentedApply());
        }
Ejemplo n.º 2
0
        public override IOperation InstrumentedApply()
        {
            IVRPEncoding solution = VRPToursParameter.ActualValue;

            if (!(solution is PotvinEncoding))
            {
                VRPToursParameter.ActualValue = PotvinEncoding.ConvertFrom(solution, ProblemInstance);
            }

            Manipulate(RandomParameter.ActualValue, VRPToursParameter.ActualValue as PotvinEncoding);
            (VRPToursParameter.ActualValue as PotvinEncoding).Repair();

            return(base.InstrumentedApply());
        }
        public override IOperation InstrumentedApply()
        {
            IVRPEncoding solution = VRPToursParameter.ActualValue;

            if (!(solution is PotvinEncoding))
            {
                VRPToursParameter.ActualValue = PotvinEncoding.ConvertFrom(solution, ProblemInstance);
            }

            OperationCollection next = new OperationCollection(base.InstrumentedApply());

            VehicleAssignmentParameter.ActualValue = (VRPToursParameter.ActualValue as PotvinEncoding).VehicleAssignment;
            VehicleAssignmentManipuator.Value.PermutationParameter.ActualName = VehicleAssignmentParameter.ActualName;
            next.Insert(0, ExecutionContext.CreateOperation(VehicleAssignmentManipuator.Value));

            return(next);
        }
Ejemplo n.º 4
0
        public override IOperation InstrumentedApply()
        {
            ItemArray <IVRPEncoding> parents = new ItemArray <IVRPEncoding>(ParentsParameter.ActualValue.Length);

            for (int i = 0; i < ParentsParameter.ActualValue.Length; i++)
            {
                IVRPEncoding solution = ParentsParameter.ActualValue[i];

                if (!(solution is PotvinEncoding))
                {
                    parents[i] = PotvinEncoding.ConvertFrom(solution, ProblemInstance);
                }
                else
                {
                    parents[i] = solution;
                }
            }
            ParentsParameter.ActualValue = parents;

            ChildParameter.ActualValue = Crossover(RandomParameter.ActualValue, parents[0] as PotvinEncoding, parents[1] as PotvinEncoding);
            (ChildParameter.ActualValue as PotvinEncoding).Repair();

            return(base.InstrumentedApply());
        }