## 1 Introduction  
Optimization is a fundamental concept in various fields, including mathematics, computer science, engineering, economics, and operations research. It involves finding the best possible solution to a problem within a given set of constraints. The goal of optimization is to maximize or minimize an objective function, which represents the measure of performance or utility [1].  
In optimization, the objective is to find the optimal solution that achieves the highest possible value for a maximization problem or the lowest possible value for a minimization problem. The solution can be a single point in the search space or a set of values for multiple variables or parameters [2]. The process of optimization typically involves defining the problem, specifying the objective function and constraints, selecting an appropriate optimization algorithm or method, and iteratively refining the solution to converge toward the optimal outcome [3]. The optimization algorithm explores the search space, evaluating different candidate solutions and making adjustments based on specific rules or principles to improve the objective function value [4]. Typically, a constrained optimization problem can be mathematically formulated as follows: Minimize (or maximize) the objective function \(f(\mathbf{x})\) subject to a set of constraints \(g_{i}(\mathbf{x})\leq 0\) and \(h_{j}(\mathbf{x})=0\), where \(\mathbf{x}\) is the vector of decision variables with a dimension of \(D\). Mathematically, it can be written as [2]:  
Minimize:  
\[f(\mathbf{x}) \tag{1}\]Subject to:  
\[g_{i}(\mathbf{x})\leq 0\,\ i\in\{1,\ldots,M\} \tag{2}\]  
\[h_{j}(\mathbf{x})=0\,\ j\in\{1,\ldots,N\} \tag{3}\]  
\[\mathbf{x}=[x^{(1)},\ldots,x^{(D)}]\in[x^{(1)}_{\text{min}^{\prime}},x^{(1)}_{ \text{max}}]\times\ldots\times[x^{(D)}_{\text{min}^{\prime}},x^{(D)}_{\text{ max}}] \tag{4}\]  
Here, \(f(\mathbf{x})\) represents the objective function that needs to be minimized or maximized. The decision variables are represented by the vector \(\mathbf{x}\), which can be a single variable or a set of variables with a dimension of \(D\). The constraints are defined by the functions \(g_{i}(\mathbf{x})\) and \(h_{j}(\mathbf{x})\). The inequality constraints \(g_{i}(\mathbf{x})\leq 0\) represent the conditions that must be satisfied, and the equality constraints \(h_{j}(\mathbf{x})=0\) represent the equality relationships in the problem. The index \(i\) ranges from \(1\) to \(M\) for inequality constraints, and the index \(j\) ranges from \(1\) to \(N\) for equality constraints. If the problem does not have inequality and equality constraints, it is called an unconstrained optimization problem [5]. The solution to the constrained optimization problem is a vector \(\mathbf{x}^{*}\) that optimizes the objective function \(f(\mathbf{x})\) while satisfying all the constraints. The goal is to find the values of the decision variables \(\mathbf{x}^{*}\) that minimize or maximize the objective function while satisfying the given constraints.  
Various optimization techniques and algorithms can be employed to solve constrained optimization problems, such as gradient-based methods, linear programming, nonlinear programming, and evolutionary algorithms, depending on the problem's characteristics and complexity. Optimization algorithms can be classified into several categories based on their approach and characteristics [6]. Four common categories are exact methods, approximation methods, metaheuristic methods, and derivative-based methods.