day 23 4/8/98
1. Luby Algorithm for Maximal Independent Set
1.1 definitions
- G = (V,E) an undirected graph
- I Í V is an independent set if no pairs of elements in I share an edge
- I is a maximal independent set if "w Î V-I , {w}ÈI is not independent
- I is a maximum independent set if "I¢, |I| ³ |I¢| . This problem is NP-hard or complete
depending on how you phrase the problem.
1.2 algorithms
1.2.1 greedy lexicographic MIS
A maximal independent set algorithm is simple: grab the first vertex and run
through the other vertices adding them to I if possible. This algorithm is O(m+n) .
This algorithm is P-complete, which means if this algorithm can be parallelized,
every other parallel algorithm can be parallelized.
1.2.2 randomized parallel MIS
MIS(G)
- Each vertex calculates it's own degree d(v) and tries to join S with probability
[1/( 2d(v))]
- if v,w Î S and share an edge, discard the one with a smaller degree. Break ties randomly,
producing set I .
- let V = V-I-N(I) where N(I) = the neighbor vertices in I and E = E minus all edges into I .
- return IÈMIS(G)
1.2.3 Yet another MIS
MIS2(G)
- Each vertex picks a random value, v Î [0,1]
- v joins if it's value is less than the v¢s of it's neighbors, N(v)
- let V = V-I-N(I) where N(I) = the neighbor vertices in I and E = E minus all edges into I .
- return IÈMIS2(G)
The probability of joining is [1/( d+1)] which is a bit more aggresive than the previous
algorithm.
1.2.4 Analysis
On a CRCW (concurrent read/concurrent write) architecture, steps 1 and 2 take
constant time.
Unfortunately, it isn't true that a constant proportion of the vertices are
lost each round. Instead, we can prove:
- v is 'good' if åu Î N(v)[1/( 2d(u))] ³ 1/6
For the graph with n nodes completely connected to Ön nodes, Kn,Ön , each of the n
nodes is 'bad' and the Ön nodes are 'good'.
- e = (v,w) is 'good' if v or w is 'good'.
- L(v) = {u Î N(v)|d(u) ³ d(v)}
£ |
å
u Î L(v)
|
P(u Î S|v Î S) |
|
The lemma follows pretty imediately.
In G direct all edges from low to high degree, then
proof by contradicition:
åu Î N(v)[1/( 2d(u))] ³ åu Î In(v)[1/( 2d(u))] ³ [(1/3d(v))/( 2d(v))] ³ 1/6
Now, we can construct a binomial tree in the graph where every leaf is 'good'.
This implies the number of good edges satisfies: #bad+1 £ #good .
File translated from TEX by TTH, version 1.30.