# Qom--A New Hydroologic Prediction Model Enhanced with Multi-Objective Optimization
## 2 Background on Multi-Objective Optimization with Metaheuristics
: _The_ **Pareto Front**\(\mathcal{PF}^{*}\) is defined by:_  
\[\mathcal{PF}^{*}=\{f(x)\in\mathbb{R}^{k}|x\in\mathcal{P}^{*}.\}\]The solutions in the Pareto front are usually referred to as _non inferior_, _acceptable_ or _efficient_. The Pareto front is also known in some contexts as _efficient frontier_. From these definitions, we can conclude that the main goal of multi-objective optimization is to find the Pareto set of a given problem so that an expert in the problem domain can choose one or more solutions from the corresponding Pareto front according to some preferences. However, when dealing with real-world problems finding the Pareto front can be unpractical for a number of reasons [21] affecting the objective functions, such as non-linear linearity, NP-hard complexity, epistasis, and so forth. Furthermore, a Pareto front can contain a very large (or even an infinite) number of solutions. So, in practice, the goal usually is to find a high quality approximation of the true Pareto front containing a limited number of solutions (e.g., 50, 100, 500). The quality of these approximations is measured in terms of two properties--_convergence_, which implies that they must be as close as possible to the Pareto front, and _diversity_, which means they are uniformly spread. The concept of Pareto front approximation is illustrated in Figure 1, which includes the solutions found by an optimization algorithm when solving a multi-objective problem having two objective functions (named f1 and f2 in the figure). They are trade-off solutions in the sense that neither is better than the other in the two objectives. The true Pareto front in the example, depicted as a continuous line, has a convex shape and it can be observed that some of the obtained solutions do not completely overlap with the line (i.e., they have not fully converged to the Pareto front, so they are not optimal solutions) and the set of solutions covers all the Pareto front although it does not have a perfect spread out. The most popular techniques to deal with multi-objective problems are metaheuristics [22], a family of non-exact, stochastic optimization algorithms which do not guarantee to find the optimum of a problem, but do usually provide high quality solutions (near optimal and sometimes optimal) within a reasonable amount of time and resources. There are different ways of classifying metaheuristics, one of which distinguishes between bioinspired (or nature-inspired) and non-bioinspired algorithms [6]. The first category is by far the most well known and used, including techniques such as evolutionary algorithms, particle swarm optimization, or ant colony optimization. The reference algorithm in multi-objective optimization, NSGA-II [7], is an evolutionary algorithm. A metaheuristic typically follows an iterative process in which a set of tentative solutions \(P\) is manipulated somehow by a number of variation operators, aiming at progressively generating better solutions, as shown in the pseudo-code in Algorithm 1. In the case of evolutionary algorithms,  
Figure 1: Example of Pareto front approximation of a multi-objective optimization problem. the solutions and the set \(P\) are named, respectively, _individuals_ and _population_, and the variation operators are _crossover_ and _mutation_. The new produced solutions are evaluated to compute their corresponding objective function values and they are used to update the population. The main loop of the algorithm is executed until a stopping condition is met. ```
1:Set control parameters
2:\(P(0)\leftarrow\) GenerateInitialSolutions()
3:\(t\gets 0\)
4:Evaluate(\(P(0)\))
5:while not StoppingCriterion() do
6:\(Q(t)\leftarrow\) Variation(\(P(t)\))
7:Evaluate(\(Q(t)\))
8:\(P(t+1)\leftarrow\) Update(\(P(t)\), \(S(t)\))
9:\(t\gets t+1\)
10:endwhile
11:Return \(P(N)\)
```  
**Algorithm 1** Template of a metaheuristic.