图巨型连接组件

时间:2016-11-20 07:31:05

标签: python networking graph connected-components

我有一个表格

的矩阵
a b 8.0
a d 0.1
......

其中第1列是节点A,第2节点B和第3相关系数 我必须创建一个找到阈值的程序,因此连接的网络具有巨型连接组件,占网络总节点的50-60%。 我写了一个程序,使用二进制搜索阈值,如

if Giant Connected Component > 60% new threshold=oldthreshold + oldthreshold/2
if Giant Connected Component < 50% new threshold=oldthreshold - oldthreshold/2

问题是算法还在搜索阈值&gt; 1和/或&lt; 0。我怎么能处理这个。或者有更好的想法如何计算它?

1 个答案:

答案 0 :(得分:0)

您描述的算法不是二元搜索。

要正确实施二进制搜索,请跟踪两个值min_thresholdmax_threshold。最初将这些设置为最小和最大可能的阈值。然后在每一步:

threshold = (min_threshold + max_threshold)/2
if GCC(threshold) > 60%:  # threshold is too low, update minimum
    min_threshold = threshold
else if GCC(threshold) < 50%:  # threshold is too high, update maximum
    max_threshold = threshold