# Self-Adjustment Energy Efficient Redeployment Protocol for Underwater Sensor Networks
## 2 Literature Review  
The principal task of an UWSN is to ensure coverage of the network area to perform the measurement or monitoring needed by the application. In addition to the coverage, the connectivity is mandatory to deliver all collected data to the sink node [15]. However, the initial UWSN deployment is usually a random deployment that ensures neither coverage nor connectivity. That is why much research has focused on UWSN redeployment, and many redeployment techniques are proposed [16]. These techniques can be classified into three categories based on node mobility: static deployment, depth adjustment deployment, and free mobility deployment. * In static deployment [17; 18; 19], the underwater sensor nodes are manually deployed in prefixed positions calculated to ensure area coverage and network connectivity. Then, these nodes cannot adjust or change their positions. These solutions need knowledge of the monitored area, which is not practical in an underwater environment where the water currents and wind (in the case of 2D ocean surface deployment) change the shape of the topology frequently. * In depth adjustment deployment, the underwater sensor nodes can only move vertically and change their depths by using a tether attached to anchors at the surface of the ocean or via a mechanism described in [20]. The target of these solutions is to reduce the coverage overlaps in the first random deployment and, hence, increase the network area coverage [11; 21; 22; 23]. Free Mobility Deployment  
In recent ye as, much research has exploited the capacity of the underwater sensor nodes to move freely in the underwater environment to propose a deployment protocol for UWSNs. [PERSON] et al., in [10], propose a particle swarm-inspired underwater sensor self-deployment (PSSD) algorithm. The aim of this algorithm is to relocate sensor nodes to efficiently cover the network area. This algorithm simulates the flying behavior of bird flocking or fish schooling to cover the area with a high density of events and make the distribution of sensors (particles) match those events. However, this solution considers only the coverage problem without considering network connectivity or energy conception in the UWSN. This solution is extended in [24] by [PERSON] et al. The authors propose a distributed hybrid fish swarm optimization algorithm (DHFSOA) based on the operation of an artificial fish swarm system to improve the coverage efficacy of the event set and to avoid blind movements of sensor nodes. Simulations show that the DHFSOA, compared with PSSD, can maintain higher event coverage and coverage efficacy of event sets, and reduce the total nodes moving during network deployment. However, these studies do not take into consideration the water currents during the sensor node displacement. In [25], [PERSON] et al. propose a deployment algorithm for a UWSN based on a connected tree. This connected tree is built by the sink node to ensure network connectivity. To reduce the coverage overlaps and increase the coverage rate of the network, the distance between parents and child nodes is then adjusted. In [26], a deployment algorithm based on a building-connected dominating set is proposed. The target of this solution is to ensure connectivity with the sink while maximizing the coverage rate. To achieve this, the connected dominating set is built by the sink node to ensure full connectivity in the network. Then, the sink node optimizes the nodes' deployment by adjusting the nodes' location. The proposed solution is a centralized solution based on broadcast messages, which is costly from an energy and bandwidth point of view. Moreover, this algorithm does not consider the characteristics of the underwater environment, like the water currents that affect the node's displacement and position. In [27], the authors propose a Fully Distributed Deployment Algorithm to construct 3D multi-level k-barrier coverage for a UWSN using available sensor nodes. The target is to ensure the security of the network area and detect any intrusion.