我作为硕士论文的一部分遇到了以下问题,过去几周一直无法找到合适的解决方案,我会问群众。
问题1
假设存在已知长度的(未知)符号序列。比如说
ABCBACBBBAACBAABCCBABBCA... # 2000 Symbols long
现在,给定来自序列中任意位置的 N 样本,任务是重建原始序列。例如:
ABCBACBBBAA
ACBBBAACBAABCCBAB
CBACBBBAACBAAB
BAABCCBABBCA
...
问题2(更难)
现在,从好的方面来说,我可以制作多少样品没有限制,而在不那么光明的一面,故事还有更多。
因此,样本实际上看起来更像是这样:
A A A
A A A C
C B B
B B C* # The C should have been an A.
...
我尝试了以下内容:
让 S 成为带孔的所有部分噪声序列的集合。
随机抽样和滑动窗口的贪婪算法。
这个算法的问题在于我无法找到一个好的度量标准来对序列进行评分。特别是在考虑孔+噪音时。结果往往有利于较短的序列,结果在后续运行中高度不同。我们非常欢迎您解决此问题的想法。
尝试对齐序列的开头。
这种方法试图使用这样一个事实,即我可能能够识别可能构成未知序列开头的字符串中的后缀。但是,由于样本中的孔,我需要将匹配序列向右或向左移动几步。这导致指数复杂性并使问题难以处理。
我也曾尝试使用隐马尔可夫模型,但却对如何处理丢失的数据感到沮丧。
其他想法包括,尝试通过从字符串构建的图表的最大流量(不要认为这将起作用),网格解码[维特比](不要看我如何处理样本从未知序列的中间开始)以及更多。
非常欢迎任何新鲜的想法。相关文章的链接/参考就像吗哪!
有关我的数据集的具体信息
< 60%
确定任何给定的符号都被正确采样。答案 0 :(得分:2)
问题1被称为最短共同超序序问题。对于两个以上的输入字符串,它是NP难的,即使只有两个符号。问题2是Multiple Sequence Alignment的一个实例。它有很多算法和实现,主要是启发式的,因为它通常也是NP难的。