一种凸剖分构造方法及系统与流程

文档序号:35054829发布日期:2023-08-06 10:43阅读:25来源:国知局
一种凸剖分构造方法及系统与流程

本发明涉及图网络剖分,尤其涉及一种凸剖分构造方法及系统。


背景技术:

1、剖分可以理解为针对已知图的一种划分。例如,任意一个点a,可以看做将图网络g划分为两个集合。一个是a点本身,另一个是除a之外的所有点集。这种划分就形成了g的一个剖分结果p,对应的两个集合称为p的两个剖腔。

2、如果剖腔(记为q)内的所有点具备“凸性”,那么我们称其为凸剖腔。“凸性”的定义跟g所代表的场景相关。例如,如果g代表二维平面上的点,那么“凸性”表示剖腔q中任意两点间的连线j,对于图网络g中的a点,只要a点在连线j上,那么a点一定也在剖腔q中。又如,如果图网络g代表路径规划中的最短路径关系,那么“凸性”表示剖腔q中任意两点间最短路径所经过的中间点也一定在剖腔q中。

3、如果剖分结果p内的所有剖腔都是凸的,那么称剖分结果p为凸剖分。在构造图网络的剖分时,我们经常希望构造凸剖分。显然,凸剖分一定存在,因为如果把g中每个点看做一个集合,那么其天然形成了一个凸剖分。但是,更多时候,如地图的着色划分问题,我们希望凸剖分的剖分结果p中的各个剖腔能够包含至少n个点,相应的剖分结果p称为n阶凸剖分,n称为p的阶。而n阶凸剖分不一定存在,因此,我们希望在构造一个凸剖分的剖分结果p,使其在一定条件下有尽可能多的高阶凸剖腔,尽可能少的低阶凸剖腔。


技术实现思路

1、有鉴于此,本发明提供一种凸剖分构造方法及系统。旨在提供一种对图网络进行凸剖分构建方式,以对剖腔进行凸剖分构造。

2、在本发明实施例的第一方面,提供了一种凸剖分构造方法,所述方法包括:

3、通过剖分构造算法对图网络进行剖分,获得剖分结果,所述剖分结果中至少包括两个剖腔;

4、通过第一预设算法计算各个剖腔各自的任意两边界点之间的最短路径,并将所述最短路径上除所述最短路径上的两边界点外的其他点确定为目标点;

5、在所述目标点不属于所在的最短路径上的两边界点所处于的剖腔的情况下,将所述剖腔的剖腔序号存入所述目标点的待定集,以及,在所述目标点属于所在的最短路径上的两边界点所处于的剖腔的情况下,将所述目标点的关键路径标签置为目标取值;

6、在所述目标点的待定集为一元待定集,以及所述目标点的关键路径标签为目标取值的情况下,构建所述目标点对应的虚拟目标点,并将所述虚拟目标点置入所述目标点的待定集中的剖腔序号所对应的剖腔;

7、遍历与所述目标点构成出边或入边的关联点,并在所述关联点所属于剖腔的剖腔序号与所述虚拟目标点所属于剖腔的剖腔序号相同的情况下,通过所述虚拟目标点与所述关联点组成出边或入边以替换所述目标点与所述关联点组成的出边或入边;

8、循环从所述图网络中取出节点,通过第二预设算法遍历所述节点所在的剖腔中的各个节点;

9、在遍历到的节点的相邻剖腔唯一的情况下,将所述遍历到的节点置入所述相邻剖腔。

10、可选地,所述方法还包括:

11、在所述目标点的待定集为一元待定集,以及所述目标点的关键路径标签为非目标取值的情况下,将所述目标点划分至所述目标点的待定集中的剖腔序号所对应的剖腔。

12、可选地,在所述目标点的待定集为非一元待定集的情况下,所述方法还包括:

13、将所述非一元待定集中的剖腔序号所对应的剖腔置空,以及,将所述非一元待定集对应的目标点所处于的剖腔置空;

14、将置空的各个剖腔各自所对应的剖腔序号在各个待定集中删除;

15、将所述非一元待定集对应的目标点确定为中心点;

16、根据所述中心点和第一预设剖腔半径,构建新剖腔,并返回步骤:通过第一预设算法计算各个剖腔各自的任意两边界点之间的最短路径,并将所述最短路径上除所述最短路径上的两边界点外的其他点确定为目标点。

17、可选地,根据所述非一元待定集对应的目标点和第一预设剖腔半径,构建新剖腔之后,所述方法还包括:

18、确定置空的剖腔中的剩余节点是否非空;

19、在置空的剖腔中的剩余节点非空的情况下,在所述剩余节点中随机采样中心点;

20、根据随机采样的中心点和第一预设剖腔半径,构建新剖腔,并返回步骤:通过第一预设算法计算各个剖腔各自的任意两边界点之间的最短路径,并将所述最短路径上除所述最短路径上的两边界点外的其他点确定为目标点。

