Skip to main content
. 2022 Feb 24;22(5):1795. doi: 10.3390/s22051795
Algorithm 1. Pseudo-code of SSVUBA
Start SSVUBA.
1.      Input the optimization problem information: Decision variables, constraints, and objective function
2.      Set the T and N parameters.
3.      For t = 1:T
4.            Adjust number of selected variables to update (Iv ) using Equation (3). Iv←round((1−tT)·m)
5.            For i = 1:N
6.                  For j = 1:  Iv
7.                        Select a population member randomly to guide the ith population member.
                       XS←X(S,:), S randomly selected from {1,2, …, N} and S≠i, is the Sth row of the population matrix.
8.                        Select one of the variables at random to update. xi,kj, kj randomly selected from {1,2, …,m}.
9.                        Calculate I using Equation (5). I←round(1+r)
10.                        If Fs<Fi
11.                           Calculate the new status of the kjth dimension using Equation (4). xi,kj new←xi,kj+r·(xs,kj−I·xi,kj)
12.                        else
13.                           Calculate the new status of the kjth dimension using Equation (4). xi,kj new←xi,kj+r·(xi,kj−I·xs,kj)
14.                        end
15.                  end
16.                  Calculate the objective function based on Xinew . Finew←F(Xinew)
17.                  If Finew<Fi
18.                     Update the ith population member using Equation (6). Xi←Xinew
19.                  else
20.                     Update the ith population member using Equation (6). Xi←Xi
21.                  end
22.            end
23.            Save the best solution so far.
24.      end
25.      Output the best obtained solution.
End SSVUBA.