Model
For simplicity, all sensors in WSN are randomly deployed in the twodimensional 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 N^{i}(v) to be the ihops 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 S_{1} (sensors in S_{1} called basecores) for the graph G such that any pair of complementary sensor subsets in S_{1} 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∖S_{1} to connect the basecore sensors in S_{1} for obtaining a subtree, called all sensors on the subtree as cores.

In the third phase, we construct a supporter set S_{2} such that neighbors of S_{1}∪C are added into S_{2}. S_{1}∪C∪S_{2} 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 N^{2}(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 S_{1}. In the third phase, we need to select supporters (added into S_{2}) 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 S_{1} such that the hop distance between any two complementary sensor subsets in S_{1} is exactly three hops. The details of S_{1} 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 S_{1} 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 N^{2}(v) as yellow and all sensors in N^{3}(v) are colored blue. Last, each blue sensor u deletes red sensors from the set N^{2}(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 N^{2}(v) are colored yellow

All sensors in N^{3}(v) are colored blue

Each blue sensor u deletes red sensors from the set N^{2}(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 S_{1} 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 S_{1} is separated by exactly three hops. The sensors in the set S_{1} are called basecores.
Connector set C construction
In this section, we propose a novel algorithm to find a set of connectors C such that S_{1}∪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 S_{1}, and the initial value of q(U) is S_{1}. Let M={ee∈E and the endpoints are red and yellow } and C be the set of connectors. Let W be the subset of S_{1} 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 s_{1}∈S_{1} to start selection of connectors and set W={s_{1}}. 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
}∈N^{3}(s_{
i
})∩(S_{1}−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 S_{1}∪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 S_{2}, in which the sensors are used to dominate remaining yellow sensors. Sensors in the set S_{2} are called supporter.
Let RD be the set {ss∈V,Color_{
s
}=red} and YL be the set {ss∈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 S_{1}, C, and S_{2}. The detail illustration as shown in Algorithm 4.
After this algorithm terminates, we obtain a CDS that is union of S_{1} (black sensors), C (blue sensors), and S_{2} (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).