最短路径识别方法及装置与流程

文档序号:12824898阅读:232来源:国知局
最短路径识别方法及装置与流程

本发明涉及互联网领域,具体而言,涉及一种最短路径识别方法及装置。



背景技术:

目前,网站分析系统中的路径导航功能,可以帮助用户发现当前页面的前置页面和后置页面,以及每个前置页面到达当前页面的占比,当前页面到达每个后置页面的占比。

虽然通过路径导航能够直观地看到当前页面的前置页面和后置页面,以及各路径的访问占比,但是难以看出网站的最短访问路径。在这种情况下,往往需要用户手动对每条路径进行指标汇总,从而得出最短访问路径。

但是,手动操作方式操作步骤繁琐,工作效率低,易出错。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种最短路径识别方法及装置,以至少解决用户手动确定最短访问路径造成的操作步骤繁琐、工作效率低、易出错的技术问题。

根据本发明实施例的一个方面,提供了一种最短路径识别方法,包括:获取第一目标节点;确定从上述第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;获取第二目标节点;从上述最短路径集合中选出以上述第一目标节点为源点且以上述第二目标节点为终点的路径,作为要识别的最短路径。

进一步地,确定从上述第一目标节点到所有节点的最短路径集合包括:创建包含上述第一目标节点的顶点集合以及包含上述所有节点中除上述第一目标节点外的其它节点的节点集合;查找上述节点集合中与上述第一目标节点间距离最短的节点;将上述第一目标节点到该节点的路径记作一条最短路径,并放入上述最短路径集合中。

进一步地,在找出上述节点集合中与上述第一目标节点间距离最短的节点之后,上述方法还包括:将该节点作为新增节点转移至上述顶点集合中;以上述新增节点为 中间节点,修改上述第一目标节点与上述节点集合中当前各节点间的距离,并根据距离修改结果将上述节点集合中与上述第一目标节点间距离最短的节点作为新增节点再次转移至上述顶点集合中,直到上述节点集合中的全部节点都转移至上述顶点集合中为止。

进一步地,以上述新增节点为中间节点,修改上述第一目标节点与上述节点集合中当前各节点间的距离包括:以上述新增节点为中间节点,判断上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离是否小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离;若是,则将原路径替换为当前路径,其中,上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的路径为上述原路径,上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的路径为上述当前路径。

进一步地,判断上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离是否小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离包括:判断上述节点集合中当前各节点对应的页面是否为上述中间节点对应的页面的后置页面,其中,若是,则确定上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离,否则,则确定上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离不小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离。

根据本发明实施例的另一方面,还提供了一种最短路径识别装置,包括:第一获取单元,用于获取第一目标节点;确定单元,用于确定从上述第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;第二获取单元,用于获取第二目标节点;识别单元,用于从上述最短路径集合中选出以上述第一目标节点为源点且以上述第二目标节点为终点的路径,作为要识别的最短路径。

进一步地,上述确定单元包括:创建模块,用于创建包含上述第一目标节点的顶点集合以及包含上述所有节点中除上述第一目标节点外的其它节点的节点集合;查找模块,用于查找上述节点集合中与上述第一目标节点间距离最短的节点;确定模块,用于将上述第一目标节点到该节点的路径记作一条最短路径,并放入上述最短路径集合中。

进一步地,上述装置还包括:转移单元,用于在找出上述节点集合中与上述第一目标节点间距离最短的节点之后,将该节点作为新增节点转移至上述顶点集合中;修改单元,用于以上述新增节点为中间节点,修改上述第一目标节点与上述节点集合中 当前各节点间的距离,并根据距离修改结果将上述节点集合中与上述第一目标节点间距离最短的节点作为新增节点再次转移至上述顶点集合中,直到上述节点集合中的全部节点都转移至上述顶点集合中为止。

进一步地,上述修改单元包括:判断模块,用于以上述新增节点为中间节点,判断上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离是否小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离;修改模块,用于在是的情况下,将原路径替换为当前路径,其中,上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的路径为上述原路径,上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的路径为上述当前路径。

进一步地,上述判断模块包括:判断子模块,用于判断上述节点集合中当前各节点对应的页面是否为上述中间节点对应的页面的后置页面,其中,第一确定子模块,用于在是的情况下,确定上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离,第二确定子模块,用于在否的情况下,确定上述第一目标节点经过上述中间节点到上述节点集合中当前各节点的距离不小于上述第一目标节点不经过上述中间节点到上述节点集合中当前各节点的距离。

