In this section we develop a variant of the slab method of [7] suitable for han- dling maximum independent set and maximum covering set problems, and then apply this method for giving a 2O˜(√m)exact solution for a number of problems,
includingMWIS, MWCSg,MSCg andMPg.
Let us first describe our variant of the slab method. Subdivide the plane by introducing a grid Gδ of lines at distanceδ= 2R of each other, aligned so that
the point (0,0) is a grid point. Thevth vertical line,−∞< v <∞, is atx=v·δ; the indexvwill be used to identify the line. The same goes for horizontal lineh. Each vertical linevdefines a verticalslab denotedSlab(v), which is the strip
v·δ≤x <(v+1)·δ. Similarly,Slab(h) is the horizontal striph·δ≤y <(h+1)·δ. These vertical and horizontal slabs induceδ×δsquares which are open on their right and upper sides and will be referred to as grid-squares. A grid-square is calledoccupied if it contains a server, otherwise it is called empty. We use these definitions for vertical and horizontal slabs as well.
Without loss of generality, all the points of the problem instance are contained in a rectangle with boundariesv1, v2, h1, h2whose sides are each no larger than
m·δ(otherwise there must be an empty slab which divides the problem instance into two independent problems each contained in a smaller rectangle, and in this
case each of the rectangles could be dealt with separately). Let M denote the number of occupied squares contained in this rectangle.
For a vertical slabSlab(v),v1≤v < v2, denote byIn(v) the set of occupied
grid-squares contained inSlab(v), byLeft(v) the set of occupied grid-squares to the left ofSlab(v) and byRight(v) the set of occupied grid-squares to the right of Slab(v). For a horizontal slabSlab(h) define In(h),Above(h) andBelow(h) in a similar way. By the above definitions, for everyvand h,
|Left(v)|+|In(v)|+|Right(v)|=M and |Below(h)|+|In(h)|+|Above(h)|=M.
Definition: For any input instance X,Y, a dividing slab is either a vertical slabSlab(v),v1≤v < v2 such that (1)|In(v)| ≤5√M, (2)|Left(v)| ≤ 45·M,
and (3)|Right(v)| ≤ 4
5·M, or a horizontal slabSlab(h),h1≤h < h2such that
(1)|In(h)| ≤5√M, (2) |Above(h)| ≤ 4
5·M, and (3)|Below(h)| ≤ 45·M.
Lemma 1. For any input instanceX,Y, there exists a dividing slab. Proof. Letv
1be the smallest vertical line index such that|Left(v1)|> M/5 and
letv
2be the largest vertical line index such that|Right(v2−1)|> M/5. Similarly,
leth
1be the smallest horizontal line index such that|Below(h1)|> M/5 and let
h
2 be the largest horizontal line index such that |Above(h2−1)|> M/5. Note
that|Left(v
1−1)| ≤M/5 by choice ofv1, hence|Right(v1 −2)|>4M/5. This
implies thatv
1−1≤v2, since otherwisev1−1 should have been chosen instead
ofv
2. Moreover, each of the vertical slabs in LV ={Slab(v)|v1−1≤v≤v2}
satisfies|Left(v)| ≤4M/5 and|Right(v)| ≤4M/5. Analogous statements apply for horizontal slabs inLH ={Slab(h)|h1−1≤h≤h2}withAboveandBelow.
We now show that at least one of the slabs inLV ∪LHalso satisfies the first
condition of a dividing slab. LetRbe the rectangle bounded byv
1−1, v2+1, h1−
1, h
2+ 1, and letM be the number of occupied grid-squares inR. Note thatR
contains all the occupied rectangles save those inLeft(v
1−1), Right(v2+ 1), Below(h
1−1) andAbove(h2+ 1), whose total number is at most 4M/5, and
thereforeM≥M/5.
There arelv=|LV|=v2−v1 + 2 vertical slabs andlh=|LH|=h2−h1+ 2
horizontal slabs in the rectangle R. We now observe that lv ·lh < M by the
definition of M, and therefore eitherlv ≥√M or lh ≥√M. Without loss of
generality supposelv≥ √ M. AsM≥M/5, we conclude thatl v≥ M/5. If |In(v)| > 5 ·√M for each vertical slabs Slab(v) ∈ LV, then we get
more thanM occupied grid-squares altogether. Therefore there must be a slab
Slab(v)∈LV for which|In(v)| ≤5·
√
M.
The above lemma suggests a generic recursive procedure which is at the heart of a number of algorithms for solving some geometric optimization problems. We next discuss the resulting algorithm for theMWISproblem and state the results for the grid-based version of the other problems.
LetX(v1,v2,h1,h2) and Y(v1,v2,h1,h2) denote the sets of servers and clients re-
stricted to the area bounded by the linesv1, v2, h1, h2 andv1, v2, h1, h2, respec-
tively. Let MWIS[X(v1,v2,h1,h2), Y(v1,v2,h1,h2)] denote the problem restricted to
The procedureOptimize(X, Y) recursively finds an optimal set of servers. The bottom level of the recursion is whenX is contained in a single disk square, In this case the procedure computes an optimal solution by an exhaustive search, going through all possible choices of three servers in the square.(Note that choos- ing four servers inside a singleδ×δgrid-square will necessarily cause theirR-disks to intersect, even if they are symmetrically located on the four corners.) Each step starts with the procedure identifying a dividing slab Slab(v) or Slab(h). This is done by exhaustively examining each slab. The procedure then cycles over all local (not necessarily optimal) partial solutions Xt of the local prob-
lem where the servers are contained in squares of In(v) or In(h), respectively. Each such partial solutionXtis composed of all possible choices of up to three
servers inside each grid-square ofIn(v) orIn(h). For each such partial solution
Xt, the procedure then creates the left and right (resp., above and below) sub-
problems, in which the servers are restricted to squares ofLeft(v) andRight(v) (resp.,Below(h) andAbove(h)), while deleting from these subproblems the set of servers Neighbors(Xt) whose disks intersect disks ofXt. We now solve the left
and right (resp., below and above) subproblems recursively. The procedure stops when remaining with a single square, in which case it finds a local solution by exhaustively searching all O(m3) possibilities of choosing a disjoint set of disks
with servers inside the grid-square. ProcedureOptimize(X, Y)