## 4 Proposed 3D-UWSN Design
### Clustering
Along with \(N_{d}\) and \(N_{L}\), the sensor's closeness centrality \(N_{cc}\) for the \(L_{1}\) sensor is determined as:  
\[N_{cc}=\left[\frac{\sum_{1}^{l}d\left(s_{i},s_{j}\right)}{\left(s_{l}-1\right) }\right]^{-1} \tag{7}\]  
The distance between sensors is represented as \(d\left(s_{i},s_{j}\right)\); this closeness centrality defines the closeness of the particular sensor node to their neighboring nodes. The hyenas are the sensor nodes whose individual fitness is estimated, and their position is updated accordingly. The fitness for level-1 sensor nodes is given as:  
\[F(L_{1})=\left\{f_{1},\,f_{2},\ldots f_{l}\right\} \tag{8}\]  
\[f_{1}=\left(N_{d(1)},\,N_{L(1)},N_{cc(1)}\right) \tag{9}\]  
The fitness-based determination for each sensor is significant for selecting the best one within the search space. A node with higher stability, i.e., longer lifetime and higher connectivity with neighboring nodes, is the major criterion for selecting the best CH. The MO-SHO optimization pseudo code for selecting CHs in \(L_{1}\) is depicted. Similarly, the CHs are selected for the sensors in \(L_{2}\). The selected CHs are responsible for collecting the sensed data and assigning scheduling slots. After the election of the CH, it adds the members which are present to its coverage, and it executes member-balanced scheduling (Algorithm 2). In scheduling sleep and wakeup times, slots are assigned for equal halves of the sensors in the cluster. During wakeup mode, the sensor nodes perform sensing as well as data transmission, whereas, in sleep mode, they never perform any process. The nodes are assigned to sleep mode based on their energy and the number of hops with the CH. The nodes in sleep mode are enabled to mitigate the consumption of energy. When \(C_{1}\) is a cluster that has a \(k\) number of cluster members, \(\frac{k}{2}\) sensors are in sleep mode, and the remaining are in awake mode. The energy and number of hops for each member are determined, since they are the most significant constraints that are essential for allotting sleep slots for the sensors. ```
Input: Number of Hyenas as Sensors Output: Best Hyena as CH 1. begin 2. initialize \(L_{1}=\{s_{1},s_{2},s_{3},\ldots,s_{l}\}\), /* \(l=1,2,\ldots i\)*/ 3. for (\(i=1;i\leq i;i++\)) do 4. initialize parameters \(\overrightarrow{C_{1}}\), \(\overrightarrow{C_{2}}\), \(N_{H}\), \(H\) /*start optimization*/ 5. estimate fitness for each \(i\) /*using Equations (5)-(7)*/ 6. find best \(i\) /*using multiple objective*/ 7. while (\(I<I_{Max}\)) do /*\(l\) is the total iterations*/ for \(i\) update position /*using Equation (4)*/ end for 8. update parameters \(\overrightarrow{C_{1}}\), \(\overrightarrow{C_{2}}\), \(N_{H}\), \(H\) 9. if (\(i\) goes beyond search space)  Compute fitness for each \(i\) Update best solution and \(\overrightarrow{G_{H}}\) \(I=I+1\) End while 10. return best hyena /*selected best CH*/ 11. end /*terminate optimization*/
```  
**Algorithm 2** Pseudo Code: Member-Balanced Scheduling  
The pseudo code for the member-balanced scheduling is illustrated in sequential steps. As per this scheduling, not all the sensors are put in sleep mode, since all the nodes in sleep mode fail to gather event data if any occur. To avoid this limitation, member-balanced scheduling is performed, in which the node's energy and hop count are determined and then they are split into two equal categories to act in sleep mode and wakeup mode. The sensor in wakeup mode senses the environment and delivers the data to the CH. The data gathered by the CH are sent to the AUV present on their level.