一种设备线路图的生成方法、装置、设备和存储介质与流程

文档序号:31785142发布日期:2022-10-12 12:50阅读:86来源:国知局
一种设备线路图的生成方法、装置、设备和存储介质与流程

1.本发明涉及自动布线领域,具体地,涉及一种设备线路图的生成方法、装置、设备和存储介质。


背景技术:

2.随着电网数字化自动化系统的发展,运行于gis系统上的专题图功能也逐步研发完善,在电网维护和改造中发挥着越来越重要的作用。在绘制专题图的过程中,人工成图效率低,数据关联繁琐,因此利用计算机,整合录入的数据,自动生成专题图逐渐成为新兴的热门需求。在自动生成专题图的过程中,布线作为最后一个步骤,既是成图的关键内容,也是成图的核心难点。
3.现有技术中存在基于角勾链和启发式布线算法进行自动布线的方案,其生成的线路图可能交点或者拐点数量过多,不利于根据该线路图对相关线路进行施工和维护。


技术实现要素:

4.基于上述现状,本发明的主要目的在于提供一种利于施工和维护的设备线路图的生成方法。
5.为实现上述目的,本发明采用的技术方案如下:
6.一种设备线路图的生成方法,包括如下步骤:
7.s100,将多个设备图符分别布置在绘图区不同的位置,将设备图符占据区之外的绘图区分割为多个区域,将每个区域设定为空白角勾链方块;
8.s200,针对每对需用线连接的两个设备端子,从其起点出发沿着不同的可用角勾链方块横向或纵向前进以到达其终点,并维护一路径优先队列以记录按照代价和的大小从小到大排列的所有已知路径,其中,可用角勾链方块包括空白角勾链方块和线段角勾链方块,空白角勾链方块可供路径横向或纵向进入,线段角勾链方块可供路径以垂直于其中线段的方向进入;
9.s300,从当前所述路径优先队列中选择代价和最小的路径,针对其进入的当前可用角勾链方块,执行如下步骤:确定当前可用角勾链方块与相邻可用角勾链方块的公共边,判断沿着进入当前可用角勾链方块的方向是否可以径直到达相邻可用角勾链方块,
10.若否,则:将该公共边中至入点曼哈顿距离最短的端点作为基点,并将该公共边上偏移该基点设定长度的点作为第一出点,将所述入点至第一出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第一子路径;将该公共边中的另一端点作为基点,并将该公共边上偏移该基点设定长度的点作为第二出点,将所述入点至第二出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第二子路径;
11.将所述起点至第一出点之间的第一子路径的当前代价,与第一出点至所述终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第一子路径至第一出点的第一路径的代价和,将所述起点至第二出点之间的第二子路径的当前代价,与第二出点至所述
终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第二子路径至第二出点的第二路径的代价和,将所述第一路径和第二路径按照各自代价和从小到大的顺序记录到所述路径优先队列;
12.若是,则:将沿着进入当前可用角勾链方块的方向继续前进到达公共边的点作为出点,将从入点到该出点的路径作为第三子路径,将该从所述起点出发经过该入点和第三子路径的第三路径按照代价和从小到大的顺序记录到所述路径优先队列;
13.s400,重复执行步骤s300,直至当前所述路径优先队列中代价和最小的路径已经到达所述终点,
14.s500,根据所述路径优先队列中代价和最小的路径生成从所述起点至所述终点的完整连线。
15.优选地,步骤s500具体为:
16.s510,设置多个依次增大的预定比例,其中最大的预定比例为1;
17.s520,选择最小的预定比例,将所有对需用线连接的两个设备端子之间的路径以其起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连线,并以该部分路径的末端为新的起点,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径;
18.s530,按从小到大的顺序选择下一个更大的预定比例,将所有新的路径以其新的起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连线,并以该部分路径的末端为新的起点,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径;
19.s540,判断当前选择的预定比例是否为1,若否则继续执行步骤s530,若是则执行步骤s550;
20.s550,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径,并在该路径上生成连线,从而生成所有对需用线连接的两个设备端子的完整连线。
21.优选地,记录每对两个设备端子之间的连线与其余对两个设备端子之间连线的交点个数,若某一对两个设备端子之间的连线的所述交点个数大于阈值,则拆除该某一对两个设备端子之间的连线,并暂停对该连线所指向的两个设备端子执行s200至s400;
22.在生成其余对两个设备端子之间的完整连线后,再对该拆除的连线所指向的两个设备端子执行s200至s400。
23.优选地,当前代价g(n)通过如下公式计算得到:
24.g(n)=g_distance
manh
+g_count
corner
*value
corner
+g_count
cross
*value
cross

25.预测代价h(n)通过如下公式计算得到:
26.h(n)=h_distance
manh
+h_count
corner
*value
corner
+h_count
cross
*value
cross

