本發(fā)明實施例涉及通信技術(shù),尤其涉及一種相似度檢測裝置。
背景技術(shù):
兩個序列是否相似通常用序列相似度衡量,將一個序列通過一系列“序列操作”轉(zhuǎn)換為另一個序列,顯然,所需的“操作代價”越小,序列相似度越高。求序列相似度的過程,其實就是求最小“操作代價”的過程。即兩個序列的相似度等于將其中一個序列通過一系列“序列操作”轉(zhuǎn)換為另一序列的最小“操作代價”。序列操作包括“插入”、“刪除”、“替換”、“匹配”等操作,操作代價為各種序列操作的量化標準。
相關(guān)技術(shù)使用相似度檢測裝置計算序列的相似度,該相似度檢測裝置包括多個檢測單元,每個檢測單元至少需要三個寄存器、三個加法器和一個比較器。其中,比較器用于對檢測單元的三個輸入的累計權(quán)值進行比較,選擇出最小的累計權(quán)值,加法器用于將該最小的累計權(quán)值與該檢測單元的“插入”、“刪除”、“替換”操作的權(quán)值進行相加,并將相加結(jié)果分別送至三個輸出,寄存器用于保存該檢測單元的三個輸出的累計權(quán)值。
由于權(quán)值被多個檢測單元一級一級累加,可能會存在累加的權(quán)值過大造成溢出,使得結(jié)果失效。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種相似度檢測裝置,以克服現(xiàn)有技術(shù)中相似度發(fā)生溢出的問題,確保相似度檢測結(jié)構(gòu)的正確性。
本發(fā)明第一方面提供一種相似度檢測裝置,包括:
M×N個檢測單元,所述M×N個檢測單元形成一個M行N列的陣列,每個檢測單元包括:第一或門電路、計數(shù)器、選擇模塊、三個輸出電路和路徑記錄模塊,N和M均為大于或等于2的正整數(shù);
其中,所述第一或門電路包括三個輸入端和一個輸出端,所述三個輸入端為:左輸入端、左下輸入端和下輸入端,所述三個輸出電路為:右輸出電路、右上輸出電路和上輸出電路,所述第一或門電路的左輸入端與左檢測單元的右輸出電路連接,所述第一或門電路的左下輸入端與左下檢測單元的右上輸出電路連接,所述第一或門電路的下輸入端與下檢測單元的上輸出電路連接,所述第一或門電路的三個輸入端還分別與所述路徑記錄模塊連接,所述第一或門電路的輸出端與所述計數(shù)器的輸入端連接,所述路徑記錄模塊用于記錄所述第一或門電路的三個輸入端中首先輸入高電平的輸入端;
所述計數(shù)器的輸出端與所述選擇模塊的輸入端連接,所述計數(shù)器的最大值大于三種序列操作的權(quán)值的最大值,所述序列操作的權(quán)值用于表示對應(yīng)的序列操作的代價,所述各序列操作的權(quán)值為所述計數(shù)器的值;
所述選擇模塊的三個輸出端分別與所述右輸出電路、所述右上輸出電路和所述上輸出電路連接,所述選擇模塊還包括兩個控制端,所述兩個控制端的輸入信號為所比較的兩個序列的字符,所述右輸出電路與右檢測電路的左輸入端連接,所述右上輸出電路與右上檢測電路的左下輸入電路連接,所述上輸出電路與上檢測電路的下輸入端連接;
當所述第一或門電路的三個輸入端的任意一個輸入端的輸入為高電平時,所述第一或門電路輸出高電平,所述路徑記錄模塊記錄所述第一或門電路的三個輸入端中首先輸入所述高電平的輸入端,所述計數(shù)器開始計數(shù),當所述計數(shù)器的輸出為第一計數(shù)值時,所述選擇模塊的第一輸出端輸出所述高電平,所述右輸出電路輸出并保持所述高電平,當所述計數(shù)器的輸出為第二計數(shù)值時,所述選擇模塊的第二輸出端輸出所述高電平,所述右上輸出電路輸出并保持所述高電平,當所述計數(shù)器的輸出為第三計數(shù)值時,所述選擇模塊的第三輸出端為所述高電平,所述上輸出電路輸出并保持所述高電平。
結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述選擇模塊包括:譯碼器、多路選擇器;
所述計數(shù)器的輸出端與所述譯碼器的輸入端連接;
所述譯碼器包括多個輸出端,所述譯碼器的第一輸出端與所述右輸出電路連接,所述譯碼器的多個第二輸出端分別與所述多路選擇器的多個輸入端連接,所述多路選擇器的輸出端與所述右上輸出電路連接,所述譯碼器的第 三輸出端與所述上輸入電路連接;
當所述計數(shù)器的輸出為所述第一計數(shù)值時,所述譯碼器將所述第一計數(shù)值翻譯為第一獨熱碼,所述譯碼器根據(jù)所述第一獨熱碼從所述譯碼器的第一輸出端輸出高電平,當所述計數(shù)器的輸出為所述第二計數(shù)值時,所述譯碼器將所述第二計數(shù)值翻譯為第二獨熱碼,所述譯碼器根據(jù)所述第二獨熱碼從所述第二獨熱碼對應(yīng)的第二輸出端輸出所述高電平,所述多路選擇器根據(jù)所述兩個控制端輸入的字符以及所述第二獨熱碼對應(yīng)的第二輸出端輸出的所述高電平,從所述多路選擇器的輸出端輸出所述高電平,當所述計數(shù)器的輸出為所述第三計數(shù)值時,所述譯碼器將所述第三計數(shù)值翻譯為第三獨熱碼,所述譯碼器根據(jù)所述第三獨熱碼從所述譯碼器的第三輸出端輸出所述高電平;
所述選擇模塊的第二輸出端輸出所述高電平,所述右上輸出電路輸出并保持所述高電平,當所述計數(shù)器的輸出為第三計數(shù)值時,所述選擇模塊的第三輸出端為所述高電平,所述上輸出電路輸出并保持所述高電平。
結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,所述右輸出電路包括:第二或門電路和第一與門電路,所述第二或門電路包括兩個輸入端和一個輸出端,所述第一與門電路包括兩個輸入端和一個輸出端,所述第二或門電路的一個輸入端與所述選擇模塊的第一輸出端連接,所述第二或門電路的另一個輸入端與所述第一與門電路的輸出端連接,所述第二或門電路的輸出端與左檢測單元的左輸入端、所述第一與門電路的一個輸入端連接,所述第一與門電路的另一個輸入端接高電平;
所述右上輸出電路包括:第三或門電路和第二與門電路,所述第三或門電路包括兩個輸入端和一個輸出端,所述第二與門電路包括兩個輸入端和一個輸出端,所述第三或門電路的一個輸入端與所述選擇模塊的第二輸出端連接,所述第三或門電路的另一個輸入端與所述第二與門電路的輸出端連接,所述第三或門電路的輸出端與左下檢測單元的左下輸入端、所述第二與門電路的一個輸入端連接,所述第二與門電路的另一個輸入端接高電平;
所述上輸出電路包括:第四或門電路和第三與門電路,所述第四或門電路包括兩個輸入端和一個輸出端,所述第四與門電路包括兩個輸入端和一個輸出端,所述第四或門電路的一個輸入端與所述選擇模塊的第三輸出端連接,所述第四或門電路的另一個輸入端與所述第三與門電路的輸出端連接,所述 第四或門電路的輸出端與下檢測單元的下輸入端、所述第三與門電路的一個輸入端連接,所述第三與門電路的另一個輸入端接高電平。
結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述右輸出電路包括:第二或門電路和第一與門電路,所述第二或門電路包括兩個輸入端和一個輸出端,所述第一與門電路包括兩個輸入端和一個輸出端,所述第二或門電路的一個輸入端與所述譯碼器的第一輸出端連接,所述第二或門電路的另一個輸入端與所述第一與門電路的輸出端連接,所述第二或門電路的輸出端與左檢測單元的左輸入端、所述第一與門電路的一個輸入端連接,所述第一與門電路的另一個輸入端接高電平;
所述右上輸出電路包括:第三或門電路和第二與門電路,所述第三或門電路包括兩個輸入端和一個輸出端,所述第二與門電路包括兩個輸入端和一個輸出端,所述第三或門電路的一個輸入端與所述譯碼器的第二輸出端連接,所述第三或門電路的另一個輸入端與所述第二與門電路的輸出端連接,所述第三或門電路的輸出端與左下檢測單元的左下輸入端、所述第二與門電路的一個輸入端連接,所述第二與門電路的另一個輸入端接高電平;
所述上輸出電路包括:第四或門電路和第三與門電路,所述第四或門電路包括兩個輸入端和一個輸出端,所述第四與門電路包括兩個輸入端和一個輸出端,所述第四或門電路的一個輸入端與所述譯碼器的第三輸出端連接,所述第四或門電路的另一個輸入端與所述第三與門電路的輸出端連接,所述第四或門電路的輸出端與下檢測單元的下輸入端、所述第三與門電路的一個輸入端連接,所述第三與門電路的另一個輸入端接高電平。
結(jié)合第一方面、第一方面的第一種至第三種可能的實現(xiàn)方式中的任意一種,在第一方面的第四種可能的實現(xiàn)方式中,所述相似度檢測裝置還包括:相似度計算模塊,所述相似度計算模塊分別與所述每個檢測單元的路徑記錄模塊連接;
所述相似度計算模塊,用于根據(jù)所述所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊的記錄結(jié)果,確定所述所比較的兩個序列經(jīng)過的所有檢測單元的最小權(quán)值,將所述所比較的兩個序列經(jīng)過的所有檢測單元的最小權(quán)值相加得到所述所比較的兩個序列的相似度。
結(jié)合第一方面、第一方面的第一種至第三種可能的實現(xiàn)方式中的任意一 種,在第一方面的第五種可能的實現(xiàn)方式中,所述相似度檢測裝置還包括:路徑計算模塊,所述路徑計算模塊分別與所述每個檢測單元的路徑記錄模塊連接;
所述路徑計算模塊,用于根據(jù)所述所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊的記錄結(jié)果,確定傳播路徑,所述傳播表示將所述所比較的兩個序列中的待比較序列轉(zhuǎn)換成參考序列所經(jīng)過的序列操作。
結(jié)合第一方面、第一方面的第一種至第三種可能的實現(xiàn)方式中的任意一種,在第一方面的第六種可能的實現(xiàn)方式中,所述相似度檢測裝置還包括:公共子序列確定模塊,所述公共子序列確定模塊分別與所述每個檢測單元的路徑記錄模塊連接;
所述公共子序列確定模塊,用于根據(jù)所述所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊的記錄結(jié)果,確定連續(xù)的匹配操作的最大個數(shù),所述連續(xù)的匹配操作的最大個數(shù)對應(yīng)的子序列為所述所比較的兩個序列的最大公共子序列。
本實施例的相似度檢測裝置,通過檢測單元的計數(shù)器進行時間延遲,不同序列操作的延遲的時鐘周期不同,當計數(shù)器的計數(shù)值達到延遲的時鐘周期時,檢測單元通過該序列操作對應(yīng)的輸出電路輸出高電平,而檢測單元的輸出電路輸出的信號作為了下一級檢測單元的輸入信號,由于每個序列操作的延遲的時鐘周期不同,因此每個檢測單元的輸入信號的時間也不同,每個檢測單元有一個輸入變?yōu)楦唠娖降臅r候,說明從初始檢測單元到該檢測單元的延遲最小,通過路徑模塊記錄的首先變?yōu)楦唠娖降妮斎攵丝梢缘贸雒總€檢測單元延遲的時鐘周期,從而根據(jù)每個檢測單元延遲的時鐘周期時間得到兩個序列的相似度。本實施例中,通過時鐘周期表示兩個序列的相似度,從而避免了現(xiàn)有技術(shù)中權(quán)值累加導(dǎo)致權(quán)值過大造成溢出的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的相似度檢測裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例一提供的一種檢測單元的結(jié)構(gòu)示意圖;
圖3為檢測單元的連接示意圖;
圖4為狀態(tài)機的示意圖;
圖5為本發(fā)明實施例二提供的一種檢測單元的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例一提供的相似度檢測裝置的結(jié)構(gòu)示意圖,如圖1所示,本實施例的提供的相似度檢測裝置包括:M×N個檢測單元,M×N個檢測單元形成一個M行N列的陣列,M和N均為大于或等于2的正整數(shù),圖1中M和N均等于16,圖1中每個矩形框表示一個檢測單元。
以圖1所示的例子為例,M和N均為16,對于一個M×N個檢測單元組成的相似度檢測裝置,最多可以檢測長度為15的序列。如圖1所示,相似度檢測裝置的橫坐標是參考序列,縱坐標是待檢測序列,參考序列和待檢測序列的長度都為15。本實施例的目的是將縱坐標的序列經(jīng)過一系列操作映射到橫坐標上,而在圖中直觀的表示是若干條從坐標(0,0)到(15,15)的路徑,每條路徑代表一系列操作,圖中橫向箭頭代表插入操作,縱向箭頭代表刪除操作,對角箭頭代表匹配或者替換操作。顯然有很多條這樣的路徑,因此,本實施例中使用動態(tài)規(guī)劃的方法求出最短路徑。動態(tài)規(guī)劃算法是一種常見的解決問題的算法,通過將復(fù)雜問題逐步分割成若干簡單一點的子問題,一級一級向后解決,最終完成整個問題。在動態(tài)規(guī)劃算法中,每一個子問題只會被計算一次,因此減少了計算的次數(shù)。本實施例中,將待檢測序列和參考序列按照字符進行分割,每個檢測單元用于計算兩個字符的相似度,這兩個字符一個來自待檢測序列,另一個來自參考序列,最終可以計算出待檢測序列和參考序列的相似度。
圖2為本發(fā)明實施例一提供的一種檢測單元的結(jié)構(gòu)示意圖,如圖2所示,檢測單元包括第一或門電路11、計數(shù)器12、選擇模塊13、三個輸出電路:右輸出電路14、右上輸出電路15和上輸出電路16,以及路徑記錄模塊17。
其中,第一或門電路11包括三個輸入端和一個輸出端,三個輸入端為:左輸入端、左下輸入端和下輸入端,即每個檢測單元包括有三個輸入端和三個輸出端。圖3為檢測單元的連接示意圖,如圖3所示,目標檢測單元共有八個相鄰的檢測單元,根據(jù)該八個檢測單元與目標檢測單元的位置將該八個檢測單元稱為:左上檢測單元、左檢測單元、左下檢測單元、下檢測單元、右下檢測單元、右檢測單元、右上檢測單元、上檢測單元。目標單元的左輸入端的輸入信號來自左檢測單元,左下輸入端的輸入信號來自左下檢測單元,下輸入端的輸入信號來自下檢測單元。目標檢測單元根據(jù)所比較的兩個字符,在三個輸入端的輸入的基礎(chǔ)上加上三種序列操作對應(yīng)的權(quán)值,然后分別通過三個輸出端輸出,目標檢測單元的上輸出電路16的輸出信號傳遞給了上輸出檢測單元,右上輸出電路15的輸出信號傳遞給了右上檢測單元,右輸出電路14的輸出信號給了右檢測電路的左輸入端。這里目標檢測單元是指當前進行相似度比較的檢測單元。
具體的,目標檢測單元的第一或門電路11的左輸入端與左檢測單元的右輸出電路14連接,第一或門電路11的左下輸入端與左下檢測單元的右上輸出電路15連接,第一或門電路11的下輸入端與下檢測單元的上輸出電路16連接,第一或門電路11的三個輸入端還分別與路徑記錄模塊17連接,第一或門電路11的輸出端與計數(shù)器12的輸入端連接,路徑記錄模塊17用于記錄第一或門電路11的三個輸入端中首先輸入高電平的輸入端。
計數(shù)器12的輸入端與第一或門電路11的輸出端連接,計數(shù)器12的輸出端與選擇模塊13的輸入端連接,計數(shù)器12的目的是進行時間延遲。本實施例中,每個檢測單元具有三個輸入端和三個輸出端,因此,每個檢測單元可以計算三種序列操作的權(quán)值,序列操作可以為:輸出、插入、替換、匹配等,這里只是舉例說明,序列操作并不限于上述所列舉的。每種序列操作具有權(quán)值,序列操作的權(quán)值用于表示序列操作的代價,本發(fā)明各實施例中,序列操作的權(quán)值為計數(shù)器12的值,計數(shù)器12的值也就是延遲的時間周期,即本實施例中通過時間周期表示各序列操作的代價。計數(shù)器12的最大值大于三種序 列操作的權(quán)值的最大值,例如,刪除操作的權(quán)值為8、替換操作的權(quán)值為4,插入操作的權(quán)值為8,那么計數(shù)器12的最大值大于8。
選擇模塊13包括一個輸入端、三個輸出端和兩個控制端連接,選擇模塊13的輸入端用于和計數(shù)器12的輸出端連接,選擇模塊13的三個輸出端分別與右輸出電路14、右上輸出電路15和上輸出電路16連接,兩個控制端的輸入信號為比較的兩個序列的字符。目標檢測單元的右輸出電路14與右檢測電路的左輸入端連接,右上輸出電路15與右上檢測電路的左下輸入電路連接,上輸出電路16與上檢測電路的下輸入端連接。選擇模塊13用于根據(jù)計數(shù)器12的計數(shù)值,通過相應(yīng)的輸出電路輸出高電平。本實施例中,各輸出電路具有保持作用,即一旦輸出電路的輸入信號變?yōu)楦唠娖剑敲摧敵鲭娐返妮敵鲂盘柧蜁恢北3指唠娖?,后續(xù)無論輸出電路的輸入信號變?yōu)楦唠娖竭€是低電平,輸出電路的輸出信號都不會再發(fā)生變化。這是因為計數(shù)器12的計數(shù)值一直處于變化中,而輸出電路的輸入信號會隨著計數(shù)器12的計數(shù)值變化,若輸出電路不具有保持作用,檢測單元的輸出信號就會一直變化,從而導(dǎo)致路徑記錄模塊17無法正確的記錄各檢測單元的最小權(quán)值。
在當?shù)谝换蜷T電路11輸出高電平時,計數(shù)器12開始計數(shù)。計數(shù)器12的目的是進行時間延遲,即由計數(shù)器12決定三個輸出電路什么時間輸出高電平。當計數(shù)器12的輸出為第一計數(shù)值時,選擇模塊13的第一輸出端輸出高電平,右輸出電路14輸出并保持高電平,當計數(shù)器12的輸出為第二計數(shù)值時,選擇模塊13的第二輸出端輸出高電平,右上輸出電路15輸出并保持高電平,當計數(shù)器12的輸出為第三計數(shù)值時,選擇模塊13的第三輸出端為高電平,上輸出電路16輸出并保持高電平。若右輸出電路14對應(yīng)插入操作,上輸出電路16對應(yīng)刪除操作,右上輸出電路15對應(yīng)替換操作,那么第一計數(shù)值表示插入操作延遲的時鐘周期,第二計數(shù)值表示刪除操作延遲的時鐘周期,第三計數(shù)值表示替換操作延遲的時鐘周期。
三個輸出電路中哪個輸出電路先輸出高電平,那么先輸出高電平的輸出電路對應(yīng)的序列操作就是權(quán)值最小的操作,即操作代價最小的操作。因此,根據(jù)每個檢測單元的輸出電路的輸出信號的順序就可以確定最小權(quán)值,而每個檢測單元的輸出電路的輸出信號又作為了下一級檢測單元的輸入信號,因此,本實施例中,通過每級檢測單元的路徑記錄模塊17記錄的結(jié)果,可以反 向推出上一級檢測單元的輸出電路的輸出順序。
以圖1所示例子為例,給一個輸入1到檢測單元(0,0)的左下輸入端,而檢測單元(0,0)所比較的兩個字符分別為A和A,假設(shè)替換(匹配)操作的權(quán)值為4,而插入/刪除操作的權(quán)值為8,那么經(jīng)過檢測單元(0,0)內(nèi)部的處理,在經(jīng)過4個時鐘周期,右上輸出變?yōu)?,而經(jīng)過8個時鐘周期,右輸出和上輸出變?yōu)?,依次類推一級一級向后計算。而通過動態(tài)規(guī)劃的算法求最短路徑,需由最后一個檢測單元(15,15)往前推算,由于當每個檢測單元的三個輸入有一個變?yōu)?的時候,其從檢測單元(0,0)到該檢測單元所延遲的“時鐘周期”必定是所有路徑中最少的,而其他兩個稍晚到的輸入端的信號將無關(guān)緊要(或門的性質(zhì))。因此,最終檢測單元(15,15)的第一或門電路11將從相鄰三個檢測節(jié)點的權(quán)值中,選取最小值,而此時相似度檢測裝置延遲的總周期,即為該相似度檢測裝置所比較的兩個序列的相似度的量化值。同時,我們可以通過單元電路中的路徑記錄模塊17,來獲取一條從(0,0)到(15,15)的最優(yōu)路徑,這里輸入和輸出為1表示,輸入和輸出的是高電平。
可選的,路徑記錄模塊17可以采用狀態(tài)機實現(xiàn),狀態(tài)機共有四個狀態(tài):S0、S1、S2和S3,S0表示目標檢測單元的三個輸入端都沒有輸入高電平,S1表示左輸入端首先輸入高電平,S2表示左下輸入首先輸入高電平,S3表示下輸入端首先輸入高電平。圖4為狀態(tài)機的示意圖,通過圖4可以看出,狀態(tài)機的初始狀態(tài)為S0,當左輸入端首先輸入高電平時,狀態(tài)機的狀態(tài)從S0跳轉(zhuǎn)到S1,當左上輸入端首先輸入高電平時,狀態(tài)機的狀態(tài)從S0跳轉(zhuǎn)到S2,當下輸入端首先輸入高電平時,狀態(tài)機的狀態(tài)從S0跳轉(zhuǎn)到S3。當狀態(tài)機的狀態(tài)從S0跳轉(zhuǎn)到S1、S2、S3之后,狀態(tài)機接收到任何輸入,狀態(tài)都不會再跳轉(zhuǎn)。當然,路徑記錄模塊17還可以通過其他方式實現(xiàn),例如,用寄存器實現(xiàn),通過寄存器存儲哪個輸入端首先輸入高電平,例如,用00表示左輸入端首先輸入高電平,用01表示左上輸入端首先輸入高電平,用10分別表示下輸入端首先輸入高電平。
可選的,右輸出電路14包括:第二或門電路和第一與門電路,第二或門電路包括兩個輸入端和一個輸出端,第一與門電路包括兩個輸入端和一個輸出端,第二或門電路的一個輸入端與選擇模塊13的第一輸出端連接,第二或門電路的另一個輸入端與第一與門電路的輸出端連接,第二或門電路的輸出 端與左檢測單元的左輸入端、第一與門電路的一個輸入端連接,第一與門電路的另一個輸入端接高電平。右上輸出電路15包括:第三或門電路和第二與門電路,第三或門電路包括兩個輸入端和一個輸出端,第二與門電路包括兩個輸入端和一個輸出端,第三或門電路的一個輸入端與選擇模塊13的第二輸出端連接,第三或門電路的另一個輸入端與第二與門電路的輸出端連接,第三或門電路的輸出端與左下檢測單元的左下輸入端、第二與門電路的一個輸入端連接,第二與門電路的另一個輸入端接高電平。上輸出電路16包括:第四或門電路和第三與門電路,第四或門電路包括兩個輸入端和一個輸出端,第四與門電路包括兩個輸入端和一個輸出端,第四或門電路的一個輸入端與選擇模塊13的第三輸出端連接,第四或門電路的另一個輸入端與第三與門電路的輸出端連接,第四或門電路的輸出端與下檢測單元的下輸入端、第三與門電路的一個輸入端連接,第三與門電路的另一個輸入端接高電平。當然,輸出電路還可以通過其他電路實現(xiàn),這里只是舉例說明。
本實施例的相似度檢測裝置,通過檢測單元的計數(shù)器進行時間延遲,不同序列操作的延遲的時鐘周期不同,當計數(shù)器的計數(shù)值達到延遲的時鐘周期時,檢測單元通過該序列操作對應(yīng)的輸出電路輸出高電平,而檢測單元的輸出電路輸出的信號作為了下一級檢測單元的輸入信號,由于每個序列操作的延遲的時鐘周期不同,因此每個檢測單元的輸入信號的時間也不同,每個檢測單元有一個輸入變?yōu)楦唠娖降臅r候,說明從初始檢測單元到該檢測單元的延遲最小,通過路徑模塊記錄的首先變?yōu)楦唠娖降妮斎攵丝梢缘贸雒總€檢測單元延遲的時鐘周期,從而根據(jù)每個檢測單元延遲的時鐘周期時間得到兩個序列的相似度。本實施例中,通過時鐘周期表示兩個序列的相似度,從而避免了現(xiàn)有技術(shù)中權(quán)值累加導(dǎo)致權(quán)值過大造成溢出的問題。
圖5為本發(fā)明實施例二提供的一種檢測單元的結(jié)構(gòu)示意圖,本實施例和實施例一的區(qū)別在于:本實施例中選擇模塊13包括:譯碼器131、多路選擇器132。
相應(yīng)的,計數(shù)器12的輸出端與譯碼器131的輸入端連接,譯碼器131包括多個輸出端,譯碼器131的第一輸出端與右輸出電路14連接,譯碼器131的多個第二輸出端分別與多路選擇器132的多個輸入端連接,多路選擇器132的輸出端與右上輸出電路15連接,譯碼器131的第三輸出端與上輸入電路連 接。
當計數(shù)器12的輸出為第一計數(shù)值時,譯碼器131將第一計數(shù)值翻譯為第一獨熱碼,譯碼器131根據(jù)第一獨熱碼從譯碼器131的第一輸出端輸出高電平,當計數(shù)器12的輸出為第二計數(shù)值時,譯碼器131將第二計數(shù)值翻譯為第二獨熱碼,譯碼器131根據(jù)第二獨熱碼從第二獨熱碼對應(yīng)的第二輸出端輸出高電平,多路選擇器132根據(jù)兩個控制端輸入的字符以及第二獨熱碼對應(yīng)的第二輸出端輸出的高電平,從多路選擇器132的輸出端輸出高電平,當計數(shù)器12的輸出為第三計數(shù)值時,譯碼器131將第三計數(shù)值翻譯為第三獨熱碼,譯碼器131根據(jù)第三獨熱碼從譯碼器131的第三輸出端輸出高電平,選擇模塊13的第二輸出端輸出高電平,右上輸出電路15輸出并保持高電平,當計數(shù)器12的輸出為第三計數(shù)值時,選擇模塊13的第三輸出端為高電平,上輸出電路16輸出并保持高電平。
可選的,若右輸出電路14包括:第二或門電路141和第一與門電路142,第二或門電路141包括兩個輸入端和一個輸出端,第一與門電路142包括兩個輸入端和一個輸出端,第二或門電路141的一個輸入端與譯碼器131的第一輸出端連接,第二或門電路141的另一個輸入端與第一與門電路142的輸出端連接,第二或門電路141的輸出端與左檢測單元的左輸入端、第一與門電路142的一個輸入端連接,第一與門電路142的另一個輸入端接高電平。右上輸出電路15包括:第三或門電路151和第二與門電路152,第三或門電路151包括兩個輸入端和一個輸出端,第二與門電路152包括兩個輸入端和一個輸出端,第三或門電路151的一個輸入端與譯碼器131的第二輸出端連接,第三或門電路151的另一個輸入端與第二與門電路152的輸出端連接,第三或門電路151的輸出端與左下檢測單元的左下輸入端、第二與門電路152的一個輸入端連接,第二與門電路152的另一個輸入端接高電平。上輸出電路16包括:第四或門電路161和第三與門電路162,第四或門電路161包括兩個輸入端和一個輸出端,第四與門電路包括兩個輸入端和一個輸出端,第四或門電路161的一個輸入端與譯碼器131的第三輸出端連接,第四或門電路161的另一個輸入端與第三與門電路162的輸出端連接,第四或門電路161的輸出端與下檢測單元的下輸入端、第三與門電路162的一個輸入端連接,第三與門電路162的另一個輸入端接高電平。
本實施例所示出的只是選擇模塊13的一種具體電路結(jié)構(gòu),當然,選擇模塊13還可以通過其他電路實現(xiàn),例如,采用可編程邏輯器件(programmable logic device,簡稱PLD)實現(xiàn)。
針對不同具體應(yīng)用選擇不同形式的結(jié)果。例如,(1)僅比較抽象序列的相似度,我們只關(guān)心傳播的總周期數(shù),是否低于我們預(yù)期的“閾值”,來判斷是否有足夠的相似度。(2)在諸如語音識別等領(lǐng)域,我們還要關(guān)心檢測到的聲音序列是通過怎樣的序列操作映射到參考序列,此時我們關(guān)心具體傳播路徑。(3)在生物信息學(xué)或高分子化學(xué)中,我們關(guān)心兩個序列的最大公共子序列,來判斷兩個DNA或者分子序列是否有公共部分幫助分析兩個序列內(nèi)在的聯(lián)系。
針對第(1)種應(yīng)用情況,可選的,相似度檢測裝置還包括:相似度計算模塊,相似度計算模塊分別與每個檢測單元的路徑記錄模塊17連接,相似度計算模塊用于根據(jù)所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊17的記錄結(jié)果,確定所比較的兩個序列經(jīng)過的所有檢測單元的最小權(quán)值,將所比較的兩個序列經(jīng)過的所有檢測單元的最小權(quán)值相加得到所比較的兩個序列的相似度?;蛘?,相似度檢測裝置包括一個額外的計數(shù)器12,該計數(shù)器12從所比較的兩個序列的第一個字符比較開始計數(shù),在最后一個字符比較結(jié)束停止計數(shù),該計數(shù)器12的值即為所比較的兩個序列的相似度。
針對第(2)種應(yīng)用情況,可選的,相似度檢測裝置還包括:路徑計算模塊,路徑計算模塊分別與每個檢測單元的路徑記錄模塊17連接。路徑計算模塊用于根據(jù)所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊17的記錄結(jié)果,確定傳播路徑,傳播表示將所比較的兩個序列中的待比較序列轉(zhuǎn)換成參考序列所經(jīng)過的序列操作。
針對第(3)種應(yīng)用請求,可選的,相似度檢測裝置還包括:公共子序列確定模塊,公共子序列確定模塊分別與每個檢測單元的路徑記錄模塊17連接。公共子序列確定模塊用于根據(jù)所比較的兩個序列經(jīng)過的所有檢測單元的路徑記錄模塊17的記錄結(jié)果,確定連續(xù)的匹配操作的最大個數(shù),所述連續(xù)的匹配操作的最大個數(shù)對應(yīng)的子序列為所述所比較的兩個序列的最大公共子序列。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對 其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。