# Embedded PSO for Solving FJSP on Embedded Environment (Industry 4.0 Era)
## 5 Proposed Technique: Embedded Two-Level PSO-FJSP
Each simulation is performed a total of 30 times to better measure the stability with the Mann-Whitney method. The control parameters of E2L-PSO are summarized in Table 3.
The locations of particles are initialized as follows: using the localization strategy [31], 50 percent of the population is initialized to viable solutions (i.e., feasible schedules), and 50 percent is initialized with random values. The performance of the algorithms is assessed using 10 benchmarks [33]. The number of jobs, machines, and operations; the flexibility degree (Equation (2)); and the lower bound on makespan [34] are all listed in Table 4 for each benchmark. ### Simulation Results

2.1 Experiment #1 (Basic PSO vs. One-Level PSO vs. E2L-PSO without Reduction on STM32 F407 VGT6 and Raspberry Pi B+)

The one-level PSO is presented in [32]. To better compare the different PSO variants, first, we start working with the same parameters as in [32] (\(I_{1}\) = 64; \(I_{2}\) = 5; \(S_{1}\) = 50; \(S_{2}\) = 5). In other words, the number of iterations (\(I\), \(I_{1}\), \(I_{2}\)) is set so that the total number of solutions visited in each version is approximately 80,000. Results are presented in Table 5 for simulations in the STM32F407 VGT6 and in Table 6 for simulations in Raspberry Pi B+. Tables 5 and 6 show that the one-level PSO produces better results for \(MS\) but not for CPU time when compared to the standard PSO. For all benchmarks, however, the E2L-PSO without reduction delivers higher performance on the two criteria. Because the size of the position vectors is reduced, the CPU time falls by 2 to 8 times. In Tables 7 and 8, we decrease the number of visited solutions at 5000 points. We find that E2L-PSO without reduction remains the best, as it provides better results on the two criteria for all benchmarks. The CPU time decreases by 2 to 7 times. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Instance** & **\#Jobs** & **\#Machines** & **\#Operations** & **FD** & **Lower Bound on Makespan** \\ \hline MK01 & 10 & 6 & 55 & 0.34 & 36 \\ MK02 & 10 & 6 & 58 & 0.68 & 26 \\ MK03 & 15 & 8 & 150 & 0.37 & 204 \\ MK04 & 15 & 8 & 90 & 0.23 & 48 \\ MK05 & 15 & 4 & 106 & 0.42 & 168 \\ MK06 & 10 & 15 & 150 & 0.32 & 33 \\ MK07 & 20 & 5 & 100 & 0.56 & 133 \\ MK08 & 20 & 10 & 225 & 0.14 & 523 \\ MK09 & 20 & 10 & 240 & 0.25 & 299 \\ MK10 & 20 & 15 & 240 & 0.19 & 165 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: FJSP benchmarks. \begin{table}
\begin{tabular}{c c c c} \hline \hline  & & Hard (60\% CPU) & \\ \hline Request\_Period & Beginning (20\%) & Middle (50\%) & End (90\%) \\ \hline \(c_{1}\) & 1.49618 for level 1, Equation (11) for level 2 & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 \\ \(c_{2}\) & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 \\ \(w\) & (10) for level 1, Equation (9) for level 2 & Equation (10) for level 1, Equation (9) for level 2 & 0.6 \\ \hline \hline \multicolumn{4}{c}{Soft (20\% CPU)} \\ \hline Request\_Period & Beginning (20\%) & Middle (50\%) & End (90\%) \\ \hline \(c_{1}\) & 1.49618 for level 1, Equation (11) for level 2 & 1.49618 for level 1, Equation (11) for level 2 & 1.49618 \\ \(c_{2}\) & 1.49618 for level 1, Equation (12) for level 1 & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 \\ \(w\) & (10) for level 1, Equation (9) for level 2 & Equation (10) for level 1, Equation (9) for level 2 & 0.6 \\ \hline \hline \multicolumn{4}{c}{Soft (20\% CPU)} \\ \hline Request\_Period & Beginning (20\%) & Middle (50\%) & End (90\%) \\ \hline \(c_{1}\) & 1.49618 for level 1, Equation (11) for level 2 & 1.49618 for level 1, Equation (11) for level 2 & 1.49618 \\ \(c_{2}\) & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 for level 1, Equation (12) for level 2 & 1.49618 \\ \(w\) & Equation (10) for level 1