27.其中,g_distance
manh
表示当前点至起点之间的当前拐点最少的、长度为相应曼哈顿距离的路径长度,g_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的路径的拐点数量,value
corner
表示拐点的代价系数,g_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的路径与其他连线的交点数量,value
cross
表示交点的代价系数;
28.h_distance
manh
表示当前点至终点之间拐点最少的、长度为相应曼哈顿距离的路径长度,h_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的路径的拐点数量,
value
corner
表示拐点的代价系数,h_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的曼哈顿路径与其他连线的交点数量,value
cross
表示交点的代价系数。
29.优选地,所述交点的代价系数value
cross
大于所述拐点的代价系数value
corner
,且小于所述拐点的代价系数value
corner
的2倍。
30.本发明还包括一种设备线路图的生成装置,包括如下:
31.设备角勾链方块布置模块,用于将多个设备图符分别布置在绘图区不同的位置,将设备图符占据区之外的绘图区分割为多个区域,将每个区域设定为空白角勾链方块;
32.第一线路生成模块,用于针对每对需用线连接的两个设备端子,从其起点出发沿着不同的可用角勾链方块横向或纵向前进以到达其终点,并维护一路径优先队列以记录按照代价和的大小从小到大排列的所有已知路径,其中,可用角勾链方块包括空白角勾链方块和线段角勾链方块,空白角勾链方块可供路径横向或纵向进入,线段角勾链方块可供路径以垂直于其中线段的方向进入;
33.第二线路生成模块,用于从当前所述路径优先队列中选择代价和最小的路径,针对其进入的当前可用角勾链方块,执行如下步骤:确定当前可用角勾链方块与相邻可用角勾链方块的公共边,判断沿着进入当前可用角勾链方块的方向是否可以径直到达相邻可用角勾链方块,
34.若否,则:将该公共边中至入点曼哈顿距离最短的端点作为基点,并将该公共边上偏移该基点设定长度的点作为第一出点,将所述入点至第一出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第一子路径;将该公共边中的另一端点作为基点,并将该公共边上偏移该基点设定长度的点作为第二出点,将所述入点至第二出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第二子路径;
35.将所述起点至第一出点之间的第一子路径的当前代价,与第一出点至所述终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第一子路径至第一出点的第一路径的代价和,将所述起点至第二出点之间的第二子路径的当前代价,与第二出点至所述终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第二子路径至第二出点的第二路径的代价和,将所述第一路径和第二路径按照各自代价和从小到大的顺序记录到所述路径优先队列;
36.若是,则:将沿着进入当前可用角勾链方块的方向继续前进到达公共边的点作为出点,将从入点到该出点的路径作为第三子路径,将该从所述起点出发经过该入点和第三子路径的第三路径按照代价和从小到大的顺序记录到所述路径优先队列;
37.重复触发所述第二线路生成模块动作,直至当前所述路径优先队列中代价和最小的路径已经到达所述终点,
38.完整连线生成模块,用于根据所述路径优先队列中代价和最小的路径生成从所述起点至所述终点的完整连线。
39.优选地,完整连线生成模块具体包括:
40.预定比例设定单元,用于设置多个依次增大的预定比例,其中最大的预定比例为1;
41.新路径生成单元,用于选择最小的预定比例,将所有对需用线连接的两个设备端子之间的路径以其起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连
线,并以该部分路径的末端为新的起点,重新触发起点线路生成模块、前进线路生成模块和路径选择模块工作,得到从所有新的起点至对应终点的新的路径;
42.按从小到大的顺序选择下一个更大的预定比例,将所有新的路径以其新的起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连线,并以该部分路径的末端为新的起点,重新触发起点线路生成模块、前进线路生成模块和路径选择模块动作,得到从所有新的起点至对应终点的新的路径;
43.判断当前选择的预定比例是否为1,若否则重新触发新路径生成单元动作,若是则触发完整连线生成单元动作;
44.完整连线生成单元,用于重新触发起点线路生成模块、前进线路生成模块和路径选择模块动作,得到从所有新的起点至对应终点的新的路径,并在该路径上生成连线,从而生成所有对需用线连接的两个设备端子的完整连线。
45.优选地,记录每对两个设备端子之间的连线与其余对两个设备端子之间连线的交点个数,若某一对两个设备端子之间的连线的所述交点个数大于阈值,则拆除该某一对两个设备端子之间的连线,并暂停对该连线所指向的两个设备端子触发起点线路生成模块、前进线路生成模块和路径选择模块动作;
46.在生成其余对两个设备端子之间的完整连线后,再对该拆除的连线所指向的两个设备端子重新触发起点线路生成模块、前进线路生成模块和路径选择模块动作。
47.优选地,当前代价g(n)通过如下公式计算得到:
48.g(n)=g_distance
manh
+g_count
corner
*value
corner
+g_count
cross
*value
cross

