Research Article

# Optimizing Maximum Monitoring Frequency and Guaranteeing Target Coverage and Connectivity in Energy Harvesting Wireless Sensor Networks

## Algorithm 1

MFTCC.
 Input: Topology of energy harvesting WSN G(V, E); the amount of energy SE(si, lt) for sensor node si ∈ S in lt monitoring cycle, , ; the number of target nodes, m. Output: The set of active sensors in each monitoring cycle MZ(lt), , ; and monitoring frequency FM(zi) (1) Calculate link weights (Sr, zi) and (si, sj) according to equation (8). (2) Initialize Num_Feasible_path = 0, FM(zi) = 0, MZ(lt) = Φ. (3) Build directed graph Gd (V′, E′) by implementing node decomposition for G(V, E). For each link (si, sj), node si is replaced by and , and node sj is replaced by and . Establish the new connection relationship and increase the direct links, which include (, ), (, ), (, ), (, ), (, ), (, ), (, ), and (, ). Set the link weight: (, ) = (, ) = SE(si, lt); (, ) = (, ) = SE(sj, lt); (, ) = (, ) = 0, (, ) = (, ) = min(SE(si, lt), SE(sj, lt)). (4) Repeat (5) Select virtual source node Sr and set Num_Feasible_path = 0; (6) For (Num_Feasible_path < m) (7) Find a feasible path (P) between virtual source node Sr and sink node R in Gd (V′, E′) (8) If (P == NULL), then (9) Goto exit (10) Else (11) For each link(pi, pj) ∈ P in Gd (V′, E′) (12) If link(pi, pj) ∈ P and pi ∈ {zi} and pj ∈ {, } (13) SE(pj, lt) = SE(pj, lt) − (EZi(pj) + EF(pj)) (14) (pi, pj) = (pi, pj) − EZi(pj) (15) (pj, pi) = (pj, pi) + EZi(pj) (16) Elseif link(pi, pj) ∈ P and pi ∈ {, }and pj ∈ {, } (17) SE(pj, lt) = SE(pj, lt) − (ERi(pj) + EF(pj)) (18) (pi, pj) = (pi, pj) − (ERi(pj) + EF(pj)) (19) (pj, pi) = (pj, pi) + (ERi(pj) + EF(pj)) (20) Elseif link(pi, pj) ∈ P and pi ∈ Sr and pj ∈ {zj} (21) E(pj, lt) = SE(pj, lt) − (EZi(pj)) (22) (pi, pj) = (pi, pj) − EZi(pj) (23) (pj, pi) = (pj, pi) + EZi(pj) (24) End if (25) End for (26) End if (27) Num_Feasible_path = Num_Feasible_path + 1 (28) For each target node zi and zi ∈ P (29) FM(zi) = FM(zi) + 1 (30) End for (31) MZ(lt) = MZ(lt) ∪ P (32) End for (33) Resetting the link weight, if each link(qi, qj) ∈ Gd (V′, E′) If (qi ∈ Sr and qj ∈ {zj}) or (qi ∈ {zi}and pj ∈ {, }) (qi, qj) = EZj(si) Else (qi, qj) = min{SE(qi, lt), SE(qj, lt)} End if (34) Until Num_Feasible_path < m

Article of the Year Award: Outstanding research contributions of 2020, as selected by our Chief Editors. Read the winning articles.