Energy-Efficient Algorithm for Multicasting in Duty-Cycled Sensor Networks

Multicasting is a fundamental network service for one-to-many communications in wireless sensor networks. However, when the sensor nodes work in an asynchronous duty-cycled way, the sender may need to transmit the same message several times to one group of its neighboring nodes, which complicates the minimum energy multicasting problem. Thus, in this paper, we study the problem of minimum energy multicasting with adjusted power (the MEMAP problem) in the duty-cycled sensor networks, and we prove it to be NP-hard. To solve such a problem, the concept of an auxiliary graph is proposed to integrate the scheduling problem of the transmitting power and transmitting time slot and the constructing problem of the minimum multicast tree in MEMAP, and a greedy algorithm is proposed to construct such a graph. Based on the proposed auxiliary graph, an approximate scheduling and constructing algorithm with an approximation ratio of 4lnK is proposed, where K is the number of destination nodes. Finally, the theoretical analysis and experimental results verify the efficiency of the proposed algorithm in terms of the energy cost and transmission redundancy.


Introduction
In recent years, wireless sensor networks (WSNs) have been used in monitoring and retrieving sensory data from the physical world [1][2][3][4][5][6][7][8][9][10][11], which are usually expected to last over several months or years. Therefore, it is very necessary to design an energy conservation mechanism for WSNs to extend the network lifetime [12][13][14]. Thus, a schema of the duty-cycle is proposed in WSNs. According to the duty-cycle schema, each node switches between the active and the dormant state periodically; the period of the dormant state is much longer than that of the active state in order to save energy. According to the works in [15][16][17][18][19], the duty-cycled schema has high performance in terms of energy savings.
Multicasting is a fundamental component service for one-to-many communications in wireless sensor networks, such as to support data dissemination [20][21][22] for distributed data management and remote network configuration (e.g., [23][24][25]). Therefore, developing an energy-efficient multicast protocol is very meaningful in WSNs. Due to this consideration, the minimum energy multicasting (MEM) problem is proposed, which seeks to disseminate the messages from the source node to all of the destination nodes with minimum energy cost. Nowadays, the MEM problem has attracted extensive attentions from the research community, and it is studied in both nodes always-awake sensor networks [26][27][28][29][30][31][32] and duty-cycled sensor networks [33][34][35][36]. In the nodes always-awake sensor networks, where each node can deliver the massages to one group of its neighboring nodes by only (1) The MEMAP problem in the duty-cycled sensor networks is proposed to minimize the energy cost during multicasting, and its NP-hardness is proven.
(2) In order to solve the MEMAP problem, an auxiliary graph is defined, and a greedy algorithm is given to construct such a graph.
(3) Based on the proposed auxiliary graph, an approximation algorithm is proposed for the MEMAP problem, and its approximation ratio is proven to be 4lnK, where K is the number of destination nodes.
(4) Extensive simulations are carried out, which verify that the proposed algorithm has high performance in terms of energy cost.
The rest of this work is organized as follows. Section 2 surveys the related work. In Section 3, we present the preliminaries, including the network model and the problem definition. Section 4 proposes the algorithm design in detail. Simulation results are discussed in Sections 5. Section 6 concludes the paper.

