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