# A Cluster-Based Dual-Adaptive Topology Control Approach in Wireless Sensor Networks
## 3 The Improved Clustering Scheme
### Cluster Formation
#### 3.2.3 Selecting SCHs
**Send the \"SCH acceptance message\" to the neighbor \(ID_{mch}\)
25. **Set the timer \(t_{\theta}\) as \(\theta\)**
26. **Initialize** \(FLAG\) **as** _true_
27. **while** the timer \(t_{\theta}\) does not expire **do**
28. **if** receive the \"SCH confirmation message\" from a MCH that selects _itself_ (e.g., \(v\)) as
29. **SCH then** \(FLAG=\) _false_
30. **end while**
31. **if** (\(FLAG==true\)) **then** move to the next step (determining cluster members and selecting FCHs)
32. **end if**

**Algorithm 3**SCH Selection (\(SCHS\))

If an inviting MCH (e.g., \(u\)) is not accepted by the invited node (e.g., \(v\)), it can invite other potential SCHs (see lines 10-13). Upon receiving the \"SCH acceptance message\", the MCH whose invitation was accepted confirms this association via the \"SCH confirmation message\" (see lines 14-16). The purpose of this message is to inform other neighbors of this MCH that they should not expect \"SCH invitation messages\" from that MCH, so they can move to the next step (determining cluster members and selecting FCHs). The \"SCH confirmation message\" is sent at the maximum transmission power of this MCH to achieve inter-cluster network connectivity. As mentioned in the CMIMO scheme, the \"SCH confirmation message\" plays a significant role in MCH-neighborhood discovery, which includes the following fields: MCH ID, SCH ID, and a list of MCHs from which the MCH has already received SCH confirmation messages. The other steps of this discovery approach are similar to those of the neighborhood discovery explained in the Algorithm 1. A node (e.g., _v_) that is neither an MCH nor an SCH autonomously decides to proceed to the next step (determining cluster members and selecting FCHs) once it has heard \"SCH confirmation messages\" from all of its MCH neighbors or if no such messages are heard after a duration of time \(\theta\) (see lines 26-31). #### 3.2.4 Determining Cluster Members and Selecting FCHs

The final step in the cluster formation phase is to have non-CH nodes decide on which cluster to join and then select a cluster member to act as FCH. As mentioned in the CMIMO scheme, since every non-CH node is a neighbor of one MCH (or more MCHs), such a node attempts to associate itself with its closest MCH by sending a \"membership request message\" that may be replied by the corresponding MCH through sending a \"membership list message\". Unlike the CMIMO scheme, where the MCH assigns the time slots used in the communications between the cluster members and it as well as those between it and the SCH, our Time Division Multiple Access (TDMA) schedule includes the assignment of time slots for the communications between the cluster members and the FCH as well as those between the FCH and MCH/SCH during the intra-cluster communications phase, where the assignment of time slots is also done by the MCH. In addition, the other difference between our scheme and the CMIMO scheme in this step is that we need to pick a cluster member to act as the FCH. Therefore, the selection criterion for FCHs is an essential prerequisite, which is modeled as follows:

\[FM_{k,j,i}=\frac{e_{k}}{e_{ref}}\cdot\frac{d_{ref}}{\sigma_{k,j,i}} \tag{9}\]

In Equation (9), \(FM_{k,j,i}\) denotes node \(k\)'s FCH eligibility metric measured by the MCH \(i\) whose SCH is node \(j\); \(e_{k}\) is node \(k\)'s RBL; \(\sigma_{k,j,i}\) represents the mean square deviation among \(d_{k,i}\) (i.e., the distance between node \(k\) and \(i\)), \(d_{k,j}\) (i.e., the distance between node \(k\) and \(j\)), and \(d_{i,j}\) (i.e, the distance between node \(i\) and \(j\)). The purpose that \(\sigma_{k,j,i}\) is considered in FCH eligibility metric is to reduce energy imbalance and energy expended for data transmission between the MCH/SCH and the corresponding FCH.