任何人都可以告诉我RNAfold
包中的VinnaRNA
算法的复杂程度。
https://www.tbi.univie.ac.at/RNA/
这个Algo。存在于ViennaRNA-2.4.4\ViennaRNA-2.4.4\src\bin
中。
帮助我。
答案 0 :(得分:0)
您提供的链接中有经验运行时分析。您可以在日志/日志图上看到线性计算时间。
这意味着您可以编写(使用log
作为基数10的对数并调用T
算法的时间复杂度)
log(T(10^n)) = a.n + b for a and b to be read from the graph
=> T(10^n) = 10^(a.n + b) = C.10^(a.n) with C constant
=> T(n) = T(10^(log(n)) = C.10^(a.log(n)) = C.n^a
现在,阅读图表,你可以看到
T(length of RNA sequence = 1000) ~= 10^0 = 1
T(10000) ~= 10^2.6
这会给你一个a ~= 2.6
的近似值
如果您想要保守,可以将a
与3
绑定,这会导致复杂性
T(n) = O(n^3)
其中n
是核苷酸中RNA序列的长度。