## 4 Proposed Scheme
### Cluster Head (CH) Declaration Phase  
In the heterogeneous WSNs, the available resources of nodes may not be identical, meaning that the nodes may be different in terms of storage, residual energy and computational capability. Therefore, when a node participates in CH declaration process, it is very important to consider the available resources and those resources must be higher than a certain threshold value. For instance, if a node has residual energy greater than minimum residual energy (\(E_{min}\)), computational capability greater than minimum computational capability (\(C_{min}\)) and storage capacity greater than minimum storage (\(S_{min}\)), the node is eligible to become a CH. Moreover, as the values of resources are measured in different scales, these values need to be normalized to a common scale. To this end, we employ a min-max normalization technique to normalize the available resources values between a specific range (e.g., \([x\,y]\)) and is defined as follows. \[R_{i}\,=\,\,x+\frac{(r_{i}-\,\min(r_{i}))\,\,\times\,\,(y-x)}{max(r_{i})\,-\, \min(r_{i})} \tag{1}\]  
where \(R_{i}\) is the normalized value of a resource, \"\(i\)\", (e.g., residual energy, available storage, computational capability ), \(x\) and \(y\) represents the new range of values (e.g., [0 1]), \(r_{i}\) is the current value of the resource \"\(i\)\", \(max(r_{i})\) and \(min(r_{i})\) is the maximum and minimum values of a resource \"\(i\)\" respectively. After that, the normalized values of resource, \"\(i\)\", are plugged into CH waiting time \"\(T\)\" which is a sort of upper layer back-off time and is defined as follows. \[T\,=\,\frac{1}{\alpha E_{res}+\,\beta C+\gamma S_{av}}\quad\text{where }\alpha+\beta+\gamma=1 \tag{2}\]  
where \(E_{res}\), \(C\), and \(S_{av}\) are the normalized values of residual energy, computational capability, and available storage respectively. \(\alpha\), \(\beta\), and \(\gamma\) are the weights assigned to each factor e.g., residual energy, computational capability, and available storage respectively. It is to be noted that the resource criteria of weights assignment are application specific. Since the waiting time, _\"T\"_, is defined based on residual energy, computational capability, and storage capacity of a node, a node with high resources has a low value of _\"T\"_ compared to the nodes with low resources. At the network initialization stage, nodes (high resources) which are capable to become a CH calculate their waiting time _\"T\"_ by employing Equation (2) and wait until that time is expired. If the waiting node(s) receive a CH-Announcement message from any other node during their waiting period, the node(s) stop its timer and associate with the CH. However, if a node does not receive any CH-Announcement message during its waiting time and the waiting time of the node expires, that means there is no other node in its vicinity to become a CH, the node declares itself as CH and forwards CH-Announcement message to the child nodes. Once the CH node(s) is declared, it performs its duties as CH until the available resources (e.g., residual energy) of CH falls below a certain threshold level. The reason is to avoid frequent re-clustering, since frequent re-clustering may degrade the performance of the network. Therefore, when the available resources of current CH falls below a certain threshold level, at that time re-clustering process triggers. At this stage, the other potential nodes (i.e., high resources nodes) except the current CH participates in the CH declaration process. The detailed mechanism of CH declaration phase is provided in Algorithm 1. ```
1:procedureCH Declaration
2:\(resEn\leftarrow\mathit{residual}\) energy
3:\(avSt\leftarrow\mathit{available}\) storage
4:\(CC\leftarrow\mathit{computation}\) capability
5:\(minEnt\leftarrow\mathit{min.