一种基于网络社区信息的点到点最短路径计算方法与流程

文档序号:11621039阅读:288来源:国知局
一种基于网络社区信息的点到点最短路径计算方法与流程

本发明属于大规模网络领域,涉及网络最短路径计算方法,具体是一种基于网络社区信息的点到点最短路径计算方法,可用于计算大规模网络中的点到点最短路径。



背景技术:

进入21世纪以来,以互联网迅猛发展为代表人类社会已经大步迈入了网络时代。不仅如此,人类生活的周围世界都是以网络形式存在,从虚拟的万维网到现实的交通网,从非常活跃的社交网到支持网购的物流网,从电力系统的大型电力网络到电子产品领域的超大规模集成电路网,从日常的个人社交网络到学术领域的科学家合作关系网,网络已经起到了巨大的作用。

随着人类文明的进步,网络的规模已经变得越来越大。例如,经济的进步促进了世界网民数量的增长,使得万维网的节点急剧加大,先前的ip地址以用完;交通和交通方式的发展,使以前的交通网络变得更加庞大和复杂,各种新的交通网络也在不多的产生中;而微电子集成电路的规模由一般到大规模再到超大规模;科学家的合作也有国内发展到跨地域甚至跨领域;产品的销售也不局限于本地,越来越多的商品通过物流销售到省外和国外,彻底打破了地域限制。在这些大规模网络中,之前的网络特性得到保持但更多的是发展,之前的方法和技术已经不适合大规模网络。

在大规模网络中包含着一些典型的特性,小世界特性、无标度特性和社区结构特性等。而网络的社区结构对于分析网络的拓扑结构、理解网络的功能、发现网络中的隐藏规律以及预测网络的行为不仅具有十分重要的理论意义,而且具有广泛的应用前景。社区可以定性的定义为网络中节点的子集,其内部节点之间的链接比较紧密,而和网络中社区之间节点的链接相对稀疏。现在已经存在一些高效准确的社区检测算法可以获得网络的社区信息,即使是大规模网络。例如blondel等人提出的“fastunfoldingofcommunitiesinlargenetworks”(《journalofstatisticalmechanics:theoryandexperiment》,2008,pages10008)一文中260万节点的网络只需要0.769秒便可得到比较准确的网络社区信息。

除了网络的整体信息,有时候更需要节点间的信息。网络的点到点最短路径指的是在网络中点到点的若干路径中选择权值最小的路径。在网络中,从一个节点到另一个节点可能存在着不同的路径,不同路径的边权值相加的值是不同的,我们需要找到权值和最小的路径。例如从一个城市到另一个城市,我们需要找到最短距离的路线。

最短路径问题是图论中的典型问题,在电子导航、城市规划、计算机网络与通信、智能交通系统、交通旅游、地理信息系统以及工程技术等方面有着广泛的应用。例如交通网络中,我们需要找到从一个地点到另一个地点的最短距离从而节省时间和能源消费;在通信网络中,一个用户与另一个用进行通信,需要找到最短的通信路径使得通信最少延时和最低消耗;人际关系网中,通过点对点最短路径找到两个人的最直接联系。最短路径问题已成为众多学者广泛研究的一个热点问题。

经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现,它们在时间复杂度、空间复杂度和实现方面各具特色。其中路径搜索技术是最短路径算法研究的重点所在。路径搜索通用技术又可分为组合技术和代数方法两种。组合技术主要是指标号算法,按照不同的标识节点处理策略,标号算法又可分为标号设定和标号改正两大体系,代数方法通过运筹学中的线性规划形式化、所定义代数系统中的联立线性代数方程集形式化和矩阵乘法等方法来求解最短路径问题。

路径搜索通用技术中的标号算法是绝大多数最短路径算法的核心部分。荷兰数学家dijkstra提出了最为经典的最短优先搜索算法,它属于标号算法中的标号设定方法。该算法以发明者的名字命名称为迪杰特斯拉(dijkstra)算法。经典迪杰特斯拉算法将网络结点分成3部分:未标记结点、临时标记结点和永久标记结点。网络中所有结点首先初始化为未标记结点,在搜索过程中和最短路径中的结点相连通的结点为临时标记结点,每次循环都是从临时标记结点中搜索距源点路径长度最短的结点作为永久标记结点,直至找到目标结点或者所有的结点都成为永久标记结点来结束算法。该算法不仅能够求出任意两顶点间的最短路,而且能够求解图中某一特定顶点到其它各顶点的最短路。迪杰特斯拉算法在理论上是正确的,已经公认为最好的最短路径算法。它已经广泛的应用在gis系统、城市道路优化、物流优化、交通系统和机器人路径规划等各个方面。但是该算法的复杂度为顶点数平方的数量级,当针对大规模网络模型,网络顶点数和边数较多的时候,算法的计算量则较大,花费时间更多。因此,在大规模网络应用中表现不尽人意。