在本发明实施例中,采用自动识别最短路径的方式,通过获取第一目标节点;确定从第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;获取第二目标节点;从最短路径集合中选出以第一目标节点为源点且以第二目标节点为终点的路径,作为要识别的最短路径,达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果,进而解决了用户手动确定最短访问路径造成的操作步骤繁琐、工作效率低、易出错的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的最短路径识别方法的流程图;

图2是根据本发明实施例的路径导航示意图;

图3是根据本发明实施例的一种可选的最短路径识别装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种最短路径识别方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的最短路径识别方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,获取第一目标节点;

步骤s104,确定从第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;

步骤s106,获取第二目标节点;

步骤s108,从最短路径集合中选出以第一目标节点为源点且以第二目标节点为终点的路径,作为要识别的最短路径。

需要说明的是,第一目标节点和第二目标节点都可以是指定网站的任意节点,每个节点对应网站的一个页面。以图2所示的导航架构为例,其中,图2中每个圆圈表示一个访问节点(即网站页面),圆圈中的数字表示对应节点的编号;通过线段相连的任意两个节点互为前置页面和后置页面,标注在两个节点之间的线段上的数字表示这 两个节点之间的访问路径的路径长度(也称为权重值)。

例如,如图2所示,在第一目标节点为节点1时,可以确定节点1到节点n的最短路径的路径长度,即1->n的最短路径的路径长度,其中,n=1,2,3,4,5,6,7,8,9,10,1->1=0,1->2=∞,1->3=76,1->4=83,1->5=31,1->6=1->3->6=86,1->7=1->5->7=64,1->8=1->5->8=57,1->9=1->5->8->9=134,1->10=1->5->7->10=84,由此可见,在第二目标节点为节点10时,可以从上述路径中选出1->10=1->5->7->10=84为要识别的最短路径,且其路径长度为84。

另外,需要说明的是,获取第一、第二目标节点的手段可以包括多种,例如,可以根据用户输入的指令所指定的目标节点,分别获取第一、第二目标节点;再例如,可以根据要识别的最短路径的起点和终点,分别获取第一、第二目标节点,此时,起点为第一目标节点,终点为第二目标节点。

通过上述实施例,可以实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果,进而解决了用户手动确定最短访问路径造成的操作步骤繁琐、工作效率低、易出错的技术问题。

可选地,确定从第一目标节点到所有节点的最短路径集合包括:

s2,创建包含第一目标节点的顶点集合以及包含所有节点中除第一目标节点外的其它节点的节点集合;

s4,查找节点集合中与第一目标节点间距离最短的节点;

s6,将第一目标节点到该节点的路径记作一条最短路径,并放入最短路径集合中。

实施时,可以以任一节点为源点,以其它节点为终点,遍历该源点与其它节点之间的路径,并确定各路径的长度,构建一个二维数组。依旧以图2所示的导航结构为例,使用本发明实施例提供的技术方案,可以构建如表1所示的二维数组。

表1

其中,s、t分别表示路径的源点和终点,s、t交叉处对应的数字表示从s到t间的路径长度(也即路径距离)。例如,s=1,且t=1时,则源点1到终点1的路径长为0;s=1,且t=2时,则源点1到终点2的路径长为∞(表示不可达);s=1,且t=3时,则源点1到终点3的路径长为76。

例如,以节点1为第一目标节点(即源点)为例,确定从节点1到所有节点的最短路径的具体步骤如下:

(1)创建顶点集合s和节点集合u,其中,初始状态下,s={1},u={2,3,4,5,6,7,8,9,10},这是因为1->1=0,1->3=76,1->4=83,1->5=31,1->其它节点=∞,由此可见,1->1=0为其中的最短路径,所以将节点作为顶点放入s,而其它各节点放在u中;

(2)以s中的节点1为源点,从u中找出与节点1间的最短路径,由上述分析可知,此时1->3=76,1->4=83,1->5=31,1->其他节点=∞,可见1->5=31为其中的最短路径且节点不在u中;

