本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種字符串的匹配方法及裝置。
背景技術(shù):
在網(wǎng)絡(luò)信息飛速發(fā)展的今天,信息的安全和信息的檢索成為當(dāng)今信息社會(huì)的重要問題,而字符串的模式匹配技術(shù)是解決這些問題的關(guān)鍵所在。無論是從眾多內(nèi)容中找到非法信息,還是幫助用戶從海量數(shù)據(jù)中檢索自己感興趣的內(nèi)容,都離不開字符串的模式匹配技術(shù)。字符串匹配技術(shù)的應(yīng)用包括方方面面,具體為:搜索引擎、文檔管理、病毒檢測(cè)等等。
龐大的網(wǎng)絡(luò)信息量對(duì)字符串匹配技術(shù)的效率和準(zhǔn)確率也提出了更高的要求。通常情況下,用戶輸入自定義關(guān)鍵詞后,系統(tǒng)會(huì)將關(guān)鍵詞與字幕庫文本進(jìn)行字符串匹配,查找是否存在符合要求的字幕并返回檢索結(jié)果。簡(jiǎn)言之,字符串的模式匹配問題就是在較短的時(shí)間內(nèi),在給定的文本中查找模式串(即關(guān)鍵詞)是否存在,如果存在則確定其出現(xiàn)的位置。
目前,通常使用sunday算法來實(shí)現(xiàn)模式串的查找。sunday算法是一種高效的、快速的字符串匹配算法,在算法速度上要明顯優(yōu)于克努特-莫里斯-普拉特操作(kmp)算法等經(jīng)典算法。sunday算法對(duì)匹配順序并沒有明確的要求,既可以從待匹配文本對(duì)應(yīng)的字符串(以下簡(jiǎn)稱待匹配字符串)的左邊開始也可以右邊開始,只是當(dāng)出現(xiàn)不匹配字符時(shí),算法的跳轉(zhuǎn)距離更大,可以忽略更多的無效字符,從而提高了匹配效率。
當(dāng)出現(xiàn)模式串匹配失敗時(shí),sunday算法會(huì)比對(duì)待匹配字符串中參加配對(duì)的最后一位字符的下一位字符,判斷是否在模式串中發(fā)現(xiàn)該下一位字符,若未發(fā)現(xiàn),則將模式串按照比模式串的長(zhǎng)度多一個(gè)字符的移動(dòng)距離進(jìn)行移動(dòng),若發(fā)現(xiàn),則將模式串按照模式串中最右端的不匹配字符到最末位字符距離的長(zhǎng)度多一個(gè)字符的移動(dòng)距離進(jìn)行移動(dòng),使得該下一位字符與模式串中最右端的匹配字符對(duì)齊。其中,sunday算法采用一個(gè)next數(shù)組來計(jì)算模式串中最右端不匹配字符到最末位字符的距離,next數(shù)組中保存了模式串中的所有字符,并對(duì)各個(gè)字符賦予不同的距離值,一個(gè)字符的距離值是根據(jù)該一個(gè)字符的出現(xiàn)的位置到末位字符的距離來進(jìn)行計(jì)算。如果字符未出現(xiàn)在模式串中,則其對(duì)應(yīng)的距離值為模式串的長(zhǎng)度值。
例如,參閱圖1所示,以執(zhí)行sunday算法的匹配過程為例。
在第二行內(nèi),判定模式串“abcd”與待匹配字符串中的“bcda”不匹配,且下一個(gè)字符“e”未位于模式串中,因此,確定跳轉(zhuǎn)距離為4+1=5。
在第三行內(nèi),判定模式串“abcd”與待匹配字符串中的“fecd”不匹配,且下一個(gè)字符“d”位于模式串中,則按照next數(shù)組跳轉(zhuǎn)1。(即模式串向右移一個(gè)字符后,使得該下一位字符d與模式串中最右端的匹配字符d對(duì)齊)
……
以此類推,按照上述規(guī)則進(jìn)行匹配跳轉(zhuǎn),直到匹配成功,匹配次數(shù)為6次。
然而,采用sunday算法在待匹配字符串中由后向前進(jìn)行匹配時(shí),每次都是出現(xiàn)匹配未成功時(shí)才會(huì)按照next數(shù)組進(jìn)行跳轉(zhuǎn),進(jìn)入下一輪匹配,因此效率不高。
當(dāng)前有一些改進(jìn)算法,如,采用后綴比較的方式減少全模式串匹配的次數(shù),但是后綴比較消耗的資源也較高。又如,采用比較模式串中的首子串的方法進(jìn)行匹配,盡管減少了全匹配次數(shù),但是單字符的比較次數(shù)仍然很多。
有鑒于此,需要設(shè)計(jì)一種新的匹配算法以克服上述缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種字符串的匹配方法及裝置,用以提高字符串的匹配效率,減少資源消耗。
本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
一種字符串的匹配方法,包括:
確定待匹配字符串以及作為匹配對(duì)象的模式串;
判斷待匹配字符串中,當(dāng)前與模式串對(duì)齊的部分字符串的相鄰下一字符字符t是否出現(xiàn)在所述模式串;
確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式。
可選的,確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值,確定所述模式串的跳轉(zhuǎn)方式,包括:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的左側(cè)字符是否與所述模式串中字符t的左側(cè)字符相同;
若是,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符。
可選的,確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式,包括:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t不為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的右側(cè)字符是否與所述模式串中字符t的右側(cè)字符相同
若是,則將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式。
可選的,根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式,包括:
判斷若所述待匹配字符串中字符t的右側(cè)字符是否在模式串中出現(xiàn);
若是,則將待匹配字符串中的字符t與模式串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符;
否則,則將模式串按照字符m+2進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目;
可選的,進(jìn)一步包括:
若所述字符t未出現(xiàn)在所述模式串中,則對(duì)照待匹配字符串,將模式串按照步長(zhǎng)m+1進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目。
一種字符串的匹配裝置,包括:
確定單元,用于確定待匹配字符串以及作為匹配對(duì)象的模式串;
判斷單元,用于判斷待匹配字符串中,當(dāng)前與模式串對(duì)齊的部分字符串的相鄰下一字符字符t是否出現(xiàn)在所述模式串;
處理單元,用于確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式。
可選的,確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值,確定所述模式串的跳轉(zhuǎn)方式時(shí),所述處理單元用于:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的左側(cè)字符是否與所述模式串中字符t的左側(cè)字符相同;
若是,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符。
可選的,確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式時(shí),所述處理單元用于:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t不為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的右側(cè)字符是否與所述模式串中字符t的右側(cè)字符相同
若是,則將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式。
可選的,根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式時(shí),所述處理單元用于:
判斷若所述待匹配字符串中字符t的右側(cè)字符是否在模式串中出現(xiàn);
若是,則將待匹配字符串中的字符t與模式串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符;
否則,則將模式串按照字符m+2進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目;
可選的,所述處理單元進(jìn)一步用于:
若所述字符t未出現(xiàn)在所述模式串中,則對(duì)照待匹配字符串,將模式串按照步長(zhǎng)m+1進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目。
本發(fā)明有益效果如下:
本發(fā)明實(shí)施例中,將模式串與待匹配字符串進(jìn)行匹配時(shí),會(huì)在確定當(dāng)前與模式串對(duì)齊的部分字符串的相鄰下一字符字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式。這樣,針對(duì)當(dāng)前匹配的部分字符串的下一字符的左側(cè)字符或右側(cè)字符進(jìn)行判斷,相較于單一的字符比對(duì)有更明顯的優(yōu)勢(shì),判斷條件更加靈活,在有較多重復(fù)字符的字符串匹配中更具有匹配優(yōu)勢(shì),從而有效提高了字符串的匹配效率,減少資源消耗,
附圖說明
圖1為現(xiàn)有技術(shù)下傳統(tǒng)sunday算法匹配過程示意圖;
圖2為本發(fā)明實(shí)施例中wundday算法匹配過程流程圖;
圖3為本發(fā)明實(shí)施例中wundday算法匹配過程示意圖;
圖4為本發(fā)明實(shí)施例中匹配裝置功能結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了提高字符串的匹配效率,減少資源消耗,本發(fā)明實(shí)施例中,設(shè)計(jì)了一種新的匹配方案,具體為:本發(fā)明在分析了sunday匹配算法基礎(chǔ)上,提出一種改進(jìn)的sunday算法,稱為wsunday算法,具體為:在字符不匹配但不是壞字符的情況時(shí)增加了一個(gè)字符的比較,以此為依據(jù)加大了模式串跳轉(zhuǎn)距離,提高了匹配效率。
下面結(jié)合附圖對(duì)本發(fā)明優(yōu)先的實(shí)施方式進(jìn)行詳細(xì)說明。
wsunday算法開始的預(yù)處理部分和sunday算法一樣,計(jì)算出模式串對(duì)應(yīng)的next數(shù)組,也就是預(yù)先對(duì)能夠?qū)⒛J酱蛴乙苿?dòng)的各個(gè)跳轉(zhuǎn)距離進(jìn)行了統(tǒng)計(jì)。在wsunday算法中,模式串的跳轉(zhuǎn)距離不僅需要參考待匹配字符串中當(dāng)前與模式串進(jìn)行匹配的字符段中末位字符的下一字符,同時(shí)還需要參考上述末位字符的相鄰字符在模式串中的存在情況。
具體的,參閱圖2所示,本發(fā)明實(shí)施例中,wundday算法匹配過程的具體步驟如下:
步驟200:確定待匹配字符串,以及作為匹配對(duì)象的模式串。
本發(fā)明實(shí)施例中,假設(shè)將待匹配字符串記為t,t為:“bcdaefecdddceabcd”,而模式串記為p,p為:“abcd”。
那么,以在t中查找p的過程為例來介紹wsunday算法的匹配方法。
步驟201:將模式串與待匹配字符串中當(dāng)前與模式串對(duì)齊的部分字符串進(jìn)行匹配,判斷是否匹配成功,若是,結(jié)束當(dāng)前流程;否則,進(jìn)行步驟202。
步驟202:判斷上述部分字符串的相鄰下一字符(以下稱為字符t)是否出現(xiàn)在模式串中,若未出現(xiàn),則執(zhí)行步驟203;否則,執(zhí)行步驟204。
步驟203:對(duì)照待匹配字符串,將模式串按照m+1字符進(jìn)行跳轉(zhuǎn),即在跳轉(zhuǎn)后與待匹配字符串中新的部分字符串對(duì)齊,其中,m為模式串的字符數(shù)目,接著,執(zhí)行步驟213。
步驟204;判斷字符t在模式串中是否為末位字符,若是,則執(zhí)行步驟205;否則,執(zhí)行步驟步驟208。
若字符t出現(xiàn)在模式串中,sunday算法會(huì)直接將模式串中的字符t與待匹配字符串中的字符t對(duì)齊。但在wsunday算法中,則需要先判斷字符t在模式串中的出現(xiàn)位置,根據(jù)出現(xiàn)位置的不同而采用不同的跳轉(zhuǎn)方式。
步驟205:判斷在待匹配字符串中字符t的左側(cè)字符是否與模式串的末位字符的左側(cè)字符相同,若是,則執(zhí)行步驟206;否則,執(zhí)行步驟207。
步驟206:將模式串按照以下方式跳轉(zhuǎn):將模式串中的字符t與待匹配字符串中的字符t對(duì)齊,接著,執(zhí)行步驟213。
步驟207:將模式串按照以下方式跳轉(zhuǎn):將模式串中的字符t與待匹配字符串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符,接著,執(zhí)行步驟213。
步驟208:判斷在待匹配字符串中字符t的右側(cè)字符是否與在模式串中字符t的右側(cè)字符相同,若是,則執(zhí)行步驟209;否則,執(zhí)行步驟210。
步驟209:將模式串按照以下方式跳轉(zhuǎn):將模式串中的字符t與待匹配字符串中的字符t對(duì)齊,接著,執(zhí)行步驟213。
步驟210:判斷在待匹配字符串中字符t的右側(cè)字符是否在模式串中出現(xiàn)過,若未出現(xiàn)過,則執(zhí)行步驟211;若出現(xiàn)過,執(zhí)行步驟212。
步驟211:對(duì)照待匹配字符串,將模式串按照字符m+2進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目,接著,執(zhí)行步驟213。
步驟212:將模式串按照以下方式跳轉(zhuǎn):將待匹配字符串中的字符t與模式串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符,接著,執(zhí)行步驟213。
步驟213:判斷待匹配字符串中是否存在未匹配完的字符,若是,則返回步驟201;否則,結(jié)束當(dāng)前流程。
簡(jiǎn)單而言,本發(fā)明實(shí)施例中,就是在判斷模式串在待匹配字符中當(dāng)前匹配的部分字符串內(nèi)末位字符的下一字符的同時(shí),加入對(duì)該末位字符的左側(cè)字符或右側(cè)字符的判斷,從而根據(jù)不同的字符取值確定相應(yīng)的跳轉(zhuǎn)距離,從而有效加大了跳轉(zhuǎn)距離,進(jìn)而達(dá)到提高匹配效率的目的。
下面采用一個(gè)具體的應(yīng)用場(chǎng)景對(duì)上述實(shí)施例作出進(jìn)一步詳細(xì)說明。
參閱圖3所示,在第2行中,當(dāng)模式串“abcd”與待匹配字符串中的“bcda”對(duì)齊時(shí),匹配未成功,且“bcda”的下一個(gè)字符“e”未出現(xiàn)在模式串“abcd”中,則將模式串“abcd”跳轉(zhuǎn)m+1=5,到達(dá)第3行位置。
在第3行中,當(dāng)模式串“abcd”與待匹配字符串中的“fecd”對(duì)齊時(shí),匹配未成功,則判斷“fecd”的下一字符“d”為“abcd”中的末位字符,“fecd”的下一字符“d”的左側(cè)字符“d”與“abcd”中的末位字符“d”的左側(cè)字符“c”不匹配,
此時(shí),如果采用sunday算法,則會(huì)將模式串“abcd”右移一個(gè)字符,然后,本發(fā)明實(shí)施例中,采用wsundday算法后,會(huì)將模式串“abcd”按照以下方式跳轉(zhuǎn):將模式串中的字符“d”與待匹配字符串中的“fecd”的下一個(gè)字符“d”對(duì)齊后,再右移一個(gè)字符,達(dá)到第4行位置。顯然,相較于sunday算法,模式串“abcd”向右多移動(dòng)了一個(gè)字符。
在第4行中,當(dāng)模式串“abcd”與待匹配字符串中的“cddd”對(duì)齊時(shí),匹配未成功,則判斷“cddd”的下一字符“c”不為“abcd”中的末位字符,并且“cddd”的下一字符“c”的右側(cè)字符“e”未出現(xiàn)在“abcd”中,則將模式串“abcd”跳轉(zhuǎn)m+2=6,到達(dá)第5行位置。在第5行中,當(dāng)模式串“abcd”與待匹配字符串中的“abcd”對(duì)齊時(shí),匹配成功,則匹配流程結(jié)束。
相較于圖1所示的sunday算法,圖3所示的wsundday算法多多移動(dòng)了四個(gè)字符,從而最終wsunday算法的匹配次數(shù)為4次比sunday算法減少了2次。
以一個(gè)具體的實(shí)驗(yàn)場(chǎng)景為例。在window7操作平臺(tái),intel○rcoretmquadcpu,內(nèi)存4gb的環(huán)境下,選擇500kb大小、約50萬字符的英文語料,重復(fù)500次對(duì)bf算法,kmp算法,bm算法,sunday算法,sundaynew算法[3]和wsunday算法進(jìn)行測(cè)試。
為了增強(qiáng)實(shí)驗(yàn)的準(zhǔn)確性,分別選取模式串長(zhǎng)度10以上和10以下兩組數(shù)據(jù)進(jìn)行比較,實(shí)驗(yàn)數(shù)據(jù)如表1、表2所示。
表1(模式串長(zhǎng)度小于10時(shí)實(shí)驗(yàn)結(jié)果)
表2(模式串長(zhǎng)度大于10時(shí)實(shí)驗(yàn)結(jié)果)
通過實(shí)驗(yàn)結(jié)果可以看出,wsunday算法在對(duì)比字符數(shù)上要優(yōu)于傳統(tǒng)的sunday算法和sundaynew算法,主要在于wsunday算法增加的一個(gè)字符的匹配消耗,可以通過增大的跳轉(zhuǎn)距離進(jìn)行補(bǔ)償,因而相較于傳統(tǒng)的sunday算法可以在總的匹配次數(shù)上有明顯的減少。尤其是當(dāng)模式串長(zhǎng)度小于10時(shí),這種跳轉(zhuǎn)距離取得的速度優(yōu)勢(shì)更加明顯。
基于上述實(shí)施例,參閱圖4所示,本發(fā)明實(shí)施例中,用于進(jìn)行字符串匹配的裝置(即可稱匹配裝置)至少包括確定單元40、判斷單元41和處理單元42,其中,
確定單元40,用于確定待匹配字符串以及作為匹配對(duì)象的模式串;
判斷單元41,用于判斷待匹配字符串中,當(dāng)前與模式串對(duì)齊的部分字符串的相鄰下一字符字符t是否出現(xiàn)在所述模式串;
處理單元42,用于確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式。
確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值,確定所述模式串的跳轉(zhuǎn)方式時(shí),處理單元42用于:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的左側(cè)字符是否與所述模式串中字符t的左側(cè)字符相同;
若是,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,將模式串中的字符t與待匹配字符串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符。
確定所述字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式時(shí),處理單元42用于:
確定所述字符t出現(xiàn)在所述模式串中,且所述字符t不為所述模式串中的末位字符時(shí),進(jìn)一步判斷所述待匹配字符串中字符t的右側(cè)字符是否與所述模式串中字符t的右側(cè)字符相同
若是,則將模式串中的字符t與待匹配字符串中的字符t對(duì)齊;
否則,根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式。
根據(jù)所述待匹配字符串中字符t的右側(cè)字符在模式串中的出現(xiàn)情況,確定所述模式串的跳轉(zhuǎn)方式時(shí),處理單元42用于:
判斷若所述待匹配字符串中字符t的右側(cè)字符是否在模式串中出現(xiàn);
若是,則將待匹配字符串中的字符t與模式串中的字符t對(duì)齊后,再將模式串右移一個(gè)字符;
否則,則將模式串按照字符m+2進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目;
處理單元42進(jìn)一步用于:
若所述字符t未出現(xiàn)在所述模式串中,則對(duì)照待匹配字符串,將模式串按照步長(zhǎng)m+1進(jìn)行跳轉(zhuǎn),其中,m為模式串的字符數(shù)目。
本發(fā)明實(shí)施例中,將模式串與待匹配字符串進(jìn)行匹配時(shí),會(huì)在確定當(dāng)前與模式串對(duì)齊的部分字符串的相鄰下一字符字符t出現(xiàn)在所述模式串中時(shí),進(jìn)一步根據(jù)所述字符t的左側(cè)字符或右側(cè)字符的取值情況,確定所述模式串的跳轉(zhuǎn)方式。這樣,針對(duì)當(dāng)前匹配的部分字符串的下一字符的左側(cè)字符或右側(cè)字符進(jìn)行判斷,相較于單一的字符比對(duì)有更明顯的優(yōu)勢(shì),判斷條件更加靈活,在有較多重復(fù)字符的字符串匹配中更具有匹配優(yōu)勢(shì),從而有效提高了字符串的匹配效率,減少資源消耗,
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。