我有一个非常大的N x P二进制矩阵,我想找到两组R和C,它们包含构成最大可能密集的行和列的索引(非稀疏,制作)仅有1个子矩阵,其满足| R |的至少一定大小和| C |。指数不一定是连续的。例如,对于最小| R | = 3 | C | = 2,对于下面的矩阵,我想输出R = {1,2,3} C = {2,5}。
0 1 1 0 1
1 1 0 1 1
0 1 0 1 1
有没有好的算法可以做到这一点?
我有一个想法是将此模型设计为优化问题,我不知道这样的问题是否可以用AMPL编写以与任何开源求解器一起使用,例如,类似的东西(不确定如何准确说明:)
但我怀疑它是NP难的或需要电源设置搜索。或者这个问题是否也可以被看作是一个邻接矩阵并试图找到一个最大的集团?欢迎任何想法!
答案 0 :(得分:2)
我最终意识到这个问题可以重新表述为二分图,然后最大尺寸子矩阵将等于二分图中的最大边缘双曲线,这是一个NP完全问题。我发现R包biclust中的BiMax实现非常有用!