示例#1
0
 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);
 }
示例#2
0
 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)));
 }