欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的方法

文檔序號(hào):6460661閱讀:484來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的方法
技術(shù)領(lǐng)域
本發(fā)明涉及的是一種信息處理方法,具體地說(shuō)是一種用于信息處理領(lǐng)域中的 字符串匹配方法。(二) 背景技術(shù)字符串匹配可以理解為從給定的符號(hào)序列中找出一個(gè)或若干具有某種性質(zhì) 的模式。字符串匹配問(wèn)題應(yīng)用范圍極其廣泛,幾乎所有涉及文本處理的應(yīng)用中都 會(huì)涉及到字符串匹配操作,該問(wèn)題是網(wǎng)絡(luò)安全、信息檢索、計(jì)算生物學(xué)等重要領(lǐng) 域的核心問(wèn)題。目前隨著網(wǎng)絡(luò)安全問(wèn)題的凸顯,以及超大型數(shù)據(jù)庫(kù)、高速搜索引 擎、人類(lèi)基因圖譜計(jì)劃等應(yīng)用的出現(xiàn),對(duì)高速匹配算法的需求非常強(qiáng)烈。字符串匹配可根據(jù)待處理文本在進(jìn)行匹配操作時(shí)是否已知來(lái)進(jìn)行分類(lèi)。若 進(jìn)行匹配時(shí)文本已知的匹配應(yīng)用為離線(xiàn)文本匹配,如在文本文件中進(jìn)行匹配或者 在socket緩沖區(qū)中進(jìn)行匹配等應(yīng)用;當(dāng)匹配時(shí)文本未知并在不斷更新的匹配應(yīng)用 則為在線(xiàn)文本匹配,匹配時(shí)文本仍在不斷更新。目前各種匹配應(yīng)用以離線(xiàn)文本匹 配為主。在處理離線(xiàn)文本時(shí),現(xiàn)有字符串匹配算法至少在每發(fā)生一次跳躍時(shí)判定是 否出現(xiàn)待讀入字符超出文本邊界的事件(或稱(chēng)下標(biāo)越界,其中KMP類(lèi)算法在每 讀入一個(gè)字符時(shí)均需檢查是否下標(biāo)越界)。由于字符串匹配所處理的文本長(zhǎng)度一 般遠(yuǎn)大于模式的長(zhǎng)度,實(shí)際的操作中下標(biāo)越界的出現(xiàn)概率很低,這樣頻繁的檢 査是否下標(biāo)越界降低了匹配應(yīng)用的實(shí)際性能。為降低下標(biāo)越界檢查的開(kāi)銷(xiāo),HUME A.與SUNDAY D.M.提出的tuned Boyer-Moore算法(簡(jiǎn)稱(chēng)tuned BM算法,HUME,A.,SUNDAY,D.M., Fast string searching ,Software-Practice & Experience,1991,21(ll),1721-1248)中給出了一種越 界保護(hù)的思想。tuned BM算法在較大字符集下(如英文文本檢索)是目前最常 用而且性能最高的精確單模式匹配算法,該算法被著名的字符串匹配軟件Gun grep作為精確單模式匹配的處理算法。tuned BM算法利用BM壞字符規(guī)則進(jìn)行 跳躍,每次跳躍后待讀入字符為窗口最末字符,并且當(dāng)被讀入字符和模式最末字符匹配時(shí)窗口的跳躍距離為O。利用此特性,tunedBM算法中提出了一種簡(jiǎn)單的 越界保護(hù)機(jī)制,在文本的末尾接入m個(gè)字符的越界保護(hù)帶,越界保護(hù)帶內(nèi)字符 與模式的最末字符一致。這樣,當(dāng)窗口沿文本匹配至文本尾后,當(dāng)出現(xiàn)下標(biāo)越界 時(shí),此時(shí)的待讀入字符位于越界保護(hù)帶中,因此,窗口的跳躍距離將為0,窗口 將不再繼續(xù)向后跳躍。因此可進(jìn)行若干次跳躍后,才檢査一次是否發(fā)生下標(biāo)越界。 這樣的做法將把下標(biāo)越界的檢查的開(kāi)銷(xiāo)分?jǐn)傇谌舾纱翁S中,降低了每次跳躍的 平均開(kāi)銷(xiāo)。上述方法被稱(chēng)為簡(jiǎn)易的越界保護(hù)方法,該方法并沒(méi)有將越界保護(hù)檢査的次數(shù) 降到最低。同時(shí)> 該方法只能適用于tuned BM算法,其他算法由于沒(méi)有當(dāng)待讀 入字符和模式最末字符匹配時(shí)跳躍距離為0的特性,而無(wú)法應(yīng)用到其他算法中。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種可將下標(biāo)越界檢查開(kāi)銷(xiāo)降至最低,并且可順利應(yīng) 用于現(xiàn)有大多數(shù)串匹配算法和串匹配應(yīng)用的利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn) 行加速的方法。本發(fā)明的目的是這樣實(shí)現(xiàn)的按以下步驟進(jìn)行a) 根據(jù)待匹配文本長(zhǎng)度,得到文本尾位置,假定文本最末字符位于loc位 置;b) 在1oc+l位置設(shè)置1個(gè)字符的隔離字,該隔離字是任意在模式中沒(méi)有出 現(xiàn)的字符;c) 拷貝模式串至文本的loc+2位置;d) 進(jìn)行正常的字符串匹配,在輸出模式匹配位置前進(jìn)行是否下標(biāo)越界的判 斷,若沒(méi)有下標(biāo)越界,則輸出匹配位置,若下標(biāo)越界,則結(jié)束匹配動(dòng)作。其中,對(duì)于某些算法,c)步中所述的拷貝模式串至文本的1oc+2位置應(yīng)拷 貝多次,多模式匹配應(yīng)用中拷貝待匹配的多個(gè)模式中的其中一個(gè)模式。對(duì)任何不會(huì)出現(xiàn)匹配遺漏的字符串匹配算法(含多模式匹配,待擴(kuò)展字符匹 配,正則表達(dá)式匹配和近似匹配等等應(yīng)用),當(dāng)下標(biāo)越界時(shí),上述c)步驟所接入 的模式串均將引發(fā)一次模式匹配事件的發(fā)生,本發(fā)明所述方法與字符串匹配的具體實(shí)現(xiàn)無(wú)關(guān),是現(xiàn)有各種字符串匹配問(wèn)題的通用改進(jìn)方法。同時(shí),在整個(gè)串匹配過(guò)程中模式匹配后的輸出動(dòng)作是串匹配過(guò)程中所有動(dòng)作中出現(xiàn)頻率最低的動(dòng)作, 本發(fā)明所述方法可以將檢査下標(biāo)越界操作的總數(shù)降至最低。目前,本方法在精確單模式匹配算法KMP, shift-or, tuned BM, Horspool, BNDM,BOM, QS, KARP-RABIN ; 多模式匹配算法 Aho-Corasick,Wu-Manber,SBOM;正則表達(dá)式匹配算法Thompson自動(dòng)機(jī), Glushkov自動(dòng)機(jī),近似匹配算法中的PEX算法,MultiHash算法;等等算法上均 成功實(shí)現(xiàn),實(shí)驗(yàn)表明,在各種串匹配算法上均能獲得穩(wěn)定的性能提高。本發(fā)明適用范圍包含任何不會(huì)發(fā)生匹配遺漏的離線(xiàn)串匹配算法和部分在線(xiàn) 串匹配算法,保護(hù)范圍不只包括上述實(shí)驗(yàn)中所述算法。(四)


