## 4 Experimental Results
### Validity Experiments  
The simplified boiler system used in this study consists of a natural-gas water tube boiler that produces saturated steam [4]. As the external demand changes, the steam flow varies rapidly and irregularly between zero and the maximum values. The water level of the boiler is regulated by controlling the inflow of water. The water level must be maintained between the upper and lower limits. If the water level is above the upper limit, water will be carried into the steam stream, causing damage to the equipment; if the water level is below the lower limit, the boiler piping may overheat and burst. If control of the water level is lost, the boiler will shut down. The water level and steam flow are measured via the instrumentation system. The sensor readings are transmitted to the control program via a communication link. The control program is expected to perform the following tasks:  
1. Adjusting the water level by turning the pump on or off to control the water inflow as needed;
2. Monitoring all potential errors and, if any are found, issuing corrections or fixing requests;
3. Providing the boiler operators with the \"best estimates\" for different parameters;
4. Accepting the correct command from any operator. The cause-effect graph of the system is shown in Figure 7. The meanings of the nodes are shown in Table 2. \begin{table}
\begin{tabular}{c c} \hline \hline
**Number** & **Description** \\ \hline C221 & Externally initiated \\ C220 & Internally initiated \\ C203 & Instrumentation-system-initiated \\ C202 & Operator-initiated \\ C201 & Bad startup \\ C200 & Operational failure \\ C198 & Confirms the “shutdown” message \\ C197 & Confirms the keystroke entry \\ C196 & Multiple-pump failure (more than one) \\ C195 & Water level meter failure during startup \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Illustration table of the cause–effect diagram. The logical variables assigned to the causes of the boiler system are shown in Table 3.  
This leads to a Boolean expression that is expressed as follows:  
\[f=(\ AB+C+D+E)(D+E+F+G+H)+(D+E+F+G+H)+(I+J) \tag{13}\]  
The order of the variables is determined to be \(A<B<C<D<E<F<G<H<I<J\), and the simplified ROBDD can be obtained as shown in Figure 8. It is clear from Figure 8 that a ROBDD can effectively remove the cause nodes with no impact on the test. \begin{table}
\begin{tabular}{c c} \hline
**Number** & **Variable Name** \\ \hline C180 & A \\ C181 & B \\ C190 & C \\ C192 & D \\ C193 & E \\ C194 & F \\ C195 & G \\ C196 & H \\ C197 & I \\ C198 & J \\ \hline \end{tabular}
\end{table} 
Table 3: Logical variables assigned to each cause in the system. Figure 7: Cause–effect graph of the boiler system. Test cases were generated using the improved PSO algorithm, and the results are shown in Table 4. The parameters of the improved particle swarm algorithm that we used were set as follows: the number of particles (N) was set to 100, \(c_{1}\) and \(c_{2}\) were both set to 1.2, the initial value of \(\omega\) was 0.8, and the maximum number of iterations (\(N_{g}\)) was 1000. The weight (\(\omega\)) was updated for each iteration via Equation (11), and \(1R_{1}\) was taken as 0.001 and \(1R_{2}\) was taken as 0.002. To illustrate the advantages of the algorithm in this paper, comparison experiments were conducted with several non-norm-based methods for the generation of test cases, which included some of the more classical methods based on greedy algorithms and heuristics. The number of test cases obtained from the experiments in this paper was compared with the results obtained in other papers, including for the Jenny [33], IPOG [34], PICT [35], ABCS [36], GSTG [37], and TMWOA [38]. The comparison results are shown in Table 5.  
In general, defects are often caused by one input or a combination of two inputs, and the principles for choosing a better combination for tests are thus as follows: the level