国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種可自調(diào)參數(shù)的串匹配方法和系統(tǒng)的制作方法

      文檔序號:6471239閱讀:182來源:國知局
      專利名稱:一種可自調(diào)參數(shù)的串匹配方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及模式串匹配領(lǐng)域,尤其涉及一種可自調(diào)參數(shù)的串匹配方法和系統(tǒng)。
      背景技術(shù)
      模式串匹配是一個經(jīng)典問題,數(shù)十年來已經(jīng)有上百個算法被陸續(xù)提出。研究者已 經(jīng)清楚的認識到影響串匹配算法的因素有很多,不同的算法在不同的條件下性能表現(xiàn)也 有很大的差異。 典型的模式串匹配的應(yīng)用是將文本T輸入匹配自動機,匹配自動機輸出結(jié)果R。
      其中,常用的符號定義如下文本T,長度為n;模式串集合P,個數(shù)為r,最小長度 為m,字符集為E ;結(jié)果集合R,個數(shù)為K,每個結(jié)果為(id, pos)形式,其中,id為模式串的 唯一標識,pos為匹配成功的模式串位置。 可以看出,串匹配算法的應(yīng)用環(huán)境有模式串集合本身、運行機器、輸入文本等幾個 方面,它們都對算法的性能有影響,下面分別加以介紹。(i)模式串本身 已有的研究都表明,對串匹配算法性能影響最主要的是模式串的個數(shù)r、模式串 的最小長度m、字符集大小I E I等。除此之外,字符的分布、模式串的長度分布等也對算法 性能有影響。三個主要的影響因素與性能的關(guān)系為 A、匹配時間與I E I反相關(guān),匹配時間隨著I E I的增大而增大;
      B、匹配時間與r正相關(guān),匹配時間隨著r的增大而增大;
      C、匹配時間與m反相關(guān),匹配時間隨著m的增大而減小。 很自然的,研究人員對不同的算法在上述幾個影響因素不同變化情況下的性能表 現(xiàn)進行了細致的研究,并給出了一些性能圖。
      (2)運行機器環(huán)境 在運行機器的環(huán)境中,影響串匹配算法性能的因素主要有CPU主頻、Cache緩存 (包括一級緩存L1 Cache和二級緩存L2 Cache)大小、TLB表大小、總線速度等。其中, Cache緩存大小是一個非常關(guān)鍵的因素。 在影響算法性能的諸多因素中,除了算法本身的時間復(fù)雜度,存儲空間和算法的 Cache性能也是一個非常重要的影響因素,這一點在串匹配算法中尤為明顯。這是因為自 動機是串匹配算法(例如AC(Aho-Corasick)算法、SB0M(Set Backword Oracle Matching) 算法)主要的數(shù)據(jù)結(jié)構(gòu),當模式串規(guī)模較小的時候,算法的存儲空間和Cache緩存的大小相 當,因而能夠保證自動機的大部分數(shù)據(jù)結(jié)構(gòu)常駐于Cache之中,從而保持了較高的Cache命 中率;隨著模式串規(guī)模的增大,自動機的存儲空間也越來越大,常常是Cache大小的幾十倍 乃至上百倍,Cache中能夠緩沖的數(shù)據(jù)結(jié)構(gòu)只占自動機的很小一部分,大部分的數(shù)據(jù)訪問都 需要從內(nèi)存中加載,由于CPU對內(nèi)存和Cache的訪問速度相差一個數(shù)量級,這就極大延遲了 指令對數(shù)據(jù)的訪問時間,降低了算法的匹配速度。此外,隨著微電子工藝的發(fā)展,CPU和內(nèi)存 之間的性能差異越來越大,Cache命中率的小幅度降低都可能導致算法速度的大幅度下降。
      在對三種經(jīng)典串匹配算法(AC、麗、SB0M)的Cache命中缺失率(CacheMiss Rate) 與模式串個數(shù)的研究中可以看出隨著模式串規(guī)模的增加,串匹配算法的Cache Miss Rate 也急劇增加。更進一步,對于基于自動機的算法(AC、SBOM)來說,二級Cache是影響算法 性能的關(guān)鍵;而對于基于查表的算法(麗,Wu-Manber)來說,一級Cache則占據(jù)主導因素。 這是因為基于自動機的算法耗用的存儲空間很大,往往超出二級Cache的大小,因而二級 Cache對算法的影響比一級Cache更為明顯;基于查表的算法則不然,其散列表通??梢酝?全載入二級Cache,但仍然大于一級Cache的大小,由于對散列表訪問的隨機性,這類算法 對一級Cache的大小非常敏感。 綜上所述可以得出串匹配算法的存儲空間和Cache局部性是影響串匹配算法性 能的主導因素。這一點對于大規(guī)模模式串集合尤其明顯。
      (3)輸入文本 如果從匹配算法的原理角度理解,輸入文本對串匹配算法性能的影響主要來源于 算法的跳躍次數(shù)、匹配過程中可能命中的次數(shù)、訪存的次數(shù)等,但這些因素是一些隱形的, 它們本質(zhì)上應(yīng)該與輸入文本上的特征相關(guān),這些特征主要包含文本中字符的分布情況、模 式串命中個數(shù)等。 在使用多組真實模式串集合和真實網(wǎng)絡(luò)數(shù)據(jù)進行的測試中可以看出串匹配算法
      在輸入文本數(shù)據(jù)上的匹配速度是有波動的。進一步分析可以看出這種速度的波動很大程 度上與模式串在文本中的命中個數(shù)是相關(guān)的,命中個數(shù)少,其速度就快;命中個數(shù)多,其速
      度就慢。因此,可以使用"命中密度"的概念來定義給定的模式串集合在一個輸入文本數(shù)據(jù) 上的命中情況。定義如下給定模式串集合P和文本T,命中密度P是指單位文本長度內(nèi) 命中的模式串次數(shù)。P =F(P,T)。具體來說,因為這種波動是由模式串集合和文本共同作 用的現(xiàn)象,因此,"命中密度"的概念還可以在模式串和文本兩個維度上分別定義為"文本上 的命中密度"和"模式串上的命中密度"。 —些已有的研究結(jié)果表明串匹配算法的時間與文本命中密度成反關(guān)系,隨著命 中密度的增大而增大;同時,不同的串匹配算法對文本命中密度的敏感程度不同。
      在串匹配算法應(yīng)用的系統(tǒng)中,例如網(wǎng)絡(luò)異常事件檢測系統(tǒng),網(wǎng)絡(luò)病毒檢測系統(tǒng) 等,算法的選擇是在系統(tǒng)設(shè)計之初確定的,然后就固化在系統(tǒng)中不再更改。即使更改,通常 是需要系統(tǒng)停止運行,然后進行算法更新(代碼的更新),然后再重新啟動系統(tǒng)。這對于在 線運行的系統(tǒng)是不可接受的。例如一個千兆流量下的在線內(nèi)容檢測系統(tǒng),系統(tǒng)需要檢測的 數(shù)據(jù)每秒至少800Mbps,如果系統(tǒng)停止運行,即使是幾秒的時間,也將會有幾個G的流量沒 有檢測,造成的損失和可能造成的危害是不可估計的。

      發(fā)明內(nèi)容
      為了解決上述的技術(shù)問題,提供了一種可自調(diào)參數(shù)的串匹配方法和系統(tǒng),其目的 在于,提供自動感知環(huán)境變化而自動調(diào)節(jié)算法參數(shù)的串匹配方法,它可以在應(yīng)用系統(tǒng)運行 過程中實時的監(jiān)測應(yīng)用環(huán)境的變化,實時的自動調(diào)整算法的參數(shù),使得應(yīng)用系統(tǒng)的整體性 能達到最優(yōu)。 本發(fā)明提供了一種可自調(diào)參數(shù)的串匹配方法,包括 步驟l,實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標,獲取該特征指標的變化狀況; 步驟2,依據(jù)模式串匹配算法應(yīng)用環(huán)境的特征指標的變化狀況和調(diào)整策略決定是 否調(diào)整算法參數(shù),如果是,執(zhí)行步驟3,否則繼續(xù)執(zhí)行步驟1 ; 步驟3,重新計算算法參數(shù),依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指 標的值對算法進行更新。 模式串匹配算法應(yīng)用環(huán)境的特征指標包括模式串集合、文本數(shù)據(jù)、模式串匹配結(jié)
      果的統(tǒng)計信息、和/或機器環(huán)境。
      步驟1包括 步驟ll,實時監(jiān)測模式串集合,獲取模式串集合的變化狀況;和/或 步驟12,實時監(jiān)測機器環(huán)境,獲取機器環(huán)境的變化狀況;和/或 步驟13,實時監(jiān)測文本數(shù)據(jù)和模式串集合經(jīng)模式串匹配后的模式串匹配結(jié)果的統(tǒng)
      計信息。
      步驟3包括 步驟31 ,重新計算算法參數(shù); 步驟32,依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指標的值對算法進行 預(yù)處理; 步驟33,對算法進行在線更新。 步驟1中,采用主動方式或者被動方式實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征 指標。 調(diào)整策略通過機器學習自動生成或者人工設(shè)置。
      本發(fā)明提供了一種可自調(diào)參數(shù)的串匹配系統(tǒng),包括 特征指標監(jiān)測模塊,用于實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標,獲取該 特征指標的變化狀況; 算法參數(shù)調(diào)整判決模塊,用于依據(jù)模式串匹配算法應(yīng)用環(huán)境的特征指標的變化狀 況和調(diào)整策略決定是否調(diào)整算法參數(shù); 算法更新模塊,用于重新計算算法參數(shù),依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用 環(huán)境的特征指標的值對算法進行更新。 模式串匹配算法應(yīng)用環(huán)境的特征指標包括模式串集合、文本數(shù)據(jù)、模式串匹配結(jié) 果的統(tǒng)計信息、和/或機器環(huán)境。 特征指標監(jiān)測模塊用于實時監(jiān)測模式串集合,獲取模式串集合的變化狀況;和/ 或?qū)崟r監(jiān)測機器環(huán)境,獲取機器環(huán)境的變化狀況;實時監(jiān)測文本數(shù)據(jù)和模式串集合經(jīng)模式 串匹配后的模式串匹配結(jié)果的統(tǒng)計信息。 算法更新模塊,還用于在進行算法更新之前,依據(jù)該算法參數(shù)和模式串匹配算法 應(yīng)用環(huán)境的特征指標的值對算法進行預(yù)處理。 特征指標監(jiān)測模塊,采用主動方式或者被動方式實時監(jiān)測模式串匹配算法應(yīng)用環(huán) 境的特征指標。 調(diào)整策略通過機器學習自動生成或者人工設(shè)置。 本發(fā)明能夠解決在線系統(tǒng)中算法的自動更新問題,在不需要人工干預(yù)的情況下, 可以自動根據(jù)環(huán)境的變化而調(diào)整自身的參數(shù),并在系統(tǒng)可支持的情況下自動更新,使在線
      6系統(tǒng)一直保持高效的運行。


      圖1是可自調(diào)節(jié)參數(shù)的串匹配方法的原理結(jié)構(gòu)圖; 圖2a是WuManber算法的字符±央轉(zhuǎn)移表示意圖,其中bomb和barbarian在Wu Manber算法中的不良塊字符轉(zhuǎn)移距離,b = 2 ; 圖2b是WuManber算法的字符±央轉(zhuǎn)移表示意圖,其中bomb和barbarian在Wu Manber算法中的不良塊字符轉(zhuǎn)移距離,b = 3 ; 圖3是WuManber算法的使用散列表劃分模式串集合示意圖;
      圖4是應(yīng)用可自調(diào)節(jié)參數(shù)串匹配方法的系統(tǒng)的結(jié)構(gòu)示意圖;
      圖5是應(yīng)用可自調(diào)節(jié)參數(shù)串匹配方法的系統(tǒng)的流程圖。
      具體實施例方式
      本發(fā)明提供了一種可自動感知環(huán)境并具有自動調(diào)優(yōu)參數(shù)功能的串匹配方法,見附 圖l,它包含如下步驟 步驟l),實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的各項特征指標,具體包括模式串 集合的個數(shù),模式串集合中模式串的最小長度,最大長度,長度分布頻率,機器的可用內(nèi)存 大小,機器的可用Cache大小,文本數(shù)據(jù)輸入的速度,單位時間內(nèi)匹配結(jié)果的個數(shù),匹配的 模式串的分布等; 步驟2),根據(jù)當前指標值以及指標的變化值進行算法參數(shù)調(diào)整的決策,決定是否 進行算法參數(shù)的調(diào)整; 步驟3),當需要調(diào)整算法時,重新計算算法的參數(shù),然后轉(zhuǎn)到步驟4);否則,不需 要重新計算,轉(zhuǎn)到步驟l); 步驟4),根據(jù)新的參數(shù)值和新的特征指標值對算法進行初始化,進行在線算法的 更新,實現(xiàn)算法參數(shù)的自動調(diào)整。 上述本發(fā)明的步驟1)進一步包含如下的步驟 實時監(jiān)測模式串集合的變化,一旦有改變,則重新計算模式串集合的特征指標 值; 實時監(jiān)測運行機器的相應(yīng)指標變化情況; 實時接收模式串匹配結(jié)果的統(tǒng)計信息(反饋信息); 本發(fā)明提供了一個使用上述可自調(diào)節(jié)參數(shù)的串匹配方法的系統(tǒng),見附圖4,它包含 如下的部件 1)自調(diào)節(jié)參數(shù)的決策部件使用上述可自調(diào)節(jié)參數(shù)的方法,根據(jù)監(jiān)測的外部環(huán)境 指標的改變和預(yù)先設(shè)定的參數(shù)調(diào)整策略規(guī)則,進行參數(shù)調(diào)整的決策,當需要進行參數(shù)調(diào)整 時,重新對參數(shù)的值進行計算; 2)串匹配算法的預(yù)處理部件根據(jù)當前算法的參數(shù),結(jié)合當前模式串的更改情 況,對串匹配算法進行預(yù)處理; 3)串匹配算法的掃描匹配部件讀取外部輸入的網(wǎng)絡(luò)流數(shù)據(jù),對數(shù)據(jù)進行掃描匹 配,將匹配的結(jié)果存儲到外部文件中;同時,輸入的數(shù)據(jù)也將送入自調(diào)節(jié)參數(shù)的決策部件,作為一種被監(jiān)測的環(huán)境指標,參與參數(shù)調(diào)節(jié)策略的計算和調(diào)整。 4)結(jié)果統(tǒng)計部件對掃描匹配的結(jié)果按照需要進行統(tǒng)計,并將統(tǒng)計結(jié)果存儲到外 部文件中。結(jié)果統(tǒng)計的信息將被讀取到自調(diào)節(jié)參數(shù)的決策部件,作為一種指標,參與參數(shù)調(diào) 節(jié)策略的計算和調(diào)整。
      本發(fā)明中,可自調(diào)節(jié)參數(shù)的串匹配方法的具體實施包括如下步驟
      1)在應(yīng)用系統(tǒng)運行過程中,實時監(jiān)測環(huán)境的各項特征指標; 為了保證實時性,監(jiān)測行為可以使用主動和被動兩種方式。主動方式是指系統(tǒng)根 據(jù)運行情況設(shè)置一個時間間隔,監(jiān)測模塊使用定時器在指定時間去讀取相應(yīng)的指標特征; 被動方式是指各個被監(jiān)測的主體在特征有變化時,主動通知監(jiān)測模塊??紤]到被監(jiān)測主體 和特征的多樣性,建議使用主動方式。
      監(jiān)測的環(huán)境及其特征包括 模式串集合模式串的個數(shù),模式串的長度分布及其最小長度等; 文本數(shù)據(jù)文本到來的速度,單位長度內(nèi)字符集中的字符出現(xiàn)的概率等;此外,在
      文本上匹配的特征是指給定的模式串集合在輸入的文本數(shù)據(jù)上進行匹配后所表現(xiàn)出來的
      一些特點,它是通過匹配結(jié)果的統(tǒng)計信息來獲得的,主要包括單位文本數(shù)據(jù)中匹配的模式
      串個數(shù),指定模式串匹配的個數(shù)等; 機器環(huán)境CPU主頻、CPU的利用率、LI Cache大小、L2 Cache大小、內(nèi)存大小、算 法當前可用緩存大小等。 2)使用調(diào)整策略決定是否進行算法的更新; 調(diào)整策略是針對應(yīng)用系統(tǒng)中使用的模式串匹配算法的性能特點而設(shè)計的一系列 規(guī)則,規(guī)則具有優(yōu)先級,依次使用這些規(guī)則可以根據(jù)監(jiān)測到的環(huán)境指標值決定當前是否要 調(diào)整算法的參數(shù)。不同算法的調(diào)整策略是不一樣的。下面以例子說明調(diào)整策略的規(guī)則生成 過程、書寫方法及其具體實施過程。 調(diào)整策略的生成調(diào)整策略可以有兩種辦法產(chǎn)生,一是有通過機器學習的方法自 動生成,具體方法可以使用決策樹、DT等;二是由領(lǐng)域?qū)<医o出。機器學習的方法通常用于 對不明確的規(guī)則的自動發(fā)現(xiàn),它具有一定的智能性,但是生成的規(guī)則粒度較粗,往往需要人 工校驗后才可應(yīng)用到實際系統(tǒng)中。而領(lǐng)域?qū)<沂潜绢I(lǐng)域中經(jīng)驗豐富的工作者,它們通過大 量的實驗和人工經(jīng)驗,可以給出非常精準的規(guī)則,滿足實際系統(tǒng)的需求。例如,針對模式串 本身的特征對串匹配算法性能的影響,可以總結(jié)如下 模式串的個數(shù)在3個區(qū)域中時,串匹配算法的性能表現(xiàn)差異不明顯,其參數(shù)也不 需要調(diào)整,3個區(qū)域的界限是5000和50000 ;模式串的長度(最小長度)在2個區(qū)域時,串 匹配算法的性能差異不明顯,其參數(shù)也不需要調(diào)整,2個區(qū)域的界限是20個字符;當命中率 不超過1%時,串匹配算法的性能差異不明顯,算法參數(shù)不需要調(diào)整。 上述幾個示例給出的是簡單的規(guī)則,每條規(guī)則只針對一個影響因素。更復(fù)雜的調(diào) 整規(guī)則是與多個因素相關(guān)的。例如串匹配個數(shù)在5000以內(nèi)并且命中率超多10%,需要調(diào) 整參數(shù);模式串長度大于20并且可用內(nèi)存/2大于模式串長度與個數(shù)的乘積時,需要調(diào)整算 法參數(shù)。 調(diào)整策略規(guī)則的書寫調(diào)整策略的規(guī)則一般以配置文件的方式存儲,在系統(tǒng)開始 運行時,讀入系統(tǒng)內(nèi)。規(guī)則文件每行一條規(guī)則,每條規(guī)則的格式為
      8
      優(yōu)先權(quán)號條件動作[ELSE動作] 格式分為兩個部分,第一部分為優(yōu)先權(quán)號,越小的優(yōu)先權(quán)越高,相等情況下按照排 列順序進行判斷;第二部分為規(guī)則本身,以條件和動作的形式給出。其中,條件是以邏輯表 達式方式給出,取值為"真"或者"假";動作有兩種,"change"表示調(diào)整參數(shù),"no-change" 表示不調(diào)整。條件后面的動作表示條件取值為"真"時需要執(zhí)行的。規(guī)則的動作部分最后 有一個可選項,表示當條件部分取值為"假"時執(zhí)行的動作,它一定和前面的動作不相同。 如果規(guī)則的最后沒有這個可選項,而前面的條件部分取值為"假",則需要繼續(xù)判斷此優(yōu) 先級后面的規(guī)則和后續(xù)優(yōu)先級的規(guī)則,直到全部規(guī)則判斷結(jié)束。判斷初始時,動作默認為 "no-change",當動作判斷為"change"時,可以立刻跳出此步驟,進入到下一個步驟中。規(guī) 則書寫的一個示例如下 規(guī)貝Ul:l|now-M-last-M| < 50MB no-change 規(guī)則2:2 0 < = last-r < = 5000&&1 < = now_r < = 5000 | 5000 < = last-r < = 50000&&5000 < = now-r < = 50000 | last-r > 50000&&now_r > 50000 no-change EL SE change 規(guī)則3:3 last-m > 20&&now_m > 20 && m*r < M/2 no-changeELSE change 規(guī)貝U 4 :3 last-m < = 20&&now-m < = 20 no-change 規(guī)則5 :4 last_key_mit < 1% &&now_key_mit < 1% no-change ...... 上述示例中共有規(guī)則8條,分為4個優(yōu)先級。 調(diào)整規(guī)則的實施過程判斷時,先從優(yōu)先級為1的規(guī)則1開始,如果它的條件滿足, 則執(zhí)行后面的動作;"no-change"需要后續(xù)判斷,因此開始執(zhí)行優(yōu)先級為2的規(guī)則,如果它 的條件不滿足,則執(zhí)行"ELSE"的動作為"change",判斷結(jié)束,執(zhí)行調(diào)整的后續(xù)步驟;如果條 件滿足,則繼續(xù)優(yōu)先級3的規(guī)則的判斷。規(guī)則3的條件判斷如果為"真",則繼續(xù)規(guī)則4的條 件判斷,如果為"假",因為沒有"ELSE"選項,則繼續(xù)后續(xù)判斷,執(zhí)行規(guī)則5的判斷,以此類 推,直到全部規(guī)則判斷結(jié)束,得到最后的決策結(jié)果。
      算法參數(shù)的重新計算; 對應(yīng)用系統(tǒng)中使用的模式串匹配算法的參數(shù),根據(jù)新的環(huán)境指標值進行重新計 算。因為不同的算法,需要的參數(shù)是不同的,因此計算方法也不一樣。模式串匹配算法按照 匹配數(shù)據(jù)結(jié)構(gòu)的不同大致可以分為基于自動機的和基于查表的兩種類型。下面以基于查表 的WuManber算法為例說明。 符號定義字符集大小為E,模式串的個數(shù)為r,模式串長度為m(對于不同長度的 模式串,按照最小長度取齊即可),機器的Cache大小為C,可用內(nèi)存大小為M, WuManber算 法中字符塊大小為b,散列表大小為h。 WuManber算法的基本思想是將字符集中的字符組合成一定長度的字符塊 (block),計算全部字符塊的轉(zhuǎn)移距離,同時使用散列表來篩選匹配階段應(yīng)進行匹配的模式 串,以便減少匹配計算量。WuManber算法中,長度為b的字符塊B的轉(zhuǎn)移距離s[B]的計算 公式為 圖2a、2b中給出的是模式串"bomb"和"barbarian"在WuManber算法中分別i央大 小為2和3時的塊字符的轉(zhuǎn)移距離示意圖。
      用字符塊代替單個字符的方法,固然改善了跳躍距離,但它它需要維護一個E b大 小的表,帶來了存儲空間的暴漲。長度為2的塊字符集含有216 = 65536字符,長度為3的塊 字符集含有224 = 16777216字符。Wu Manber算法中使用哈希函數(shù)對塊字符作了一個映射, 將塊字符映射到一個較小的空間,減少存儲轉(zhuǎn)移距離表所需的空間。如果兩個以上的塊字 符映射到了該空間中同一個位置,則該位置對應(yīng)的轉(zhuǎn)移距離為映射到它的塊字符對應(yīng)的轉(zhuǎn) 移距離的最小值。圖3中給出的是模式串"barbarian"、"bomb"、"musician"和"constant" 對應(yīng)在散列表中位置的示意圖,右側(cè)的圖為四個模式串右對齊,取其最后長度為2的4個字 符塊為示意;左側(cè)圖為4個字符塊在散列表中的位置及其索引的模式串的示意??梢钥闯?, 因為"an"字符塊在2個模式串中出現(xiàn),因此散列表對應(yīng)位置后面將鏈接2個模式串,同時 此位置的轉(zhuǎn)移距離隨著模式串個數(shù)的增多(表示此位置的沖突越多)而下降。
      WuManber算法在匹配過程中的移動距離的計算分為三種情況
      情形1 :塊B出現(xiàn)在模式串中,這時模式串向右滑動s[B] = m-j個字符,j為該塊 在模式中的最右出現(xiàn)位置。s[B] =0這種特殊情形見情形3。 情形2 :塊B沒有出現(xiàn)在模式中,這時模式串向右滑動s[B] = m-b+l個字符,b為 塊的大小。 情形3 :s[B] = O,即塊出現(xiàn)在模式串中并且與模式串對齊,這時需要對文本和模
      式串進行驗證,看是否出現(xiàn)一個匹配。然后模式串向右滑動1個字符。 通過WuManber算法的原理可以看出一方面,隨著模式串個數(shù)的不斷增加,塊字
      符的轉(zhuǎn)移距離將變得很小,直至為O,此時將嚴重影響算法的速度;另一方面,隨著塊字符
      集合的增加,塊字符的轉(zhuǎn)移距離表所需的存儲空間也不斷增加。算法的性能是和算法運行
      時的環(huán)境指標和算法本身的參數(shù)決定的,其中環(huán)境指標中主要包括模式串的個數(shù)、長度、機
      器的緩存大小、機器的可用內(nèi)存大小等,算法的參數(shù)主要指塊字符大小和散列表的大小。下
      面給出根據(jù)環(huán)境指標計算算法參數(shù)的方法。 字符塊長b的選擇 麗的平均跳躍距離為
      加廠 # =(附-"1)(1-^"^) 為了保證平均跳躍距離shift不小于最大跳躍距離m-b+l的一半,即
      附f 1 = O - 6 + l)(l - 上^ O - 6 + 1) 必須有l(wèi) E |b ^mr,艮卩d > log|£ pr。由于b越大,最大跳躍距離m-b+l就會越 小。因此,b的最優(yōu)值為、=tlog|Z|附《([]為取整符號)
      散列表大小h的選擇 為簡單起見,設(shè)可用的存儲空間大小為M字節(jié)。(這里的"存儲空間"可以是內(nèi)存, 也可以是高速緩存,甚至是磁盤設(shè)備) 當散列表大小為h時,平均跳躍距離表SHIFT占用的存儲為h字節(jié)(每個表項用 1個字節(jié)表示)。待校驗的關(guān)鍵詞列表MatchList占用的存儲為DXh+rX (m+D)字節(jié)(其 中D是一個指針域的存儲空間大小,在32位機器上是4字節(jié),在64位機器上是8字節(jié))。
      因此,總的存儲空間大小為h+DXh+rX (m+D)《M,于是散列表大小~~~""同時h不能超過l E lb,所以h的最優(yōu)值為
      <formula>formula see original document page 11</formula>例如在一個64位機器上(D = 8),對于256字符集數(shù)據(jù)來說,
      當m = 8, r = 10000, M = 256MB時,b = 2, h = 28M ;
      當m = 20, r = 1, 000, 000, M = 512MB時,b = 3, h = 53M。
      算法的預(yù)處理; 當通過調(diào)整策略決定更新算法并且已經(jīng)通過參數(shù)的重計算將新的參數(shù)值確定之 后,算法使用新參數(shù)和相應(yīng)的環(huán)境指標值進行預(yù)處理過程,構(gòu)造出可以執(zhí)行匹配功能的結(jié) 構(gòu),通過系統(tǒng)指定的更新機制,在合適的時機將新算法更新到應(yīng)用系統(tǒng)中,從而完成應(yīng)用系 統(tǒng)的算法自調(diào)節(jié)過程。 每個算法的預(yù)處理過程是不同的,取決于其算法原理的不同。這部分內(nèi)容不屬于 本發(fā)明的內(nèi)容,因此省略不做具體闡述。 本發(fā)明中,應(yīng)用可自調(diào)節(jié)參數(shù)的串匹配方法的系統(tǒng)的具體實施過程(系統(tǒng)流程 圖)見圖5: 系統(tǒng)初始啟動后,定時檢查是否進行在線算法的更新,如果不需要更新,則繼續(xù)運 行系統(tǒng),并實時執(zhí)行運行環(huán)境的檢測; 如果需要在線算法的更新,則根據(jù)當前最新的模式串和最新計算出來的算法參數(shù) 值,對算法進行預(yù)處理; 預(yù)處理后,根據(jù)系統(tǒng)的情況,在合適的時候進行算法的在線更新。在線系統(tǒng)正常運 行,開始使用新參數(shù)的匹配算法。 匹配運行的結(jié)果一方面根據(jù)需要寫入結(jié)果文件,另一方面根據(jù)設(shè)定的統(tǒng)計值進行 統(tǒng)計計算,并將結(jié)果寫入到匹配結(jié)果統(tǒng)計信息文件中。 運行環(huán)境的檢測通過主動或者被動的方式,獲取當前被監(jiān)測的指標。被監(jiān)測的信 息來源于模式串文件中的模式串信息、文本上匹配結(jié)果的統(tǒng)計信息、機器環(huán)境信息等。
      獲取環(huán)境信息后,進行算法參數(shù)的調(diào)整策略判定,根據(jù)指定的策略和判定規(guī)則,進 行決策,得出是否需要進行算法參數(shù)的調(diào)整。 如果需要調(diào)整,則對算法參數(shù)的值重新計算;否則,繼續(xù)運行環(huán)境的監(jiān)測過程。
      重新計算后的算法參數(shù)值參加是否進行算法更新的判定中。 本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條件下,還 可以對以上內(nèi)容進行各種各樣的修改。因此本發(fā)明的范圍并不僅限于以上的說明,而是由 權(quán)利要求書的范圍來確定的。
      權(quán)利要求
      一種可自調(diào)參數(shù)的串匹配方法,其特征在于,包括步驟1,實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標,獲取該特征指標的變化狀況;步驟2,依據(jù)模式串匹配算法應(yīng)用環(huán)境的特征指標的變化狀況和調(diào)整策略決定是否調(diào)整算法參數(shù),如果是,執(zhí)行步驟3,否則繼續(xù)執(zhí)行步驟1;步驟3,重新計算算法參數(shù),依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指標的值對算法進行更新。
      2. 如權(quán)利要求1所述的可自調(diào)參數(shù)的串匹配方法,其特征在于,模式串匹配算法應(yīng)用 環(huán)境的特征指標包括模式串集合、文本數(shù)據(jù)、模式串匹配結(jié)果的統(tǒng)計信息、和/或機器環(huán)境。
      3. 如權(quán)利要求2所述的可自調(diào)參數(shù)的串匹配方法,其特征在于,步驟1包括 步驟ll,實時監(jiān)測模式串集合,獲取模式串集合的變化狀況;和/或步驟12,實時監(jiān)測機器環(huán)境,獲取機器環(huán)境的變化狀況;和/或步驟13,實時監(jiān)測文本數(shù)據(jù)和模式串集合經(jīng)模式串匹配后的模式串匹配結(jié)果的統(tǒng)計信息。
      4. 如權(quán)利要求1所述的可自調(diào)參數(shù)的串匹配方法,其特征在于,步驟3包括 步驟31,重新計算算法參數(shù);步驟32,依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指標的值對算法進行預(yù)處理;步驟33,對算法進行在線更新。
      5. 如權(quán)利要求l所述的可自調(diào)參數(shù)的串匹配方法,其特征在于,步驟l中,采用主動方 式或者被動方式實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標。
      6. 如權(quán)利要求1所述的可自調(diào)參數(shù)的串匹配方法,其特征在于,調(diào)整策略通過機器學 習自動生成或者人工設(shè)置。
      7. —種可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,包括特征指標監(jiān)測模塊,用于實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標,獲取該特征 指標的變化狀況;算法參數(shù)調(diào)整判決模塊,用于依據(jù)模式串匹配算法應(yīng)用環(huán)境的特征指標的變化狀況和 調(diào)整策略決定是否調(diào)整算法參數(shù);算法更新模塊,用于重新計算算法參數(shù),依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境 的特征指標的值對算法進行更新。
      8. 如權(quán)利要求7所述的可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,模式串匹配算法應(yīng)用 環(huán)境的特征指標包括模式串集合、文本數(shù)據(jù)、模式串匹配結(jié)果的統(tǒng)計信息、和/或機器環(huán) 境。
      9. 如權(quán)利要求8所述的可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,特征指標監(jiān)測模塊用 于實時監(jiān)測模式串集合,獲取模式串集合的變化狀況;和/或?qū)崟r監(jiān)測機器環(huán)境,獲取機器 環(huán)境的變化狀況;實時監(jiān)測文本數(shù)據(jù)和模式串集合經(jīng)模式串匹配后的模式串匹配結(jié)果的統(tǒng) 計信息。
      10. 如權(quán)利要求7所述的可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,算法更新模塊,還用 于在進行算法更新之前,依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指標的值對算法進行預(yù)處理。
      11. 如權(quán)利要求7所述的可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,特征指標監(jiān)測模塊, 采用主動方式或者被動方式實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標。
      12. 如權(quán)利要求7所述的可自調(diào)參數(shù)的串匹配系統(tǒng),其特征在于,調(diào)整策略通過機器學 習自動生成或者人工設(shè)置。
      全文摘要
      本發(fā)明涉及一種可自調(diào)參數(shù)的串匹配方法和系統(tǒng)。該方法包括步驟1,實時監(jiān)測模式串匹配算法應(yīng)用環(huán)境的特征指標,獲取該特征指標的變化狀況;步驟2,依據(jù)模式串匹配算法應(yīng)用環(huán)境的特征指標的變化狀況和調(diào)整策略決定是否調(diào)整算法參數(shù),如果是,執(zhí)行步驟3,否則繼續(xù)執(zhí)行步驟1;步驟3,重新計算算法參數(shù),依據(jù)該算法參數(shù)和模式串匹配算法應(yīng)用環(huán)境的特征指標的值對算法進行更新。本發(fā)明能夠解決在線系統(tǒng)中算法的自動更新問題,在不需要人工干預(yù)的情況下,可以自動根據(jù)環(huán)境的變化而調(diào)整自身的參數(shù),并在系統(tǒng)可支持的情況下自動更新。
      文檔編號G06F17/30GK101739431SQ200810227158
      公開日2010年6月16日 申請日期2008年11月24日 優(yōu)先權(quán)日2008年11月24日
      發(fā)明者劉燕兵, 劉萍, 譚建龍, 郭莉 申請人:中國科學院計算技術(shù)研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1