利索能及
我要发布
收藏
专利号: 2020110876135
申请人: 杭州肥牛信息科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-21
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种配电网单线图自动生成方法,包括自动成图算法,其特征在于:所述自动成图算法的步骤如下:

1.初始化图模型:创建一个简单无向图G,把节点对象和边对象加入到图中;

2.找出主干线mainLine:具体方法为,以源点为起点,以叶子结点为终点,找出一条最长的支线,此线即主干线,又称1级支线,把主干线上的所有节点标记为已访问,然后把主干线放入链表mainLines中,最后,把链表mainLines放入allLines>中;

3.构建其他各级支线:找到主干线中含有分叉的节点node,即邻居个数大于2的节点,把节点node放入branchNodeList中,从此节点开始,遍历branchNodeList中的每个节点,直至所有后续叶子节点遍历完成,找出一条最长的支线,放入2级支线集list中,以此类推,将所有2级支线放入2级支线集list中后,把2级支线集list放入allLines>中,以此类推,找出所有3级支线、4级支线及后续支线,并放入allLines>中;

4.建立父支线与子支线之间一对多的映射关系;

5.为支线上的节点设置坐标:奇数级支线水平放置,偶数级支线竖直放置,同一级别支线按上下或者左右方向交替放置,之后,按照支线布局方向,依次为支线上的节点设置坐标;

6.处理交叉或者重叠;

在布局过程中,如果一个节点的邻居节点数量>4,则采用九宫格布局算法,所述九宫格布局算法的步骤如下:

1.绘制一条支线L时,取L的根节点RootNode;

2.假设已经绘制的支线中,有N条支线的根节点是RootNode;

3.如果N>2,则采用九宫格布局;

4.依次尝试各个方向,直至找出还未被其他支线占据的方向;

5.按此方向为支线上的各个节点设置坐标;

6.处理九宫格布局引起的交叉或者重叠;

处理交叉或者重叠的算法的步骤为:

1.初始化,设存放支线的栈为stack={Line};

2.如果stack为空,则结束,如果stack不为空,则取L1=stack栈顶元素;

3.判断L1是否和已经布局过的支线产生交叉或者重叠;

4.如果没有交叉或者重叠,则移除stack栈顶元素,继续处理交叉或者重叠的算法的步骤2;

5.如果有交叉或者重叠,则找到第一条和L1交叉或者重叠的支线L2,分两种情况处理:

5.1 L1是按九宫格布局的支线;

5.2 L1不是按九宫格布局的支线;

6.如果是“无法解决的交叉或重叠”,则直接移除stack栈顶元素,继续处理交叉或者重叠的算法的步骤2;

7.如果是通过拉伸平移的方法处理的交叉或者重叠,则把拉伸平移的所有支线加入栈stack;

8.继续处理交叉或者重叠的算法的步骤2;

当L1不是按九宫格布局的支线时,处理交叉或者重叠的算法的步骤为:

1.[重布] 如果L1是L2的父线,即由于拉伸L1引起交叉或者重叠,则重布L2,结束;

2.[重布] 如果L1的父线为九宫格布局,则九宫格重画L1,结束;

3.[翻转] 如果L1的反方向没有已布局的兄弟支线,即和L1有相同根节点的支线,则

3.1 将L1翻转;

3.2 如果不交叉,则结束;

计算拉伸平移方案

3.3 拉伸平移方案1,L1不翻转

3.3.1 如果L1和L2是兄弟关系,则无法通过拉伸平移解决;

3.3.2 如果L1和L2重叠,则L1移动1个单位;

3.3.3 如果L1是L2的子线,则L1的直接父线PL1沿其父线方向移动:

3.3.3.1 平移的线 = PL1;

3.3.3.2 移动的距离 = 交叉点和L1终点的距离;

3.3.4 否则,将L1沿其父线方向移动:

3.3.4.1 平移的线 = L1;

3.3.4.2 如果L1和L2重合,则移动的距离 = 1个单位;

3.3.4.3 如果L1父线和L2同向,则移动的距离 = 交叉点和L2终点的距离;

3.3.4.4 否则,则移动的距离 = 交叉点和L2起点的距离;

3.4 拉伸平移方案2,L1翻转,记L1翻转后为L1’,和线路L2’交叉或重叠

3.4.1 如果L1反方向有已布局兄弟支线,则无法通过拉伸平移解决;

3.4.2 否则,计算L1’的拉伸平移方案,计算方法同方案1;

4.如果方案1和方案2都无法通过拉伸平移解决

4.1 [重布] 如果L1和L2重合且L2是L1的兄弟支线,则九宫格重画L1,结束;

4.2 [无法解决] 如果是“无法解决的交叉或重叠”,则结束;

5.[拉伸平移]

5.1 选取较好的移动方案

5.1.1 如果两种方案一个移动L1一个移动PL1,则优先选择移动L1的方案;

5.1.2 否则,优先选择移动距离较小的方案;

5.2 拉伸平移。

2.根据权利要求1所述的一种配电网单线图自动生成方法,其特征在于,当L1是按九宫格布局的支线时,处理交叉或者重叠的算法的步骤为:如果L1和L2根节点相同,则结束;

如果L2是从L1根节点发出的支线,则移动支线L2。

3.根据权利要求1所述的一种配电网单线图自动生成方法,其特征在于,所述“无法解决的交叉或重叠”,是指可能进入死循环,设置最多处理交叉或者重叠的次数为10次,如果超出所设次数,仍然有交叉或者重叠,则判定为“无法解决的交叉或重叠”,直接退出。

4.根据权利要求1所述的一种配电网单线图自动生成方法,其特征在于,所述九宫格布局算法设定16个备选方向,按照顺时针方向依次为向上,偏右上1,右上,偏右上2,向右,偏右下1,右下,偏右下2,向下,偏左下1,左下,偏左下2,向左,偏左上1,左上,偏左上2。