在图中找到得分最高的节点对。

时间:2017-06-26 11:26:49

标签: graph nodes graph-theory

我正在努力解决一个优化问题,我希望在图中找到影响/重要性最高的两个节点的组合。让我们说我想基于中介中心性(BC)。我想更明智的方法是选择一个节点(可能是一个具有高BC的节点),然后计算结果网络的BC,然后删除BC值最高的节点。我的目标是从原始图表中删除节点时得出最高得分组合的列表。我已经实现了一个选择随机节点的简化方法,如果得分高于前一个,则在下一个组合中重用两个节点中的一个。我不确定这种方法是否足够好,如果代码会被卡住"在当地的最佳组合。 任何能指引我朝正确方向前进的指示都将不胜感激。

3 个答案:

答案 0 :(得分:0)

除非您可以利用图表和/或函数的属性,否则必须检查所有对,以确保找到最大值。

答案 1 :(得分:0)

已经提出了几种近似中介中心性计算算法。

你的一般方法是好的,它有点类似于通过采样快速近似中介中心性 [Riondato,Kornaropoulos] 2015. here here

引用:

  

“由于大型网络中的精确计算非常昂贵,   我们提出了两种有效的中间性随机算法   估计。算法基于最短的随机抽样   路径并提供关于质量的概率保证   近似。 [...]第一种算法估计所有顶点(或边)的中间性:所有近似值都在实值中的加法因子ε∈(0,1)内,概率至少为1-δ。第二算法关注具有最高中间性的顶部K顶点(或边缘)并且将它们的中间值估计在乘法因子ε内,概率至少为1-δ。这是第一个可以计算前K个顶点(或边)的近似值的算法。 “

两种算法的时间复杂度为O(r *(| E | + | V | log | V |)),其中r是样本大小(决定了准确度)。

他们的第二个算法与您的用例(K = 2)非常相关:

  

“这是第一个可以计算这种近似值的算法   顶部K个顶点(或边缘)。“

答案 2 :(得分:0)

首先,计算所有节点之间的中心度值。升序排列。选择具有最高BC值的节点并将其从网络中删除。重新连接其余节点,并连续重复该过程。这将使您能够选择网络上BC最高的节点。