| Algorithm 1 Pseudocode of the algorithm. |
| Start |
| Require: coordinator node starts; |
| Per each node do: |
| Set Hierarchy = 0; |
| Set allowed_value; |
| Set day = 1; |
| while time <= end_time do: |
| Set avg_met_vector[] <-- average met per day; |
| Set std_dev_met <-- standard deviation met; |
| if day > 3 |
| for i = 0; i < length(avg_ind_vector[]); i++ |
| avg_met <-- average metric value; |
| if avg_met >= allowed_value |
| Hierarchy++; |
| end if |
| end for |
| end if |
| day++; |
| end while |
| end do |
| Nodes with same Hierarchy form a cluster; |
| per each ID_cluster do: |
| if ID_cluster_i > ID_cluster_j |
| Set nodes from ID_cluster_i in active mode; |
| Set nodes from ID_cluster_i with reactive |
| routing protocol; |
| Set nodes from ID_cluster_j in sleeping mode; |
| Set nodes from ID_cluster_i with proactive |
| routing protocol; |
| end if |
| end do |
| end |