【问题标题】:Pairwise alignment of long string sequences长字符串序列的成对对齐
【发布时间】:2022-01-18 18:07:19
【问题描述】:

我想在两个长(数万个)字符串序列之间找到全局最优(或接近最优)的成对对齐,但该算法有望在任何对象序列上运行。 我还想使用我自己的距离函数实现来计算两个对象的相似度。对于较短的序列,我可以使用动态时间规整 (DTW) 算法,但 DTW 算法需要计算和存储一个 n*m 距离矩阵(n,m 是序列的长度),这对于较长的序列是不可行的。你能推荐这样的算法吗?一个有效的实现将是一个加号。

下面的例子阐明了算法需要做什么:

输入: 序列A:我看到了山顶 序列B:然后我看到山顶 结果: 序列A:我看到了山顶 序列B:然后我看到山顶

【问题讨论】:

    标签: algorithm alignment dynamic-programming


    【解决方案1】:

    我不知道我是否正确理解了您的要求,但在我看来,您正在尝试解决Stable Marriage Problem。如果我没记错的话,链接中 Gale 和 Shapley 的原始解决方案是 O(n*m) 时间和 O(n+m) 空间。实施非常简单。 还有一些后期解决方案具有不同的问题变体。

    您也可以尝试通过使用最大二分图匹配来解决此问题,例如here,用于获得不同的最优性标准。这也可以在 O(n*m) 中完成。

    【讨论】:

    • 恐怕我没有很好地解释我的要求。我正在寻找的是一种类似 DTW 的算法,可以应用于长序列。来自维基百科:一般来说,DTW 是一种允许计算机在具有一定限制的两个给定序列(例如时间序列)之间找到最佳匹配的方法。序列在时间维度上被非线性“扭曲”,以确定它们的相似性度量,而与时间维度中的某些非线性变化无关。”
    • 啊,对不起,误会你了。这确实似乎比稳定的婚姻要困难一些。
    猜你喜欢
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多