技术实现要素:

本发明的目的在于针对上述已有技术的不足,提出一种基于网络社区信息的最短路径计算方法,以降低计算最短路径的时间,提高在大规模网络中的效率。

本发明的技术方案是:将网络中起点和终点间的路径长度作为目标问题,利用网络的社区信息,缩小最短路径算法搜索的范围,提高搜索的效率,提高算法运行时间,其实现步骤包括如下:

(1)输入目标网络g=(v,e),其中,v表示网络中的节点集合,e为网络中边的集合;输入网络社区信息c,ci为节点i的社区,c(k)为社区k包含节点的集合;源点s,目标点d;

(2)构建目标网络的社区网络

(2a)构建社区网络cg=(cv,ce),其中cv为社区网络节点的集合,ce表示网络中边的集合;初始化cv为目标网络社区,即社区网络的节点为目标网络的社区c,设置cg的边长度ce为无穷大inf;

(2b)对于目标网络g的每一条边如果边的节点vi,vi不在同一个社区,即则比较此网络边与对应社区网络边的大小,如果小于对应社区网络边的大小,则令社区网络边的大小等于此网络边。

(3)s所在的社区cs作为源点,d的社区cd为终点,使用迪杰特斯拉方法计算社区网络最短路径spc;

(4)计算目标网络最短路径

(4a)由步骤(3)得到的社区网络最短路径spc和目标网络社区信息c计算得子网络subg的节点subv=c(spc)和边长度sube=e(subv);

(4b)对子网络节点进行顺序编号得子网络索引ind,indi表示子网络节点i在原目标网络的节点,ind(k)为目标网络节点k在子网络的编号,对应子网络的边长度不变;

(4c)ind(s)为源点,ind(d)为终点,使用迪杰特斯拉方法计算子网络最短路径sps;

(4d)由步骤(4b)得到的子网络索引ind和步骤(4c)获得的子网络最短路径sps计算目标网络最短路径sp=ind(sps);

(5)输出步骤(4d)中的目标网络最短路径sp。

本发明与现有技术相比具有如下优点:

第一,本发明由于采用了网络的社区信息,为最短路径的搜索提供了方向,克服了传统最短路径算法仅依靠网络拓扑结构搜索最短路径的缺点;

第二,本发明由于先建立目标网络的社区网络图,找到最短路径经过的社区,把最短路径的搜索范围限定在这些社区内,提高了算法的效率,克服了现有技术具有较长计算时间的问题;

第三,本发明由于采用贪婪的策略,可以正确的找到搜索范围内的最短路径,保证了结果的准确性。

附图说明

图1为本发明的实现流程图;

图2为本发明与现有方法在北美航空交通网络中找出的最短路径精度和时间效率比较图;

图3为本发明与现有方法在网络理论与实验科学合作网络中找出的最短路径精度和时间效率比较图。

具体实施方式

参照图1,本发明的实现步骤如下:

步骤1:输入目标网络g=(v,e),其中,v表示网络中的节点集合,e为网络中边的集合;输入网络社区信息c,ci为节点i的社区,c(k)为社区k包含节点的集合;源点s,目标点d;

步骤2:确定社区网络。

(2a)社区c中的每个社区作为社区网络的节点cv;

(2b)社区网络的边初始化为无穷大,即ce=inf;

(2c)对于目标网络的每一条边eij,如果ci≠cj,且则令

步骤3:求社区网络最短社区路径。

(3a)cs为源点,cd为终点;

(3b)使用迪杰特斯拉方法计算社区网络最短社区路径spc;

步骤4:计算目标网络最短路径。

(4a)由步骤(3b)得子网络节点subv=c(spc);

(4b)抽取目标子网络:子网络节点为subv,子网络边长度为sube=e(subv);

(4c)对子网络节点顺序编号得子网络与原目标网络索引ind,sube不变;

(4d)ind(s)为源点,ind(d)为目标点;

(4e)使用迪杰特斯拉方法计算目标子网络最短路径sps;

(4f)计算目标网络最短路径sp=ind(sps)。

步骤5:输出目标网络最短路径sp。

本发明的效果可以通过以下仿真进一步说明:

1.仿真条件与参数。

本实例在intel(r)core(tm)2duocpu2.33ghzwindows8.1系统下,matlabr2012a运行平台上,完成本发明与现有迪杰特斯拉方法的仿真实验。

参数设置:节点对个数n=50。本实验针对随机选取节点对个数n为50的情况,分别进行了实验。每个算法对选出的50个节点对分别计算最短路径距离和计算时间。最短路径距离用于评价算法的准确度,算法的效率用计算时间来评测。最短路径距离相同表明算法能准确找到最短的点到点路径,计算时间越短说明算法能更快的找到最短路径,即对点到点最短路径问题,该算法有更好的效率。

