public int CountWeakUnfeasibles(RouteSet solution)
 {
     return(solution.Count(r => !IsFeasible(r)));
 }
 public override int CountUnfeasibles(RouteSet solution)
 {
     return(solution.Count(r => !IsStrongFeasible(r)));
 }
 public bool IsStrongFeasible(RouteSet solution)
 {
     return(0 == solution.Count(r => !IsStrongFeasible(r)));
 }
 public virtual int CountUnfeasibles(RouteSet solution)
 {
     return(solution.Count(r => !IsFeasible(r)));
 }
 public virtual int CountFeasible(RouteSet solution)
 {
     return(solution.Count(r => !r.IsEmpty && IsFeasible(r)));
 }
 public virtual bool IsFeasible(RouteSet solution)
 {
     return(0 == solution.Count(r => !IsFeasible(r)));
 }