## 3 State-of-the-Art for WirelessHART Routing Schemes
### The Re-Add Routing Algorithm  
Re-add is a routing algorithm proposed by [64] that applies a weighted priority function together with an uplink graph construction algorithm to determine the routes for a WirelessHART network. Starting from the original topology, the algorithm assigns degrees (minimum hop count to the gateway) to each node and deletes the links between nodes with the same degree, just as in the JRMNL. However, in order to increase the reliability of the nodes with only one connection to higher degree parents, the algorithm re-adds a link to a node with the same degree. The re-added link must be to the nearest node, in order to ensure the least transmission energy. This process enhances the reliability of the network, because it provides each node with two possible paths (if possible) to forward their packets. The process is illustrated by Figure 9.  
Figure 9: Original topology of the re-added graph.  
Furthermore, the algorithm uses Equation (4) to set the priority of the link between node \(i\) and node \(j\) (\(P_{ij}\)). The equation uses the following criteria: link quality (\(Q_{ij}\)), residual energy on the node and the difference between the degrees of node \(i\) and node \(j\) (_i.e._, \(D_{i}-D_{j}\)).  
\[P_{ij}=x_{1}Q_{ij}+x_{2}\frac{E_{i}+E_{j}-P_{d}(i,j)}{2E_{0}}+x_{3}\frac{D_{i}- D_{j}}{D_{i}} \tag{4}\]  
Note that \(P_{d}(i,j)\) is the same energy consumption for transmission defined by Equation (3) and used by the JRMNL algorithm. Here, \(Q\) is the ratio of the number of packets received to the number of packets transmitted. However, in order to reduce the cost of the control message for link evaluation, [65] proposed an estimator, a window mean with exponentially-weighted moving average (WMEWMA) and the link quality is calculated by Equation (5).  
\[\widehat{Q}_{k+1}=m\widehat{Q}_{k}+(1-m)\frac{\textit{received}}{\textit{ received}+\textit{failed}} \tag{5}\]  
\(\widehat{Q}_{k+1}\) and \(\widehat{Q}_{k}\) denote the quality of the link at moments \(k\) and \(k+1\). The values _received_ and _failed_ represent the number of packets received and lost by a node in a time window \(t\). Furthermore, the algorithm uses \(m\in[0,1]\) to control the history of the estimator.  
Finally, \(x_{1}\), \(x_{2}\) and \(x_{3}\) are weights that state the relevance of each criteria (quality, energy and degree, respectively). The increase in any of these values represents an increase in the priority of the link. The algorithm uses the analytic hierarchy process as defined in [66] to determine the values of the weights. The process of defining the weights starts from a user-defined matrix that makes a pairwise comparison of the optimization criteria, determining whether each one of them is more, equal or less important than each of the others. Then, a judgment matrix is calculated (see [64] for details), and the weights are calculated by a consistency check.  
The author states that simulations were made for validation purposes, comparing it to the Han routing algorithm [52] and the JRMNL [62]. However, the paper only gives the simulation parameters and details for the experiment: no information about the simulator is given. The results suggest that re-add outperforms the other algorithms in terms of reliability and network lifetime. See [64] for further details.