W1 points can not be included if distance to sink node i or source is more than radius in Path i, and
W2 prohibition of adjacencies of unit segments. 

 

   // HEURISTICS 
   // W1                                                                                                                                                  
   forall(<k1,k2> in sink, s in segment, <X,Y> in V: ((X!=source.x || Y!=source.y) && (X!=k1 || Y!=k2)) &&
   abs(X-source.x) + abs(Y-source.y)) > radius && (abs(X-k1) + abs(Y-k2)) > radius) 
ct_13: inGraph[s, <k1,k2>, <X,Y>] == 0 ;
 
   // W2
   forall(<X,Y> in V, <k1,k2> in sink, <k3,k4> in sink, <X,Y+1> in V)
ct_14: inGraph["h", <k1,k2>, <X,Y>] + inGraph["h", <k3,k4>, <X,Y+1>] <= 1;
 
   forall(<X,Y> in V, <k1,k2> in sink, <k3,k4> in sink, <X+1,Y> in V)
ct_15: inGraph["v", <k1,k2>, <X,Y>] + inGraph["v", <k3,k4>, <X+1,Y>] <= 1;