public override bool IsAllowedMovement(TwoTwoInterSwap m) { return(AlphaWeakFeasibilityAfterReplace(m.current, m.current.GetRange(m.orIndex, 2), m.deRoute.GetRange(m.deIndex, 2)) < WeakThreshold && AlphaWeakFeasibilityAfterReplace(m.deRoute, m.deRoute.GetRange(m.deIndex, 2), m.current.GetRange(m.orIndex, 2)) < WeakThreshold); }
public override bool IsAllowedMovement(TwoTwoInterSwap m) { return(ProblemData.StrongReplaceOverload(m.current, m.orIndex, 2, m.deRoute.GetRange(m.deIndex, 2)) <= epsilon && ProblemData.StrongReplaceOverload(m.deRoute, m.deIndex, 2, m.current.GetRange(m.orIndex, 2)) <= epsilon); }
public override bool IsAllowedMovement(TwoTwoInterSwap m) { return(WeakFeasibleAfterReplace(m.current, m.current.GetRange(m.orIndex, 2), m.deRoute.GetRange(m.deIndex, 2)) && WeakFeasibleAfterReplace(m.deRoute, m.deRoute.GetRange(m.deIndex, 2), m.current.GetRange(m.orIndex, 2))); }