improved approximation algorithms for relay placement
DESCRIPTION
Improved Approximation Algorithms for Relay Placement. Alon Efrat , S ándor P.Fekete , Poornananda R.Gaddehosur , Joseph S.B.Mitchell, Valentin Polishchuk , and Jukka Suomela. Amir Menczel and Rotem Mairon. r. Introduction: The Relay Placement Problem. Input : - PowerPoint PPT PresentationTRANSCRIPT
Improved Approximation Algorithms for Relay Placement
Alon Efrat, Sándor P.Fekete, Poornananda R.Gaddehosur, Joseph S.B.Mitchell, Valentin Polishchuk, and Jukka Suomela
Amir Menczel and Rotem Mairon
1
Input :• A set of sensors: Identified with their locations in the plane.• A number r 1: the communication range of a relay (an
additional communication device)
Objective: To place a minimum number of relays to ensure the connectivity of a sensor network.
r
Introduction: The Relay Placement Problem
2
A sensor and a relay can communicate if the distance between them is at most 1.
1
Two relays can communicate if the distance between them is at most r 1.
r
r
Two versions of the relay replacement problem:In both versions:
Introduction: The Relay Placement Problem
3
one-tier version: • Two sensors can comm. if the distance between them 1.• Place a min number of relays so that between every pair of
sensors there exists a path through sensors and/or relays.
1
two-tier version: • Sensors do not communicate with each other, no matter how
close they are.• Place a min number of relays so that between every pair of
sensors there exists a path through relays.
Two versions of the relay replacement problem:
Introduction: The Relay Placement Problem
4
One tier version:
• approximation ratio of 7 (Lloyd & Xue).
Two tier version:
• (5 + ε)-approximation algorithm for r ≥ 1 (Lloyd & Xue).
• (4+ε)-approximation for the case r ≥ 2 (Srinivas et al.).
Previous work
Introduction: The Relay Placement Problem
5
1. Definitions and background.2. A 6.73 approximation alg. for the one-tier version
3. A 3.11 approximation alg. for the one-tier version
Outline
6
1. Blobs and Clouds
Definitions and background
F=(V,EF) :
A unit disk graph where EF={(u,v):|uv|2}
An edge in G is also an edge in F!
V :A set of sensors (points in the plane).
G=(V,EG) :
A unit disk graph where EG={(u,v):|uv|1}
7
1. Blobs and Clouds
Definitions and background
• Let B denote the set of all blobs. A blob bB is the union of unit
disks centered at the sensors that belong to one connected
component of G.
• Let C denote the set of all clouds. A cloud cC is the union of
unit disks centered at the sensors that belong to one connected
component of F.
b1 b2
b3
b4 b5
c1 c28
1. Blobs and Clouds
Definitions and background
• Sensors in a blob can communicate with each other without
relays, while the ones in a cloud might not.
• Each cloud cC consists of one or more blobs bB where B is
the set of all blobs.
• We use Bc to denote the blobs that form the cloud c.
b1 b2
b3
b4 b5
c1 c29
2. Stabs and Hubs
Definitions and background
• A stab is a relay with infinite communication range (r = infinity).
Can easily connect two distant blobs:
• A hub is a relay without the ability to communicate with the other
relays. Can easily connect two neighbor blobs in the same cloud:
Distance between neighbor blobs 2
10
2. Stabs and Hubs
Definitions and background
b1 b2
b3
b4 b5
c1 c2
Using stabs only, It is necessary and sufficient to have one in each
blob to ensure communication between all sensors:
Necessary: Each blob must have one to link with sensors outside
the blob.
Sufficient: The stubs in every blobs can communicate with each
other.
11
2. Stabs and Hubs
Definitions and background
Stab placement is equivalent to the set cover problem:
The universe is the set of blobs: U={b1,b2,b3,b4,b5}. The subsets are
sets of blobs with a common point: s1={b1,b2} s2={b2,b3} s3={b3,b4}
s4={b5}. find a minimum set of stabs to cover U.
s1s2
s3
b1 b2
b3b4
c1 c2
b5
12
2. Stabs and Hubs
Definitions and background
Using hubs only, It is necessary, but not sufficient, to have one in
each blob to ensure communication between sensors within one
cloud. For Example: Two stabs are sufficient to “pierce” each blob
in c1. To replace the two stabs by hubs, an additional hub is required
to “stitch” the blobs together.
s1s2b1 b2
b3b4
c113
2. Stabs and Hubs
Definitions and background
Lemma1: A solution S to stab placement on bc induces a solution to hub placement on bc with 2|S|-1 hubs (obtained in polynomial time).
Proof : Let H be a graph whose nodes are the sensors in the cloud c and the stabs in S. an edge connects u and v if either both are stabs or |uv|1.
s1s2b1 b2
b3b4
c1
s1
s2
1. Switch off communication between stabs, thus turning them into hubs.
2. This breaks H into k connected components.
14
2. Stabs and Hubs
Definitions and background
s1s2b1 b2
b3b4
c1
3. There must be a stab in each connected component. Thus, |S| k.
4. By the def. of a cloud, there are at least two sensors from two different connected components of H that are within distance 2 from each other.5. Placing a hub between them decreases the number of connected components by at least 1.
6. After placing at most k-1 additional hubs, all connected components will merge into 1.
Hubs required: |S|+k-1 2|S|-1
15
3. Steiner and Spanning Forests with Neighborhoods
Definitions and background
P : A collection of planar subsets called neighborhoods.
G : A plane graph.
GP = (P,EG) : The vertices are neighborhoods. p1, p2 are adjacent if G has a vertex in both p1 and p2 and a path between the vertices.
16
3. Steiner and Spanning Forests with Neighborhoods
Definitions and background
The Minimum Steiner Forest With Neighborhoods on P
(MStFN[P]): A minimum length plane graph G, such that GP=(P,EG)
is connected. We only count the part of the G outside P for its
length.
17
3. Steiner and Spanning Forests with Neighborhoods
Definitions and background
Consider a complete graph whose vertices are the neighborhoods
in P and whose edge weights are the shortest distances between
them. A minimum spanning tree in the graph is called The
Minimum Spanning Forest with Neighborhoods on P
(MSFN[P]).
18
3. Steiner and Spanning Forests with Neighborhoods
Definitions and background
It is known that |MSFN(P)| (2/√3)|MStFN(P)| for a point set P. The following lemma generalizes this to neighborhoods.
Lemma2: For any P, |MSFN(P)| (2/√3)|MStFN(P)|.
Proof : If P is erased, MstFN(P) falls into a forest, each tree of which is a minimum Steiner tree on its leaves. Its length is within the Steiner ratio of minimum spanning tree length.
19
4. Lower bounds on the number of required relays
Definitions and background
R* : An optimal set of relaysR : A communication graph on R* alone (no sensors). Relays u and v are connected |uv| r.
1. There is a forest R’ in R that spans all clouds. R’ has: • m edges of length at most r• v |R*| vertices• k trees.
|R’| mr = (|R*|-k)r |R*|r |R*| |R’| / r |MStFN(C)| / r
20
4. Lower bounds on the number of required relays
Definitions and background
R* : An optimal set of relaysR : A communication graph on R* alone (no sensors). Relays u and v are connected |uv| r.
2. Since there must be a relay in every blob, , where Stab(B) is the minimum set of stabs that stab each blob in B (the set of all blobs).
3. Since there must be a relay in every cloud, , where C is the total number of clouds.
|R*| |Stab(B)|
|R*| |C|
21
1. Definitions and background.2. A 6.73 approximation alg. for the one-tier version
3. A 3.11 approximation alg. for the one-tier version
4. There is no PTAS for the one-tier version
5. A PTAS for the two-tier version
Outline
22
A 6.73 approximation alg. (one-tier ver.)
Step 1. For each cloud:1. Find an approximately optimal stab placement.
• Max number of blobs pierced is 5
• The greedy heuristic has app. ratio of:
1+1/2+1/3+1/4+1/5 = 137/60
2. Turn stab placement into hub placement
• Applying Lemma1, we can |Rc| hubs, where:
|Rc| = 2|S|-1 137|Stab(Bc)|/30-1
Let |R’| denote the number of relays placed this way.
|R’| cC |Rc| cC 137|Stab(Bc)|/30-1=137|Stab(B)|/30-|C|23
A 6.73 approximation alg. (one-tier ver.)
Step 2. Find MSFN(C) and place a set of relays R’’ along its edges.
Since the # of edges in MSFN(C) is |C|-1,|R’’|=2(|C|-1) + e |e| / r < 2|C|+|MSFN(C)|/r
• Place |e| / r relays every r units along e.
By the lower bound on |R*| and lemma2:|R|=|R’|+|R’’| 137|Stab(B)|/30 - |C| + 2|C| + |MSFN(C)| / r [137/30 + 1 + (2/√3)]|R*| = 6.73|R*|
• For each edge e of the forest, place 2 relays at its ends.
24
1. Definitions and background.
2. A 6.73 approximation alg. for the one-tier version
3. A 3.11 approximation alg. for the one-tier version
Outline
25
Overview. The basic steps of the algorithm:1. Compute optimal stabbings for clouds which can be
stabbed with few relays.
2. Connect the blobs in each of these clouds, using Lemma 1.
3. Greedily connect all blobs in each of the remaining clouds (“stitching”).
4. Greedily connect clouds into clusters, using 2 additional relays per cloud.
5. Connect the clusters by a spanning forest.
3.11 approximation
26
Ar - “red” relays (connecting blobs in a cloud).
Ag - “green” relays (two per cloud).
Ay - “yellow” relays (outside of sensor range).
3.11 approximation
b1 b2
b3
b4
b5
c1
c2
27
R* - Optimal solution.
R* = R*d R*
l
R*d
- “dark” relays (within reach of sensors).
R*l - “light” relays (outside of sensor range).
(|Ar| + |Ag|) < 3.11 * |R*d|
|Ay| < 3.11 * |R*l|
3.11 approximation
b1 b2
b3
b4
b5
c1
c2
28
Ci – Set of clouds where the minimum number of stabs is i.o All blobs can be connected using 2i – 1 red relays (lemma 1)
Ck+ - Set of clouds that need at least k stabs.
Given a constant k it can be checked in polynomial time
whether all blobs in a cloud can be stabbed with i<k stabs.
Clouds with few stubs
29
We focus on one cloud c Ck+.
B(y) = { bBc : yb } is the set of blobs that contain y, a point in the plane.
For any T Bc , S(T, y)=B(y)\T is the set of blobs that contain y that are not in T.
V(T) is the set of sensors that form the blobs in T.
Within c, we place a set of red relays = {yj : j = 1, 2,…}
Stitching a Cloud from Ck+
rcA
30
Within c, we place a set of red relays Arc = {yj : j = 1, 2,…}
1. Choose arbitrary B0 BC. Initialize j 1, Tj {B0}
2. While Tj BC : yj maxy { |S(Tj, y)| : B(y) Tj }
Sj S(Tj, yj)
Tj+1 Tj Sj
j j+1
Stitching a Cloud from Ck+
b0 b1
b2
b3
c1
31
After each iteration, there exists a path through sensors/relays between any pair of sensors in V(Tj).
Can be proved by induction on j. Inside a cloud, all blobs are at most at distance 2 from each other.
We can find other blobs from c that we are able to connect to Tj using another relay.
Each iteration increases the size of Tj by at least 1.
The algorithm terminates in at most |Bc| - 1 iterations.
ArC |Bc| - 1 (each iteration we add a “red” relay).
Result: Sensors within any cloud can communicate.
Stitching a Cloud from Ck+
32
Set of clouds is interconnected, if with the current placement of relays, the sensors in the clouds can communicate with each other.
Goal: Interconnecting the clouds. Each cloud is assigned to its own cluster. Interconnect two close clusters by placing one relay within
each of the two clusters. These relays are coloured “green”.
Green Relays and Cloud Clusters
2 new relays
1 less connected component
b1 b2
b3
b4
b5
c1
c2 r
33
Repeatedly place 4 “green” relays and interconnect clouds from three different clusters.
Green Relays and Cloud Clusters
b1
b2b3c1
c2
r
b4b5
c3
r
r
4 new relays
2 less connected component
34
Repeat this for 6 “green” relays which interconnect 4 clusters.
Green Relays and Cloud Clusters
b1
b2b3c1
c2
r
b4b5
c3
b6 b7
c4
r
r
r
r
6 new relays
3 less connected component
35
On average, 2 “green” relays were added every time the
number of connected components in the communication
graph on sensors plus relays decreases by 1.
Total number of “green” relays placed so far is twice the
number of clouds that have been interconnected into the
clusters.
Green Relays and Cloud Clusters
36
Goal: Interconnecting the clusters by MSFN. For each edge e of the forest, we place 2 “green” relays
at its endpoints and |e| / r “yellow“ relays every r units.
2 “green” relays per 1 connected component that is decreased. Total use of |2C| “green” relays.
Interconnecting the Clusters
cluster 1
cluster 2
cluster 3
r
r
37
By lemma 1: We have at most 2i–1 red relays per cCi
By lemma 3 (to be proved…): We have no more than 37/12| R*d c| - 1 red relays per cCk+
R*d (at least k required per cloud)
Total of 2|C| green relays used for clouds interconnections.
Analysis: Red and Green Relays
kCC
gr RAA |C|2 |C|1) - (2i 1) - /12|C | (37||||1-k
1i
id
*
1
1
1
1
kid
* ||)12(|C| |)C|||(12/37k
i
ik
i
CiiR
||11.3|R|1/k)(3.084 |C|||12/37 **d
kd
*dRR
1
1
||||k
i
ik CiCk
38
Let R be the communication graph on the optimal set R* of relays (without sensors).
Analysis: Yellow Relays
R’ is a forest which makes the clusters interconnected.
Let R’’ be the relays that are vertices in R’.
39
R’’ is partitioned into “black” relays R*b and “white” relays R*
w
R*b = R’’ R*
d (inside clusters)
R*w = R’’ R*
l (outside clusters)
2 “black” relays cannot be adjacent in R’’. The algorithm must have interconnected
these 2 clusters using 2 “green” relays.
There can’t be 2 such clusters.
Analysis: Yellow Relays
r
40
A “white” relay can’t be adjacent to 3 or more “black” relays in R’’: The algorithm must have interconnected
these 3 clusters using 4 “green” relays.
There cannot be a pair of adjacent “white” relays such that both of them are adjacent to 2 “black” relays.
The algorithm must have interconnected
these 4 clusters using 6 “green” relays.
Analysis: Yellow Relays
41
There is a spanning forest with neighbourhoods on cloud
clusters that requires at most
Lemma 4
| | 11 . 3 | | ) 5/ 4 3 / 4(* *w wR R
42
Proof Sketch: Let D be the set of cloud clusters. R’ is partitioned into edge disjoint trees. D’D is a subset of clusters
interconnected by a single tree, T.
It is enough to show that for each T there is a spanning forest on the clusters it interconnects, D’ , such that the number of yellow relays on its edges is at most 3.11 times the number of white relays in T.
Lemma 4 – Proof Sketch
43
Lemma 4 - Proof Trees with only one white relay (and exactly 2 white relays)
Spanning forest needs only one edge with one yellow relay
T contains at least two white relays.
Algo.
Opt.
44
Lemma 4 - Proof For each white relay with two black
neighbours, arbitrarily choose one of
the black relays and change it into a “grey”. Let w be the number of white relays. Let b be the number of remaining “black” relays. Let g be the number of “grey” relays in T. b w (first bullet)
45
Lemma 4 - Proof There is no grey – white – white – grey path.
Originated from a scenario that would
have been eliminated in the algorithm.
No such two clusters exists.
Each white relay is adjacent to another
white relay.
Maximum degree of a white relay is 5.
46
Lemma 4 - Proof Claim: (b + g)/w 9/5
w2 – Number of white relays with a grey and a black neighbour.
w1 – Number of white relays with a black neighbour but no grey neighbour.
w0 – Number of white relays without a black neighbour.
12
2
2
2
02
2
2
2
2w2 4w1 + 5w0
47
Lemma 4 - Proof Claim: (b + g)/w 9/5
1. w2 4w1 + 5w0 = 4w1 + 5(w – w2 – w1)
2. 5w 6w2 + w1
3. We know that w w1 + w2
4. from (2) w (1/5)(6w2 + w1)
5. (9/5)w = w + (4/5)w (1/5)(6w2 + w1) + (4/5)w
(1/5)(6w2 + w1) + (4/5)(w1 + w2) = (w2 + w1) + w2 = b + g
(9/5)w b + g
1
2
48
Lemma 4 - Proof Consider the subtree T induced by the black and white relays.
Grey relays are ignored (positioned at end of edges)
E(T) b + w (T is a tree with b + w nodes). Every edge length in T at most r. By lemma 2, there is a spanning forest on the black relays
with total length less than White relays are used as Steiner points.
rwb ))(3/2(
49
Lemma 4 - Proof Yellow relays required on edges Each pair of black relays in T is connected. We only need to connect the grey relays to the spanning tree.
Each grey relay will be connected to the nearest black relay Distance is at most 2r One yellow relay is enough
From the claim, we have that g (9/5)w - b
|Ay|
))(3/2( wb
wwgwb )5/14(2)13/2())(3/2(
ww 11.3)5/43/4( 50
Lemma 3
For each cloud cCk+, the number of red relays in c is |Ar
c| (37 |R*d c| / 12) -1
51
Lemma 3 proof sketch
We focus on one cloud cCk+
Step 2 : w(b) 1bU(z)
Step 1 : w(b) = |Arc| +1b 𝑩𝒄
Step 3 : w(b) 1/V(z)+1/(V(z)-1)+…+1/1 bV(z)
For each cloud cCk+, the number of red relays in c is |Ar
c| (37 |R*d c| / 12) -1
52
Lemma 3 proof
• For each bB we define w(b)=1/|Sj|. We also set w(b0)=1.
• We have: w(b) = w(b) + w(b) + … + 1
• We have 1 for each set Sj. Therefore
|S1| times 1/|S1|=1 W(b0)|=1
bS1b 𝐵𝑐 bS2
w(b) = |Arc| +1b 𝑩𝒄
Step 1 : w(b) = |Arc| +1b 𝑩𝒄
53
• Consider a relay . z is a dark relay and thus must be covered by some blob.
• Find the smallest l where Tl B(z)
• if B0B(z), l =1. Otherwise, yl-1 is the first relay to pierce
a blob in B(z)
Step 2 : w(b) 1bU(z)
cRz d *
B(z)Tl -1
Sl -1Tl
1. Choose b0 Bc. Init: j1 Tj02. While Tj Bc:
yj maxy {|S(Tj,y)| : B(y) Tj }Sj S(Tj,yj) ; Tj+1 Tj Sj ; j j+1
Lemma 3 proof
54
Step 2 : w(b) 1bU(z)
We partition the set B(z) into:• U(z) = Tl B(z) : blobs that cover z at iteration l.• V(z) = B(z) \ U(z) : blobs that do not.
B(z)Tl -1
Sl -1Tl
U(z)
V(z)
1. Choose b0 Bc. Init: j1 Tj02. While Tj Bc:
yj maxy {|S(Tj,y)| : B(y) Tj }Sj S(Tj,yj) ; Tj+1 Tj Sj ; j j+1
Lemma 3 proof
55
Step 2 : w(b) 1bU(z)
• If l =1 then B0 B(z), U(z)={B0} and bU(z)w(b)= w(b0) = 1.
• If l >1 then U(z) Sl -1 and for each bU(z):
w(b) = 1/|Sl -1| 1/|U(z)|
• Therefore, bU(z)w(b) |U(z)| * 1/|U(z)| = 1.B(z)
Tl -1
Sl -1Tl
U(z)
V(z)
1. Choose b0 Bc. Init: j1 Tj02. While Tj Bc:
yj maxy {|S(Tj,y)| : B(y) Tj }Sj S(Tj,yj) ; Tj+1 Tj Sj ; j j+1
Lemma 3 proof
56
• At iterations j ≥ l , the alg. may place yj at z.
• We yj maximizes |S(Tj,yj)|, hence |Sj| = |S(Tj,yj)| ≥ |S(Tj,z)|.
• Furthermore, S(Tj,z)\S(Tj+1,z) = B(z)Sj = V(z)Sj
Step 3 : w(b) 1/V(z)+1/(V(z)-1)+…+1/1
bV(z)
1. Choose b0 Bc. Init: j1 Tj02. While Tj Bc:
yj maxy {|S(Tj,y)| : B(y) Tj }Sj S(Tj,yj) ; Tj+1 Tj Sj ; j j+1
Tj
Sj
Tj+1
U(z)
Lemma 3 proof
57
• Whenever placing the relay yj makes |S(Tj,z)|, decrease by k,
exactly k blobs of V(z) get connected to Tj.
• Each of them is assigned the weight w(b) = 1/|Sj| 1/|S(Tj,z)|
• k1,k2,…,kn : # of blobs from V(z) pierced at different iterations.
• On removing ki blobs from V(z), |S(Tj,z)|=(ki+…+kn) remain in V(z).
• The max value of the sum is attained when ki=1.
Step 3 : w(b) 1/V(z)+1/(V(z)-1)+…+1/1 bV(z)
not-yet-added blobs who cover z
bV(z) w(b) k1/(k1+k2+…+kn) + k2/(k2+k3+…+kn) +…+ kn/kn
Lemma 3 proof
58
Finally, we have:
• Since |B(z)| 5 and U(z) , we have |V(z)| 4.
• W(z)= bU(z)w(b) + bV(z)w(b) 1+1/4+1/3+1/2+1/1 = 37/12
• The sets B(z), where z R*d c form a cover of Bc
(same blob may be counted twice for the same z).
• Therefore: |Arc|+1 = w(b) w(z) 37|R*d c|/12
b 𝑩𝒄 z 𝑹𝒅*
w(b) 1bU(z)
w(b) = |Arc| +1b 𝑩𝒄
w(b) 1/V(z)+1/(V(z)-1)+…+1/1
bV(z)
Lemma 3 proof
59