Algorithm 如何找到具有模糊性的双字型?

Algorithm 如何找到具有模糊性的双字型?,algorithm,search,graph,bigdata,fuzzy-search,Algorithm,Search,Graph,Bigdata,Fuzzy Search,给定一个2D布尔数组,想要找到最大二分图(完整的二分图)——所有单元格都设置为true的行×列集合 这项任务是NP完全的,我设法不完全地解决了它 现在它变得更有趣了: 想要添加一些“模糊性”:允许一行包含在一个集合中,如果它最多只遗漏X个单元格。我们会考虑“如果”,如果他们有助于使比利克更大。这会使算法变得多复杂?到目前为止,我只能看到,每一个发现的biclique都应该再次测试所有数据集,寻找可能有助于增长的“假货”。感觉不对请提供算法建议 数据的大小越来越大。如果你能熟练掌握机器学习技术,请

给定一个2D布尔数组,想要找到最大二分图(完整的二分图)——所有单元格都设置为
true
的行×列集合

这项任务是NP完全的,我设法不完全地解决了它

现在它变得更有趣了:

  • 想要添加一些“模糊性”:允许一行包含在一个集合中,如果它最多只遗漏X个单元格。我们会考虑“如果”,如果他们有助于使比利克更大。这会使算法变得多复杂?到目前为止,我只能看到,每一个发现的biclique都应该再次测试所有数据集,寻找可能有助于增长的“假货”。感觉不对请提供算法建议

  • 数据的大小越来越大。如果你能熟练掌握机器学习技术,请提供一些解决问题的“近似”方法。对于较大的数据集,近似结果就足够了请建议一种适用于此问题的技巧

  • 问题的说明

    蓝色单元格为
    true
    ,白色单元格为
    false
    。“模糊”最大双色框为红色。每行接收3个“fantom”单元,颜色为灰色。行/列的顺序并不重要。最大双列不一定是一个连续的矩形,这里只是为了说明

    在这项测试中,通过优化阶段取消了浅蓝色单元格。其余的形成两个双集团,行×列:(3,5)×(1,3,4,6)和(3,4,5)×(1,3)


    然而,考虑到
    fuzziness=2
    ,第4行可以添加col(4,6),第(3,5)行可以添加col 5,从而产生一个更大的biclique(3,4,5)×(1,3,4,5,6)。

    您能解释一下在您的案例中biclique的确切定义吗?您的第二个示例似乎允许跳过行/列,这让我有点困惑。此外,您的定义似乎没有这样的约束,即不允许边的两个端点都位于同一个子集中(即biclique的两个定义子集之一)。“任务是NP完成的”——为什么?给定一个二部图,找出它的最大(顶点数)子图,它是一个完全的二部图,不是NP完全的,是吗?如果你反转(ONFF)所有的边,你所需要的是一个独立的集合,它在二部图中有一个简单的多项式解。一个biclique将包含那些行和列,在这些行和列中,每个行和列交叉都是“开”的。行/列的顺序并不重要。它们中的任何两个都不需要相邻。@Petr和a@Serge,好的,如果你将biclique的大小定义为其中的单元格数。你真的需要最大化细胞总数吗?因为如果需要最大化行+列的数量,它是多项式(如同一篇文章中所述),这就是我最初考虑的。