{'fraction_non_alphanumeric': 0.01877133105802048, 'fraction_numerical': 0.0011376564277588168, 'mean_word_length': 5.563432835820896, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An adaptive sensor sleeping solution based on sleeping multipath routing and duty-cycled MAC protocols

Various applications of wireless sensor networks require multihop data transmission over error-prone wireless links, hence multipath routing can be used to meet the application's reliability requirement. On the other hand, wireless sensors are usually battery powered, and thus it is very important to save energy in order to prolong the network lifetime. In this article, we propose (1) Sleeping Multipath Routing, which can trade off reliability and network lifetime by dynamically activating an optimal number of paths to support the application's reliability requirement and putting the rest of the sensors to sleep, and (2) an adaptive sensor sleeping solution, which includes Sleeping Multipath Routing, a duty-cycled MAC protocol, and cross-layer coordination to further prolong the network lifetime by putting sensors to sleep at both the routing and the MAC layers. Our proposed Sleeping Multipath Routing and adaptive sensor sleeping solution can be implemented on any multipath routing protocol that discovers multiple disjoint paths between two nodes, and any duty-cycled MAC protocol that has fixed cycle length. We show an example of implementing our adaptive sensor sleeping solution using Directed Diffusion and S-MAC. Simulation results show that our proposed adaptive sensor sleeping solution outperforms single-layer sensor sleeping with a longer network lifetime with required reliability support. Moreover, our proposed adaptive sensor sleeping solution can significantly prolong the network lifetime when the application's reliability requirement varies over time, or when the number of alive nodes in the network changes over time.