核心概念
本文提出了一種通過識別和壓縮重複子圖來減小有限自動機尺寸的新方法,這些子圖被視為單一程序的調用,並使用寄存器存儲調用上下文,從而實現自動機的簡化。
研究背景
有限自動機在諸多領域都有廣泛應用,例如網絡入侵檢測、正則表達式匹配等。然而,自動機的尺寸往往會隨著功能的增加而急劇增長,導致狀態空間爆炸問題,成為性能瓶頸。因此,如何有效地縮減自動機尺寸一直是研究的熱點。
本文貢獻
本文提出了一種基於程序查找的自動機尺寸縮減新範式。該方法的核心思想是將自動機中的重複子圖視為單一程序的多次調用,並使用寄存器來存儲調用上下文,從而實現自動機的簡化。
方法概述
識別相似子圖: 首先,通過計算自動機的自乘積,尋找其中代表相似子圖的部分。
構建程序: 根據相似子圖構建程序,並使用寄存器存儲調用上下文信息。
替換調用: 將原始自動機中所有對應程序調用的子圖替換為對應程序的調用。
實驗結果
實驗結果表明,該方法在實際應用中取得了顯著效果。在 FPGA 加速模式匹配的背景下,該方法在使用現有最先進方法最小化的自動機上實現了高達 70% 的尺寸縮減。
總結
本文提出的基於程序查找的自動機尺寸縮減方法為解決自動機狀態空間爆炸問題提供了一種新思路。該方法具有良好的實用價值,尤其適用於 FPGA 加速模式匹配等對自動機尺寸要求較高的應用場景。
統計資料
在基於 FPGA 的網絡入侵檢測系統中,自動機的尺寸縮減高達 55.5% 的狀態數和 60.3% 的轉移數。
在其他基準測試中,狀態數平均減少了 51.0%,轉移數平均減少了 34.7%。
最大的狀態數縮減率為 68.7%,最大的轉移數縮減率為 73.8%。