# Multi-Guide Set-Based Particle Swarm Optimization for Multi-Objective Portfolio Optimization
## 4 Multi-Objective Set-Based Portfolio Optimization Algorithm  
This section proposes a multi-objective set-based algorithm for multi-objective portfolio optimization. Elements from MGPSO are incorporated into SBPSO to enable SBPSO to solve multiple objectives simultaneously. The proposed approach, referred to as MGSBPSO, uses multiple swarms, where each swarm optimizes one of the objectives in the asset space. Thus, there is a swarm for selecting assets that minimize risk and a swarm for selecting assets that maximize profit. As for MGPSO, non-dominated solutions found by the swarms are stored in an archive (initially empty) of a fixed size. The archive management process described in Section 3.3 is also used in the MGSBPSO. However, the crowding distance of the non-dominated solutions in the archive is calculated with respect to their objective function values instead of their set-based positions because the set-based positions lack distance in the traditional sense. Non-dominated solutions are selected from the archive using tournament selection and are used to guide the particles to non-dominated regions of the search space. Like the archive management strategy, the crowding distance of the non-dominated solutions in the tournament is calculated with respect to their objective function values. Furthermore, the successful modifications identified by [PERSON] and [PERSON] are also included in the MGSBPSO, namely, the removal of zero-weighted assets, the immediate calculation of the objective function for single-asset portfolios, the decision to allow the weight optimizer to execute until it converges, only allowing assets to be removed via the weight determination stage, and the exploration balance coefficient for improved convergence behavior. Taking these improvements, as well as the archive guide, into account, the velocity equation is  
\[ \begin{split} V_{i}(t+1)&=\lambda_{c}(t)r_{1}\otimes( Y_{i}(t)\ominus X_{i}(t))\\ &\quad\oplus\lambda_{i}\lambda_{c}(t)r_{2}\otimes(\hat{Y}_{i}(t) \ominus X_{i}(t))\\ &\quad\oplus(1-\lambda_{i})\lambda_{c}r_{3}\otimes(\hat{A}_{i}(t) \ominus X_{i}(t))\\ &\quad\oplus(1-\lambda_{c}(t))r_{4}\otimes A_{i}(t)\end{split}  \tag{15}\]  
where \(r_{1}\), \(r_{2}\), \(r_{3}\), and \(r_{4}\) are random values, each sampled from a standard uniform distribution in the range [0, 1]; \(\lambda_{c}\) is the linearly increasing exploration balance coefficient; \(X_{i}\) is the position of particle \(i\); \(\hat{Y}_{i}\) is the best position found by particle \(i\); \(\hat{Y}_{i}\) is the best position within particle \(i\)'s neighborhood; \(\hat{A}_{i}\) is the archive guide for particle \(i\); the influence of the archive guide is controlled by the archive coefficient \(\lambda_{i}\); \(\hat{A}_{i}\) is shorthand for \(U(\langle X(t)\cup Y(t)\cup\hat{Y}(t)\rangle\), where \(U\) is the set universe, and \(\otimes\) and \(\oplus\) are the set-based operators defined in Section 3.2. For the purpose of weight determination, MGPSO with the newly proposed tuning-free approach is used. Hence, asset weight determination is also a multi-objective optimization task. For each set-particle, an MGPSO is instantiated to optimize the corresponding asset weights with regard to risk and return. Figure 2 illustrates the overall structure of the swarms in MGSBPSO and their objective. Each MGPSO in Figure 2 has its own archive. Specifically, the MGPSO for MGSBPSO \(s_{1}\) has its own archive and the MGPSO for MGSBPSO \(s_{2}\) has its own archive. There is also a global archive, the MGSBPSO archive, which is used to store non-dominated solutions found by either MGPSO. An MGPSO terminates when no non-dominated solutions are added to their archives over three iterations. The non-dominated solutions in the archive of an MGPSO are then inserted into the global archive along with the corresponding set position. Lastly, the best objective function value of the non-dominated solutions in an MGPSO archive is assigned to the corresponding set-particle with regard to the objective of the swarm that the set-particle is in.