(3)选入5(即将5由u转移至s中),此时s={1,5},记录最短路径为1->1=0,1->5=31,并且u={2,3,4,6,7,8,9,10},以5为中间节点,从1->5开始,修改各节点距离得:1->5->7=64,1->5->8=57,1->5->其他点=∞,另外,之前路径为1->3=76,1->4=83,可见,1->5->8=57为其中的最短路径且节点不在u中;

(4)选入8(即将8由u转移至s中),此时s={1,5,8},记录最短路径为1->1=0,1->5=31,1->5->8=57,并且u={2,3,4,6,7,9,10},以8为中间节点,从1->5->8开始,修改各节点距离得:1->5->8->9=134,1->5->8->10=86,1->5->8->其他点=∞,另外,之前路径:1->5->7=64,1->3=76,1->4=83,可见,1->5->7=64为其中的最短路径且节点不在u中;

(5)选入7(即将7由u转移至s中),此时s={1,5,8,7},最短路径为1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->5->8=57,并且u={2,3,4,6,9,10},以7为中间节点,从1->5->7开始,修改各节点距离得:1->5->7->9=150,1->5->7->10=84, 1->5->7->其他点=∞,另外,之前路径:1->5->8->9=134,1->5->8->10=86,1->3=76,1->4=83,可见,1->3=76为其中的最短路径且节点不在u中;

(6)选入3(即将3由u转移至s中),此时s={1,5,8,7,3},最短路径为1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,并且u={2,4,6,9,10},以3为中间节点,从1->3开始,修改各节点距离得:1->3->6=86,1->3->7=99,1->3->其他点=∞,另外,之前路径:1->5->7->9=150,1->5->7->10=84,1->5->8->9=134,1->5->8->10=86,1->4=83,可见,1->4=83为其中的最短路径且节点不在u中;

(7)选入4(即将4由u转移至s中),此时s={1,5,8,7,3,4},最短路径为1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,1->4=83,并且u={2,6,9,10},以4为中间节点,从1->4开始,修改各节点距离得:1->4->6=143,1->4->7=121,1->4->8=136,1->4->其他点=∞,另外,之前路径:1->3->6=86,1->3->7=99,1->5->7->9=150,1->5->7->10=84,1->5->8->9=134,1->5->8->10=86,可见,1->5->7->10=84为其中的最短路径且节点不在u中;

(8)选入10(即将10由u转移至s中),此时s={1,5,8,7,3,4,10},最短路径为1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,1->4=83,1->5->7->10=84,并且u={2,6,9},以10为中间节点,从1->5->7->10开始,修改各节点距离得:1->5->7->10->其他点=∞,另外,之前路径:1->3->6=86,1->3->7=99,1->5->7->9=150,1->5->8->9=134,1->5->8->10=86,可见,1->3->6=86为其中的最短路径且节点不在u中;

(9)选入6(即将6由u转移至s中),此时s={1,5,8,7,3,4,10,6},最短路径1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,1->4=83,1->5->7->10=84,1->3->6=86,并且u={2,9},以6为中间节点,从1->3->6开始,修改各节点距离得:1->3->6->9=123,1->3->6->10=181,1->3->6->其他点=∞,另外,之前路径:1->3->7=99,1->5->7->9=150,1->5->8->9=134,1->5->8->10=86,可见,1->3->6->9=123为其中的最短路径且节点不在u中;

(10)选入9(即将9由u转移至s中),此时s={1,5,8,7,3,4,10,6,9},最短路径为1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,1->4=83,1->5->7->10=84,1->3->6=86,1->5->8->9=134,并且u={2},以9为中间节点,从1->5->8->9开始,修改各节点距离得:1->5->8->9->其他点=∞,另外,之前路径:1->3->7=99,1->5->7->9=150,1->5->8->10=86,此时,u={2}只剩节点2;

(11)选入2(即将2由u转移至s中),此时s={1,5,8,7,3,4,10,6,9,2},记录1->1=0,1->5=31,1->5->8=57,1->5->7=64,1->3=76,1->4=83,1->5->7->10=84,1->3->6=86,1->5->8->9=134,1->2=∞为最短路径,并且此时u={},结束。

由上述记录的最短路径可知,若指定节点1为第一目标节点且指定节点10为第二目标节点,则要识别的最短路径为1->5->7->10=84。

通过上述实施例,可以实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果。

