## 2 Related Works
### Duty Cycling  
Duty cycling in WSN can be achieved in two different and complementary approaches: topology control and power management. Topology control approaches [28; 29; 30] exploit node redundancy, selecting a minimum subset of sensor nodes to remain active for maintaining connectivity. On the other hand, power management approaches [31; 32] refer to active nodes switching off the radio when there is no network activity, alternating between sleep and awake periods. [PERSON] et al. presented in [10] an energy-efficient medium access control protocol that optimizes the turn-on and -off times of transceiver radios based on slot utilization estimation. The proposed duty cycle approach is shown to consume less energy than existing protocols through mathematical and simulation analyses. Both cluster head and sensing devices save energy by periodically checking the buffer status and turning off radios when the buffer is empty. [PERSON] et al. proposed an opportunistic routing algorithm with dynamic transmission power and duty cycling for energy harvesting in WSNs [11]. It adjusts the transmission power of each node based on predicted available energy and energy utilization in the previous slots. The algorithm also updates relay sets and forwarding paths to reduce delays and retransmissions. The proposed scheme aims to decrease retransmission and delay caused by heterogeneous transmission power/radii of nodes. The study introduces an improved transmission model and a novel information exchange mechanism for dynamic updates. Connect k-neighborhood (CKN) is an algorithm proposed by [PERSON] and [PERSON] [33] to keep at least \(min(k,d)\) nodes awake in a sleep scheduling approach, where \(k\) is the number of connected nodes and \(d\) is the degree of each node. A sleep scheduler selects a subset of nodes to remain awake in a given epoch, the remaining nodes are set to a sleep state. The subset of awake nodes changes from epoch to epoch in order to improve the network lifetime. The proposed algorithm generates a connected graph every epoch, enabling nodes to send and receive packets from each other within the network. Span is a topology control protocol proposed by [PERSON] et al. [28], nodes running Span make local decisions on whether to sleep or stay awake as a coordinator, performing multi-hop routing. To determine if a non-coordinator node should become a coordinator or not, the node uses the following coordinator eligibility rule: using information gathered from local broadcast messages, a non-coordinator node checks if two of its neighbors cannot reach each other either directly or via one or two coordinators; if that is the case, the node should become a coordinator in order to maintain network connectivity. The coordinator withdraw phase follows the same idea, a node checks if it should withdraw as a coordinator if every pair of its neighbors can reach each other either directly or via one or two other coordinators. According to the authors, Span preserves network connectivity and capacity, it also decreases latency, while providing significant energy savings. [PERSON] et al. [29] proposed adaptive self-configuring sensor networks topologies (ASCENT). A node running ASCENT decides whether to become active or continue to sleep based on information about connectivity and packet loss that are measured locally by the node itself. Initially, there are only a few active nodes in the network, the remaining nodes keep listening but not transmitting messages. When the sink experiences significant packet loss from the source, it starts sending help messages to signal passive neighbors to join the network. Upon receiving a help message, the passive node decides if it is going to join the network. As soon as it decides to join, the node signals the existence of a new active neighbor to the other passive nodes and it starts transmitting and receiving packets. This process repeats until the packet loss is reduced.