2.仿真实验内容。

仿真实验1,北美航空交通网络仿真实验。

本仿真使用美国分析和可视化大型网络小组pajek收集的北美航空交通网络作为实验对象。该网络一共包括332个节点,2126条边。其中没一个节点代表一个北美航空飞机场,连接每两个节点的每一条边代表这两个节点对应的北美航空飞机场存在一条航空线路。该网络是典型的交通网络,是最短路径问题应用最直接的领域。

在本实验中,利用本发明方法和迪杰特斯拉算法这两种方法分别仿真50个节点对的最短路径情况;对一个节点,每种方法分别运行一次并获取最短路径长度和计算时间,仿真实验结果如图2所示。其中图2(a)表示两种算法计算的最短路径长度,图2(b)显示两种方法的计算时间。

从图2(a)可以看出,对于所有的随机选取的节点对,利用本发明方法计算的最短距离和使用迪杰特斯拉算法得到的最短距离之比全部等于1。即本发明方法的最短距离等于迪杰特斯拉算法的最短距离,说明本发明方法可以找到与迪杰特斯拉算法完全相同路径长度的最短路径,证明本发明方法是正确的,具有很高的精确度。

从图2(b)可以看出,对于所有的随机选取的节点对,迪杰特斯拉算法计算网络中点到点最短路径的时间是本发明方法时间的3.03到4.95倍之间,平均时间倍数为3.87,也就是本发明方法相对于迪杰特斯拉算法可以平均节省时间3.87倍。这说明本发明方法可以更快的找到给定网络和节点的最短路径,证明本发明方法有更好的效率。

仿真实验2,网络理论与实验科学合作网络仿真实验。

本仿真实验使用m.e.j.newman手动修改s.boccaletti的“complexnetworks:structureanddynamics”(《physicsreports》,2003)和m.e.j.newman的“thestructureandfunctionofcomplexnetworks”(《siamreview》,2003)两篇文章中的网络理论与实验科学合作网络。该网络包含了原始网络的所有元素,包括1589个科学家,而不是之前发表的379个科学家。网络理论与实验科学合作网络共有1589个节点,2724条边,每一个节点代表一个网络理论研究领域的科学家,每条边表示两个科学家合著过论文,边的权重表示两个作者合作过的文章作者数减一的倒数之和。

在本实验中,利用本发明方法和迪杰特斯拉算法这两种方法分别仿真50个节点对的最短路径情况;对一个节点,每种方法分别运行一次并获取最短路径长度和计算时间,仿真实验结果如图3所示。其中图3(a)表示两种算法计算的最短路径长度,图3(b)显示两种方法的计算时间。

从图3(a)可以看出,对于所有的随机选取的节点对,利用本发明方法计算的最短距离和使用迪杰特斯拉算法得到的最短距离之比全部等于1。即本发明方法的最短距离等于迪杰特斯拉算法的最短距离,说明本发明方法可以找到与迪杰特斯拉算法完全相同路径长度的最短路径,证明本发明方法是正确的,具有很高的精确度。

从图3(b)可以看出,对于所有的随机选取的节点对,迪杰特斯拉算法计算网络中点到点最短路径的时间是本发明方法时间的72.5到81.0倍之间,平均时间倍数为77.3,也就是本发明方法相对于迪杰特斯拉算法可以平均节省时间77.3倍。这说明本发明方法可以更快的找到给定网络和节点的最短路径,证明本发明方法有更好的效率。

在上述两个实验中,对于最短路径距离,本发明方法得到的最短路径距离与迪杰特斯拉算法完全相同,即本发明方法可以找到最优的点到点最短路径,说明本发明方法有很高的准确度。对于计算时间,北美航空交通网络仿真实验中,本发明方法相对于迪杰特斯拉算法可以平均节省时间3.87倍,网络理论与实验科学合作网络仿真实验中可以平均节省时间77.3倍,说明本发明方法所耗费的计算时间小于迪杰特斯拉算法,证明本发明方法有很好的时间效率。并且,网络理论与实验科学合作网络比北美航空交通网络规模大,节省的时间也越多,说明随着网络规模的增大,本发明方法节省的时间就越多,时间效率就越高。

综上所述,本发明以网络中点到点的最短路径为目标,利用网络的社区信息,先对最短路径的搜索范围进行优化,缩小最短路径的搜索范围,构造出基于网络社区信息的点到点最短路径计算方法,与现有的迪杰特斯拉方法对比,不仅能够找到最优的点到点最短路径,而且有很好的时间效率,并且随着网络规模的变大,本发明的效率就越明显,这使得本发明方法能更加有效的用于解决网络点到点最短路径问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1