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

Graph 在图中查找得分最高的节点对。,graph,nodes,graph-theory,Graph,Nodes,Graph Theory,我试图解决一个优化问题,在这个问题上,我想找到两个节点的组合,在一个图中具有最高的影响/重要性。假设我想基于中间性中心性(BC)。我想更明智的方法是选择一个节点(可能是一个BC高的节点),然后计算结果网络的BC,然后删除BC值最高的节点。我的目标是在从原始图中删除节点时,生成一个得分最高的节点组合列表。我已经实现了一种简化的方法,可以挑选出随机节点,如果分数高于上一个,那么在下一个组合中会重用两个节点中的一个。我不确定这种方法是否足够好,也不确定代码是否会“陷入”局部最优组合。 任何指引我正确方

我试图解决一个优化问题,在这个问题上,我想找到两个节点的组合,在一个图中具有最高的影响/重要性。假设我想基于中间性中心性(BC)。我想更明智的方法是选择一个节点(可能是一个BC高的节点),然后计算结果网络的BC,然后删除BC值最高的节点。我的目标是在从原始图中删除节点时,生成一个得分最高的节点组合列表。我已经实现了一种简化的方法,可以挑选出随机节点,如果分数高于上一个,那么在下一个组合中会重用两个节点中的一个。我不确定这种方法是否足够好,也不确定代码是否会“陷入”局部最优组合。
任何指引我正确方向的指针都将不胜感激。

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

已经提出了几种近似中间值中心性计算算法

您的一般方法很好,与2015年通过抽样快速近似中间值中心度的方法有些相似[Riondo,Kornaropoulos]

引述:

“由于大型网络中的精确计算成本高得令人望而却步, 我们提出了两种有效的中间值随机化算法 算法基于最短路径的随机抽样 路径和提供了对数据质量的概率保证 近似。[…]第一种算法估计所有顶点(或边)的介数:所有近似值都在一个加性因子ε内∈ (0,1)与实际值的偏差,概率至少为1− δ、 第二种算法关注具有最高介数的top-K顶点(或边),并估计其介数值在乘法因子ε内,概率至少为1− δ、 这是第一个可以计算top-K顶点(或边)的近似值的算法。”

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

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

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


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

要确保具有最高的对,请对它们进行测试。除非你的数据非常宽容,否则这可能会表明你的算法陷入困境,正如你所说的——野兽的本性。是的,一个大尺寸的图的问题是,我需要运行一个中心性算法N*(N-1)次,因为它类似于N*(N-1)/2个唯一的组合,也许我需要在每个组合中运行两次。所以我有点希望这是一个优化方案,其中只计算了这些组合的一小部分。