## 4 Gs-Eera
### Algorithm Procedure
Overall, under conditions of the energy harvesting rate falling down drastically, with an increase in the simulation time, energy consumption, end-to-end delay, energy variance and hop count, the packet delivery ratio decreases. The reasons have been explained in Section 5.3.3. We can notice that the decrease in energy harvesting rate has relatively less impact on our algorithm (GS-EERA) than the other three algorithms. That is because the use of the reception state adjustment mechanism can ease the congestion issue and save energy. Therefore, our algorithm has good network stability. Compared with the other three routing algorithms, GS-EERA still achieves the optimum performance in energy consumption, end-to-end delay, packet delivery ratio and hop count and acceptable performance in energy variance. Take the average hop count as an example, GS-EERA is 28.57% less than EHPRP, 42.12% less than SAGREH and 68.57% less than EHR. EHR achieves good performance in energy consumption, energy variance and end-to-end delay but performs poorly in packet delivery ratio and average hop count. EHPRP achieves better performance in energy variance and average hop count, while achieving a worse energy consumption and packet delivery ratio. SAGREH achieves acceptable performance in the energy consumption and packet delivery ratio (the reasons have been explained in Section 5.3.1). #### 5.3.7 The Network Recovery Time

In this simulation group, we set 50 and 75% of the nodes' initial energy as 0, and the others are 12 J. The photovoltaic energy harvesting technology is used, and the time set from 0 to 6 h (Figure 3). When 80% of nodes can receive packets, we view the network as recovery. Figure 16a-c shows the performance of network recovery time when 50% of the nodes' initial energy is 0. In Figure 16a, we set the data buffer capacity \(B_{max}=40\) packets, packets generation rate \(PGR=2\) packets/s and the number of nodes n varies in 100-300. Figure 15: The performance change with time. (**a**) average energy consumption, (**b**) energy variance, (**c**) average end-to-end delay, (**d**) packet delivery ratio and (**e**) average hop count. Figure 16a shows the impact of \(n\) on network recovery time. Overall, with the increases in \(n\), the network recovery time increases first, then decreases. The reason is that when \(n\) increases, the energy consumption of the network reduces (the reasons have been explained in Section 5.3.1) and there are fewer alive nodes entering sleep mode; hence, the network recovery time decreases. However, if \(n\) is too less, there are more isolated nodes and fewer packets are transmitted in the network, resulting in less energy consumption. Therefore, we can see from Figure 16a that the recovery time increases when \(n\) is less than 200. Our algorithm, GS-EERA, achieves the optimal performance in the network recovery time. That is because, compared with the other three algorithms, GS-EERA comprehensively considers the buffer constrain and routing hole problems. Through leveraging a reception state adjustment mechanism to ease the congestion problem and adopting the void recovery and void avoidance method to deal with the routing hole problem, it can reduce the energy consumption. Therefore, the network recovery time of GS-EERA is shorter than the others three algorithms. In Figure 16b, we set the number of nodes \(n=300\), packets generation rate \(PGR=2\) packets/s and the data buffer capacity \(B_{max}\) varies in 20-60 packets. Figure 16b shows the impact of \(B_{max}\) on network recovery time. Overall, with the increases in \(B_{max}\), the network recovery time decreases. When the \(B_{max}\) is small, congestion is more likely to occur, resulting in more energy-wasting and longer network recovery time. As \(B_{max}\) increases, the congestion problem can be alleviated, and energy consumption can be reduced. Hence, the network recovery time decreases.