Parallel Social group optimization considers a multi-population paradigm that helps to find optimal solutions. The proposed algorithm is the extension of the social group optimization (SGO) algorithm. This algorithm is based on the learning behaviour of individuals in the groups. (Fig. 1 Proposed Parallel Social Group Optimization Algorithm)shows the pictorial representation of the proposed work.
The parallel social group optimization algorithm is based upon the learning process of humans in groups. In this algorithm, we created different groups of humans. Humans can learn by interacting with the persons in the group and the expert outside the group. The suggested algorithm operates in four stages: the Self-Learning Phase, the Improving Phase, the Acquiring Phase, and the Combination Phase. The self-learning phase defines a phase where a person’s individual knowledge is calculated based on their own experience, the knowledge acquired from external sources like books, media, etc. This phase computes the information which is gained by an individual through their efforts. The improving Phase helps an individual to enhance the knowledge within the group. In the Acquiring Phase, the best person from Phase 1 is considered along with all the members of the group, and mutual interaction is done. Another important parameter is the self-improvement parameter which calculates the knowledge of an individual through their experience with life. Once the local best is calculated from each mentioned population, all these local bests are used as an input to evaluate a single global best among all of them, which will help enhance the knowledge of the entire population with the best possible results. All this process where the best among all is considered is called the combination phase. The pseudocode of the proposed work is shown in Table 1
PSGO algorithm
|
Table 1
Begin
|
Generate GP Populations randomly. Each group should have N Individuals, and each individual should have G Genes.
Evaluate each individual's fitness in every group and select g_best (group best) and global_best candidate solutions.
|
For iter = 1 to max_number_of_iterations
/*Self-Learning Phase starts*/
For i = 1 to GP
For j = 1 to N
|
New_Pop(i,j) = New_Pop(i,j) + random_number
// random_number could be and small positive or negative random number
End For
Pop(i) = New_pop(i)
End For
/* Self-Learning Phase ends*/
|
Check bounds and violations and update the individuals if needed.
Evaluate each individual's fitness in every group and update g_best (group best) and global_best candidate solutions if needed.
|
/* Improving Phase starts*/
For i = 1 to GP
For j = 1 to N
|
New_Pop(i,j) = c.*pop(i,j) + rand(size(pop(i,j))).*(g_best- pop(i,j));
// here c is self-improvement parameter and it should be between 0 to 1
End For
Pop(i) = New_pop(i)
End For
/* Improving Phase ends */
|
Check bounds and violations and update the individuals if needed.
Evaluate each individual's fitness in every group and update g_best (group best) and global_best candidate solutions if needed.
/* Acquiring Phase starts */
For i = 1 to GP
For j = 1 to N
Select a partner randomly from ith group
Fc = Fitness of current individual in group.
Fp = Fitness of partner
If Fc < Fp
New_Pop(i,j) = pop(i,j) + rand(size(pop(i,j))* (pop(i,j) - partner) + rand(size(pop(i,j)) * (g_best- pop(i,j));
Else
New_Pop(i,j) = pop(i,j) - rand(size(pop(i,j))* (pop(i,j) - partner) + rand(size(pop(i,j)) * (g_best- pop(i,j));
End for
End for
/* Acquiring phase ends*/
Check bounds and violations and update the individuals if needed.
Evaluate each individual's fitness in every group and update g_best (group best) and global_best candidate solutions if needed.
|
Select a trainer randomly from all local bests.
/* Combination Phase starts*/
For i = 1 to GP
For j = 1 to N
For k = 1 to Genes
With the specific probability update kth gene of jth individual and ith population using following
Pop(j,k) = Pop(j,k)/2 + trainer(k) /2
End For
End For
End For
/* Combination Phase ends*/
Check bounds and violations and update the individuals if needed.
Evaluate each individual's fitness in every group and update g_best (group best) and global_best candidate solutions if needed.
End for
End
|
Table 2defines the symbols used in the pseudo code along with its description and the values considered for the implementation purpose.
Parameter Description
|
Symbols
|
Values
|
Table 2
Parametric value of the illustrative pseudo code of PSGO
Number of populations
|
GP
|
20
|
Number of dimensions of each population
|
D
|
10
|
Termination criteria (Self-improvement)
|
C
|
0.25
|
Genes value
|
\({d}_{j}(j=1..3)\)
|
0 thru 9
|
To understand the algorithm in a better way, we have considered a simple example for finding three digits numbers with the largest sum. The number of digits is between (0 to 9), so the highest three-digit number will be (9 9 9). The stepwise formation of this algorithm can be seen below:
Problem Statement
Find the largest sum of 3-digit numbers.
Solution
To solve the problem mentioned above, we need to get the largest sum using 3 digits for the set of real numbers. The following steps are considered for the required solution.
Step 1
We considered 4 different populations of 4 different persons with 3 randomized genetic values. A random population is generated in the 1st Iteration as discussed below
Iteration = 1
Generate population randomly
Population 1:\([ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6]\)
Population 2:\([ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ]\)
Population 3:\([ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1]\)
Population 4:\([ 8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7]\)
These populations can also be written as
$$Population 1=\left[\begin{array}{c}\begin{array}{ccc}1& 4& 5\\ 2& 2& 7\\ 3& 5& 1\\ 8& 1& 6\end{array}\end{array}\right]$$
$$Population 2=\left[\begin{array}{c}\begin{array}{ccc}3& 4& 7\\ 4& 8& 1\\ 6& 2& 3\\ 5& 3& 2\end{array}\end{array}\right]$$
$$Population 3=\left[\begin{array}{c}\begin{array}{ccc}4& 7& 2\\ 6& 9& 3\\ 3& 5& 7\\ 6& 2& 1\end{array}\end{array}\right]$$
$$Population 4=\left[\begin{array}{c}\begin{array}{ccc}8& 2& 1\\ 3& 2& 1\\ 4& 8& 9\\ 9& 8& 7\end{array}\end{array}\right]$$
Step 2
Select the local best with the highest fitness value from each Population. In Iteration 1, 4 random populations are generated. Now each gene value of every person will be summed up to find out the fitness value of the elite person in every Population. Here as it shows that in population 4, an individual with (9,8,7) genetic value results as the elite one
A simple demonstration of how the elite value is calculated for a single population can be seen in Table 3
Population No.
|
Individual No.
|
Individual
|
Fitness no.
|
Table 3
Example shows the individuals in Population 1 with their fitness value
1
|
1
|
\(1, 4, 5\)
|
10
|
2
|
\(2, 2, 7\)
|
11
|
3
|
\(3 ,5 , 1\)
|
9
|
4
|
\(8, 1 , 6\)
|
15
|
Moving on to the next step, a self-improvement parameter is considered which helps an individual to prove his /her knowledge by its own experience.
Step 3
It computes the Self-improvement parameter where an experience of a person is calculated using the following formula
$$Population = Curren{t}_{population} \pm rando{m}_{number}$$
Step 4
In this step, we construct a change matrix. It may be possible that the level of significance of an individual's genetic value is not satisfactory then in that case we can optimize the significant value by adding 1 unit and subtracting 1 unit randomly. Hence the following change matrix is imposed on every Population.
Change Matrix for population 1 =\([1, 1, -1; -1 , 1, -1; -1, -1, 1; 1, -1, -1]\)
Change Matrix for population 2 =\([-1 , -1 , 1; -1 , 1, -1; 1, 1, -1; 1, -1, -1]\)
Change Matrix for population 3=\([1, -1, -1 ; -1 , 1, -1 ; 1 , 1, -1 ;1, -1, -1]\)
Change Matrix for population 4 =\([-1 , -1 , 1 ; 1, -1, -1; 1, 1, -1; -1 , 1, 1]\)
It can also be written as shown below
$$Change matrix for Population 1 \left[\begin{array}{c}\begin{array}{ccc}1& 1& -1\\ -1& 1& -1\\ -1& -1& 1\\ 1& -1& 1\end{array}\end{array}\right]$$
Step 5
Once the change matrix is formulated, the current Population is added/subtracted with the help of the change matrix to develop the .
If the new Population which is generated is better than the existing one, then the new will be replaced with the exiting Population otherwise the existing group will be considered for further steps.
$$New Population = Population + Change Matrix$$
$$New Population 1=\left[\begin{array}{c}\begin{array}{ccc}1& 4& 5\\ 2& 2& 7\\ 3& 5& 1\\ 8& 1& 6\end{array}\end{array}\right]\pm \left[\begin{array}{c}\begin{array}{ccc}1& 1& -1\\ -1& 1& -1\\ -1& -1& 1\\ 1& -1& 1\end{array}\end{array}\right]$$
$$New Population 2=\left[\begin{array}{c}\begin{array}{ccc}3& 4& 7\\ 4& 8& 1\\ 6& 2& 3\\ 5& 3& 2\end{array}\end{array}\right]\pm \left[\begin{array}{c}\begin{array}{ccc}-1& -1& 1\\ -1& 1& -1\\ 1& 1& -1\\ 1& -1& -1\end{array}\end{array}\right]$$
$$New Population 3=\left[\begin{array}{c}\begin{array}{ccc}4& 7& 2\\ 6& 9& 3\\ 3& 5& 7\\ 6& 2& 1\end{array}\end{array}\right] \pm \left[\begin{array}{c}\begin{array}{ccc}1& -1& -1\\ -1& 1& -1\\ 1& 1& -1\\ 1& -1& -1\end{array}\end{array}\right]$$
$$New Population 4=\left[\begin{array}{c}\begin{array}{ccc}8& 2& 1\\ 3& 2& 1\\ 4& 8& 9\\ 9& 8& 7\end{array}\end{array}\right] \pm \left[\begin{array}{c}\begin{array}{ccc}-1& -1& 1\\ 1& -1& -1\\ 1& 1& -1\\ -1& 1& 1\end{array}\end{array}\right]$$
After the addition of the change matrix, the newly generated Population is as follows:
$$New Population 1= \left[2 , 5 , 4; 1 , 3, 6; 2 , 4, 2 ; 9, 0, 5\right]$$
$$New Population 2=[2 , 3, 8; 3, 9, 0; 7, 3, 2; 6, 2, 1]$$
$$New Population 3= [5, 6, 1; 5, 10, 2; 4, 6, 6 ; 7, 1, 0]$$
$$New Population 4= [ 7, 1, 2; 4, 1, 0; 5, 9, 8 ; 8, 9, 8]$$
Step 6 \(:\) To generate a whole new bunch of population the \(Population 1\) and\(New Population 1\) will be combined.
$$Population 1= [ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6; 2 , 5 , 4; 1 , 3, 6; 2 , 4, 2 ; 9, 0, 5]$$
$$Population 2= [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ; 2 , 3, 8; 3, 9, 0; 7, 3, 2; 6, 2, 1 ]$$
$$Population 3= [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1; 5, 6, 1; 5, 10, 2; 4, 6, 6 ; 7, 1, 0 ]$$
$$Population 4=[8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7; 7, 1, 2; 4, 1, 0; 5, 9, 8 ; 8, 9, 8]$$
Once the populations have been updated now, the stages of the algorithms will be implemented. The improving Phase is the initial step of calculating the best among a group of people. As the proposed algorithm is a multi-population algorithm, in this case, multiple groups will be performing this step and will identify one individual with a fitness value.
Step 7: Improving Phase
Using the self-improvement \(c\), old population \(X\), and the best fitness value population \({X}_{best}\),
$${X}_{new}=cX+r\left({X}_{best}-X\right) \left(Eq 1\right)$$
\(\) provides the update on the existing Population through the Improving Phase. Here self-improvement parameter is 0.1. Randomly generated number r ranges between (0,1).
$$Population 1: [ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6] \left(0.5\right)$$
$$Population 2: [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ]\left(0.3\right)$$
$$Population 3: [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1] \left(0.6\right)$$
Figure 2 shows the pictorial representation of the Improvising phase, where every person in the group (in black) will interact with the best person(in red) to enhance their knowledge.
We have considered Population 1 for this example and have implemented the above-mentioned equation as follows
\({X}_{new}(\) Population1\()=0.1*(\text{1,4},5)+0.5(7, -3 , 1); 0.1*(\text{2,2},7)+0.5(6,-\text{1,1}); 0.1*(\text{3,5},1)+0.5(5,-\text{4,5})\)
Similarly, for populations 2,3, and 4 same will be followed.
$${X}_{new}Population 2: [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ]$$
$${X}_{new}Population 3: [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1]$$
$${X}_{new}Population 4: [ 8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7]$$
Step 8
Now once the is generated, then comes Phase 2 i.e Acquiring phase(Fig. 3). In this every person in the group will talk to their peer, and the best person obtained from the Improving Phase. This process will help an individual to gain more knowledge. The below-mentioned formula will be used to calculate the interaction between the person and peer.
$${Person to partner or peer =X-X}_{p}$$
Once it is calculated, the Population generated from Improving stage will be added to \({X-X}_{p}\)for generating a new population which combines both Phase 1 and Phase 2.
The formula to implement the acquiring Phase is as follows:
$${X}_{new}=X+r1{(X-X}_{p} )+r2 \left({X}_{best}-X\right) ( Eq. 2)$$
$$Acquiring phase new Population 1= [ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6; 2 , 5 , 4; 1 , 3, 6; 2 , 4, 2 ; 9, 0, 5;$$
$$\text{3.6,0.4,1};3.2, 0.2, 0.7; \text{2.8,0.5,2.6} ]$$
$$Acquiring phase new Population 2= [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ; 2 , 3, 8; 3, 9, 0; 7, 3, 2;$$
$$6, 2, 1;\text{0.4,0.8,1.9}; \text{0.6,0.8,1.5}; \text{0.5,0.6,1.7} ]$$
$$Acquiring phase new Population 3= [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1; 5, 6, 1; 5, 10, 2; 4, 6, 6 ;$$
$$7, 1, 0;\text{1.6,1.9,0.8}; \text{2.1,2.9,0.7};\text{0.6,4.4,1.3} ]$$
$$Acquiring phase new Population 4=[8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7; 7, 1, 2; 4, 1, 0; 5, 9, 8 ; 8, 9, 8;\text{1,1.4,1.3};\text{1.5,1.4,1.3};\text{1.4,0.8,0.9}]$$
Step 9
Using the Eq. 2, every population has been updated in the acquiring phase. Hence local best is obtained using these 2 phases.
Step 10
The next step combines old and new population by adding new population generated from improving phase + acquiring phase new population. Once the new Population is generated then among those 12 individuals of every population select best 4 among them.
$$Population 1= [ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6; 2 , 5 , 4; 1 , 3, 6; 2 , 4, 2 ; 9, 0, 5;$$
$$\text{3.6,0.4,1};3.2, 0.2, 0.7; \text{2.8,0.5,2.6} ;\text{4,5},4.5; 4.5, 0.5, 10; \text{6.5,5.5,1.5}]$$
$$Population 2= [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ; 2 , 3, 8; 3, 9, 0; 7, 3, 2; 6, 2, 1;$$
$$\text{0.4,0.8,1.9}; \text{0.6,0.8,1.5}; \text{0.5,0.6,1.7};\text{3.4,9.8,2.2};\text{6.3,2.3,4.5};\text{5.3,1.8,3.8} ]$$
$$Population 3= [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1; 5, 6, 1; 5, 10, 2; 4, 6, 6 ; 7, 1, 0;$$
$$\text{1.6,1.9,0.8}; \text{2.1,2.9,0.7};\text{0.6,4.4,1.3};\text{4,11.2,3.2};\text{6,4.4,6.4};\text{6,6.2,2.2} ]$$
$$Population 4=[8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7; 7, 1, 2; 4, 1, 0; 5, 9, 8 ; 8, 9, 8;$$
$$\text{1,1.4,1.3};\text{1.5,1.4,1.3};\text{1.4,0.8,0.9};\text{9.2,3.2,2.2};\text{4,2},0.6;\text{4.2,9.2,10.6}]$$
Step 11
In this step, among the populations generated throughout all the steps, the best 4 individuals in each population with the best genetic values will be filtered out as shown below. This method defines that multiple populations are considered where all the 10 steps we have discussed help to generate local best among each population. Now among the local best, the global best person needs to be identified.
Select the top 4 in each population. The digits in bold show the best individuals with good genetic values.
$$Population 1= [ 1, 4, 5; 2, 2, 7; 3 ,5 , 1; 8, 1 , 6; 2 , 5 , 4; 1 , 3, 6; 2 , 4, 2 ; 9, 0, 5; \text{3.6,0},1;$$
$$3, 0, 0; \text{3,0},3 ;\text{4,5},5; 5, 0, 9; \text{7,6},2]$$
$$Population 2= [ 3, 4, 7; 4, 8, 1; 6, 2, 3; 5, 3, 2 ; 2 , 3, 8; 3, 9, 0; 7, 3, 2;$$
$$6, 2, 1;\text{0,1},2;\text{0,0},2; \text{1,1},1; \text{3,9},2;\text{6,2},5;\text{5,2},4]$$
$$Population 3= [ 4, 7, 2 ; 6 , 9, 3 ; 3 , 5, 7; 6 , 2 , 1; 5, 6, 1; 5, 9, 2; 4, 6, 6 ;$$
$$7, 1, 0; \text{2,2},1;\text{2,3},2;\text{1,4},1;\text{4,9},3;\text{6,4},6;\text{6,6},2]$$
$$Population 4=[8 , 2 , 1 ; 3 , 2 , 1 ; 4 , 8 , 9 ; 9 , 8, 7; 7, 1, 2; 4, 1, 0; 5, 9, 8 ; 8, 9, 8;$$
$$\text{1,1},1;\text{2,1},1;\text{1,1},1;\text{8,3},2;\text{4,2},1;\text{4,9},9]$$
The bold digits show that in each population there are 4 individuals with good genetic values as shown below. Among all these, the newly generated population (8,9,8) in Population 4 with the highest genetic value is 25 is declared as the Global best person.
$$Population 1=[\text{8,1},6; 9, 0, 5 ; 5, 0, 9 ; 7, 6, 2;]$$
$$Population 2=[3, 4, 7; 4, 8, 1 ; 2, 3, 8; 3, 9, 2]$$
$$Population 3=[6, 9, 3 ; 3, 5, 7; 4, 9, 3 ; 6, 4, 6 ]$$
$$Population 4=[ 9, 8, 7; 5, 9, 8, 8, 9, 8, 4, 9 , 9]$$
Using 4 different random populations of 4 individuals with 3 genes, the best person with the elite genetic value among the local populations is known as the Global best solution: [8 9 8]. Because it’s a parallel approach the convergence rate can be considered less with optimal route cost.
Figure 5 shows a tabular representation of all the major steps of PSGO in the 1st iteration with an output of all the populations in every stage.
Here we have round off the values ≥ and ≤ .05