31、寻找带弧和假结的公共子序列及RNA结构相似度计算

寻找带弧和假结的公共子序列及RNA结构相似度计算

1. 带弧和假结的公共子序列算法

在处理带弧和假结的公共子序列问题时,算法会根据不同情况进行操作:
- 遇到初始端点对 :当遇到来自两个序列的一对初始端点时,算法会尝试匹配它们的弧。此时会激活并初始化表格,其中包含两个初始端点的表格需要通过添加该弧分配对来扩展该位置的树。
- 遇到最终端点对 :当遇到一对最终端点时,算法需要使用测试来确定对应的初始端点对是否在树中。如果在,并且匹配最终端点能产生最大值,则匹配这些端点并修剪树;否则,像之前一样合并树和表格。

表格计算完成后,决策算法会根据存储在 $T(0,0)[n, m]$ 中的最长公共保弧子序列的长度来返回结果。如果该长度至少为 $l$,则返回 true ;否则返回 false 。此算法最多计算 $4k$ 个表格的条目,每个表格有 $nm$ 个条目。

时间复杂度分析

每个表格条目 $M_{h1,h2}[i, j]$ 的计算需要 $O(|M_{h1,h2}(i, j)|)$ 时间。在该算法中,树被保持为最小化,仅存储当前活动弧的起始端点的匹配。

为了找到 $M_{h1,h2}[i, j]$ 的大小,我们进行如下操作:
- 树中的每条路径都是匹配的 $i$ 值($i’$)和匹配的 $j$ 值($j’$)的序列。设 $p_1(i’)$ 是 $i’$ 在 $S_1$ 上活动弧的起始端点中的位置,$p_2(j’)$ 是 $j’$ 在 $S_2$ 上活动弧的起始端点中的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值