# Development of Fingerprint Identification Based on Device Flow in Industrial Control System
## 4 Simulation Experiments
### Experimental Results and Performance Analysis  
#### 4.3.1 Performance Analysis of Diagonal Jump Algorithm  
Figure (a)a shows the average time required for different algorithms to update the edit distance matrix with multiple error thresholds \(\tau\). At this time, the diagonal traversal algorithm has a longer average execution time than dynamic programming using vertical traversal due to the memory access overhead of conditional statements and reordering. In the experiments, the diagonal jump algorithm execution time increases as \(\tau\) increases. When \(\tau>4\), the execution time exceeds the time of vertical traversal, which means that when the threshold \(\tau\) is large, the proposed method has no improvement over vertical traversal. Therefore, the proposed method can help reduce the execution time when the similarity function is the edit distance and the error threshold \(\tau\) is small. Compared with vertical and diagonal traversal, when \(\tau=1\), the execution time is reduced by 44.3% and 52.3%, respectively. Figure (b)b illustrates the average execution time when the similarity function is generalized edit distance. As is the case with the ordinary edit distance metric, the diagonal jump execution time increases as \(\tau\) increases. When \(\tau<5\), the average execution time of the proposed diagonal skipping method is shorter than that of vertical traversal, which means that in this generalized edit distance metric, many steps can be skipped when \(\tau\) is small in computation. Diagonal traversal only increased the average execution time by 11.5% over vertical traversal. When \(\tau=1\), the execution time of vertical and diagonal traversal is reduced by 55.7% and 60.3%, respectively. Further reductions in execution time are expected due to the smaller overhead of conditional statements and reordering memory accesses compared to evaluations using the edit distance metric. Figure 10 depicts the rate at which the diagonal jump algorithm saves computational operations. The experiment counts two operations that save computational overhead when updating \(\mathrm{D}[\alpha][\beta]\). The first is that when \(\mathrm{skip\_bitmap}(\beta-1)=1\), the insertion operation will be skipped, and \(\mathrm{D}[\alpha][\beta]\) consists of \(\mathrm{D}[\alpha-1][\beta]\) and \(\mathrm{D}[\alpha-1][\beta-1]\) renew. The second \begin{table}
\begin{tabular}{c c} \hline \hline
**Name** & **Specifications** \\ \hline CPU & AMD Ryzen 7 4800H with Radeon Graphics \\ \hline GPU & AMD Radeon(TM) Graphics \\ \hline DRAM & 16 GB \\ \hline SSD & 477 GB \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Experimental environment configuration. Figure 9: Edit distance average execution time. is when skip_bitmap(\(\beta\)) = 1, the cell value after the column exceeds the error threshold, so no update is required. When \(\tau\) = 1, 70.9-84.6% of the step calculation is skipped. As \(\tau\) increases, the proportion decreases rapidly, and with different similarity functions, the decrement rate may be different. When \(\tau\) = 8, only 3.7-11% of step size computations can be skipped, where the overhead of conditional statements and reordering memory accesses increases the average execution time over vertical and diagonal traversals. In fuzzy pattern matching, original sequence sharding, uniform sharding and optimal sharding are required. Uniform sharding has high efficiency, but the accuracy is not as good as optimal sharding. Reasonable selection of sharding algorithm can greatly optimize the time cost of matching. Therefore, this paper trains the SVM model for each device fingerprint to predict the fragmentation method of the query sequence. Figure 11 depicts boxplots of accuracy for building predictive models for different fingerprints under different industrial control protocols. For the Modbus protocol, most of the prediction accuracy is between 0.75 and 0.85, and a few prediction model accuracy is between 0.5 and 0.6.