public override bool IsAllowedMovement(TwoOneInterSwap m) { return(ProblemData.StrongReplaceOverload(m.current, m.orIndex, 2, new List <int> { m.deRoute[m.deIndex] }) <= epsilon && ProblemData.StrongReplaceOverload(m.deRoute, m.deIndex, 1, m.current.GetRange(m.orIndex, 2)) <= epsilon); }
public override bool IsAllowedMovement(TwoOneInterSwap m) { return(AlphaWeakFeasibilityAfterReplace(m.current, m.current.GetRange(m.orIndex, 2), new List <int> { m.deRoute[m.deIndex] }) < WeakThreshold && AlphaWeakFeasibilityAfterReplace(m.deRoute, new List <int> { m.deRoute[m.deIndex] }, m.current.GetRange(m.orIndex, 2)) < WeakThreshold); }
public override bool IsAllowedMovement(TwoOneInterSwap m) { return(WeakFeasibleAfterReplace(m.current, m.current.GetRange(m.orIndex, 2), m.deRoute.GetRange(m.deIndex, 1)) && WeakFeasibleAfterReplace(m.deRoute, m.deRoute.GetRange(m.deIndex, 1), m.current.GetRange(m.orIndex, 2))); }