可选地,在找出节点集合中与第一目标节点间距离最短的节点之后,上述方法还包括:

s8,将该节点作为新增节点转移至顶点集合中;

s10,以新增节点为中间节点,修改第一目标节点与节点集合中当前各节点间的距离,并根据距离修改结果将节点集合中与第一目标节点间距离最短的节点作为新增节点再次转移至顶点集合中,直到节点集合中的全部节点都转移至顶点集合中为止。

例如,以节点2为第一目标节点(即源点)为例,在找出节点集合中与第一目标节点间距离最短的节点之后,确定各新增节点及最短路径的具体步骤如下:

(1)创建顶点集合s和节点集合u,其中,初始状态下,s={2},u={1,3,4,5,6,7,8,9,10},这是因为2->1=∞,2->2=0,2->3=50,2->4=19,2->5=12,2->其它节点=∞,由此可见,2->2=0为其中的最短路径,所以将节点作为顶点放入s,而其它各节点放在u中;

(2)以s中的节点2为源点,从u中找出与节点2间的最短路径,由上述分析可知,此时2->3=50,2->4=19,2->5=12,2->其他节点=∞,可见2->5=12为其中的最短路径且节点不在u中;

(3)选入5(即将5由u转移至s中),此时s={2,5},记录最短路径为2->2=0,2->5=12,并且u={1,3,4,6,7,8,9,10},以5为中间节点,从2->5开始,修改各节点距离得:2->5->7=45,2->5->8=38,2->5->其他点=∞,另外,之前路径为2->3=50,2->4=19,2->其他点=∞,可见,2->4=19为其中的最短路径且节点不在u中;

(4)选入4(即将4由u转移至s中),此时s={2,5,4},记录最短路径为2->2=0,2->5=12,2->4=19,并且u={1,3,6,7,8,9,10},以4为中间节点,从2->4开始,修改各节点距离得:2->4->6=79,2->4->7=57,2->4->8=72,2->4->其他点=∞,另外,之前路径:2->5->7=45,2->5->8=38,2->3=50,可见,2->5->8=38为其中的最短路径且 节点不在u中;

(5)选入8(即将8由u转移至s中),此时s={2,5,4,8},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,并且u={1,3,6,7,9,10},以8为中间节点,从2->5->8开始,修改各节点距离得:2->5->8->9=115,2->5->8->10=67,2->5->8->其他点=∞,另外,之前路径:2->4->6=79,2->4->7=57,2->4->8=72,2->5->7=45,2->3=50,可见,2->5->7=45为其中的最短路径且节点不在u中;

(6)选入7(即将7由u转移至s中),此时s={2,5,4,8,7},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,并且u={1,3,6,9,10},以7为中间节点,从2->5->7开始,修改各节点距离得:2->5->7->9=131,2->5->7->10=65,2->5->7->其他点=∞,另外,之前路径:2->5->8->9=115,2->5->8->10=67,2->4->6=79,2->4->7=57,2->4->8=72,2->3=50,可见,2->3=50为其中的最短路径且节点不在u中;

(7)选入3(即将3由u转移至s中),此时s={2,5,4,8,7,3},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,2->3=50,并且u={1,6,9,10},以3为中间节点,从2->3开始,修改各节点距离得:2->3->6=86,2->3->7=99,2->3->其他点=∞,另外,之前路径:2->5->7->9=131,2->5->7->10=65,2->5->8->9=115,2->5->8->10=67,2->4->6=79,2->4->7=57,2->4->8=72,可见,2->5->7->10=65为其中的最短路径且节点不在u中;

(7)选入10(即将10由u转移至s中),此时s={2,5,4,8,7,3,10},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,2->3=50,2->5->7->10=65,并且u={1,6,9},以10为中间节点,从2->5->7->10开始,修改各节点距离得:2->5->7->10->其他点=∞,另外,之前路径:2->5->7->9=131,2->5->8->9=115,2->5->8->10=67,2->4->6=79,2->4->7=57,2->4->8=72,可见,2->4->6=79为其中的最短路径且节点不在u中;

(8)选入6(即将6由u转移至s中),此时s={2,5,4,8,7,3,10,6},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,2->3=50,2->5->7->10=65,2->4->6=79,并且u={1,9},以6为中间节点,从2->4->6开始,修改各节点距离得:2->4->6->9=116,2->4->6-10=174,2->4->6->其他点=∞,另外,之前路径:2->5->7->9=131,2->5->8->9=115,2->5->8->10=67,2->4->7=57,2->4->8=72,可见,2->5->8->9=115为其中的最短路径且节点不在u中;

