如何找到模糊的混合物?

时间:2015-07-01 11:52:27

标签: algorithm search graph bigdata fuzzy-search

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

任务是NP完全的,我设法解决它不完美。

现在它变得更有趣了:

  1. 想要添加一些“模糊性”:允许将一行包含在一个集合中,如果它只错过了X个单元格。我们会考虑“好像”他们“开启”,如果这有助于增加更大的混合物。算法会有多复杂?到目前为止,我只能看到每个找到的biclique应该再次测试所有数据集,以寻找可能有助于增长的“假货”。感觉不对。 请建议算法

  2. 数据的大小变大。也许如果你能熟练使用机器学习技术 - 请提出一些“近似”的方法来解决问题。使用更大的数据集,近似结果就足够了。 请建议适用于此问题的技巧

  3. 问题的插图

    pic.1 - added cells

    蓝色单元格为true,白色为false。 “模糊”最大双色调为红色。每一排都收到了3个“fantom”细胞,颜色为灰色。行/列的顺序无关紧要。最大的biclique不一定是连续的矩形,这里只是为了说明。

    pic.2 - tests screenshot

    在该测试中,通过优化阶段消除了浅蓝色细胞。其余形成两个双重派系,行×cols :( 3,5)×(1,3,4,6)和(3,4,5)×(1,3)。< / p>

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

0 个答案:

没有答案