public override IOperation InstrumentedApply() { IVRPEncoding solution = VRPToursParameter.ActualValue; if (!(solution is ZhuEncoding)) { VRPToursParameter.ActualValue = ZhuEncoding.ConvertFrom(solution, ProblemInstance); } Manipulate(RandomParameter.ActualValue, VRPToursParameter.ActualValue as ZhuEncoding); return(base.InstrumentedApply()); }
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 ZhuEncoding)) { parents[i] = ZhuEncoding.ConvertFrom(solution, ProblemInstance); } else { parents[i] = solution; } } ParentsParameter.ActualValue = parents; ChildParameter.ActualValue = Crossover(RandomParameter.ActualValue, parents[0] as ZhuEncoding, parents[1] as ZhuEncoding); return(base.InstrumentedApply()); }