我试图从相似性矩阵中找到两个序列的最佳比对。值越高表示对齐越好。
import numpy as np
a = np.array([
[0,5,5,5,5,5,5,5],
[3,10,0,0,0,9,0,0],
[3,0,10,0,0,0,1,0],
[3,0,0,9,0,0,0,0],
[3,0,0,0,0,0,0,10],
])
除了行0和列0之外,每行/列必须与一个列/行对齐,可以在0或更多对齐中使用。
也就是说,这些序列的最佳比对是:
(0,0)
(1,1)
(2,2)
(3,3)
(0,4)
(0,5)
(0,6)
(4,7)
(1,5)
不是对齐对,因为(1,1)
是更好的对齐方式,行和列> 0只能参与一个对齐。
任何建议都表示赞赏。
答案 0 :(得分:0)
我正在稍微改变这个问题。现在,每列必须与一行完全对齐,每行必须与一列完全对齐。为了使矩阵成方形,我添加的行/列等同于行/列0,之前可以参与多个对齐。使用方阵并要求每行/每列仅参与一个对齐,可以将问题视为稳定婚姻问题的一个实例。