49.预测代价h(n)通过如下公式计算得到:
50.h(n)=h_distance
manh
+h_count
corner
*value
corner
+h_count
cross
*value
cross

51.其中,g_distance
manh
表示当前点至起点之间的当前拐点最少的、长度为相应曼哈顿距离的路径长度,g_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的路径的拐点数量,value
corner
表示拐点的代价系数,g_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的路径与其他连线的交点数量,value
cross
表示交点的代价系数;
52.g_distance
manh
表示当前点至终点之间拐点最少的、长度为相应曼哈顿距离的路径长度,h_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的路径的拐点数量,value
corner
表示拐点的代价系数,h_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的路径与其他连线的交点数量,value
cross
表示交点的代价系数。
53.优选地,所述交点的代价系数value
cross
大于所述拐点的代价系数value
corner
,且小于所述拐点的代价系数value
corner
的2倍。
54.本发明还提供了一种设备线路图的生成设备,采用所述的方法生成设备线路图,或者包括所述的生成装置。
55.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时能够实现所述的方法。
56.本发明中的设备线路图的生成方法,将布线区域转化为用角勾链方块表征的绘图区,基于角勾链方块结构进行路径搜索,对于沿着进入当前可用角勾链方块的方向不能径直到达的相邻可用角勾链方块,除第一子路径之外,提供了第二子路径,并将包含该第一子路径和第二子路径的路径分别记录到路径优先队列中,每次针对当前路径优先队列中排在
最前面的路径(即当前路径优先队列中代价和最小的路径)确定其继续前进的路径,较现有技术基于角勾链方块数据结构和启发式布线算法进行布线的方案,计算量更低,生成的线路中拐点和交点数量更少,降低了施工、维护人员阅读该线路图的难度,从而更有利于根据该线路图对该线路进行施工和维护。
57.本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
58.以下将参照附图对本发明的一种设备线路图的生成方法的优选实施方式进行描述。图中:
59.图1为根据本发明的一种优选实施方式的角勾链方块数据结构示意图;
60.图2为根据本发明的一种优选实施方式的角勾链方块示意图;
61.图3为根据本发明的一种优选实施方式的步骤流程图;
62.图4为根据本发明的一种优选实施方式的将设备图符布置于绘图区示意图;
63.图5~图8为同类角勾链方块构型修正示意图;
64.图9为根据本发明的一种优选实施方式的角勾链平面示意图;
65.图10为根据本发明的一种优选实施方式的路径示意图;
66.图11a~11g为根据本发明的一种优选实施方式的路径优先队列示意图;
67.图12为根据本发明的一种优选实施方式的中步骤s520保留预定比例长度的部分路径后角勾链绘图区示意图;
68.图13为图12中1100部分的放大示意图;
69.图14为图12中重新划分空白角勾链方块示意图;
70.图15为根据本发明的一种优选实施方式的中步骤s520中重新执行步骤s300,获得从起点到终点的完整路径示意图;
71.图16为根据本发明的一种优选实施方式的中当前代价计算示意图;
72.图17~图20为根据本发明的一种优选实施方式拐点数量估测示意图;
73.图21为根据本发明的一种优选实施方式交点数量估测示意图
具体实施方式
74.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
75.此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
76.除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
77.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不
能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
78.本发明提供一种设备线路图的生成方法,以将不同的设备用连线相连,从而形成设备线路图。角勾链方块平面中角勾链的数据结构示意图如图1表示,包括位置信息、关联信息和特征信息。位置信息用参数x,y表示,用于记录角勾链方块的位置。关联信息包括四个指针,用于分别记录相邻角勾链方块,如图2所示,包括:下侧最靠左的角勾链方块指针bl、左侧最靠下的角勾链方块指针lb、上侧最靠右的角勾链方块指针tr和右侧最靠上的角勾链方块指针rt。特征信息用于记录角勾链方块类型和其他信息。本实施例中角勾链方块类型包括:设备角勾链方块、空白角勾链方块、线段角勾链方块、拐点角勾链方块和交点角勾链方块。设备角勾链方块用于表示如变电站等设备所占用的区域,不同类型的设备的图标所占区域大小、形状(长和宽)有所不同,对应的,不同设备角勾链方块所占区域大小、形状有所不同;空白角勾链方块用于表示尚未进行布线的空白区域,空白角勾链方块的宽度和长度是相对自由的;线段角勾链方块用于表示已经布线的区域,线段角勾链方块具有设定宽度,例如2-5个像素宽度,线段角勾链方块的长度则与其线段长度相同;拐点角勾链方块用于表示产生布线拐点的区域,拐点角勾链方块设置在以该拐点为中心的设定宽度和长度的区域,例如其宽度和长度均等于线段角勾链方块的宽度;交点角勾链方块用于表示产生布线交点的区域,交点角勾链方块设置在以交点为中心的设定宽度和长度的区域,例如其宽度和长度均等于线段角勾链方块的宽度。其中设备角勾链方块、交点角勾链方块和拐点角勾链方块为障碍角勾链方块,表示不能在其角勾链方块中进行布线。空白角勾链方块和线段角勾链方块为可用角勾链方块,表示可以在区域中进行布线;对于空白角勾链方块而言,前进的路径经过该空白角勾链方块的方向不受限制,即可以横向或纵向进入空白角勾链方块;一旦经过该空白角勾链方块的路径上设置连线,则将该连线经过的区域设置为线段角勾链方块,其宽度为前述线段角勾链方块的宽度,连线位于该线段角勾链方块的中线位置;而该空白角勾链方块中除该线段角勾链方块之外的区域则形成一个新的、更小的空白角勾链方块。对于线段角勾链方块而言,前进的路径经过该线段角勾链方块的方向受限制,只能以垂直于该线段角勾链方块内的线段的方向(例如横向或纵向)进入;一旦在垂直于该线段角勾链方块内的线段的方向上设置连线而产生交点,在以该交点为中心的设定宽度和长度限定的区域将被设置为交点角勾链方块,而该线段角勾链方块内除该交点角勾链方块之外的区域则形成一个新的、更小的线段角勾链方块。对于任一个可用角勾链方块,布线过程中进入该角勾链方块的点为入点,从该角勾链方块走出,进入其他角勾链方块的点为出点。
79.如图3所示,本实施例提供了一种设备线路图的生成方法,包括如下步骤:
80.s100,将多个设备图符分别布置在绘图区不同的位置,将设备图符占据区之外的绘图区分割为多个区域,将每个区域设定为空白角勾链方块。
81.如图4所示,将包括设备s0、设备d0在内的多个设备图符分别布置在绘图区100的不同位置。其中的位置可以按照设备的地理位置,在绘图区100内等比例放置。设备图符占据的区域设定为设备类型的角勾链方块并布置在绘图区域内。设备角勾链方块布置完成后,在设备图符占据区之外的绘图区分割为多个区域,将每个区域设定为空白角勾链方块,从而完成布置空白角勾链方块,空白角勾链方块的设置满足以下角勾链方块平面设计原
则:所有同类角勾链方块都尽可能宽,在所有同类角勾链方块尽量宽的前提下,所有同类角勾链方块都尽可能高。例如,图5中,角勾链方块401和角勾链方块402为同类角勾链方块,不满足所有同类角勾链方块都尽可能宽的条件,因此,将角勾链方块401和角勾链方块402转化为图6中的角勾链方块501和角勾链方块502的形状。图7中,角勾链方块601和角勾链方块602为同类角勾链方块,不满足在所有同类角勾链方块尽量宽的前提下,所有同类角勾链方块都尽可能高的条件,因此将其转化为图8中的角勾链方块701中的形状。具体的,设置空白角勾链方块的方法为:沿着设备角勾链方块向左方向、和/或右方向作水平(横向)分割线,直至碰到其他的设备角勾链方块的垂直(纵向)边或者绘图区的纵向边界。设备角勾链方块的边界、水平分割线和绘图区的边界,形成了多个空白角勾链方块,最后根据上述角勾链方块设计原则,对平面中的同类角勾链方块进行分析、合并与修改,最终生成的基于角勾链方块数据结构的绘图区如图9所示。若设备放置前,绘图区已经布置有角勾链方块,则首先搜索设备所占用的角勾链方块区域,选取符合该范围的所有空白角勾链方块,再删除其中能够被完整覆盖的空白角勾链方块。随后创建对应的设备角勾链方块,将其放置在角勾链方块平面上,再对绘图区内的角勾链方块进行分析,重新划分空白角勾链方块,并根据上述角勾链方块设计原则对空白角勾链方块进行合并与修改。
82.如图10所示,s200,针对每对需用线连接的两个设备端子p0pn,需线连接的两个设备为s0和dn,从其起点p0出发沿着不同的可用角勾链方块横向或纵向前进以到达其终点pn,并维护一路径优先队列以记录按照代价和的大小从小到大排列的所有已知路径,其中,可用角勾链方块包括空白角勾链方块和线段角勾链方块,空白角勾链方块可供路径横向或纵向进入,线段角勾链方块可供路径以垂直于其中线段的方向进入,本实施例中的可用角勾链方块为空白角勾链方块901、902、903和904、910,角勾链方块s0的相邻可用角勾链为901和910,在路径优先队列中需要维护包括从空白角勾链方块901出发和空白角勾链方块910出发的所有可能路径,由于进入空白角勾链方块910的子路径拐点较多,因此最终生成的完整路径不太可能经过空白角勾链910,为了方便说明,下面以所有经过空白角勾链方块901的路径在路径优先队列中的搜索过程为例,说明完整路径的生成过程。本领域人员可以理解的是,从空白角勾链910出发子路径的生成和在路径优先队列中各元素的排序的方法与从空白角勾链方块901出发的方法相同,在此不再赘述。
83.s300,从当前路径优先队列中选择代价和最小的路径,针对其进入的当前可用角勾链方块,执行如下步骤:确定当前可用角勾链方块与相邻可用角勾链方块的公共边,判断沿着进入当前可用角勾链方块的方向是否可以径直到达相邻可用角勾链方块。
84.具体地,从起点p0出发经过第一个角勾链方块901时,此时尚未生成路径,当前的路径优先队列为空,针对当前可用角勾链方块901,确定当前可用角勾链方块901与相邻可用角勾链方块902和903的公共边ab、cd,判断沿着进入当前可用角勾链方块的方向是否可以径直到达相邻可用角勾链方块。
85.对于角勾链方块903,从进入角勾链方块901的方向不可以径直到达,则:将该公共边cd中至入点曼哈顿距离最短的端点c作为基点,并将该公共边上偏移该基点设定长度的点p2作为第一出点,将入点至第一出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第一子路径p0p2;将该公共边中的另一端点d作为基点,并将该公共边上偏移该基点设定长度的点p3作为第二出点,将入点至第二出点之间拐点最少的、长度为相应曼哈顿距离的
路径作为第二子路径p0p3。相应的曼哈顿距离为该入点到第一出点(或第二出点)之间的曼哈顿距离。
86.将起点p0至第一出点p2之间的第一子路径的当前代价,与第一出点p2至终点pn之间路径的预测代价之和,作为从起点出发经过该入点和第一子路径至第一出点的第一路径的代价和,将起点p0至第二出点p3之间的第二子路径的当前代价,与第二出点至终点之间路径的预测代价之和,作为从起点出发经过该入点和第二子路径至第二出点的第二路径的代价和,将第一路径和第二路径按照各自代价和从小到大的顺序记录到路径优先队列,若路径p0p2代价和小于路径p0p3,此时路径优先队列为{p0p2、p0p3};
87.对于角勾链方块902,从进入角勾链方块901的方向可以径直到达,则:将沿着进入当前可用角勾链方块的方向继续前进到达公共边ab的点p1作为出点,将从入点p0到该出点p1的路径作为第三子路径p0p1,将该从起点出发经过该入点和第三子路径的第三路径p0p1按照代价和从小到大的顺序记录到路径优先队列,此时的优先队列为{p0p1、p0p2、p0p3},如图11a所示。
88.s400,重复执行步骤s300,直至当前路径优先队列中代价和最小的路径已经到达终点,s500,根据路径优先队列中代价和最小的路径生成从起点至终点的完整连线。
89.具体地,从当前路径优先队列{p0p1、p0p2、p0p3}中选择代价和最小的路径p0p1,针对其进入的当前可用角勾链方块902,由于沿着进入当前可用角勾链方块的方向可以径直到达相邻可用角勾链方块904,沿着进入当前可用角勾链方块的方向继续前进到达公共边的点p4作为出点,该从起点p0出发经过该入点和第三子路径p1p4的第三路径(p0p1+p1p4),如图11b所示,此时路径优先队列中的路径包括:(p0p1+p1p4)、p0p2、p0p3,若路径(p0p1+p1p4)的代价和大于p0p2、p0p3,则路径(p0p1+p1p4)应排列在路径p0p2、p0p3后,路径优先队列此时为{p0p2、p0p3、p0p1+p1p4}。
90.路径优先队列中当前代价和最小的路径p0p2没有到达终点,则继续执行步骤s300,选择当前代价和最小的路径p0p2,针对其进入的当前可用角勾链方块903,进入相邻可用角勾链方块904的路径为p2p5,如图11c所示,此时路径优先队列中的路径包括:(p0p1+p1p4)、(p0p2+p2p5)、p0p3,若(p0p2+p2p5)并不是当前代价和最小的路径,则重新排序后,路径优先队列此时为{p0p3、p0p1+p1p4、p0p2+p2p5}。
91.路径优先队列中当前代价和最小的路径p0p3没有到达终点,则继续执行步骤s300,选择当前代价和最小的路径p0p3继续前进,生成路径(p0p3+p3p6),若路径(p0p3+p3p6)不是当前最小路径,则如图11d所示,路径(p0p3+p3p6)在路径优先队列中向后排列,重新排序后,路径优先队列此时为{p0p1+p1p4、p0p2+p2p5、p0p3+p3p6}。
92.路径优先队列中当前代价和最小的路径(p0p1+p1p4)没有到达终点,则继续执行步骤s300,选择当前代价和最小的路径(p0p1+p1p4)继续前进,生成路径(p0p1+p1p4+p4pn),此时路径已经达到终点,若重新排序后,路径优先队列为{p0p1+p1p4+p4pn、p0p2+p2p5、p0p3+p3p6},路径优先队列中当前代价和最小的路径(p0p1+p1p4+p4pn)已经到达终点pn,则此时步骤s400结束。
93.路径优先队列中当前代价和最小的路径没有到达终点,则继续执行步骤s300,如图11e所示,重新排序后,路径优先队列此时为{p0p2+p2p5、p0p3+p3p6、p0p1+p1p4+p4pn},路径(p0p2+p2p5)没有到达终点,则继续执行步骤s300,生成路径(p0p2+p2p5+p5pn),如图
11f所示,若生成路径(p0p2+p2p5+p5pn)不是当前路径优先队列的最小路径,当前路径优先队列的最小路径为(p0p3+p3p6)没有到达终点,继续执行步骤s300,重新排序后,如图11g所示,路径优先队列为{p0p1+p1p4+p4pn、p0p2+p2p5+p5pn、p0p3+p3p6+p6pn},当前路径优先队列的最小代价和路径(p0p1+p1p4+p4pn)已经到达终点,则此时步骤s400结束。
94.s500,根据路径优先队列中代价和最小的路径生成从起点至终点的完整连线p0p1p4pn。
95.本实施中的设备线路图的生成方法,将布线区域转化为用角勾链方块表征的绘图区,基于角勾链方块结构进行路径搜索,对于沿着进入当前可用角勾链方块的方向不能径直到达的相邻可用角勾链方块,除第一子路径之外,提供了第二子路径,并将包含该第一子路径和第二子路径的路径分别记录到路径优先队列中,每次针对当前路径优先队列中排在最前面的路径(即当前路径优先队列中代价和最小的路径)确定其继续前进的路径,较现有技术基于角勾链方块数据结构和启发式布线算法进行布线的方案,计算量更低,生成的线路中拐点和交点数量更少,降低了施工、维护人员阅读该线路图的难度,从而更有利于根据该线路图对该线路进行施工和维护。
96.当设备数量较多,布线复杂时,随着布线占用的面积逐步增多,可能存在后面布线的设备之间部分线路无法布通的现象,为了保证布线的布通率,在一些实施例中,采用分次布线的方式以保证最后全部设备之间布线布通。如图12所示,需用线连接的两个设备有两组,第一组为s0d0,第二组为s1和d1,分别执行步骤s100~步骤s400后,生成的两条完整路径分别为:第一完整路径p0cpn、第二完整路径l1l2。
97.相应地,步骤s500具体为:
98.s510,设置多个依次增大的预定比例,如1/5、1/4、1/3、1/2、1,其中最大的预定比例为1。
99.s520,选择最小的预定比例,将所有对需用线连接的两个设备端子之间的路径以其起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连线,并以该部分路径的末端为新的起点,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径。例如,如图12~图13所示,选择最小的预定比例如1/5,在第一完整路径p0cpn中,以p0为基点保留1/5长度的部分路径,在该部分路径上生成连线,及生成对应的线段角勾链方块(906和908)、拐点角勾链方块907。一些实施例中还可能生成交点角勾链方块。类似地,在第二完整路径l1l2中以l1为基点保留1/5长度的部分路径以及生成相应的角勾链方块。再根据当前的设备角勾链方块、线段角勾链方块、拐点角勾链方块和交点角勾链方块,对绘图区重新划分空白角勾链方块,如图14所示。如图13和15所示,以线段角勾链方块路径908的末端t1为新的起点,重新执行步骤s200至s400,得到新的起点至对应终点的新的路径t1m1pn,由于受到线段角勾链方块l1l3的影响,计算新的完整路径的中代价和最小的路径为t1m1pn(与之前的完整路径p0cpn相比发生了变化)。设备角勾链方块s1d1的处理与上述相同,在此不再赘述,新的起点为l3。
100.s530,按从小到大的顺序选择下一个更大的预定比例,如1/4,将所有新的路径以其新的起点为基点保留该预定比例长度的部分路径,在该部分路径上生成连线,并以该部分路径的末端为新的起点,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径。如图15所示,在新的路径t1m1pn中,以新的起点t1为基点,保留1/4长度的部分路
径,在该部分路径上生成连线,连线的末端为t2,并以t2为新的起点,重新执行s200至s400,得到新的起点至对应终点的新的路径t2m1pn。
101.s540,判断当前选择的预定比例是否为1,若否则继续执行步骤s530,若是则执行步骤s500。
102.依次类推,接下来选择预定比例1/3,预定比例不为1,重新执行s530,以新的起点t3生成连线,并以该路径的末端t4为新的起点保留1/2比例的连线。当新的起点为t5时,当前选择比例为1,则执行s550。类似地,设备s1和d1之间的新的起点依次为l3、l4
……
l6,当新的起点为l6时,当前选择比例为1,进入步骤s550,在此不再赘述。s550,重新执行步骤s200至s400,得到从所有新的起点至对应终点的新的路径,并在该路径上生成连线,从而生成所有对需用线连接的两个设备端子的完整连线,具体的,在s0和d0之间新的起点为t5,重新执行s200至s400,最终得到s0至d0的设备端子之间的完整连线。类似的,在s1和d1之间新的起点为l6,重新执行步骤s200至s400,得到s1至d1的设备端子之间的完整连线。通过上述方式保证设备间布线的布通率。
103.为了降低施工难度、复杂度和施工成本,应尽量减少布线中交点的个数,因此,在一些实施例中还包括步骤:记录每对两个设备端子之间的连线与其余对两个设备端子之间连线的交点个数,若某一对两个设备端子之间的连线的交点个数大于阈值,则拆除该某一对两个设备端子之间的连线,并暂停对该连线所指向的两个设备端子执行s200至s400;在生成其余对两个设备端子之间的完整连线后,再对该拆除的连线所指向的两个设备端子执行s200至s400。
104.具体地,在对s0和d0两设备生成连线的过程中,记录产生的交点的数量,若交点个数大于阈值5,则拆除s0和d0之间的连线,并暂停对s0和d0执行s200至s400的步骤,在生成对其余对两个设备端子之间的完整连线后,重新对s0和d0执行s200至s400,通过上述方式,以减少交点的数量,降低布线复杂度。
105.传统的a*搜索算法代价函数为:f(n)=g(n)+h(n),其中g(n)为起点到当前搜索位置点的当前成本函数,而h(n)是当前搜索位置点到终点的未来成本估计函数。在单线图、环网图等要求布线方向为水平或者竖直的专题图中,g(n)通常为起点到当前搜索位置点的曼哈顿距离,而h(n)通常为当前搜索位置点到终点的曼哈顿距离。在实际应用中,用户通常希望布线完成后,布线方案的交点及拐点数量尽可能的低。因此,优选地,在一些实施中将布线中拐点和交点数量纳入到成本函数中。具体地,当前代价g(n)通过如下公式计算得到:
106.g(n)=g_distance
manh
+g_count
corner
*value
corner
+g_count
cross
*value
cross

