## 3 Materials and Methods  
### Problem Formalization  
Generally, a network topology can be represented as a directed graph \(G(V,\ E)\), where \(V\) represents all nodes in the network and \(E\) represents all of the connections between the nodes. \(n=\left|V\right|\) is the number of nodes and \(m=\left|E\right|\) is the number of edges in the network. Each connection \(e_{(i,j)}\in E\) has associated properties, such as \(\lambda_{e}\), the available bandwidth, \(\mu_{e}\), the delay, and \(\rho_{e}\), the packet loss. The status and measurements of the network are updated when a routing request is made, in order to obtain the better accuracy of the available resources and to choose a path that satisfies the QoS parameters [29,30].  
The path search problem must solve a path \(P\) from a source node \(s\) to a destination node \(d\) that satisfies the values of different network parameters. We define the following function for a path \(P\):  
Hops path computes the number of links between \(s\) and \(d\) node. For this case, the cost of each link is assigned to \(1\).  
\[h(P)=\sum_{u,\rho\in P}e \tag{1}\]  
The bandwidth path is the minimum available bandwidth between \(s\) to \(d\) node, and the cost metric of each link is set to be inversely proportional to the bandwidth capacity of that link.  
\[\lambda(P)=min_{\forall e\in P}\bigg{\{}\ \frac{1}{\lambda_{e}}\bigg{\}} \tag{2}\]  
The delay path is the total path delay.  
\[\mu(P)=\sum_{e\in P}e_{\mu} \tag{3}\]  
The packet loss path is the percentage of packets lost in comparison with the number of packages sent (0 means no packet loss).  
\[\rho(P)=1-\prod_{e\in P}\bigl{(}1-e_{\rho}\bigr{)} \tag{4}\]  
The delay function is additive, while the bandwidth function is concave, and the packet loss function is multiplicative but can be converted to an additive function by taking the logarithm of the ratio; with this parameter, we can provide network QoS.  
Table 2 shows the network parameters described as variables.  
\begin{table}
\begin{tabular}{l l} \hline \hline
**Variable** & **Description** \\ \hline \(G\) _(V,E)_ & Represents communication network topology. \\ \hline \(V\) & Sets all nodes in the network. \\ \hline \(E\) & Sets all links between nodes. \\ \hline \(n=\left|V\right|\) & Number of nodes. \\ \hline \(m=\left|E\right|\) & Number of edges in the network. \\ \hline \(\lambda_{e}\) & The available bandwidth on a link. \\ \hline \(\mu_{e}\) & The delay on a link. \\ \hline \(\rho_{e}\) & The packet loss on a link. \\ \hline \(s\) & Source node. \\ \hline \(d\) & Destination node. \\ \hline \(P\) & Path from a source node to a destination node. \\ \hline \(h(P)\) & Computes the number of links for a path. \\ \hline \(\lambda(P)\) & Computes the minimum available bandwidth link on a path. \\ \hline \(\mu(P)\) & Computes the total path delay. \\ \hline \(\rho(P)\) & Computes the percentage of packets lost concerning the number of packages sent. \\ \hline \hline \end{tabular}
\end{table}
Table 2: Description of the network parameters used.  
To evaluate path performance, we consider throughput [31] (Equation (5)) as a performance measure that refers to the successful delivery of data \(E_{s,t}\) over a communication channel; in our case, a path where \(E_{s,t}\) is the received data \(d_{rx}\) from source \(s_{tx}\) excluding retransmitted data \(d_{data}\) during the entire observation time \(T_{t}\).  
\[t_{h}=\frac{E_{s,t}}{T_{t}} \tag{5}\]  
where  
\[E_{s,t}=\frac{s_{tx}-(d_{rx}-r_{data})}{s_{tx}} \tag{6}\]