## 4 Hierarchical Cooperative MIMO Clustering
### Architecture  
The proposed hierarchical cooperative clustering algorithm selects nodes to forward data by employing MIMO capabilities. We explain the basic architecture with the help of Figure 1. In the figure, basic network components and node setting have following assumptions and meanings:  
* **Node Spread:** A number of nodes are deployed on the grid shown as hierarchical level zero.
* **Cluster Formation:** At level zero, nodes are divided to form small clusters (cluster formation explained in Section 4.2). Each cluster is led by a node called the clusterhead. A few clusters have cooperative nodes as well.
* **Overlay Formation:** Once network is divided into clusters, clustering is re-triggered to form an overlay network on top of it. At level one of the hierarchy, two of the mini clusters act as routing clusters (RC). Routing clusters form a backbone for forwarding data to the CCS.
* **Cooperative MIMO:** A CH is responsible for aggregating data from nodes in the cluster. In the case when CH cannot send information directly to the CCS (energy/distance/link quality limitation), it forwards the data to cooperative node. This is to establish a set of transmitters for cooperative MIMO communication.
* **Intra-Cluster SISO Communication:** Cooperative communication is energy efficient for a certain threshold distance. Sensor nodes within a cluster are in close vicinity with clusterhead. Therefore, sensor nodes send data to clusterhead through SISO communication.
* **Clustering Parameters:** Clustering parameters include geographic location of nodes, neighbors list, residual energies, link quality (LQ) and boundary constraints on each of these parameters. LQ is incorporated as the receiver's noise figure (Table 1) and Signal to Noise ratio against a desired bit error rate. The limit on number of clusters is a function of number of nodes in a cluster subject to minimum energy consumption in the cluster (limit on number of clusters is discussed in Section 4.6).  
The data is relayed via cooperative communication to next hierarchical levels. The cardinality of cooperative communication is decided on the basis of transceiver distance. Figure 1 shows an example of a topology of a wireless sensor network with hierarchical cooperative clustering. The clusterhead and the cooperative node which lie at level zero of the hierarchy communicate with the routing clusters which are at level 1 of the network hierarchy.  
Following is the basic clustering pseudocode and associated energy and design considerations.  
Hierarchical Cooperative Clustering: Pseudo Code and Design Considerations  
**Input:** PeriodicTimer.fired()  
Parameters: Noise Model, Transmission range, Clustering Parameters  
**Method:**  
1. Clustering 1. Nodes broadcast HELLO message to one hop neighbors. 2. Nodes exchange neighbor information.
2. Hierarchy Creation 1. Based on clustering parameters nodes decide the CH. 2. The CH decides cooperative node based on minimal energy consumption.
3. Routing Clusterhead Selection 1. CHs from neighboring clusters exchange ROUTE Message 2. CHs select routing clusterheads (RCHs) from the existing set of clusterheads (CHs). 3. CHs and RCHs decide communication mode. 4. CHs periodically update their routing tables.
4. Design Considerations 1. Factors affecting clustering. 2. Factors affecting routing. 3. Factors affecting reclustering.
5. Energy Model Based Cluster Sizing 1. Determine total energy consumed for cluster formation using per bit energy in a cluster, energy for longhaul communication and local circuit energy (explained subsequently). 2. Use first derivative method to find minima and number of clusters satisfying our constraints.  
The pseudocode is elaborated further in subsections below.