# Numerical Algorithms in III-V Semiconductor Heterostructures
## 3 Results  
The experiments were conducted using the freely available Optimus optimization environment, downloaded from [[https://github.com/itsoulos/GlobalOptimus/](https://github.com/itsoulos/GlobalOptimus/)]([https://github.com/itsoulos/GlobalOptimus/](https://github.com/itsoulos/GlobalOptimus/)) (accessed on 7 December 2023). The execution machine was an AMD Ryzen 5950X with 128 GB of RAM, running Debian Linux, and the programs were compiled using the GNU C++ compiler. The values for the parameters of the used methods are shown in Table 1. This table describes the simulation parameters for the objective problem as well as the parameters for the two global optimization techniques, previously described. The material parameters for semiconductors AlAs and GaAs, related to the frequencies and high-frequency dielectric constants, are taken from [3].  
\begin{table}
\begin{tabular}{c c c} \hline
**PARAMETER** & **MEANING** & **VALUE** \\ \hline \(d\) & Well width & 5 nm \\ \hline \(t_{0}\) & Left bound of Equation (14) & 0.1 \\ \hline \(t_{1}\) & Right bound of Equation (14) & 3.0 \\ \hline \(NP\) & Number of points used to divide the interval \([t_{0},t_{1}]\) & 100 \\ \hline \(\hbar\;\omega_{L1}\) & Longitudinal-optical phonon energy of material 1 (AlAs) & 50.09 meV \\ \hline \(\hbar\;\omega_{T1}\) & Transverse-optical phonon energy of material 1 (AlAs) & 44.88 meV \\ \hline \(\hbar\;\omega_{L2}\) & Longitudinal-optical phonon energy of material 2 (GaAs) & 36.25 meV \\ \hline \(\hbar\;\omega_{T2}\) & Transverse-optical phonon energy of material 2 (GaAs) & 33.29 meV \\ \hline \(\varepsilon_{\infty,1}\) & High-frequency dielectric constant of material 1 (AlAs) & 8.16 \\ \hline \(\varepsilon_{\infty,2}\) & High-frequency dielectric constant of material 2 (GaAs) & 10.89 \\ \hline \(N_{C}\) & Number of chromosomes/particles & 500 \\ \hline \(N_{G}\) & Maximum number of allowed generations & 200 \\ \hline \(p_{S}\) & Selection rate & 0.90 \\ \hline \(p_{M}\) & Mutation rate & 0.05 \\ \hline \(p_{l}\) & Local search rate & 0.01 \\ \hline \end{tabular}
\end{table}
Table 1: This table contains the values for the parameters used in the conducted experiments.  
The PSO method significantly outperforms the genetic algorithm technique in execution time, and indeed, as the experimental results show, the genetic algorithm requires a significantly high execution time as the number of chromosomes increases. However, this problem can be smoothed over since genetic algorithms can by nature be parallelized relatively easily, as shown in a large number of related works [57; 58; 59]. Programming techniques that may be used to parallelize genetic algorithms are, for example, the MPI technique [60] or the OpenMP [61] programming library. For example, using the OpenMP library to parelleize the genetic algorithm, the graph of Figure 4 is obtained.  
Furthermore, the logarithm of best values obtained by the two optimization methods for the equation is shown graphically in Figure 5.  
From this graph, one can conclude that the genetic algorithm achieves significantly low values even for a limited number of chromosomes. In addition, the genetic algorithm, compared to the PSO technique, seems to maintain stability in its behavior regardless of the number of chromosomes used each time. Finally, the value of the objective function achieved using the genetic algorithm is significantly lower than the PSO technique.  
Moreover, the logarithm for the best values obtained for Equation (13) for different number of maximum allowed generations is outlined in Figure 6. As can be seen from the graph, the error remains almost constant for more than 200 generations, which means that this number is enough to achieve the goal.  
Figure 4: Average execution time using the genetic algorithm and different number of processing threads. The genetic algorithm was parallelized using the OpenMP programming library.  
Figure 5: Logarithm function applied to the best obtained values for Equation (14) for both methods and for different values of parameter \(N_{C}\).