Related Works
In recent years, there has been a tremendous amount of studies for the MEM problem in both nodes always-awake networks and duty-cycled sensor networks. In the nodes always-awake networks, the main works that studied the MEM problem are [26][27][28][29][30][31][32]. In [26], the author firstly studied the problem of constructing the minimum power broadcast/multicast tree in the wireless sensor network where each node can adjust its transmission power continuously, and three greedy heuristic algorithms were proposed. On the basis of [26], Wan et al. proved that the method in [26] has a linear approximation ratio, and then, they proposed several approximation algorithms with a constant approximation ratio for the min-power multicast routing problem [27]. In [28], the minimum energy broadcasting problem was proven to be NP-complete, and there is no polynomial algorithm with an approximation ratio better than Ω(logn) until NP = P. In [29], the author proposed a centralized approximation algorithm with at most 8lnK-times the optimum when the wireless nodes can adjust their transmitting power discretely. The minimum energy all-to-all multicasting problem was studied in [30], which tries to build a shared multicast tree to reduce the energy consumption. Recently, Qiu et al. [31] studied the minimum energy cooperative broadcasting problem where receivers can combat transmission errors by combing the received packets from different senders.
Baghaie et al. [32] try to formulate the optimal tradeoff between the energy cost and broadcast latency in the cooperative communication scheme. However, these methods were not suitable for the duty-cycled sensor networks.
In duty-cycled sensor networks, the main works that studied the energy-efficient multicasting problem are [18,19,[33][34][35][36]. In [18,19], Feng and Guo et al. proposed an opportunistic forwarding scheme for reliable flooding and broadcasting by considering unreliable links in duty-cycled sensor networks. Lai et al. [33] proposed a broadcasting protocol to achieve a better tradeoff between the broadcast latency and transmission redundancy in the duty-cycled sensor networks. In [34], the authors studied the minimum transmission problem for broadcasting, and they proposed a centralized algorithm with an approximation ratio of 3ln(∆ + 1), where ∆ denotes the maximum node degree in the network. However, they adopted a restricted duty-cycling model where there is only one active time slot existing in the working schedule of each node. In [35], Su et al. proposed two optimal algorithms for the minimum energy multicasting problem and the delay-bounded minimum energy multicasting problem when the number of destinations (e.g., K) is small in the multicast session. Han et al. [36] removed the limitation of the size of destinations and proposed a polynomial time complexity approximation algorithm with an approximation ratio of 6ρH(∆ + 1) + 2ρ, where H(.) denotes the harmonic number and ρ is the approximation ratio of the minimum Steiner tree problem [38,39]. However, they assumed the energy cost to be equivalent for all of the transmissions. Therefore, their problem is actually to minimize the number of transmissions in the multicast session, and their method is not suitable for the case when the transmitting power can be adjusted.
Due to the above limitations, we consider the problem of minimum energy multicasting with adjusted power in duty-cycled sensor networks, in which we need to not only schedule the transmitting power optimally to construct the multicast tree, but also choose the transmitting time slot for each node intelligently.

Models and Problem Definition
Before presenting our algorithms in detail, we depict the models used in this work and the formal definition of the MEMAP problem.

Network Model
We assumed a multihop duty-cycled sensor network G = (V, E), where V is the set of sensor nodes and E denotes the set of edges. There exists an edge between two sensor nodes if they are within each other's transmission range. So as to conserve energy, each sensor node works between two states, e.g., the dormant state and the active state. In the dormant state, the sensor node turns off all of its functional models (i.e., sensing the environment, sending and receiving packets) and just waits to be scheduled. The node switches between the active state and the dormant state periodically.
Let T denote one working cycle for each node, which is divided into multiple time slots with equal lengths. The length of each time slot (e.g., τ) can be determined according to [40] to guarantee that the data packet can de delivered to the neighbor successfully in one time slot. Since each sensor node has two states, all time slots in one working cycle, i.e., {1, 2, ..., T /τ}, can be separated into two disjointed subsets for any u ∈ V. We let W (u) = {t 1 u , t 2 u , ..., t k u } denote the working schedule of node u, which contains all active time slots of u. Then, {1, 2, ..., T /τ} − W (u) contains all dormant time slots of u. As the same setting in [35], we assume t 1 u , t 2 u , ...t k u are consecutive in this paper, and they can be set up according to the requirement of coverage or connectivity [41]. Nodes can switch to the active state according to their working schedule or when they have packets to be sent, but they can only receive the packets when they are in the active state. To deliver the data, the sender can switch to the active state when the receiver wakes up. Additionally, node u's duty cycle can be calculated as |W (u)| × τ/T .
In addition, we assumed that each sensor node is equipped with an omnidirectional antenna, and the transmission power of each sensor node can be adjustable. There are L power levels at each node, i.e., P = {p 1 , p 2 , ...p L }, where p i (1 ≤ i ≤ L) denotes the transmitting power of the i-th power level. Without loss of generality, P is sorted ascendingly, that is p i ≤ p j if 1 ≤ i ≤ j ≤ L. For each neighboring node v of u, there exists a minimum transmitting power required to guarantee v is under the transmission range of u, and we assume that the transmission power is symmetric. Let the Euclidean distance between u and v be d(u, v). According to the path loss model, u can communicate with v with power level l only if: where α is the pass loss exponent, β is the minimum SINR value (signal to interference plus noise ratio) to guarantee successful reception and N(1 + φ) is the background noise. In these parameters, β > 1 and α usually belong to [2,4].

The MEMAP Problem in Duty-Cycled Sensor Networks
Given a multicast request, which includes a source node s and a set of destination nodes D(D ⊆ V − {s}), the MEM problem in the nodes always-awake sensor networks is to construct a multicast tree that satisfies that: (1) it is rooted at the source node s and spanning all of the nodes in D; (2) the sum of the transmission power at the non-leaf nodes is minimized. This problem involves selecting the nodes to transmit the message and scheduling the transmitting power, as well.
However, multicasting in the duty-cycled sensor networks is quite different. According to the discussion in the above section, the working schedule of receivers decides the time slot for which the sender can transmit the packet. Then, in such a network, the broadcasting character can only be used when the receivers wake up simultaneously. In other words, as for a node u with multiple children in the multicast tree, it would need to transmit the same packet several times if the working schedules of all of the children are not overlapped. Therefore, the MEM problem in such a network not only involves selecting the transmitting nodes, but also the transmitting time slot and the transmitting power for each non-leaf node. We call the transmitting power and the transmitting time slot the transmitting schedule, which is defined as follows: Definition 1.
(Transmitting schedule) Given a node u ∈ V, a transmitting power p(p ∈ {p 1 , p 2 , ..., p L }) and a time slot t(t > 0), then the transmitting schedule (u, p, t) means node u can transmit the packet at time slot t with transmitting power p.
By exploiting the definition of the transmitting schedule, the MEMAP problem in duty-cycled sensor networks is then to construct a multicast tree T and determine the transmitting schedules for each non-leaf node, while the total energy cost is minimized. Before we present the formal definition of the MEMAP problem, we need to give some notations here.
We use NB(u) to denote the set of neighboring nodes of u in G, which means the set of nodes u can communicate with the maximal transmitting power. As for an arbitrary multicast tree T, we use nl(T) to denote the set of non-leaf nodes in T and use f a(u) to denote u's father and ch(u) to denote the set of u's children for any node u ∈ T. Let (u, v) be a tree edge in T; then, u denotes the father node of v, and v is a child node of u.
In the following, we firstly give the definition of a feasible solution. where v is under the transmission range of u with transmitting power p and t ∈ W (v).
According to the above definition, the definition of the MEMAP problem is presented as follows: Input: 1. A duty-cycled sensor network G = (V, E); 2. A source node s and a set of destination nodes D = {d 1 , d 2 ...d K }.
Output: A multicast tree T and the transmitting schedules on the multicast tree T, denoted by M(T). The multicast tree T and M(T) satisfy the following conditions: 1. T and M(T) are a feasible solution for the MEMAP problem; 2. For any feasible solution for the MEMAP problem, denoted by T and M(T ), we have ∑ In the following, we will prove that the MEMAP problem in the duty-cycled sensor networks is NP-hard in Theorem 1.

Theorem 1.
The MEMAP problem in the duty-cycled sensor network is NP-hard.
Proof. Let the working schedule of all of the nodes be the same, then the MEMAP problem in the duty-cycled sensor networks is converted to the MEM problem in the nodes always-awake sensor networks. Since the MEM problem in the nodes always-awake sensor networks is proven to be NP-hard by reducing the set cover problem to it, there is no polynomial-time algorithm with an approximation ratio better than Ω(logK) for it unless NP = P [28]. Therefore, the MEMAP problem is also NP-hard, as it is a general case of MEM problem.
Based on Theorem 1, there is no polynomial time algorithm for the MEMAP problem unless NP = P, so that we study the approximate method to solve it, which is discussed in the next section.

An Overview of the Proposed Algorithms
Since the above problem is NP-hard, we propose an approximate algorithm with an approximation ratio of 4lnK. The proposed algorithm mainly includes four steps. Firstly, we construct a weighted auxiliary graph based on the original graph G, which is used to integrate the transmitting power and transmitting time slot scheduling problem and the minimum multicast tree constructing problem. Secondly, We derive the MEMAP problem from the minimum node-weighted Steiner tree problem on the auxiliary graph and exploited approximation algorithms for the minimum node-weighted Steiner tree problem. Thirdly, we transform the obtained approximate minimum node-weighted tree T in the auxiliary graph into a valid multicast tree T , which can be mapped into a feasible solution for the MEMAP problem through a series of transformations. Finally, according to the valid multicast tree T in the auxiliary graph, we obtain the multicast tree T on the original graph and the transmitting schedules for each non-leaf node.

The Auxiliary Graph
To clarify, G = (V, E) is referred to as the original graph, and u ∈ V is referred to as the original node. The first step of our approach is to transform the original graph into a weighted auxiliary graph G to assist in building the node-weighted Steiner tree. Before we introduce the definition of the auxiliary graph, we need to give two concepts used in the auxiliary graph.
Generation node: For any node u ∈ V, we use u g to denote u's generation node in the auxiliary graph G .
Schedule node: For any node u ∈ V, we use u s to denote u's schedule node in the auxiliary graph G . Each schedule node u s owns three properties, i.e., (u s .g, u s .p, u s .t), which denote its corresponding generation node, transmitting power and transmitting time slot, respectively. For any node u ∈ V, we call u g the corresponding generation node of u s , and u s is derived from u g in this paper. Obviously, we can get u s .g = u g . Definition 3. (Auxiliary graph) Given a duty-cycled sensor network G = (V, E), its auxiliary graph G = (V , E ) denotes the graph containing the scheduling information, where V and E denote the set of nodes and edges. V and E are constructed as follows: (ii) For each node u ∈ V, we add a generation node u g in the auxiliary graph G , i.e., V = {u g |u ∈ V}; (iii) For each node u ∈ V, we then add L schedule nodes in G , i.e., u s1 , u s2 , ...u sL , where the three properties of u sl (1 ≤ l ≤ L) are set as u sl .g = u g , u sl .p = p l and u sl .t = 0, respectively. It is to be noticed that the transmitting time slot of u s is initialized as zero, and we will introduce the method to determine u sl .t later. Let the set of all of the schedule nodes of u be denoted by Υ(u).
(iv) For each node u ∈ V, we create an edge between u g and each schedule node u s ∈ Υ(u), which means node u can transmit with power u s .p on time slot (v) Let v be a neighboring node of u in the original graph G, and v g is the generation node of v. For any schedule node u s ∈ Υ(u), we add an edge (u s , v g ) in G if only if v is under the transmission range of u with transmitting power u s .p, and we use R(u s ) to denote the set of such nodes v of u s . After then, E can be updated as As the example in Figure 1, there is an original graph in Figure 1a, where the number in the braces denotes the working schedules. There are two power levels {p 1 , p 2 } for each node, and p 1 < p 2 . As for the forwarder f , it can reach a and c with transmission power p 1 and a, b, c with transmission power p 2 . As for the above original graph, we do as follows according to Definition 3, where the result is shown in Figure 1b. Firstly, the generation nodes are created for each original node, i.e., the blue nodes in Figure 1b, which are f g , a g , b g and c g , respectively. Then, we create two schedule nodes f s1 and f s2 with transmitting power p 1 and p 2 , respectively, and their three properties are ( f g , p 1 , 0) and ( f g , p 2 , 0). According to the above discussion, we connect a g and c g to f s1 and connect a g , b g and c g to f s2 . In the following, we will introduce the transmitting time slot-determining algorithm to determine the transmitting time slot for each schedule node u s in the constructed auxiliary graph G . Before that, we need to give some notations.
Let start(u) = min{t u |t u ∈ W (u)} and end(u) = max{t u |t u ∈ W (u)} denote the first active time slot and the last active time slot of node u, respectively. Since the sensor nodes can only receive the data message when it is in the active state, the transmitting time slot must be assigned as the slot that all of its reaching nodes are active. For a schedule node u s and all of the reaching nodes in R(u s ), it may require several slots to deliver the message to all of them. For this case, the schedule node u s may be split into multiple schedule nodes with the same generation node and transmitting power (e.g., u s .g and u s .p), but different transmitting time slots (e.g., u s .t). In addition, for any transmission schedule (u, p, t) in the optimal schedule, we should find a corresponding schedule node in the auxiliary graph.
For any schedule node u s in Definition 3, the transmitting time slot-determining algorithm exploits a greedy strategy, which mainly works as follows: Firstly, all of the nodes in R(u s ) are sorted by their ending time slots in ascending order. Secondly, we greedily choose the last active time slot of the first node in R(u s ) to create a new schedule node. Let v 1 be such a node, and then, we create a new schedule node u sL+1 and set u sL+1 .t = end(v 1 ). For any node v ∈ R(u s ), we connect it to the new schedule node u sL+1 if start(v) ≤ u sL+1 .t. After that, we remove v 1 from R(u s ). For the nodes left in R(u s ), we repeat the same procedure, until all of the nodes in R(u s ) are handled.
Finally, since the original schedule node u s will not be used afterwards, we delete it from G directly. The detailed procedure of the transmitting time slot-determining algorithm is shown in Algorithm 1.

Algorithm 1 Transmitting time slot-determining algorithm.
Input: A schedule node u s , the set of its reaching nodes R(u s ); Output: The set of splitting schedule nodes u sj and its transmitting time slot u sj .t; 1: Sorting the nodes in R(u s ) according to their last active time slot; 2: j ← L + 1; 3: while R(u s ) is not empty do 4: v 1 ← the first node in R(u s );

5:
Create a new schedule node u sj identical to u s ; 6: u sj .t ← end(v 1 );

7:
Add edge (u g , u sj ) and (u sj , v 1 ) in G ; 8: for i = 2 to |R(u s )| do 9: v i ← the i-th node in R(u s ) 10: if start(v i ) ≤ u sj .t then 11: add edge (u sj , v i ); 12: else 13: break; 14: end if 15: end for 16: j ← j + 1; 17: Remove v 1 from R(u s ); 18: end while 19: Delete u s from G ; 20: return the set of splitting schedule nodes of u s ; As shown in the above example, since the working schedules of nodes a and c are not overlapped, we split the schedule node f s1 into two schedule nodes f s3 and f s4 to connect to a g and c g , respectively. The transmitting time slot for f s3 and f s4 are set as 4 and 7 respectively, since end(a) = 4 and end(c) = 7. As for the schedule node f s2 , its reaching node R( f s2 ) = {a, b, c}. We first choose the minimal last active time slot from {end(v)|v ∈ R( f s2 )}, e.g., end(a) = 4, to create a new schedule node f s5 with f s5 .t = 4. Then, we connect f s5 to node a g and b g . After that, we remove a from R( f s2 ). For the rest of nodes in R( f s2 ), we do similarly and choose Time Slot 6 to create a new schedule node to connect node b g and node c g . The complete auxiliary graph is shown in Figure 1c, and the three properties for each schedule node are shown in the brackets above the node.
Through the above procedure, we can see that the original schedule node is "split" into several schedule nodes with different transmitting time slots. The above greedy strategy can guarantee that for any transmission schedule (u, p, t) in the optimal solution, we can find a corresponding schedule node in the auxiliary graph, which is shown in Theorem 2.

Theorem 2.
Assuming T opt and M opt (T opt ) are the optimal multicast tree and its transmitting schedules. Then, for any (u, p, t) ∈ M opt (T opt ), we can find a schedule node in the auxiliary graph G .
Proof. Let Ch(u, p, t) denote the set of the children of u in the multicast tree T opt where u can communicate with at time t by transmitting power p, and v is the node of the minimum last active time slot in Ch(u, p, t). In the following, we will prove this from two aspects.
(1) We will firstly prove that all of the working schedules of nodes in Ch(u, p, t) contain the time slot end(v). Assuming there is at least one node whose working schedule does not contain time slot end(v), since the working schedules are consecutive, then there must exist a node As v denotes the node with the minimum last active time slot in Ch(u, p, t), so we have end(v ) ≥ end(v). In addition, according to the definition of the MEMAP problem, the working schedules of all of the nodes in Ch(u, p, t) are overlapped, and all contain time slot t. Then, we can have t ≤ end(v) and start(v ) ≤ t, which result in start(v ) ≤ end(v). Combining the two reasons, we can get . Therefore, all of the working schedules of nodes in Ch(u, p, t) contain the time slot end(v).
(2) Now, we will prove that the schedule node u s is the target node in two cases: • If t = end(v), u s is the correspondent schedule node obviously.

•
If t < end(v), since all of the working schedule of the nodes in Ch(u, p, t) contains the time slot end(v), so (u, p, end(v)) is also a feasible schedule that u can communicate with all of the nodes in Ch(u, p, t) with transmitting power p at time slot end(v). In this case, we can just map the transmitting schedule (u, p, t) to the schedule node u s , as well.
Combing the above two reasons, the theorem is proven.
So far, the auxiliary graph has been constructed. We can find that V in the auxiliary graph can be partitioned into two subsets V g and V s , where V g is the set of all generation nodes and V s is the set of all of the schedule nodes. In order to exploit the node-weighted Steiner tree algorithm, we set the weight of each generation node u g as w(u g ) = 0 and set the weight of each schedule node u s as w(u s ) = u s .p.
The size of the auxiliary graph is analyzed in Theorem 3. Proof. Firstly, as in Definition 3, for each generation node u g in the auxiliary graph G , there is only one schedule node u s with power level l in Υ(u), where Υ(u) denotes all of the schedule nodes of u. Then, the schedule node u s is split into several schedule nodes with power level l after executing the transmitting time slot-determining algorithm. Let Υ(u s , l) denote the set of schedule nodes derived from u g , and its power level is l. In the worst case, we can have |Υ(u s , l)| = |NB(u)| ≤ ∆. Then, for each node u ∈ V, we can have: Thus, according to Equation (2), the total number of nodes in the auxiliary graph G can be calculated as: where |V g | = |V| = n denotes the number of nodes in the original graph. Secondly, according to Definition 3 and Algorithm 1, for each generation node u g , there exists an edge between u g and u s (u s ∈ Υ(u)). For each schedule node u s ∈ Υ(u), there exists at most |NB(u)| edges from u s to its neighboring generation nodes. Then, we can have: As we can see, compared to the original graph, the nodes in the auxiliary graph increased L × ∆ times and the edges increased L × ∆ 2 times. Since L and ∆ are usually constant, the size of the auxiliary graph is controlled. In addition, we can notice that the auxiliary graph G has the following properties: (1) Given two nodes in G , there are no edges between them if they are both schedule nodes or generation nodes. In other words, the neighbors of a schedule node are all generation nodes, and the neighbors of a generation node are all schedule nodes. Two generation nodes are connected through a schedule node.
(2) R(u si ) ⊆ R(u sj ), if 1 ≤ u si .p ≤ u sj .p ≤ L and u si .t = u sj .t, where u si and u sj are two schedule nodes derived from the same generation node u g .
(3) For any two generation nodes u g and v g , which are connected to a same schedule node w s , then the working schedules of node u are overlapped with v, which means they can receive the packet simultaneously.

Minimum Node-Weighted Steiner Tree
Given a multicast request that includes a source node s and a set of destination nodes D in the duty-cycled sensor network G, let s g be the generation node of s in the auxiliary graph G , and D g = {d 1g , d 2g , ..., d Kg } are the set of the generation nodes of the destination nodes. Now, our objective is to find a minimum node-weighted Steiner tree in G , which is rooted at s g and spanning all of the nodes in D g . The minimum node-weighted Steiner tree was used to help us obtain a feasible solution for the MEMAP problem, which includes a multicast tree T and the transmitting schedules M(T).
However, it is unlikely to have a polynomial-time algorithm to find such a minimum node-weighted tree in the auxiliary graph G unless P = NP. Thus, a approximation algorithm [38] is exploited to obtain the near optimal minimum node-weighted Steiner tree with approximation ratio of 2lnK.
Let T app ag denote the obtained approximate minimum node-weighted Steiner tree in the auxiliary graph G . In the following, we will introduce the method to map T app ag to a feasible solution for the MEMAP problem, which is guaranteed by the following theorem. Theorem 4. Let T ag be a node-weighted Steiner tree, which is rooted at s g and spans all of the nodes in D g in the auxiliary graph G ; T ag can be mapped to a feasible solution for the MEMAP problem if it satisfies the following conditions: 1. For any leaf node i ∈ T ag , i must be a generation node in D g ; 2. For each schedule node u s in the node-weighted Steiner tree T ag , there exists a generation node u g in T ag , where u g is the corresponding generation node of u s ; 3. For any non-leaf generation node u g in the tree T ag and any node i ∈ ch(u g ), node i must be a schedule node derived from u g .

Proof.
In the following, we will prove the theorem by constructing a feasible solution for the MEMAP problem with the node-weighted Steiner tree T ag . Firstly, the multicast tree T in the original graph is constructed by the following three steps: Step 1. For any schedule node in T ag , we create an edge between its father and all of its child nodes; Step 2. Remove all of the schedule nodes from T ag ; Step 3. Replace all of the generation nodes with their original nodes.
As we can see, for any tree edge ( f a(u), u) ∈ T, there exists a schedule node between f a(u) and u in the node-weighted Steiner tree T ag , which means that f a(u) can communicate with u with a certain power. Additionally, s g and D g are all in T ag , then s and D are in T accordingly. Therefore, the source node s can deliver the messages to all of the destination nodes by the tree T.
Secondly, we will show how to determine the transmitting schedules for T, i.e., M(T). For each node u in T, u g is its corresponding generation node in T ag . Then, for each schedule node u s ∈ ch(u g ) in T ag , we add a transmitting schedule (u, u s .p, u s .t) in M(T). Since for each non-leaf node u and its child node v ∈ T, there exists a schedule node between them, then we can have a transmitting schedule (u, u s .p, u s .t) with which u can communicate with v with transmitting power u s .p at time slot u s .t.
Combining the above two reasons and Definition 2, a feasible solution for the MEMAP problem is obtained. The theorem is proven.
In this paper, we call a node-weighted Steiner tree a valid multicast tree if it satisfies the three conditions in Theorem 4.
As the example shown in Figure 2, there is a calculated Steiner tree in Figure 2a, where the pink node denotes the source node and the destination nodes. We can find that the tree in Figure 2a is a valid multicast tree since it satisfies the conditions in Theorem 4. According to the above method, then we can obtain the corresponding multicast tree and transmitting schedules on the original graph. The results are shown in Figure 2b, where the three tuple along the links denotes a transmitting schedule.

Constructing a Valid Multicast Tree
However, the obtained approximate minimum node-weighted Steiner tree T app ag on the auxiliary graph G may not satisfy the three conditions in Theorem 4. There exist three violations.
(a) Violation 1. T app ag contains a leaf node i, and i does not belong to D g . This violets Condition 1 in Theorem 4. (b) Violation 2. T app ag contains a schedule node, which is not derived from any of its neighboring generation nodes in the tree T app ag . This violets Condition 2 in Theorem 4. (c) Violation 3. T app ag contains a generation node u g (u g = s g ), but u g cannot be reachable by the source node s g , which means that there exist the tree edges (v g , u s ) and (u s , u g ) in T app ag , where u s is the father node of u g and a child node of v g . This violets Condition 3 in Theorem 4.
In order to eliminate the three violations in the approximate minimum node-weighted Steiner tree T app ag , we introduce three correcting operations as follows. For Violation 1: For any leaf node i that does not belong to D g , we just delete it from T app ag . This procedure continues until all of the leaf nodes satisfy Condition 1 in Theorem 4.
For Violation 2: Assume u s is the schedule node, which is not derived from any of its neighboring generation nodes. Let u g be the generation node of u s , then we do as follows: ag , then the generation node u g and the edge (u g , u s ) are added in the tree T app ag ; 2. if u g ∈ T app ag , but u g / ∈ NB(u s ), where NB(u s ) denotes the set of neighbors of u s in the tree T app ag ; in this case, we delete the tree edge ( f a(u s ), u s ) from T app ag firstly, and then, we would add the tree edge (u g , u s ) in the current tree T app ag .
For Violation 3: This correcting operation is done by checking all of the nodes in the tree T app ag through a breadth-first search. All of the nodes in the tree have two states, e.g., "uncheck" and "checked" states. Let the queue Q store the set of current nodes needed to be checked. Initially, all of the nodes in T app ag are marked "uncheck", and the root s g is pushed into Q. The correcting process works as follows: Let the first node in Q be i; we first marked node i "checked" and pop it from Q. Then, we handle i according to the following two cases: Case 1: i is a generation node. Then, for each schedule node j s ∈ ch(i), we do as follows: 1. If j s is not derived from i, let j g denote the corresponding generation node of j s . We then check for any schedule node c s (c s ∈ ch(i)), whether there exists an edge between c s and j g in the auxiliary graph G . If yes, add an edge (c s , j g ) in T app ag . Otherwise, we choose the schedule node c s = argmin{w(i s )|i s ∈ Υ(i) (i s , j g ) ∈ E } to add into the current tree T app ag , and then, the tree edges (i, c s ) and (c s , j g ) are added. After that, we delete the tree edge (i, j s ) from T app ag . Finally, the new added schedule node c s is pushed into Q. 2. If j s is derived from i, we just push it into Q; Case 2: i is a schedule node. Then, for any generation node u g ∈ ch(i), we just push it into Q for the following computing.
The correcting operation for Violation 3 ends when Q is empty, and all of the nodes in T ag are marked "checked".
In the following, we will prove that the tree after the above three correcting operations can satisfy the three conditions in Theorem 4, which means it is a valid multicast tree.

Theorem 5.
Let the tree after the three correcting operations be T c ag ; then, T c ag is a valid multicast tree.
Proof. In order to guarantee the correctness of Theorem 5, we just need to prove that the above three operations can eliminate the violations successfully, that is the three conditions in Theorem 4 are satisfied.
As for Condition 1 (for any leaf node i ∈ T c ag , i must be a generation node in D g ), according to correcting Operation 1, any leaf node i that is not a generation node in D g is pruned. Then, Condition 1 is satisfied.
As for Condition 2 (for each schedule node u s in the node-weighted Steiner tree T c ag , there exists a generation node u g in T c ag , where u g is the corresponding generation node of u s ), according to correcting Operation 2, for any schedule node u s in T c ag , its generation node u g and the tree edge (u g , u s ) are added in the tree. Then, Condition 2 is also satisfied.
As for condition 3 (for any non-leaf generation node u g in the tree T c ag , then for any node, i ∈ ch(u g ) must be a schedule node derived from u g ), according to correcting Operation 3, for each generation node i in T c ag and any schedule node j s that is not derived from i, we delete the tree edge (i, j s ) in the obtained approximate minimum node-weighted Steiner tree and add a schedule node i s , which is chosen to connect to j s 's corresponding generation node j g . Obviously, Condition 3 is satisfied.
Combining the above three reasons, the theorem is proven.
After the approximate minimum node-weighted Steiner tree T app ag has been corrected to a valid multicast tree in the auxiliary graph, then we can transform it into a feasible solution for the MEMAP problem according to Theorem 4. So far, the complete approximate scheduling and constructing algorithms have all been introduced, which is shown in Algorithm 2.

Algorithm 2 Approximate scheduling and constructing algorithm.
Input: A duty-cycled network G, a source node s and a set of destination nodes D; Output: A multicast tree T and the set of transmitting schedules M(T) for the multicast tree T; 1: Construct the auxiliary graph G according to Definition 3; 2: for all schedule node u s in G do 3: Call Algorithm 1 to determine the transmitting time slot for each schedule node; 4: end for 5: Call the Steiner tree algorithm to get a multicast tree T app ag on G ; 6: Correct T app ag to a valid multicast tree T c ag on G by using the three correction operations in Section 4.4; 7: Map the valid multicast tree T c ag into a feasible solution for MEMAP using the method in Theorem 4, including the multicast tree T and the set of transmitting schedule M(T); 8: return the multicast tree T and the set of transmitting schedule M(T);

Approximation Ratio Analysis
In the following, we give the approximation ratio analysis of the proposed algorithm in Lemma 1 and Theorem 6 below. Lemma 1. Given a multicast request (s:D) in the duty-cycled network, the weighted sum of the minimum node-weighted Steiner tree is the lower bound for the MEMAP problem.
Proof. Let (T opt , M opt ) denote the optimal result for the MEMAP problem in the duty-cycled network G. Following the construction of the auxiliary graph G , (T opt , M opt ) can be mapped into a node-weighted Steiner tree T ag in G , which is rooted at s g and spanning all of the nodes in D g , and the transmitting schedule (u, p, t) ∈ M opt is mapped to a schedule node of u s in T ag . Then, the total transmission power in M opt is equal to the weighted sum of the tree T ag .
Assume T opt ag is the minimum node-weighted Steiner tree in the auxiliary graph G , which spans all of the nodes in D g ∪ {s g }. Obviously, we can get W(T opt ag ) ≤ W(T ag ), where W(T opt ag ) denotes the weighted sum of all of the nodes in T opt ag . The lemma is proven. Theorem 6. The approximation ratio of our method is 4lnK, where K is the number of the destination nodes.
Proof. Let T app ag be the obtained approximate minimum node-weighted Steiner tree through [38]. According to [38], we have W(T app ag ) ≤ 2lnKW(T opt ag ), where T opt ag is the minimum node-weighted Steiner tree.
Let T 1 ag , T 2 ag and T 3 ag denote the node-weighted Steiner tree after correcting Operations 1, 2 and 3, respectively. In the following, we will prove W(T 3 ag ) ≤ 2W(T app ag ). Firstly, in correcting Operation 1, we remove the leaf nodes that does not belong to D g ; obviously, we can have: Secondly, in correcting Operation 2, we add the generation node of the schedule node u s , of which the generation node is not in the tree T. Since the weight of all of the generation nodes is zero, we can have: Thirdly, in correcting Operation 3, let u s be the schedule node that is not derived from its father i g . We handle this case in the following two aspects: 1. If we can find a schedule node i s ∈ ch(i g ) to reach the generation node u g of u s , then we add an tree edge (i s , u g ). No schedule node is added in this case. Thus, the weighted sum of the tree is not changed. 2. If we cannot find such a power, we need to add a schedule node i s with i s = argmin{w(i s )|i s ∈ Υ(i) (i s , u g ) ∈ E } in the correcting tree T 2 ag . Since we assume that the transmission is symmetric, so the weight of added schedule node i s is not larger than w(u s ).
Therefore, for each schedule node u s ∈ T 2 ag , at most a schedule node with weight w(u s ) is added in the correcting tree T 3 ag . Therefore, we can have: According to Equations (5)-(7), we can have W(T 3 ag ) ≤ 2W(T app ag ). In addition, according to Lemma 1, we can have W(T app ag ) ≤ 2lnKW(T opt ag ) and W(T opt ag ) ≤ W(T ag ), where T ag denotes the corresponding node-weighted Steiner tree for the optimal result for the MEMAP problem. Therefore, we can have W(T 3 ag ) ≤ 4lnKW(T ag ), and the approximation ratio is 4lnK. The theorem is proven.
Additionally, the time complexity of the proposed algorithm can be proven to be polynomial by Lemma 2 and Theorem 7.  O(K 2 L∆nlog(L∆n)) according to [38]. In Step 4, we need to correct the obtained Steiner tree with three correction operations, where correction Operations 1 and 2 take O(L∆n) time by examining the tree once and correction Operation 3 would take O(L∆n) time by a breadth-first search. Therefore, the time complexity for Step 4 is O(L∆n). In Step 5, the time complexity is also O(L∆n) by visiting the corrected tree once. In summary, the time complexity of Algorithm 2 is O(K 2 L∆nlog(L∆n)).

Experimental Results
In this section, we study the empirical performance of the proposed algorithm. In the experiments, we randomly deploy the wireless nodes in a 300 m × 300 m field, where the number of nodes ranges from 100-200. The duty cycle is set from 5%-25%, and one time slot is set 50 ms. The working schedule of each node is generated randomly to test a wide range of configurations. In addition, each node in the experiments can transmit at five power levels, which are 1 MW, 10 MW, 15 MW, 20 MW and 50 MW respectively. The bandwidth is set to 40 kbps, and the size of the data is 100 bytes. All experiments are repeated 100 times with different node deployments and working schedules.
Since most existing methods are not suitable for minimum-energy multicasting with adjusted power in the duty-cycled sensor networks, we compare our algorithm (denoted as ASC) with the following baseline methods: the minimum spanning tree (MST) method and the shortest path tree (SPT) method. The SPT method calculates the shortest paths from the source node to each destination node, and then, all of the shortest paths form a multicast tree. As for the MST method, the leaf nodes that are not destination nodes are removed. This method is most widely used to approximate the Steiner tree. Additionally, in order to use the multicast tree constructed by the MST and SPT methods in the duty-cycled sensor networks, the transmitting schedules, including the transmitting time slot and the transmitting power for each non-leaf node, should also be determined. In the experiments, we exploit the enumerating method to find the best transmitting schedules for the multicast tree constructed by the MST and SPT methods.

Performance of Energy Cost
Firstly, we compare the total energy cost of three algorithms under different numbers of destination nodes. We conduct the experiments mainly in two network scenarios, while the number of nodes is set to 100 and 200, respectively, and the results are shown in Figure 3a,b. In Figure 3a, the x-coordinate denotes the percentage of the destination nodes of all nodes, which ranges from 5%-25%. As we can see, the total energy cost produced by our method is the lowest, which is about 20% lower than the MST method, and when the number of destination nodes is greater, the ratio can even reach 30%. This is because our method considers the working schedule and the transmitting power of each node in constructing the multicast tree, which can reduce the energy cost and the number of transmissions at the same time. Although the MST and SPT method determine the transmission schedule optimally in a localized way, they construct the multicast tree regardless of the node's working schedule and cannot optimize the multicast tree in a global manner. It's to be noticed that in Figure 3a, the total energy cost of the SPT method is a little lower than the MST method; this is because the SPT method reduces the number of transmissions through adjusting the transmitting power. In Figure 3b, the total energy cost of three methods is increased compared to Figure 3a; this is because the number of nodes and the destination nodes increased. However, our algorithm still generates the lowest energy cost compared to the other two methods. Additionally, we can see that the total energy cost of the three algorithms grows with the number of destination nodes increasing in both experiments.

Performance of Total Transmissions
In this group of experiments, we analyzed the total number of transmissions of three methods in the multicasting process. In the duty-cycled sensor networks, besides the transmitting power of all of the nodes in the multicast tree, the total number of transmissions is also an important factor for the total energy cost. As shown in Figure 4a,b, the total number of transmissions of the the SPT method is far less than the MST method. This results in that the energy cost of the SPT method is less than the MST method (which has been demonstrated in Figure 3a,b), despite that the SPT method exploits higher transmitting power in multicasting. However, both the total number of transmissions of the MST method and the SPT method are larger than our method. Additionally, as shown in Figure 4a,b, the total number of transmissions of three methods increases with the number of destination nodes.

Performance under Different Duty Cycles
Finally, we investigate the influences of different duty cycles on the performance of the three methods, and the results are shown in Figure 5a,b. In this group of experiments, the duty cycle of each node varies from 5%-20%, and the percentage of the destination node is set as 15%. As we can see in Figure 5a,b, the total energy cost and the number of transmissions of our method are both the lowest, which demonstrates the high performance of our method in terms of energy cost. Additionally, in Figure 5a, we can find that the total energy cost of our method decreases slightly with the duty cycle increasing. This may be because our method has exploited the working schedule of each node in constructing the multicasting tree, and the common active slots of the neighboring nodes do not vary much when the duty cycle increases 5%, which results in the total number of transmissions not reducing obviously. This can be illustrated in Figure 5b, where the number of transmissions of the three methods decrease slightly when the duty cycle of each node increases 5%.

Conclusions
In this paper, the problem of minimum energy multicasting with adjusted power (MEMAP) in duty-cycled sensor networks was proposed, and it was proven to be NP-hard. To solve such a problem, an auxiliary graph was proposed to integrate the transmitting power and time slot scheduling problem and the minimum multicast tree constructing problem in MEMAP, and a greedy algorithm was exploited to construct such a graph. Based on the proposed auxiliary graph, an approximate scheduling and constructing algorithm with an approximation ratio of 4lnK was proposed, where K is the number of destination nodes. Finally, we perform extensive simulations, and the results verify the high performance of the proposed algorithm in terms of the energy cost and transmission redundancy.