## 3 Materials and Methods
### Multi-Constrained Optimal Path (MCOP)  
The problem in this work considers three conflicting objectives that must be optimized simultaneously. The general formula of a MOP (multi-objective problem) [34] is as follows:  
Find a vector \(X^{*}=\left[x_{1}^{*},\ x_{2}^{*},\ldots,\ x_{n}^{*}\right]^{T}\), where m inequality constraints \(g_{i}(x)\geq 0\), \(i=1,\ 2,\ \ldots,\ m\), \(p\) equation constraints \(h_{i}(x)=0,i=1,\ 2,\ \ldots,\ p\), and minimizing the function \(f(x)=\left[f_{1}(x),f_{2}(x),\ldots f_{k}(x)\right]^{T}\) are satisfied, and where \(x=\left[x_{1},x_{2},\ldots x_{n}\right]^{T}\) is the decision variable vector.  
The solution for an MOP may not be clear-cut because the objectives often conflict and cannot be met simultaneously, so no solution minimizes all objectives. The key is to construct the evaluation function for the objective problem. Two main approaches are usually used to formulate these functions. The first is to combine all of the objectives into a single objective using a feasible method or to select a particular objective and consider the other objectives as constraints. The second is to determine a representative set for all non-dominated solutions, called the Pareto front. For this case study, we consider approaching the problem using both approaches. We use the weighted sum for the first method and, for the second, the MOCell genetic algorithm. The forms are described in more detail below:  
1. The weighted sum method [35] is the sum of the values corresponding to the different objectives, each multiplied by a weighted coefficient. This method provides a weight for the various network parameters that can be used as a cost for path computation. We use it as a fitness function for our proposed routing method. \[w_{B,D,PL}=min_{x\in X}\sum_{i=1}^{k}w_{i}f_{i}(x)=min_{e\in p}\sum_{(u,x)ep}w _{k}(u,v)\] (13)
2. The method based on Pareto dominance determines all non-dominated solutions that satisfy the conditions defined for the problem \(S\) (feasible region). Any point \(x\in S\) is a feasible solution. The feasible region is defined as follows [36]: Given 3 vectors \(u=(u_{i},\ \ldots,u_{k})\), \(v=(v_{i},\ \ldots,v_{k})\), and \(w=(w,\ \ldots,w_{k})\), we say that \(u\) dominates \(v\) and \(v\) dominates \(w\) (denoted by \(u<v\ and\ u<w\)), if and only if \(u\) is less than \(v\) and \(w\).  
Each vector in the Pareto set has some correspondence in objective function space, obtaining the so-called Pareto front. Formally:  
Pareto optimality: A solution \(X^{*}\epsilon\ S\) is Pareto optimal if and only if it is non-dominated by any other solution \(X^{\prime}\epsilon\ S\).  
Pareto optimal set: For a given MOP, \(f(x)\) is the Pareto optimal set, and \(p_{s}\) is defined as follows:  
\[p_{S}=\left\{x\ \in\ S\big{|}\
exists x^{\prime}\ \in\ S\ f\left(x^{\prime} \right)\ \prec\ f\left(x\right)\right\} \tag{14}\]  
Pareto front: For a given MOP, \(f(x)\), and Pareto optimal set, \(p_{S}\), the Pareto front, \(p_{F}\), is defined as follows:  
\[p_{F}=\ \left\{f(x)\ \epsilon\mathbb{R}^{\ k}\ \middle|\ x\ \in\ p^{*}\right\} \tag{15}\]MOPs can have a Pareto front composed of a possibly infinite number of solutions. The algorithms that use stochastic techniques, such as metaheuristics, aim to find an approximation \(p_{F}\), which represents the actual Pareto front.  
To solve our problem with our proposed method, we need to find the path with the minimum end-to-end delay (\(D\)), packet loss (\(PL\)), and minimum cost of available bandwidth (\(B\)), as represented in Equation (16). The values of the functions are normalized to the minimum cost of delay and bandwidth for the QoS of the application.  
\[Min_{e\in p}\left(B,D,PL\right) \tag{16}\]