## Appendix C Description of the Variant of MOEA/D Used in Solving Problem 1  
[PERSON] and [PERSON] in [59] proposed the decomposition algorithm MOEA/D to solve multi-objective optimization problems. The strategy decomposes a multi-objective problem into several scalar functions, which are subject to simultaneous optimization. Algorithm A2 depicts the pseudocode of a variant of MOEA/D, adapted to solving Problem 1 in the frame of project portfolio optimization. The methods--initialization and repair and improvement operator--make use of interval arithmetic to handle the ill-determination and imprecision that is present in parameters' values of preference models and constraints. The general idea behind the approach followed in the experiment used in this manuscript is better detailed in the remaining paragraphs of Appendix C.  
```
Input:\(N\): number of scalar functions, \(M\): number of objectives, Vector: uniformly distributed set of vectors \(T=N/10\): size of neighborhood of weight vectors. Output:\(EP\): approximatio of Pareto frontier. \(01\): (\(x_{2}\),\(FV\),\(B\)(i)) \(\leftarrow\) Initializacion() \(02\): For\(i=1\) to \(N\)do \((x_{k}\),\(x_{i})\) \(\leftarrow\) RandomSelection(\(B\)(i),\(T\)) \(y\) \(\leftarrow\) OnePointCrossover(\(x_{k}\),\(x_{i}\)) \(y^{\prime}\) \(\leftarrow\) FlipMutation(\(y\)) \(y^{\prime}\) \(\leftarrow\) RepairAndImprovementOperator(\(y^{\prime}\)) \(//z\) for each\(j=1\),..., \(m\), if\(z_{j}\)\(<\)\(f_{j}\)(\(y^{\prime}\)) then set \(z_{j}\)\(=\)\(f_{j}\)(\(y\)). \(//\) for each\(j\)\(\in\) B(i), if\(\text{g}^{\text{g}^{\text{g}}}\) (\(y^{\prime}\)\(|\)\(V_{j,2}\)) set \(x_{j}\)\(=\)\(y^{\prime}\) and \(\text{FV}_{j}\) = \(\text{FV}_{j}\) \(//\) Remove from EP all the vectors dominated by \(F\)(\(y^{\prime}\)), and add \(F\)(\(y^{\prime}\)) to EP if no vectors in EP dominate \(F\)(\(y^{\prime}\)) \(10\): Stopping Criteria: if maxEvaluations is reach, Otherwise, go to step 2. ```  
**Algorithm A2. Variant of MOEA/D**  
The algorithm has as parameter inputs \(N\), \(M\), \(Vector=\{V_{1}\), \(V_{2}\),..., \(V_{N}\}\), and \(T\). These parameters represent, respectively, the number of scalar functions or sub-problems in which the MOP has been divided, the number of objectives, a uniformly distributed set of size \(N\) containing weight vectors with two elements each (the weights were \(V_{i}=\left(\frac{i}{N},\frac{N-i}{N}\right)\), for each \(V_{i}\in Vector\)), and the size of the neighborhood of weight vectors. In addition, MOEA/D gives as output an approximation of the Pareto frontier (\(EP\)) formed by non-dominated solutions found during the optimization process. For this purpose, the algorithm works in two phases. The first phase is the initialization phase (indicated in Line 0 of the Algorithm A2). Here the algorithm initializes properly the data structures required for the construction of the final set of solutions. These structures are: (1) the set \(EP\), which will become the Pareto frontier approximation, and which initially is empty; (2) the neighborhood sets \(B\)(i) of each vector \(V_{i}\) that contain the \(T\) closes weight vectors to \(V_{i}\) by Euclidean distance; (3) the initial set of solutions \(X=\{x_{1}\), \(x_{2}\),..., \(x_{N}\}\) where each solution \(x_{j}\), \(1\leq j\leq Number\) of _group members_, corresponds to the \(j\)-th DM best compromise in the decision variable space, and the remaining ones are randomly generated; (4) the set of fitness values \(FV=\{FV_{1}\), \(FV_{2}\),..., \(FV_{N}\}\), where each \(FV_{i}\) is composed by the \(M\) objective values of each solution \(x_{j}\); and 5) the set \(z=\{z_{1}\),..., \(z_{m}\}\) formed by values \(z_{j}\) corresponding to the best objective value among all the solutions built during the initialization process. The second phase is an update process based on evolution. In this process, for each solution in the population, two solutions of the population are randomly selected andused to generate a new solution by applying genetic operators.