Model
For simplicity, all sensors in WSN are randomly deployed in the two-dimensional plane. Assume that all sensors have the same transmission range in the network. The WSN is modeled as a unit disk graph G(V,E), where V is the set of all sensors and E represents the set of links in the network. If the Euclidean distance between any two sensors u and v is less than or equal to 1, then there is an undirected edge e
uv
between these two sensors. Each sensor v∈V has a unique ID. Let N(v) be the set of all neighbors of v and d
v
=|N(v)| be the degree of v. Denote Δ=max{d
v
|∀v∈V} and Ni(v) to be the i-hops neighbor set of v.
Connected dominating set (CDS)
A dominating set (DS) of a graph G=(V,E) is a subset V′⊆V such that each node in V∖V′ is adjacent to at least one node in V′, and a connected dominating set (CDS) is a dominating set which also induces a connected subgraph.
Minimum connected dominating set (MCDS) problem
Given a graph G=(V,E), the minimum connected dominating set problem is to find the CDS in G such that the size of the CDS is minimized.
In this paper, we propose a novel approximation algorithm for solving the MCDS problem.
Algorithm overview
In this section, we overview the proposed approximation algorithm for the MCDS problem. The algorithm consists of three phases.
-
In the first phase, we construct an independent set S1 (sensors in S1 called base-cores) for the graph G such that any pair of complementary sensor subsets in S1 is separated by exactly three hops, which differs from the construction process of the first phase in [15].
-
In the second phase, we select connectors from V∖S1 to connect the base-core sensors in S1 for obtaining a subtree, called all sensors on the subtree as cores.
-
In the third phase, we construct a supporter set S2 such that neighbors of S1∪C are added into S2. S1∪C∪S2 forms a CDS.
For an illustrative purpose, we employ the different colors to differentiate sensor states during the construction process of our algorithm. Figure 1 shows the state transition process of sensors in the WSN.
We illustrate the CDS construction process of our algorithm by Fig. 2, which is the same network example G(V,E) in [7]. Initially, all sensors are marked as white and each sensor has a unique ID, as shown in Fig. 2a. In the first phase, we can know that node 8 has the largest value of \(\frac {|N^{2}(v)|}{|N(v)|}\) among all sensors in the graph. Hence, sensor 8 is colored black and all neighbors in N(8) are colored red and all sensors in N2(8) are colored yellow. As shown in Fig. 2b, sensors 3, 4, 5, and 6 are colored red and sensors 0, 1, 2, 7, 9, 10, 11, and 12 are colored yellow. None of sensors become connector in the second phase since only one black sensor 8 is added into independent set S1. In the third phase, we need to select supporters (added into S2) from red sensors to dominate all yellow sensors. For all red sensors, sensor 5 has the maximum number of yellow neighbors, then sensor 5 is marked green and its yellow neighbors 9, 10, 11, and 12 are colored red. After that, sensors 6 and 4 have the same number of yellow neighbors and the ID of sensor 6 is larger than sensor 4; therefore, sensor 6 is marked green and its yellow neighbors 1 and 7 are colored red. Then sensor 4 is marked green and sensors 0 and 2 are colored red. Finally, sensors with black and green form a CDS that contains sensors 4, 5, 6, and 8, as shown in Fig. 2c. Figure 2d shows a CDS (blue and black sensors) obtained by the algorithm in [12].
Independent set S
1 construction
In this section, we construct the set S1 such that the hop distance between any two complementary sensor subsets in S1 is exactly three hops. The details of S1 construction process as shown in the following steps.
First, a sensor v∈V with the largest value of \(\frac {|N^{2}(v)|}{|N(v)|}\) initiates the S1 construction by coloring itself black. Then, the black sensor v dominates its neighbors in N(v) and all sensors in N(v) are marked red. After that, we color all sensors in N2(v) as yellow and all sensors in N3(v) are colored blue. Last, each blue sensor u deletes red sensors from the set N2(u) and deletes yellow sensors from the set N(u).
Then select black sensor from the current blue sensors, for this purpose, the algorithm repeats the following steps, until no blue/white sensors is left in the graph.
We select a blue sensor v and color it black when the value of \(\frac {|N^{2}(v)|}{|N(v)|}\) is largest among all blue sensors. If more than one sensor node have the same value of \(\frac {|N^{2}(v)|}{|N(v)|}\), then the algorithm selects the blue sensor with the maximum number of sensors in N(v). If more than one blue sensor have the same value of |N(v)|, then the algorithm selects the blue sensor with the highest ID value among these blue sensors.
After that, the algorithm executes the following operations:
-
All sensors in N(v) are colored red
-
All sensors in N2(v) are colored yellow
-
All sensors in N3(v) are colored blue
-
Each blue sensor u deletes red sensors from the set N2(u) and deletes yellow sensors from the set N(u)
The detail illustration as shown in Algorithm 1.
After Algorithm 1 terminates, the sensors in V are either black, red, or yellow. We obtain an independent set S1 that is composed of black sensors and any red sensor is definitely dominated by a black sensor and any yellow sensor has two hops distance from a black sensor. We can prove that any pair of complementary sensor subsets of S1 is separated by exactly three hops. The sensors in the set S1 are called base-cores.
Connector set C construction
In this section, we propose a novel algorithm to find a set of connectors C such that S1∪C forms a subtree.
Before we describe the algorithm, we introduce some terms and notations. For any subset U⊆V, let q(U) be the number of connected components in G(U). The set U is initially equal to S1, and the initial value of q(U) is |S1|. Let M={e|e∈E and the endpoints are red and yellow } and C be the set of connectors. Let W be the subset of S1 such that any pair of sensors of W is connected by other sensors in C.
To begin our algorithm, first, we select an arbitrary black sensor s1∈S1 to start selection of connectors and set W={s1}. The algorithm repeats the following steps, until the condition q(U)=1 is satisfied:
-
Select a sensor s
i
∈W such that there exists a sensor s
j
∈N3(s
i
)∩(S1−W)
-
Select an edge e
xy
∈M such that x∈N(s
j
) and y∈N(s
i
)
-
Delete the edge e
xy
from M, then sensors x and y are marked blue and added into C
-
For each yellow sensor w, if w∈N(x) or w∈N(y), then it is marked red
-
Execute operations U=U∪{u}, U=U∪C and q(U)=q(U)−1
The detail illustration as shown in Algorithm 2.
After Algorithm 2 terminates, any two black sensors are connected by a path that consists of black sensors and blue sensors. That is, we obtain a subtree and all sensors on the subtree are called cores.
Supporter set S
2 construction
After executing Algorithm 2, we have got a subtree over on S1∪C. However, there are still some yellow sensors not being dominated since they have two hops distance from black sensor or blue sensor.
In this section, we propose a novel greedy algorithm for acquiring a supporting set S2, in which the sensors are used to dominate remaining yellow sensors. Sensors in the set S2 are called supporter.
Let RD be the set {s|s∈V,Color
s
=red} and YL be the set {s|s∈V,Color
s
=yellow}. In each iteration, we select a red sensor s∈RD with the maximum number of yellow sensors in N(s). If more than one red sensors have the same number of the yellow neighbors, then the algorithm selects the red sensor with the highest ID.
The algorithm repeats the following steps, until the condition YL=∅ is satisfied:
-
Select a red sensor s∈V with the maximum number of yellow neighbors
-
Sensor s is marked green and its yellow neighbors in N(s)∩YL are marked red
-
Delete sensors of N(s)∩YL from YL
The detail illustration as shown in Algorithm 3.
CDS construction
In this section, we propose our approximation algorithm for solving MCDS problem. The algorithm consists of four steps, and the first three steps correspond to Algorithms 1–3, respectively. The last step is to compute union of S1, C, and S2. The detail illustration as shown in Algorithm 4.
After this algorithm terminates, we obtain a CDS that is union of S1 (black sensors), C (blue sensors), and S2 (green sensors). For a given graph G(V,E), we give the executing process of the Algorithm 4, as shown in Fig. 3(a)-(d).