Fast approximation algorithms for nding node-independent paths in networks摘要

来源:互联网 发布:淘宝客学生采集群 编辑:程序博客网 时间:2024/06/06 11:36

关键概念:

图中,两个节点i,f之间节点独立路径(node-independent paths)的集合,关于节点独立的意思是:集合中所有路径之间除去初始节点i和终点f之外,不再有任何公共节点存在。节点间节点独立路径数越大表示图具有越好的内聚性。其实给定任意两个节点i,f,两节点间由节点独立路径组成的集合不止一个,其中包含元素最多的集合的元素数,定义为K(i,f)表示节点i,f之间最大节点独立路径数。任意不相邻两节点i,f的局部连通性,用为使节点i,f不连通,所应从图中移除的节点数来表示,记为κ(i,f)。直观上应不难理解:K(i,f)=κ(i,f)。κ(i,f)是对于删除节点图弹性的直观反映。

关于K(i,f)的计算:

an exact algorithm:

a)标记图中的节点,标记为available或者unavailable,对于那些可以用来组成一条从初始节点i到终点f的路径的节点标记为available,对于那些已经出现在其他路径中的节点应该标记为unavailable。用n来记录产生的节点独立路径数。

b)在标记为available的节点中,产生一条从节点i到节点f的新路径,如果存在这样一条路径则n=n+1,并且把组成该路径的节点标记为unavailable,然后重复步骤b。

c)如果在标记为available的节点中,找不到一条从i到f的路径,我们就把组成第n条路径的节点标记为available,并且n=n-1,从步骤b开始重复

d)当在i和f之间不再存在路径时,结束。n即为所求的i和f之间的最大节点独立路径数。

其实该算法就是递归回溯的具体应用,搜索遍历所有可能的情况。该算法的运行是很耗时间的。

approximation algorithm:

该方法的基本思想就像之前介绍的一样,从i到f的路径中选择一条作为i到f的独立路径,并且做出标记以便后面判断这些节点不能用构建新的节点独立路径,然后再从剩余的节点中选择新的路径。这个过程直至没有新的路径从中产生为止。与上一个方法相比我们并不搜索所有可能路径。还有就是据我们观察发现,对于那些越长的路径,属于我们最终要找的路径集合的概率越小。其实这个并不难理解,比如我们选择一条长的环形路径,那么再剩余的节点中,再想找到许多条节点独立的路径就很难了。因此,在我们算法中,我们更倾向于优先寻找那些节点间的最短路径。步骤如下:

a)初始标记除i,f之外的所有节点为available,n=0

b)在标记为available的节点中寻找从i到f的最短路径,如果存在则n=n+1,把组成该路径的节点标记为unavailable,重复步骤b

c)当节点i和f之间不再存在路径时,结束。

方法在寻找最短路径时,有可能最短路径不止一条,这是该选那一条或者说该怎么选呢。可以给定一个参数p来设定,当遇到有多条最短路径时,究竟该遍历几条最短经,方法很多,具体不再具体阐述。





阅读全文
1 0