21、可选地,所述方法还包括:

22、在基于第一预设剖腔半径构建的新剖腔确定的待定集中包括非一元待定集的情况下,将该非一元待定集中的剖腔序号所对应的剖腔置空,以及,将该非一元待定集对应的目标点所处于的剖腔置空;

23、将置空的各个剖腔各自所对应的剖腔序号在各个待定集中删除;

24、将该非一元待定集对应的目标点确定为中心点;

25、根据该中心点和第二预设剖腔半径,构建新剖腔,并返回步骤:通过第一预设算法计算各个剖腔各自的任意两边界点之间的最短路径,并将所述最短路径上除所述最短路径上的两边界点外的其他点确定为目标点;所述第二预设剖腔半径为根据预设规则确定的剖腔半径。

26、本发明第二方面提供一种凸剖分构造系统,所述系统包括:

27、剖分模块,用于通过剖分构造算法对图网络进行剖分,获得剖分结果,所述剖分结果中至少包括两个剖腔;

28、目标点确定模块,用于通过第一预设算法计算各个剖腔各自的任意两边界点之间的最短路径,并将所述最短路径上除所述最短路径上的两边界点外的其他点确定为目标点;

29、待定集和关键路径标签确定模块,用于在所述目标点不属于所在的最短路径上的两边界点所处于的剖腔的情况下,将所述剖腔的剖腔序号存入所述目标点的待定集,以及,在所述目标点属于所在的最短路径上的两边界点所处于的剖腔的情况下,将所述目标点的关键路径标签置为目标取值;

30、虚拟目标点构建模块,用于在所述目标点的待定集为一元待定集,以及所述目标点的关键路径标签为目标取值的情况下,构建所述目标点对应的虚拟目标点,并将所述虚拟目标点置入所述目标点的待定集中的剖腔序号所对应的剖腔;

31、边构建模块,用于遍历与所述目标点构成出边或入边的关联点,并在所述关联点所属于剖腔的剖腔序号与所述虚拟目标点所属于剖腔的剖腔序号相同的情况下,通过所述虚拟目标点与所述关联点组成出边或入边替换所述目标点与所述关联点组成的出边或入边;

32、节点遍历模块,用于循环从所述图网络中取出节点,通过第二预设算法遍历所述节点所在的剖腔中的各个节点;

33、剖腔构造模块,用于在遍历到的节点的相邻剖腔唯一的情况下,将所述遍历到的节点置入所述相邻剖腔。

34、针对在先技术,本发明具备如下优点:

35、本发明实施例提供的一种凸剖分构造方法,该凸剖分构造方法首先通过剖分构造算法对图网络进行剖分,获得剖分结果,该剖分结果中包括多个剖腔。通过第一预设算法计算各个剖腔各自的任意两个边界点之间的最短路径,从而对于该各个剖腔中的任意一个剖腔均可以获得多个最短路径,然后对获得的所有最短路径进行遍历,获得存在于最短路径上的所有目标点。然后对于任意一个目标点,判断该任意一个目标点是否属于自身所在的最短路径上的两个边界点所处于的剖腔。在该任意一个目标点不属于自身所在的最短路径上的两个边界点所处于的剖腔的情况下,将该剖腔的剖腔序号存储至该任意一个目标点的待定集中,以表明该任意一个目标点将不属于该剖腔;而在该任意一个目标点属于自身所在的最短路径上的两个边界点所处于的剖腔的情况下,设置该任意一个目标点的关键路径标签为目标取值,以表明该任意一个目标点将属于自身所在的最短路径上的两个边界点所处于的剖腔。在该任意一个目标点的待定集为一元待定集和该任意一个目标点的关键路径标签为目标取值的情况下,构建该任意一个目标点对应的虚拟目标点,并将该虚拟目标点划分到该任意一个目标点的待定集中的剖腔序号所对应的剖腔中。然后遍历与该任意一个目标点能够构成出边或入边的各个关联点,并在遍历到的关联点所属于的剖腔与该虚拟目标点所属于的剖腔相同的情况下,将由该遍历到的关联点与该任意一个目标点构成的出边或入边替换为由该遍历到的关联点与该虚拟目标点构成的出边或入边,由此将影响该遍历到的关联点所在的剖腔成为凸剖腔的出边或入边替换为一个不会影响该遍历到的关联点所在的剖腔成为凸剖腔的出边或入边。循环从图网络中取出节点,通过第二预设算法遍历取出的节点所在的剖腔中的各个节点;在遍历到的节点的相邻剖腔唯一的情况下,将遍历到的节点置入该相邻剖腔,从而将该遍历到的节点从原来的剖腔划分到该相邻剖腔,以避免该遍历到的节点影响该相邻剖腔形成一个凸剖腔。由此可将图网络构造为凸剖分。

36、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

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