200 likes | 336 Views
Maximum Independent Sets in Rectangle Intersection Graphs. Author: Timothy M. Chan Inform. Process. Letters, 89(2004), 19-23. Outline. Introduction Previous and new results Modified dynamic programming method The unit-height case The general case. Introduction --- problem definition.
E N D
Maximum Independent Sets in Rectangle Intersection Graphs Author: Timothy M. Chan Inform. Process. Letters, 89(2004), 19-23
Outline • Introduction • Previous and new results • Modified dynamic programming method • The unit-height case • The general case
Introduction --- problem definition • To find the maximum independent set in the intersection graph of n axis-parallel rectangles. • This problem is NP-hard.
Previous results --- part1 • Finding efficient approximation algorithms. • Unit squares model:factor 1 + 1/k • Hochbaum and Maass (1985) --- nO(k^2) time • Agarwal, van Kreveld and Suri (1998) --- O(n2k-1) • Unit height rectangle model:factor 1 + 1/k • Agarwal, van Kreveld and Suri (1998) --- O(n2k-1) • This model arise in the application to map labeling problem for a fixed font size.
Previous results --- part2 • Arbitrary square model:factor 1 + 1/k • Erlebach, Jansen and Seidel (2001) --- nO(k^2) time • Timothy M. Chan (2003) --- nO(k) time • General rectangle model:The problem is open • Agarwal, van Kreveld and Suri (1998) --- • O(nlogn) time and factor log2n • No polynomial time algorithm achieves factor o(logn) and specifically, there is the result of factor O(logkn) in O(nk|S*|) time.
New results • Unit height rectangle model: • factor 1 + 1/k in O(nlogn + nk-1) time, where is the max number of rectangles a point can be in. • In general map labeling application, is small and even close to a constant. • Arbitrary rectangle model: • factor logkn in O(nlogn + nk-2) time and the algorithm is simpler and faster in practical.
Dynamic programming subroutine • Lemma 1: • Fix an integer constant k1. If all the rectangles can be stabbed by k horizontal lines, then we can solve the problem exactly in O(nlogn + nk-1) time. Notation1: Let R1,R2,…,Rn be the given rectangles with a1…an , where ai and bi are the left and right x-coordinate of Ri. Notation2: Let next[j] denote the smallest index i with ai > bj. Notation3: For a set S of rectangles, let S|i denote the subset of rectangles of S intersecting the vertical line x=ai.
Strategy • Consider a sub-problem for each index i and each subset S of disjoint rectangles intersecting the vertical line x=ai with |S| k-1. • A[i , S] is the maximum number of disjoint rectangles among Ri,Ri+1,…,Rn that do not intersect the rectangles in S. • Consider from i = n+1 to i=1. • A[n+1,]=0. (Initial condition)
x=ai+1 S Ri x=ai Proof • Case1. If Ri intersects some rectangle in S, then • A[i,S]=A[i+1, S|i+1]. A[i,S]= A[i+1,S] = A[i+1,S|i+1]
Proof cont’d • Case2. If Ri doesn’t intersect any rectangle in S and |S|< k-1, then • A[i,S]=max{ A[i+1, S|i+1], 1+A[i+1, (S{Ri})|i+1] }. The blue item is the case of no Ri , similar to Case1. The red item is the case of Ri being used.
S x=at Ri x=ai Rj Proof cont’d • Case3. If Ri doesn’t intersect any rectangle in S and |S|=k-1, then • A[i,S]=max{ A[i+1, S|i+1], 1+A[t, (S{Ri})|t] }, where t is the smallest next[j] of all rectangles Rj S{Ri}. If Ri is used in the solution, all the other rectangles in the solution must be to the right of Rj, the rectangle of the smallest bj. (i.e. right of at) |S|+|{Ri}|+? k+1
Analysis • A[i,S] : i from 1 to n; |S|k-1 and for each choice, at most . • O(nlogn + nk-1) time. • It is an exact solution!!!
0 1 2 C(0) 0 1 2 The unit-height case • Theorem 2: • Fix an integer constant k1. If all rectangles have unit height, then we can solve the problem approximately to within a factor of 1 + 1/k in O(nlogn + nk-1) time. Let C(i), i=0~k, be the sub-collection of all rectangles that don’t intersect any grid horizontal line y=l=i mod (k+1). k=2
Proof • Each C(i) is an union of groups of rectangles. Each group can be stabbed by k horizontal lines (since grid line is built by unit), and no two rectangles from distinct groups intersect. • Use Lemma1 to solve each group and union them to obtain S(i) for C(i). • Return the largest set S of S(0), S(1),…, S(k).
Analysis • Running time sums to O(nlogn + nk-1) time. • Factor: 1 + 1/k • Since each unit height rectangle belongs to exactly k of the k+1 sub-collection C(0),…,C(k), we have • k|S*| = i=0~k|S*C(i)| i=0~k|S(i)| (k+1)|S|.
The general case • Theorem 3: • Fix an integer constant k2. If we are given H>1 horizontal lines that stab all rectangles, then we can solve the problem approximately to within a factor of logkH in O(nlogn + nk-2) time. By Divide and Conquer method. The initial case is Hk.
Proof • Let L1,L2,…,Lk-1 be the H/kth, 2(H/k)th,…, (k-1)(H/k)th lowest horizontal lines. L0=-, Lk=. • C(0) is the sub-collection of all rectangles stabbed by these k-1 lines. We can compute the exact solution S(0) for C(0) by Lemma1. • C(i), i=1~k, is the sub-collection of all rectangles lie between Li-1 and Li.
H/k Proof cont’d • C(i) is stabbed by H/k lines. We compute S(i) for C(i) approximately recursively.
Analysis • Finally, return the larger one of the two sets S(0) and S(1)…S(k). • Running time sums to O(nlogn + nk-2) time. • Let S be the larger one. And let Cv and Sv be sets corresponding to node v in the recursion tree. • v|S*Cv| v|Sv| |S|, for nodes in some level. • Sum over all levels |S*| (logkH)|S|.
Future work • Think about FPTAS results for unit square, arbitrary square, unit height rectangle model. • For the general rectangle model, is it possible to reduce the factor (only need polynomial running time), or to prove the lower bound factor (else, NP-hard)?