107.其中,g_distance
manh
表示当前点至起点之间的当前拐点最少的、长度为相应曼哈顿距离的路径长度,g_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的拐点数量,value
corner
表示拐点的代价系数,g_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的路径与其他连线的交点数量,value
cross
表示交点的代价系数。
108.拐点最少的、长度为相应曼哈顿距离的路径长度的代价系数默认为1,value
corner
表示拐点的代价系数,拐点的代价系数一般设置为比拐点最少的、长度为相应曼哈顿距离的代价系数大一个数量级,一般取10~80,线路图越复杂,障碍角勾链方块越多,则不可避免的产生拐点的数量越多,相应地拐点的代价系数设置的值越小。value
cross
表示交点的代价系数,交点的代价系数大于拐点的代价系数,但与拐点的代价系数一般为相同的数量级。
109.进一步地,为了提高布线的美观度,应尽量减少拐点的数量。优选地,在一些实施例中,将交点的代价系数value
cross
设置为大于拐点的代价系数value
corner
,且小于拐点的代价系数value
corner
的2倍,从而在第一路径具有一个拐点和一个交点,而第二路径具有三个拐点和0个交点的情形下,使得路径1的代价小于路径2的代价。具体地,如图16所示,设备角勾链方块为801和802,障碍角勾链方块为803,设备角勾链方块为801和802之间布线路径1为:s1至b1至a1至e1至d1。路径2为:s1至b1至c1至e1至d1。路径1包括1个交点f1(与设备角勾链方块803的布线之间),1个拐点a1,路径2包括3个拐点b1、c1和e1。本实施例中交点的代价系数value
cross
设置为15,拐点的代价系数设置为10,路径1与路径2的曼哈顿路径长度相等,均假设为10。则路径1的当前代价g(n)=10+1*10+1*15=35;路径2的当前代价g(n)=10+3*10+0*15=40,路径1的代价小于路径2的代价,本实施例中通过对交点的代价系数value
cross
和拐点的代价系数value
corer
的设置,以使得布线中尽量选择拐点数量较少的布线路径,降低了施工、维护人员阅读该线路图的难度。
110.预测代价h(n)通过如下公式计算得到:
111.h(n)=h_distance
manh
+h_count
corner
*value
corner
+h_count
cross
*value
cross