(9)选入9(即将9由u转移至s中),此时s={2,5,4,8,7,3,10,6,9},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,2->3=50,2->5->7->10=65,2->4->6=79,2->5->8->9=115,并且u={1},以9为中间节点,从2->5->8->9开始,修改各节点距离得:2->5->8->9->其他点=∞,另外,之前路径:2->5->7->9=131,2->5->8->10=67,2->4->7=57,2->4->8=72,可见,2->1=∞为其中的最短路径且节点不在u中;

(10)选入1(即将1由u转移至s中),此时s={2,5,4,8,7,3,10,6,9,1},记录最短路径为2->2=0,2->5=12,2->4=19,2->5->8=38,2->5->7=45,2->3=50,2->5->7->10=65,2->4->6=79,2->5->8->9=115,2->1=∞,此时u={},结束。

由上述记录的最短路径可知,若指定节点2为第一目标节点且指定节点10为第二目标节点,则要识别的最短路径为2->5->7->10=65。进一步地,比较1为源点和2为源点的最短路径,得到2为源点的路径更短,因此最终的最短路径为2->5->7->10=65。

通过上述实施例,可以实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果,并且,可以实现比较不同最短路径长短的目的。

可选地,以新增节点为中间节点,修改第一目标节点与节点集合中当前各节点间的距离包括:

s12,以新增节点为中间节点,判断第一目标节点经过中间节点到节点集合中当前各节点的距离是否小于第一目标节点不经过中间节点到节点集合中当前各节点的距离;

s14,若是,则将原路径替换为当前路径,其中,第一目标节点不经过中间节点到节点集合中当前各节点的路径为原路径,第一目标节点经过中间节点到节点集合中当前各节点的路径为当前路径。其中,若否,则保持原路径不变。

依旧以图2为例,以s中的节点2为源点,从u中找出与节点2间的最短路径,由上述分析可知,此时2->3=50,2->4=19,2->5=12,2->其他节点=∞,可见2->5=12为其中的最短路径且节点不在u中,因此将5由u转移至s中,此时s={2,5},记录最短路径为2->2=0,2->5=12,并且u={1,3,4,6,7,8,9,10},以5为中间节点,从2->5开始,得到当前路径:2->5->7=45,2->5->8=38,2->5->其他点=∞,2->1->5=∞,2->3->5=∞,2->4->5=∞;由于原路径:2->3=50,2->4=19,2->其他点=∞;由此可见,只需要将2->5->7=∞,2->5->8=∞分别替换为2->5->7=45,2->5->8=38,而其它 路径保持不变即可,即最终修改各节点距离得:2->5->7=45,2->5->8=38,2->5->其他点=∞,2->3=50,2->4=19,2->其他点=∞。

通过上述实施例,可以实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果。

可选地,判断第一目标节点经过中间节点到节点集合中当前各节点的距离是否小于第一目标节点不经过中间节点到节点集合中当前各节点的距离包括:

s16,判断节点集合中当前各节点对应的页面是否为中间节点对应的页面的后置页面;

s18,若是,则确定第一目标节点经过中间节点到节点集合中当前各节点的距离小于第一目标节点不经过中间节点到节点集合中当前各节点的距离;

s20,否则,则确定第一目标节点经过中间节点到节点集合中当前各节点的距离不小于第一目标节点不经过中间节点到节点集合中当前各节点的距离。

由于s集合中的顶点v与u集合中节点u若能够构成边,则<u,v>有正常权值,若u不是v的邻边节点,则<u,v>无正常权值,即权值为∞,而任意节点与其后置节点(后置页面对应的节点)之间都可以构成边,因此任意节点经过其后置节点时,其路径都会缩短,通过该任意节点经过其后置节点之间的上述属性,就可以简单、方便地确定是否需要将原路径替换为当前路径,实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果。

实施例2

根据本发明实施例,提供了一种最短路径识别装置的装置实施例。

