日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

自動(dòng)機(jī)構(gòu)建方法、裝置及電子設(shè)備與流程

文檔序號(hào):39720213發(fā)布日期:2024-10-22 13:10閱讀:2來源:國知局
自動(dòng)機(jī)構(gòu)建方法、裝置及電子設(shè)備與流程

本技術(shù)涉及計(jì)算機(jī),具體涉及一種自動(dòng)機(jī)構(gòu)建方法、裝置及電子設(shè)備。


背景技術(shù):

1、在計(jì)算機(jī)技術(shù)應(yīng)用領(lǐng)域,網(wǎng)絡(luò)流量深度檢測、防火墻、入侵檢測及入侵防御中,對(duì)正則表達(dá)式匹配的應(yīng)用較為廣泛,而用于實(shí)現(xiàn)正則表達(dá)式匹配的主流方式是自動(dòng)機(jī)技術(shù)。目前,用于實(shí)現(xiàn)正則表達(dá)式匹配的自動(dòng)機(jī)的實(shí)現(xiàn)方式,是依據(jù)正則文法先將正則表達(dá)式解析為抽象語法樹,再根據(jù)抽象語法樹構(gòu)造nfa(non-deterministic?finite?automata,非確定型有窮自動(dòng)機(jī)),最后根據(jù)nfa構(gòu)造dfa(deterministic?finite?automata,確定型有窮自動(dòng)機(jī)),用于正則表達(dá)式的匹配。

2、現(xiàn)有的dfa構(gòu)造方式,針對(duì)正則表達(dá)式中的有界重復(fù)語法進(jìn)行nfa展開,并進(jìn)一步將展開后的nfa進(jìn)行dfa構(gòu)造時(shí),會(huì)導(dǎo)致dfa狀態(tài)數(shù)的指數(shù)級(jí)爆炸,進(jìn)而會(huì)導(dǎo)致dfa運(yùn)行時(shí)的性能大幅降低,急劇消耗可用內(nèi)存等算力資源。


技術(shù)實(shí)現(xiàn)思路

1、本技術(shù)實(shí)施例提供一種自動(dòng)機(jī)構(gòu)建方法、裝置及電子設(shè)備,用以解決現(xiàn)有的構(gòu)造方式在根據(jù)nfa構(gòu)造dfa時(shí),會(huì)導(dǎo)致dfa狀態(tài)數(shù)的指數(shù)級(jí)爆炸,影響dfa運(yùn)行時(shí)的性能,急劇消耗算力資源的技術(shù)問題。

2、第一方面,本技術(shù)實(shí)施例提供一種自動(dòng)機(jī)構(gòu)建方法,包括:

3、獲取待處理的正則表達(dá)式集合,并基于所述正則表達(dá)式集合生成抽象語法樹;

4、將所述抽象語法樹轉(zhuǎn)換成全局nfa,并確定所述全局nfa的有界重復(fù)節(jié)點(diǎn);

5、基于所述全局nfa構(gòu)建全局dfa,并基于所述有界重復(fù)節(jié)點(diǎn)構(gòu)建所述全局dfa的子自動(dòng)機(jī)。

6、在一個(gè)實(shí)施例中,所述基于所述全局nfa構(gòu)建全局dfa,并基于所述有界重復(fù)節(jié)點(diǎn)構(gòu)建所述全局dfa的子自動(dòng)機(jī),包括:

7、采用預(yù)設(shè)的第一構(gòu)造算法對(duì)所述全局nfa進(jìn)行轉(zhuǎn)換,構(gòu)建全局dfa;

8、獲取所述有界重復(fù)節(jié)點(diǎn)在所述全局dfa中對(duì)應(yīng)的目標(biāo)重復(fù)節(jié)點(diǎn);

9、獲取所述目標(biāo)重復(fù)節(jié)點(diǎn)的語法復(fù)雜度,并基于所述語法復(fù)雜度,采用預(yù)設(shè)的第二構(gòu)造算法將所述目標(biāo)重復(fù)節(jié)點(diǎn)構(gòu)建為所述全局dfa的子自動(dòng)機(jī)。

10、在一個(gè)實(shí)施例中,所述基于所述語法復(fù)雜度,采用預(yù)設(shè)的第二構(gòu)造算法將所述目標(biāo)重復(fù)節(jié)點(diǎn)構(gòu)建為所述全局dfa的子自動(dòng)機(jī),包括:

11、采用所述第二構(gòu)造算法,將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的語法樹構(gòu)造為子nfa;

12、確定任一所述目標(biāo)重復(fù)節(jié)點(diǎn)中是否存在多個(gè)子nfa,若是,對(duì)所述目標(biāo)重復(fù)節(jié)點(diǎn)中的多個(gè)子nfa進(jìn)行合并;

13、基于所述語法復(fù)雜度,確定所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa的狀態(tài)數(shù)量;

14、根據(jù)所述狀態(tài)數(shù)量構(gòu)建所述全局dfa的子自動(dòng)機(jī)。

15、在一個(gè)實(shí)施例中,所述子自動(dòng)機(jī)包括子dfa、加速型子dfa和加速型子nfa;所述根據(jù)所述狀態(tài)數(shù)量構(gòu)建所述全局dfa的子自動(dòng)機(jī),包括:

16、若所述狀態(tài)數(shù)量大于第一預(yù)設(shè)閾值,將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為子dfa;

17、若所述狀態(tài)數(shù)量小于或等于第一預(yù)設(shè)閾值,且大于第二預(yù)設(shè)閾值,將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為加速型子nfa;所述第一預(yù)設(shè)閾值大于所述第二預(yù)設(shè)閾值;

18、若所述狀態(tài)數(shù)量小于或等于第二預(yù)設(shè)閾值,對(duì)所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa進(jìn)行dfa轉(zhuǎn)化分析,以將所述子nfa轉(zhuǎn)換為加速型子dfa或加速型子nfa