圖l為本發(fā)明的流程圖。
具體實(shí)施方式
下面結(jié)合附圖舉例對(duì)本發(fā)明做更詳細(xì)地描述一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的方法,按以下步驟進(jìn)行a) 根據(jù)待匹配文本長(zhǎng)度,得到文本尾位置,假定文本最末字符位于loc位置。b) 在loc+l位置設(shè)置1個(gè)字符的隔離字,該隔離字可以是任意在模式中沒(méi)有 出現(xiàn)的字符。用以防止當(dāng)文本末尾若干字符和所加入的越界保護(hù)帶頭若 干字符恰好為模式的一次出現(xiàn)時(shí)出現(xiàn)的錯(cuò)誤匹配。c) 拷貝模式串至文本的loc+2位置(視情況可拷貝多次,多模式匹配應(yīng)用中 拷貝待匹配的多個(gè)模式中的其中一個(gè)模式)。d) 進(jìn)行正常的字符串匹配,但無(wú)需在每次跳躍時(shí)判斷是否出現(xiàn)下標(biāo)越界, 在輸出模式匹配位置前才進(jìn)行是否下標(biāo)越界的判斷,若沒(méi)有下標(biāo)越界, 則輸出匹配位置,若下標(biāo)越界,則結(jié)束匹配動(dòng)作。下面對(duì)實(shí)現(xiàn)最簡(jiǎn)單的BF算法為例,利用本發(fā)明所提方法對(duì)該算法進(jìn)行加速。 原始的BF算法如下(其中,t為文本串,pat為模式串,n為文本串長(zhǎng)度,m為 模式串長(zhǎng)度,matchtime為發(fā)生匹配的次數(shù),memcmp和memset均為標(biāo)準(zhǔn)C庫(kù) 函數(shù))<formula>formula see original document page 5</formula>利用本發(fā)明改進(jìn)后的BF算法如下(其中,隔離字用'\177'即ASCII字符中的 Dd字符,該字符在模式中必不出現(xiàn))<formula>formula see original document page 6</formula>經(jīng)本發(fā)明提出的方法改進(jìn)后,該算法在窗口每次滑動(dòng)過(guò)程中的開(kāi)銷(xiāo)均減少了 兩次次減法操作和一次條件轉(zhuǎn)移,改進(jìn)效果明顯。設(shè)置越界保護(hù)帶所帶來(lái)的開(kāi)銷(xiāo) 可忽略不計(jì)。
權(quán)利要求
1. 一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的方法,其特征是a)根據(jù)待匹配文本長(zhǎng)度,得到文本尾位置,假定文本最末字符位于loc位置;b)在loc+1位置設(shè)置1個(gè)字符的隔離字,該隔離字是任意在模式中沒(méi)有出現(xiàn)的字符;c)拷貝模式串至文本的loc+2位置;d)進(jìn)行正常的字符串匹配,在輸出模式匹配位置前進(jìn)行是否下標(biāo)越界的判斷,若沒(méi)有下標(biāo)越界,則輸出匹配位置,若下標(biāo)越界,則結(jié)束匹配動(dòng)作。
2、 根據(jù)權(quán)利要求1所述的一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的 方法,其特征是對(duì)于某些字符串匹配應(yīng)用,C)步中所述的拷貝模式串至文本 的1oc+2位置時(shí)可視情況拷貝多次,多模式匹配應(yīng)用中拷貝待匹配的多個(gè)模式中的其中一個(gè)模式。
全文摘要
本發(fā)明提供的是一種利用越界保護(hù)機(jī)制對(duì)字符串匹配進(jìn)行加速的方法。根據(jù)待匹配文本長(zhǎng)度,得到文本尾位置,這里假定文本最末字符位于loc位置;在loc+1位置設(shè)置1個(gè)字符的隔離字,該隔離字是任意在模式中沒(méi)有出現(xiàn)的字符;拷貝模式串至文本的loc+2位置;進(jìn)行不檢查是否下標(biāo)越界的字符串匹配,在輸出模式匹配位置前進(jìn)行是否下標(biāo)越界的判斷,若沒(méi)有下標(biāo)越界,則輸出匹配位置,若下標(biāo)越界,則結(jié)束匹配動(dòng)作。本發(fā)明所述方法與字符串匹配的具體實(shí)現(xiàn)無(wú)關(guān),是現(xiàn)有各種字符串匹配問(wèn)題的通用改進(jìn)方法。由于在整個(gè)串匹配過(guò)程中模式匹配后的輸出動(dòng)作是串匹配過(guò)程中所有動(dòng)作中出現(xiàn)頻率最低的動(dòng)作,本發(fā)明所述方法可以將檢查下標(biāo)越界操作的總數(shù)降至最低。
文檔編號(hào)G06F17/30GK101271468SQ20081006444
公開(kāi)日2008年9月24日 申請(qǐng)日期2008年5月5日 優(yōu)先權(quán)日2008年5月5日
發(fā)明者姚念民, 范洪博 申請(qǐng)人:哈爾濱工程大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鹿邑县| 汝州市| 前郭尔| 新建县| 德州市| 文安县| 财经| 新宁县| 应用必备| 德江县| 绍兴县| 梁河县| 佛冈县| 淮滨县| 龙海市| 林甸县| 田东县| 开化县| 冀州市| 石城县| 疏勒县| 封开县| 贵定县| 泾川县| 土默特左旗| 历史| 颍上县| 榆树市| 浮山县| 抚宁县| 平昌县| 郯城县| 晋州市| 阳原县| 五河县| 宜君县| 大丰市| 平遥县| 海盐县| 青冈县| 青田县|