图3是根据本发明实施例的一种可选的最短路径识别装置的示意图,如图2所示,该装置包括:第一获取单元302,用于获取第一目标节点;确定单元304,用于确定从第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;第二获取单元306,用于获取第二目标节点;识别单元308,用于从最短路径集合中选出以第一目标节点为源点且以第二目标节点为终点的路径,作为要识别的最短路径。

需要说明的是,第一目标节点和第二目标节点都可以是指定网站的任意节点,每个节点对应网站的一个页面。以图2所示的导航架构为例,其中,图2中每个圆圈表示一个访问节点(即网站页面),圆圈中的数字表示对应节点的编号;通过线段相连的 任意两个节点互为前置页面和后置页面,标注在两个节点之间的线段上的数字表示这两个节点之间的访问路径的路径长度(也称为权重值)。

例如,如图2所示,在第一目标节点为节点1时,可以确定节点1到节点n的最短路径的路径长度,即1->n的最短路径的路径长度,其中,n=1,2,3,4,5,6,7,8,9,10,1->1=0,1->2=∞,1->3=76,1->4=83,1->5=31,1->6=1->3->6=86,1->7=1->5->7=64,1->8=1->5->8=57,1->9=1->5->8->9=134,1->10=1->5->7->10=84,由此可见,在第二目标节点为节点10时,可以从上述路径中选出1->10=1->5->7->10=84为要识别的最短路径,且其路径长度为84。

另外,需要说明的是,获取第一、第二目标节点的手段可以包括多种,例如,可以根据用户输入的指令所指定的目标节点,分别获取第一、第二目标节点;再例如,可以根据要识别的最短路径的起点和终点,分别获取第一、第二目标节点,此时,起点为第一目标节点,终点为第二目标节点。

通过上述实施例,可以实现达到了自动识别最短访问路径的目的,从而实现了简化操作步骤、提高工作效率、降低出错率的技术效果,进而解决了用户手动确定最短访问路径造成的操作步骤繁琐、工作效率低、易出错的技术问题。

可选地,确定单元包括:创建模块,用于创建包含第一目标节点的顶点集合以及包含所有节点中除第一目标节点外的其它节点的节点集合;查找模块,用于查找节点集合中与第一目标节点间距离最短的节点;确定模块,用于将第一目标节点到该节点的路径记作一条最短路径,并放入最短路径集合中。

可选地,上述装置还包括:转移单元,用于在找出节点集合中与第一目标节点间距离最短的节点之后,将该节点作为新增节点转移至顶点集合中;修改单元,用于以新增节点为中间节点,修改第一目标节点与节点集合中当前各节点间的距离,并根据距离修改结果将节点集合中与第一目标节点间距离最短的节点作为新增节点再次转移至顶点集合中,直到节点集合中的全部节点都转移至顶点集合中为止。

可选地,修改单元包括:判断模块,用于以新增节点为中间节点,判断第一目标节点经过中间节点到节点集合中当前各节点的距离是否小于第一目标节点不经过中间节点到节点集合中当前各节点的距离;修改模块,用于在是的情况下,将原路径替换为当前路径,其中,第一目标节点不经过中间节点到节点集合中当前各节点的路径为原路径,第一目标节点经过中间节点到节点集合中当前各节点的路径为当前路径。

可选地,判断模块包括:判断子模块,用于判断节点集合中当前各节点对应的页面是否为中间节点对应的页面的后置页面,其中,第一确定子模块,用于在是的情况 下,确定第一目标节点经过中间节点到节点集合中当前各节点的距离小于第一目标节点不经过中间节点到节点集合中当前各节点的距离,第二确定子模块,用于在否的情况下,确定第一目标节点经过中间节点到节点集合中当前各节点的距离不小于第一目标节点不经过中间节点到节点集合中当前各节点的距离。

此处需要说明的是,装置实施例部分的各功能单元和/或模块对应于方法实施例中的步骤,这些功能单元和/或模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容,在此不再赘述。需要说明的是,上述模块和/或单元作为装置的一部分可以运行在计算机终端中。

上述最短路径识别装置包括处理器和存储器,上述第一获取单元、确定单元、第二获取单元和识别单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取第一目标节点;确定从第一目标节点到所有节点的最短路径集合,其中,每个节点对应一个页面;获取第二目标节点;从最短路径集合中选出以第一目标节点为源点且以第二目标节点为终点的路径,作为要识别的最短路径。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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