19、在一個(gè)實(shí)施例中,所述對(duì)所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa進(jìn)行dfa轉(zhuǎn)化分析,以將所述子nfa轉(zhuǎn)換為加速型子dfa或加速型子nfa,包括:

20、對(duì)所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa進(jìn)行dfa轉(zhuǎn)化分析,以確定所述子nfa進(jìn)行dfa轉(zhuǎn)化后的目標(biāo)狀態(tài)數(shù)量;

21、若所述目標(biāo)狀態(tài)數(shù)量小于或等于第二預(yù)設(shè)閾值,則將所述子nfa轉(zhuǎn)換為加速型子dfa;

22、若所述目標(biāo)狀態(tài)數(shù)量大于第二預(yù)設(shè)閾值,則將所述子nfa轉(zhuǎn)換為加速型子nfa。

23、在一個(gè)實(shí)施例中,所述將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為加速型子nfa,包括:

24、獲取所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa的狀態(tài)參數(shù);所述狀態(tài)參數(shù)包括狀態(tài)集合、狀態(tài)轉(zhuǎn)移字符、接受狀態(tài)和狀態(tài)轉(zhuǎn)移表;

25、對(duì)所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa的限制狀態(tài)數(shù)進(jìn)行字節(jié)劃分,并基于所述狀態(tài)參數(shù)為劃分后的每個(gè)字節(jié)建立后繼狀態(tài)掩碼集;

26、基于所述后繼狀態(tài)掩碼集將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為加速型子nfa。

27、在一個(gè)實(shí)施例中,所述將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為加速型子dfa,包括:

28、將所述目標(biāo)重復(fù)節(jié)點(diǎn)中的子nfa轉(zhuǎn)換為子dfa;

29、獲取所述子dfa的字母表,以及所述子dfa的查詢指令的輸入向量;所述輸入向量包括源向量和控制碼;

30、基于所述輸入向量構(gòu)建所述字母表的源碼查詢掩碼表;

31、根據(jù)所述源碼查詢掩碼表,將所述子dfa轉(zhuǎn)換為加速型子dfa。

32、在一個(gè)實(shí)施例中,所述基于所述全局nfa構(gòu)建全局確定型有窮自動(dòng)機(jī)dfa,并基于所述有界重復(fù)節(jié)點(diǎn)構(gòu)建所述全局dfa的子自動(dòng)機(jī)之后,還包括:

33、分析所述子自動(dòng)機(jī)能匹配的第i個(gè)正則表達(dá)式在所述有界重復(fù)節(jié)點(diǎn)的后繼節(jié)點(diǎn)中被連續(xù)匹配的第一匹配次數(shù);

34、當(dāng)所述子自動(dòng)機(jī)完成預(yù)設(shè)次數(shù)第i個(gè)子正則表達(dá)式的最大次數(shù)命中后,計(jì)算所述預(yù)設(shè)次數(shù)與所述第一匹配次數(shù)的差值;

35、若所述差值在預(yù)設(shè)的取值范圍內(nèi),獲取所述差值對(duì)應(yīng)的偏移量,并使用所述偏移量對(duì)應(yīng)位置的輸入語料字符進(jìn)行所述有界重復(fù)節(jié)點(diǎn)后繼的匹配;

36、若所述差值不在預(yù)設(shè)的取值范圍內(nèi),則基于所述取值范圍計(jì)算目標(biāo)值;其中,所述目標(biāo)值是取值集合中的最大值;所述預(yù)設(shè)次數(shù)與所述取值集合中的任一取值的差值,在所述取值范圍內(nèi);

37、獲取所述目標(biāo)值對(duì)應(yīng)的偏移量,并使用所述偏移量,并使用所述偏移量對(duì)應(yīng)位置的輸入語料字符進(jìn)行所述有界重復(fù)節(jié)點(diǎn)后繼的匹配。

38、第二方面,本技術(shù)實(shí)施例提供一種自動(dòng)機(jī)構(gòu)建裝置,包括:

39、第一構(gòu)建模塊,用于獲取待處理的正則表達(dá)式集合,并基于所述正則表達(dá)式集合生成抽象語法樹;

40、第二構(gòu)建模塊,用于將所述抽象語法樹轉(zhuǎn)換成全局機(jī)nfa,并確定所述全局nfa的有界重復(fù)節(jié)點(diǎn);

41、第三構(gòu)建模塊,用于基于所述全局nfa構(gòu)建全局dfa,并基于所述有界重復(fù)節(jié)點(diǎn)構(gòu)建所述全局dfa的子自動(dòng)機(jī)。

42、第三方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)第一方面所述的自動(dòng)機(jī)構(gòu)建方法的步驟。

43、第四方面,本技術(shù)實(shí)施例提供一種非暫態(tài)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的自動(dòng)機(jī)構(gòu)建方法的步驟。

44、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的自動(dòng)機(jī)構(gòu)建方法的步驟。

45、本技術(shù)實(shí)施例提供的自動(dòng)機(jī)構(gòu)建方法、裝置及電子設(shè)備,通過構(gòu)建兩層結(jié)構(gòu)的混合dfa,將正則表達(dá)式中的有界重復(fù)部分對(duì)應(yīng)的有界重復(fù)節(jié)點(diǎn)構(gòu)建為全局dfa下的子自動(dòng)機(jī),有效規(guī)避了在對(duì)nfa進(jìn)行確定化過程中,dfa狀態(tài)數(shù)的指數(shù)爆炸,實(shí)現(xiàn)了全局dfa狀態(tài)數(shù)的壓縮,提升了dfa運(yùn)行時(shí)的性能,減少了算力資源的消耗。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1