# Using Improved Brainstorm Optimization Algorithm for Hardware/Software Partitioning
## 5 Experiments and Discussion
### Discussions on the Algorithm Performance Based on the Task Scale  
As the number of subtask nodes increases, the hardware/software partitioning problem will be more and more complex. To analyze the performance of IBSO when applied to tasks of different scales, IBSO is applied to solve the eight benchmarks. For each benchmark, the algorithm was run 20 times, and in each run, the algorithm is terminated after 2000 iterations. For each benchmark, the average running time \(Ar\) of the 20 runs is calculated. The values of \(Ar\) of the eight benchmarks are shown in Figure 8.  
It can be seen from Figure 8, as the number of the subtask nodes increases, the running time increases exponentially. That means although IBSO has a higher efficiency compared with many SI algorithms, if the scale of a hardware/software partitioning problem is large, it is still difficult to solve the problem by IBSO in real time. In other words, the algorithm may fail when applied in a real-time system. According to the characteristics of SI algorithms, when using a SI algorithm to solve a problem, the output solutions of two runs may be different. Therefore, if the solutions obtained by multiple runs of a algorithm are the same or similar, the obtained solutions are more likely to be the optimal or near-optimal solutions. It also means the algorithm has good stability when applied to solve the problem. In our experiments, IBSO is run 20 times on each benchmark. The variance \(Va\) of the 20 solutions is calculated. The values of \(Va\) of the eight benchmarks are shown in Figure 9.  
It can be seen from Figure 9, when the number of subtask nodes is less than 500, the stability of the algorithm is good. But as the increase of the task scale, the stability of the algorithm is getting worse and worse. The results mean that when the task scale is large, IBSO may fail to obtain the optimal solution in some runs. In other words, for the large scale tasks, if we want to obtain solutions with high quality, the algorithm need be run more times. In our experiments, the algorithm is terminated \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multirow{2}{*}{**Nodes**} & \multicolumn{2}{c}{**BSO**} & \multicolumn{2}{c}{**ADMBSO**} & \multicolumn{2}{c}{**BSOCO**} \\ \cline{2-7}  & \(\alpha\) & \(\beta\) & \(\alpha\) & \(\beta\) & \(\alpha\) & \(\beta\) \\ \hline
50 & 4.0\% & 11.3\% & 3.4\% & 14.5\% & 0.33\% & 38.9\% \\
100 & 5.5\% & 1.9\% & 3.9\% & 12.5\% & 0.27\% & 42.7\% \\
150 & 8.0\% & 2.3\% & 7.7\% & 11.8\% & 1.9\% & 42.1\% \\
200 & 10.0\% & 6.2\% & 6.5\% & 14.6\% & 3.5\% & 41.9\% \\
300 & 9.9\% & 2.1\% & 8.2\% & 13.4\% & 3.7\% & 42.1\% \\
500 & 16.8\% & 0.2\% & 14.3\% & 14.4\% & 8.2\% & 41.9\% \\
700 & 14.1\% & 2.8\% & 12.2\% & 14.1\% & 8.4\% & 42.1\% \\
1000 & 6.7\% & 5.6\% & 6.9\% & 17.1\% & 3.5\% & 40.7\% \\ Average & 9.4\% & 4.1\% & 7.9\% & 14.1\% & 3.7\% & 41.5\% \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Comparison between the IBSO and BSO and two improved BSO algorithms. after 2000 iterations. But a large scale problem corresponds to a large solution space, which means more iterations are required to search for the optimal solutions. Therefore, if we want to improve the algorithm stability in a large scale problem, increasing the number of iterations is an effective way. Based on the experiment results, the IBSO algorithm performs best in terms of the solution quality and the algorithm efficiency. The IBSO introduced a new clustering method and a new updating strategy to improve the algorithm performance, the new clustering method which clusters the individuals based on the equidistant coordinates can better keep the population diversity. Therefore, the IBSO can avoid falling into local optimum better and obtain the solutions with higher quality. The new updating strategy of IBSO reduces the number of individuals to be updated in one iteration, therefore the running time of one IBSO iteration is shorter than that of BSO.