## 4 The Algorithm: Space of Convergence Vectors (SCV)
### Roadmap of the SCV Algorithm  
Based on the developments introduced in Section 4.2, the SCV algorithm consists of seven steps.  
Step 1: Define the number of particles in the swarm and the number of iterations. Because a particle is a possible solution to the problem under consideration, a set of solutions equal to the number of particles must be proposed at each iteration. From practical considerations, this paper recommends limiting the number of particles in the swarm at \(s=3\). Knowing the number of possible combinations of GIVs (see Equation (6)), the maximum number of iterations is determined as \(N=\text{round}(H/s-0.5)\).  
Step 2: Feed the database with support elements. Information about the performance indicators, their related GIVs, their weights, and targets (see Equation (4)) are introduced in the system.  
Step 3: Particle initialization. For each particle in the swarm, a GIV from the subset is assigned to the level of each performance indicator. A possible way to initialize this state is given in Section 4.2.2.  
Step 4: Concurrent conceptualization of the first set of solutions based on the initial position of particles in the swarm. For each combination of GIVs defined at step 3 (i.e., for each initial position of the particles in the system), a solution to the problem is formulated. Thus, \(s\) initial solutions should emerge by directing the conceptualization effort towards the intervention zones recommended by the GIVs assigned at step 3. There is no barrier at this step to use any kind of supporting tool (e.g., modeling and simulation, morphological charts, mind maps, etc.) to inspire and/or guide engineers in finding solutions within the zones of interventions suggested by GIVs. Once solutions are formulated, the values for \(V_{EI}\), \(i=1\),..., \(n\) are determined (see Equation (4)).  
Step 5: Calculation of the utility function \(T\) concerning each particle and determining the best local solutions and the best global solution. At each iteration, for each particle, the utility function \(T\) is calculated (see Equation (4)). Results are compared with the target value, which is 1 (\(\Delta T=1-T\); \(\Delta T\to 0\)). A set of \(s\) values for \(\Delta T\) will result (one for each particle in the system). The solution with the smallest \(\Delta T\) is chosen as the best solution in the swarm (\(z_{t}\) in Equation (9)). For the positions \(y_{1,1}\),..., \(y_{s,1}\) (\(y_{i,t}\), \(i=1\),..., \(s\); \(t=1\)  
Figure 1: The generic part and its reference system.  
in Equation (9), afferent to the first iteration, initialization will be done according to the recommendations from step 3. For the next iterations, \(\Delta T\) belonging to all solutions to the level of each particle and to the global level will be compared each other, and the \(z_{t}\) and \(y_{i,t}\), \(i=1\),..., \(s\) will be selected for which \(\Delta T\) is the smallest at global level and local levels, respectively. Practically, as iterations progress, the number of solutions increases. At iteration \(t\), \(s\times t\) solutions are compared for selecting \(z_{t}\), and \(t\) solutions are compared for selecting the best local solution for each particle.  
Step 6: Algorithm indexing and calculation of new positions and velocities for particles. Equations (8) and (9) are used for starting a new iteration. Position \(\underline{u}\) is randomly selected from all solutions proposed up to that moment in the previous iterations. Practically, a solution is identified within the algorithm using a combination of GIVs. Therefore, an association between every solution and a well-defined combination of GIVs is realized. A modality to do this is by identifying the particle and the iteration. For example, for particle 2, at iteration 5, the solution could be symbolized as SOL (2:5).  
Step 7: Convergence and termination condition verification. Equation (5) is considered at this step. Until the number of iterations \(t\) respects the condition \(t<N\), the algorithm is resumed from step 4.