【问题标题】:Is there an efficient algorithm to find the "maximal connected set"?是否有一种有效的算法来找到“最大连接集”?
【发布时间】:2019-04-20 21:49:43
【问题描述】:

给定一个描述节点对之间连接的布尔值的 2D 表,是否有一种有效的方法可以找到所有节点都连接到所有节点的最大节点子集?

6 个节点的示例:

在这种情况下,“最大连通集”是 {node1, node4, node5}。虽然 node0 与 node2 和 node3 相连,但 node2 和 node3 不相连,所以不要形成“连通集”。

这是一个小例子,但我对原则上可以应用于非常大的表的通用算法感兴趣。

如果有帮助,我的目标是重现本文表 I 中的 Mn 值:Sarwate、D.V. 和 M.B. Pursley,“伪随机和相关序列的互相关属性”,Proc。 IEEE,卷。 68,第 5 期,1980 年 5 月,第 583-619 页。

我将在 MATLAB 中编写此代码,但对 C/C++ 也相当流利。

编辑:这是我要重现结果的表格:

  • 第 1 列和第 2 列在这里并不重要(仅描述代码的长度)。
  • 第 3 列是我所说的“节点数”。
  • 如果您使用所有节点(无论是 无论它们是否“连接”)。
  • 如果只使用“最大连接集”,第 6 列是(最小)错误。
  • 第 5 列 Mn 描述了最大连通集中的节点数。

【问题讨论】:

    标签: algorithm pseudocode


    【解决方案1】:

    你的问题等价于——事实上,它甚至可以被认为是对图论中极大团问题的重述。图论处理的正是您所谈论的结构:连接在一起的节点,称为图,表示它们的一种方法是您上面所说的,称为邻接矩阵。

    “最大集团”正是您所描述的:图中节点的最大子集,每个节点都相互连接。

    这个问题是“NP完全”的,基本上是一类被广泛推测但未被证明无法“有效”解决的问题:特别是,这意味着关于最强的以这种方式提出的猜想,有合理性论据,这些问题至少是指数地耗时的。也就是说,至少在一般情况下,您基本上不能做得比详尽地搜索整个图表更好。也就是说,对于这么小的表,即使对于家用计算机,对所有节点和连接的详尽搜索仍然基本上是即时的,但在任何超出相对较小规模的情况下,即使对于超级计算机也是不可行的。

    【讨论】:

    • 感谢您的快速答复。我将阅读“最大派系”。我更新了我的问题,以澄清我会对实践中的更大表格感兴趣。
    • @Harry:谢谢。你想多大?也就是说,鉴于您已经参考了一篇具有已计算值的论文,这表明,鉴于他们能够计算它们,也许您可​​能正在查看错误的问题,或者问题域上存在额外的限制,然后提高效率,前提是他们的数据集在您的意义上是“大”的。
    • 这篇论文是 1980 年的,所以计算能力当然不应该成为重现他们结果的障碍(尽管我可能缺乏理解)。他们的表 I 只列出了一些结果,我有兴趣再生成一些结果(只是出于兴趣)。他们最后的结果有 2048 个节点,但我认为理论上没有上限。
    • @Harry :是的,我目前无法检查论文,所以我怀疑他们正在做的事情与您的想法不同。您可以仅发布表格的摘录吗?或者甚至只是它应该列出的内容,例如表格标题/标题? M_n 是什么?
    • @The_Symphathizer :我在问题末尾添加了表格。我不确定这是否会告诉您您需要知道的内容。再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2020-11-16
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多