因子複雜度 與 阿貝爾複雜度區別

2021-08-28 17:57:31 字數 1717 閱讀 6360

因子複雜度演算法的概念來自「字串的代數組合」,在自然語言處理,模組識別 和密碼理論等領域有著廣泛的應用。簡單來說,因

子複雜度演算法通過分析子字串的組合獲取字串的特徵,該特徵的主要特徵是子字串組合的複雜度以及拓撲熵。 下面給出因子複雜度的具體演算法。對於乙個字母表 &,& =

假定一條基於字母表&的序列|w|,它的長度為 |w|。

我們知道,計算拓撲熵並不容易,因為拓撲熵演算法隨著有限長度序列的長度變化而變化。 因此,我們以 100 bp 長度的序列為例,闡述拓撲熵的演算法。首先獲取到 100 bp 長度序列的因子複雜度函式,觀察該因子複雜度函式的函式影象可以發現,前 7 維的因子複雜度函式值呈指數水平遞增,在第 7 維特徵達到頂峰,然後數值緩慢線性下降。值得一提的是,拓撲熵本身就是與因子複雜度特徵的非線性變化有關係,因此需要關注的是這前 7 維的因子複雜度特徵。 koslicki(koslicki 2011) 等提出了選擇拓撲

熵的公式如下:

其中 w 為序列長度,當 w 為 100 時,根據公式可以算出, n 等於 3。jin提出另外乙個選擇拓撲熵的公式,該公式如下:

其中將 k 和 n0 結合起來分析拓撲熵。本研究根據拓撲熵的原始定義,結合前人的研究,提出一種從因子複雜度中選取拓撲熵的計算方法。前面提到,拓撲熵就是用來描述因子複雜度函式的指數增長速度,因此通過分析因子複雜度的二階差分來尋找拓撲熵位點,公式如下:

abelian 複雜度,作為因子複雜度的衍生複雜度方法,最早被用來研究無限長度序列的複雜度(balková et al 2011)。對於無限長度的序列,它的 abelian 複雜度會呈現規律的週期性(richomme et al 2009),但是有限長度序列的 abelian 複雜度研究

的並不多。下面給出 abelian 複雜度的具體演算法:

下面用乙個例子加以說明:以 dna 序列片段 = aagcagtcgg為例子,說明 abelian 複雜度的具體計算方法,

步驟一:獲取序列片段 的所有子字串,定義 s n ( ) 為所有子字串的集合。

子字串長 相應的子字元集合

步驟二:計算步驟一中獲取的所有長度的子字串集合的帕里克向量。例如,

子字串 cagt 與 agtc 的帕里克向量都是(1, 1, 1, 1)。

步驟三:統計所有長度的子字串集合的帕里克向量個數。例如,長度為 3 的

子字串集合為 aag, agc, gca, cag, agt, gtc, tcg, cgg

對應的帕里克向量為 (2, 0, 0, 1), (1, 1, 0, 1), (1, 0, 1, 1), (0, 1, 1, 1), (0, 1, 0, 2).

複雜度分析 時間複雜度 空間複雜度

執行效率是演算法的乙個重要的考量指標,演算法的執行效率用時間 空間複雜度來衡量。今天我們來學習一下複雜度的分析。通常我們可以通過執行程式來獲得演算法的真正的執行時間,這種方法我們可以稱為事後統計法,但這種方法得到的是具體的資料,測試結果很依賴測試環境,而且受資料規模影像最大。因此,我們需要乙個不需要...

演算法的複雜度 時間複雜度與空間複雜度

通常,對於乙個給定的演算法,我們要做 兩項分析。第一是從數學上證明演算法的正確性,這一步主要用到形式化證明的方法及相關推理模式,如迴圈不變式 數學歸納法等。而在證明演算法是正確的基礎上,第二步就是分析演算法的時間複雜度。演算法的時間複雜度反映了程式執行時間隨輸入規模增長而增長的量級,在很大程度上能很...

時間複雜度與空間複雜度

空間複雜度 space complexity 是對乙個演算法在執行過程中臨時占用儲存空間大小的量度,記做s n o f n 比如直接 插入排序 的時間複雜度 是o n 2 空間複雜度是o 1 而一般的 遞迴演算法就要有o n 的空間複雜度了,因為每次遞迴都要儲存返回資訊。乙個演算法的優劣主要從演算法...