論基于后綴數組匹配算法

時間:2022-03-20 07:01:00

導語:論基于后綴數組匹配算法一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

論基于后綴數組匹配算法

摘要:文章提出的UniformedSoffixArraysAss誼n算法通過采取均勻的后級分配方式,使各個處理器可以獨立地構造后綴數組,并提出通過播送最長后綴長度(Maxsuffixlen)來降低處理段間匹配時的通信復雜度。算法在構造后級數組時的平均復雜度為O((N/P)(109109(N/P))),通信復雜度為0(1)。通過實驗分析得出,在(N/P)M的情況下,USAA算法可以在保持計算復雜度的同時大大降低在構造后綴數組過程中的通信消耗。其中N,M分別為文本串和模式申的長度,P為處理器數。

關鍵詞:后綴數組分布式存儲串匹配

1引言

鍵,在分布式環境下加速后綴數組的構造需要充分考慮到通信對算法性能的影響。串匹配問題是計算機科學中研究得最廣泛的問題之一,在文字編輯與處理、圖像處理、信息檢索、分子生物學等領域都有很廣泛的應用。本文解決的是分布式存儲環境下的精確串匹配問題。在串匹配的許多實際應用中一個確定的文本常常被查詢很多次(比如對非常長的基因序列的查詢)。針對這種情況,Manber.U和E.W.Myers提出建立后綴數組(suffixarrays)〔1〕來提高查詢的性能論文,而后綴數組最大的不足是它的構造時間過長。因此一直以來,如何快速有效地構造后綴數組成了提高基于后綴數組的串匹配算法性能的關

2USAA算法

假設N,M為文本串和模式串的長度,P為處理器數,算法設計思路如下:

(1)將長為N的文本串A均勻劃分成互不重盛的P段,分布于處理器。~(P一l)中,且使相鄰的文本段分布在相鄰的處理器中,顯然每個處理器中局部文本段的長度為〔N/P〕。

(2)除了處理器O外,其它每個處理器利用KMP算法計算分配到自己的文本串的頭個字符與模式串,基金項目:國家自然科學基金重點項目(60533020)的匹配信息。如果存在匹配情況,就向相鄰的前一個處理器發送最大匹配后綴長度Maxsuffixlen,否則就發送一個負數。每個處理器可獨立地計算和發送該值,所以這一步的計算復雜度為O(M),通信復雜度為O(1)。

(3)處理器1~(P-l)接收前一個處理器的信息。

(4)利用Manber.U和E.W.Myers在文獻〔〔1〕中的算法各處理器并行地構造局部文本段的后綴數組。

(5)利用Manber.U和E.W.Myers在文獻〔1〕中的算法各處理器并行地進行模式申的匹配。算法的計算復雜度為O((N/P(109109(N/P))),通信復雜度為0(1),大大降低了通信復雜度。

3實驗結果及分析

我們在基于分布存儲的32節點HPRX2600高性能機群系統上測試了上述算法,比較了USAA和目前理論值最好的MMsortlz〕算法之間的性能,其計算復雜度為,通信復雜度為。

圖1給出了當M一16、P~2時,N的取值對算法執行時間的影響。從圖中看出當時,由于N、P的取值成了影響算法復雜度的主項,因此在實際應用中USAA算法比MMsort算法表現要好。

圖2給出了當N變大時,USAA算法和MMsort算法的通信時間比較。可以看出,隨著文本串的規模變大,由于處理器間需要進行的通信量增加,MMsort算法的通信時間有明顯的上升,而USAA算法的上升幅度要顯著小于MMsort。

4結論

本文提出的USAA算法通過采取均勻的后綴分配方式來降低處理段間匹配時的通信消耗,在(N/P)M的情況下使算法在保持計算復雜度的同時大大降低了通信復雜度。通過實驗結果可以看到,USAA算法很好地解決了在分布式存儲環境下降低后級數組構造中的通信復雜度的問題。

參考文獻

[1]U.Manber,G.Myers.Suffixarrays:Anewmethodforon-linestringsearehes[C〕.InProeeedingsofthe

lstAnnualACM一SIAMSymPosiumon壓sereteAlgorithms.1990:319一327.

[2]Kitajima,J.P.,Navarro,G.Afastdistributedsuffixarraygenerationalgorithm〔C」.StringProeessingandInformationRetrievalSymposium,1999SePt,1999:22-24,97一104.