112.其中,h_distance
manh
表示当前点至终点之间拐点最少的、长度为相应曼哈顿距离的路径长度,h_count
corner
表示该拐点最少的、长度为相应曼哈顿距离的路径的拐点数量,value
corner
表示拐点的代价系数,h_count
cross
表示该拐点最少的、长度为相应曼哈顿距离的路径与其他连线的交点数量,value
cross
表示交点的代价系数。由于布线尚未完成,因此未来交点和拐点的数量只能通过估测,具体地,拐点数量的估测与布线的起点和终点的出线方向有关,以起点和终点为端点,以起点的出线方向和终点的出线方向为各引一条射线,可分为如下5种情况:
113.情况1:若两条射线方向相对且存在重合段,则拐点数量估测为0,如图17所示。
114.情况2:若两条射线有交点,则拐点数量估测为1,如图18所示。
115.情况3:若两射线平行,且投影到x轴或y轴时存在重合部分,则拐点数量估测为2,如图19所示。
116.情况4:若两条射线不平行也不相交,则拐点数量估测为3,如图20所示。
117.情况5:其他情况下,拐点数量估测为4。
118.估测交点的数量与当前需要布线的两个设备的起点s0和终点d0的连线,与其他任意两个需要布线的设备起点sn和终点dn之间的连线分别在x轴和y轴上的投影有关,如图21所示。线段s0d0在x轴、y轴上的投影分别proj
1x
和proj
1y
,线段sndn在x轴、y轴上的投影分别proj
2x
和proj
2y
,当proj
1x
能够覆盖proj
2x
,且proj
2y
能够覆盖proj
1y
时,两者之间可能存在交点e,此时交点的数量计为0.5,被两组线段所平分。本领域人员可以理解的是,当proj
2x
能够覆盖proj
1x
,且proj
1y
能够覆盖proj
2y
两者之间也可能存在交点。估测出拐点和交点的数量后,即可计算预测代价h(n)。
119.通过本实施例中当前代价和预测代价计算方法,通过对拐点数量和交点数量的估测,进而计算出预测代价,使得在布线中可以生成交点和拐点数量相对较少的布线,降低了施工、维护人员阅读该线路图的难度。
120.本发明还提供了一种设备线路图的生成装置,包括如下:
121.设备角勾链方块布置模块,用于将多个设备图符分别布置在绘图区不同的位置,
将设备图符占据区之外的绘图区分割为多个区域,将每个区域设定为空白角勾链方块。
122.第一线路生成模块,用于针对每对需用线连接的两个设备端子,从其起点出发沿着不同的可用角勾链方块横向或纵向前进以到达其终点,并维护一路径优先队列以记录按照代价和的大小从小到大排列的所有已知路径,其中,可用角勾链方块包括空白角勾链方块和线段角勾链方块,空白角勾链方块可供路径横向或纵向进入,线段角勾链方块可供路径以垂直于其中线段的方向进入。
123.第二线路生成模块,用于从当前所述路径优先队列中选择代价和最小的路径,针对其进入的当前可用角勾链方块,执行如下步骤:确定当前可用角勾链方块与相邻可用角勾链方块的公共边,判断沿着进入当前可用角勾链方块的方向是否可以径直到达相邻可用角勾链方块,若否,则:将该公共边中至入点曼哈顿距离最短的端点作为基点,并将该公共边上偏移该基点设定长度的点作为第一出点,将所述入点至第一出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第一子路径;将该公共边中的另一端点作为基点,并将该公共边上偏移该基点设定长度的点作为第二出点,将所述入点至第二出点之间拐点最少的、长度为相应曼哈顿距离的路径作为第二子路径;将所述起点至第一出点之间的第一子路径的当前代价,与第一出点至所述终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第一子路径至第一出点的第一路径的代价和,将所述起点至第二出点之间的第二子路径的当前代价,与第二出点至所述终点之间路径的预测代价之和,作为从所述起点出发经过该入点和第二子路径至第二出点的第二路径的代价和,将所述第一路径和第二路径按照各自代价和从小到大的顺序记录到所述路径优先队列;若是,则:将沿着进入当前可用角勾链方块的方向继续前进到达公共边的点作为出点,将从入点到该出点的路径作为第三子路径,将该从所述起点出发经过该入点和第三子路径的第三路径按照代价和从小到大的顺序记录到所述路径优先队列。
124.重复触发所述第二线路生成模块动作,直至当前所述路径优先队列中代价和最小的路径已经到达所述终点。
125.完整连线生成模块,用于根据所述路径优先队列中代价和最小的路径生成从所述起点至所述终点的完整连线。
126.本发明还提供了一种设备线路图的生成设备,采用所述的方法生成设备线路图,或者包括所述的生成装置。
127.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时能够实现所述的方法。
128.需要说明的是,本公开的实施例所述的计算机可读存储介质并不限定于上述所给实施例,例如还可以为电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(fprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
129.本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由
地组合、叠加。其中,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,例如,两个接连表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中对于各步骤的编号仅为了方便说明和引用,并不用于限定前后顺序,具体的执行顺序是由技术本身确定的,本领域技术人员可以根据技术本身确定各种允许的、合理的顺序。
130.需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤编号的存在而被不适当地限制,本领域技术人员可以根据技术本身确定各种允许的、合理的步骤顺序。
131.本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
132.应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1