黄一学,秦 克,罗 威,吴 盛,郝 佳,夏 琳
(1.中国舰船研究设计中心 一二室,湖北 武汉 430060;2.中国舰船研究设计中心 科技创新中心,湖北 武汉 430060;3.中国舰船研究设计中心 一○室,湖北 武汉 430060;4.北京理工大学 机械与车辆学院,北京 100081)
舰船电力系统是舰船最关键的分系统之一,其主要功能是为全舰各类用电设备在不同工况下提供可靠的电力保障。舰船电力系统通过电缆将电源设备、变电设备、配电设备和用电设备连接成一个有机整体,根据运行工况和用电设备的不同,分别实现正常供电、应急供电、事故供电、监测与控制以及故障隔离保护等功能。舰船电气系统原理设计是舰船总体设计中的关键环节,随着CAD技术在设计中得到广泛应用,舰船电气系统已经完全摆脱了基于笔纸的设计,设计方法和手段实现了数字化。
现代舰船电气系统规模庞大、结构复杂,导致舰船电力系统的设计周期长、设计变更频繁[1]。基于纯CAD的设计方法在实践应用中暴露出设计速度慢、设计差错率高、牵连变更工作量大等尖锐问题,这些问题已成为制约舰船设计工作进一步提升效率的瓶颈。随着人工智能技术快速发展,基于人工智能的设计技术越来越广泛地应用于装备和产品的设计领域(如芯片设计和建筑设计),大大提高了设计能力和效率,节省了人力投入。智能化设计技术为解决电气图纸的设计提供了新的思路和手段[2]。
现阶段,布局布线问题的主要目标是在保证电气线路原理正确的基础上,使用尽可能小的图纸面积、尽可能短的线路长度完成电气图纸的设计绘制,并尽可能兼顾工程技术人员阅读习惯。
对于布局算法,目前主要有深度强化学习和对抗生成网络两条技术路径。在深度强化学习方面,来自美国Google公司的研究人员对芯片布局这类问题进行了大量研究,Google的研究人员[3]在Min-cut、Force-direction、Partitioning等算法的研究基础上提出一种基于深度强化学习的芯片布局的规划算法,该算法将芯片布局规划问题作为一个强化学习问题,并应用一种基于边的图卷积神经网络架构,能够学习并表征芯片拓扑的特征,最终通过大量训练解决芯片布局的自动化设计问题[4]。国内上海交通大学研究人员[5]在上述研究基础上按照芯片功能层级开展了进一步的研究,提出一种称为DeepPlace的联合学习方法用于放置宏和标准单元,实现了端到端的布局任务的学习。在对抗生成网络方面,加拿大西蒙菲莎大学的学者[6]对于建筑设计中的布局问题,提出一种生成器和鉴别器建立在关系架构上的图约束生成对抗网络。他们通过将约束编码到其关系网络的图结构中来实现生成器和鉴别器的关系连接。该研究在可解释性方面存在欠缺,因此来自加拿大的另一支研究团队[7]从图论出发,结合组合优化与推理的场景,提出一系列的图神经网络应用于对抗生成网络的方法。对于布线算法,国内天津大学的研究人员[8]提出一种协同进化算法的船舶管道布线设计方法。该方法通过将工作空间划分为三维网格单元,结合迷宫算法[9]、非支配排序遗传算法Ⅱ[10]和协同进化非支配排序遗传算法[11-13],实现了一种可以在帕累托最优解中提取最佳折衷管道的优化程序。
综上所述,针对布局和布线问题,现有研究已经取得一定成果,但还存在两个方面的挑战:①现有方法往往聚焦于独立的布局或者布线问题,在布局和布线相互耦合的场景下,尚无一种一体化方法;②现有布局优化算法多使用端到端的神经网络算法,其效果高度依赖数据数量与质量,缺乏完整规则的支撑,无法避免布线失败或错误,这些方法在芯片设计等一次设计、多次生产的应用场景下具有一定应用价值,但是在舰船电气设计这种大规模设计、多次迭代、一次生产的应用场景下难以应用。为此,本文提出一种融合先验知识和深度神经网络的电气布线方法。该方法首先对电气图纸的拓扑结构进行分类,并分析其拓扑特点,总结形成了一套布局布线先验规则。基于该先验规则,通过确定的流程和约束条件可以完成基本的布局布线。在此基础上使用深度神经网络对布线和布局中的参数进行微调和优化,可以使图纸的布局更加的合理和美观。
布局布线的基本过程可以概括为通过布局布线方法,从连接数据中构建出一张电气图纸。在该过程中,连接数据描述了一个图的所有节点及其拓扑连接关系,这些节点与布局过程中产生的所有对象(即下文中的子图)构成一个集合,该集合上的数学运算则是布局布线的方法。因此布局布线问题可抽象为定义一种数学运算,使其通过有限次运算后,输出一个包含电气图纸所有信息的元素且该元素属于该集合。
根据上述抽象,集合上对运算的封闭性是布局布线方法具有完备性的充要条件。其中布局布线方法具有完备性定义为可以通过有限条规则处理所有在布局布线问题中出现的对象。因此需要布局布线方法所对应的数学运算可以与该集合构成原群。
下文将证明集合上对运算的封闭性是布局布线方法完备性的充要条件。
假设在集合G上,某运算+不封闭,则:
∃A1,A2∈G,
A1+A2=B,
B∉G。
而运算+是定义在集合G上的,则元素B无法应用+运算。
对应在布局问题中,数学运算是先验规则的抽象,意味着在布线过程中产生了规则无法处理的对象。必要性得证。
假设在集合G上,某运算+封闭,则:
∀Ai,Aj∈G,
Ai+Aj=B。
B∈G。
则在该集合内,任意元素的数学运算“+”产生的结果都在该集合G内,而运算“+”是定义在该集合G上的。对应在布局问题中,则是布线过程中所产生的所有对象都可以由有限条规则来处理,即完备性成立。充分性得证。
通过上述数学推导证明了布局布线方法所需的数学条件,下文将首先从技术实现的角度直观介绍本文所提出的方法,并在后文中对先验规则进行详细介绍后,再对先验规则的数学依据再行推导。
方法的整体结构如图1所示,主要包括先验规则布局器和神经网络参数优化器两个主要部分。
图1 方法整体构架图
先验规则布局器根据先验规则、预设的布局参数和连接数据可以实现图纸正确布局,旨在解决布局“有没有”问题。先验规则规定了布局的流程和方法,布局参数则约束了各种元素间的间隔和布局的比例。神经网络参数优化器可以根据图纸中的元件连接关系计算出相应的布局参数。神经网络参数优化器在输入拓扑特征后,利用训练完成的神经网络计算得出布局所需的间距、布局比例等参数,旨在解决布局“好不好”的问题。
为配合神经网络参数优化器的工作,方案中加入了连接矩阵压缩器这一辅助部分来提取拓扑特征。元件连接数据先通过连接关系转化器转换为连接关系矩阵,再使用连接矩阵压缩器来进行压缩。连接矩阵压缩器使用奇异值分解法进行特征的提取压缩。提取压缩后的特征输出至神经网络参数优化器计算得出布局参数。
先验规则布局器在布局时需要使用连接关系数据、元件属性数据和布局参数3组数据。其中,连接关系数据描述各个元件之间的连接关系;元件属性数据描述了每个元件的参数和属性;布局参数则描述布局的比例和间距。这3个参数中,只有连接关系数据库和元件属性数据库需要人工导入,布局参数是连接矩阵压缩器和神经网络参数优化器利用连接关系数据计算得到的。
整个系统在应用时的原始输入为待绘制图纸的元件参数表格和线缆连接表格,其中元件参数表格主要包括元件的名称、功率等属性信息;线缆连接表格主要包括线缆自身的属性信息以及线缆两端所连接的元件信息。通过这两个表格可以完整地描述整个图纸中元件的拓扑关系。系统的输出为布局信息,包括各个元件的位置和线缆的路径点以及根据这些信息所绘制的CAD图纸。
本方法分为两个阶段:第一阶段为构建模型和规则,利用历史图纸训练出图纸参数预测模型,同时将图纸参数预测模型和规则分别导入至神经网络参数优化器和先验规则布局器;第二阶段为应用,将待绘制图纸的元件参数表格和线缆连接表格作为原始输入导入至输入预处理器处理,生成元件连接关系和元件属性数据存入连接关系数据库和元件属性数据库。先验规则布局器从连接关系数据库和元件属性数据库检索出元件连接数据和元件属性数据,从神经网络参数优化器获得优化后的布局参数,并利用这3组数据计算出图纸布局,输出至CAD软件得到最终电气图纸。
1.2.1 基础子图先验规则
本文将首先介绍树状图、树状图内布局场景的分类并定义相关概念,后介绍规则设计的基本原则,最后再详细阐述规则的内容。
实际的电气接线图可以分为树状接线图和非树状接线图,树状的接线图占90%以上,剩余的非树状接线图通过工程方法可转换为树状布线图。因此,图纸布置先验规则针对于树状图进行设计。如图2所示为一树状接线图示例。
图2 树状接线图
树状接线图指的是图形内不包含回环的图,其内部存在串联与并联两种连接方式,任何一张树状图都可以通过串联和并联构造出来。其中并联连接方式归纳为一种“元件子图并联”,但串联连接方式分为“元件串联”与“元件子图串联”两种场景,其中“元件”与“子图”的定义如下:
(1)元件 元件在本文中指的是图中最小的,不可再进行拆分的节点。因为不同元件在图纸中基本都有着相似的大小,所以可以将这类元件近似到一个相同的大小,便于布局布线算法处理。
(2)子图 子图描述的是经过布局后的一部分元件或子图形成的整体。在每个部分的元件布局完成之后,使用一个子图来将这些元件和其布局形成一个整体。随着布局的进行,子图和子图、子图和元件、元件和元件都会在布局完成后打包成一个整体,形成新的子图。
综上所述,3种布局场景(基础布局场景)定义如下:
(1)元件串联场景 在布局中,所布局的单元只包含元件且元件之间俱为串联关系。
(2)元件子图串联场景 在布局中,所布局单元包含元件和子图且元件和子图之间俱为串联关系。
(3)元件子图并联场景 在布局中,所布局的单元包含元件和子图,且并联连接到一个元件或子图。
本方法结合实际布局布线场景,针对每种场景设计确定的布局布线流程,3种场景所对应的三个布局布线流程即为先验规则。因为图纸的设计过程中存在布局和布线相互耦合的问题,所以如果针对全局考虑,两者的耦合会导致优化无法同时兼顾。因而,按照上述3种基础布局场景,分别对各个场景设计侧重于布局的规则或侧重于布线的先验规则,进而实现布局与布线的解耦。
先验规则本身遵循如下两条原则:①保证线缆连接无相交(对应布线问题);②在满足线缆无相交的情况下,尽量降低每个元件所占用的图纸面积(对应布局问题)。接下来本文将阐述不同场景下的先验规则。
(1)元件串联场景 该场景指的是在布局中,所布局的单元只包含元件且元件之间俱为串联关系。因为本场景只要保证按顺序进行排列即可满足线缆无交叉的原则(即布线问题较易解决,布局问题较难优化),因此该场景的规则主要考量空间利用率(使用尽量小的图纸面积布局下更多的元件)。综上,本方案先根据设定的子图长宽比计算出长宽节点数。由于计算出的长宽节点数不一定是整数,首先对长宽节点数的浮点数向上取整,然后试探子块的长宽节点数能否减少一个节点,若不行,则使用向上取整之后的长宽节点数作为所需的长宽节点数;可以,则使用减少后的长宽节点数。确定长宽节点数之后,将元件根据连接顺序按照横向S形排列,即可完成布局。如图3a所示为5个元件串联的布局案例示意图,图3b则是应用此条规则的布局结果(长宽比取2∶3时),由于软件所用绘图库无法使用中文,使用“元件”的拼音首字母缩写“yj”来代替“元件”一词,余同。
图3 元件串联场景图
(2)元件子图串联场景 不同元件子图的串联布局经过穷举只存在一种情形,即最后一个子图尺寸大,前面的元件为标准元件大小且大小相同。这种布局场景和上一场景类似(即布线问题较易解决,布局问题较难优化),着重考虑提高空间利用率。根据串联特点,设计如下排布算法。首先,将最大的子图放在最上方,并以子图的宽度作为布局宽度,然后在子图的下方按照纵向S形走线的布置方法布置元件,布置元件时保持布局宽度不变,仅改变布局高度来适应不同的元件数量。如图4a所示为5个元件与1个子图串联的布局案例的示意图,图4b则是应用此条规则的布局结果。
图4 元件子图串联场景图
(3)元件子图并联场景 不同大小的子图和元件的并联合并场景如果单纯追求空间利用率,利用诸如贪婪算法的布局算法,可能会出现线缆相交的问题,导致布线困难。为此,本场景下的规则将避免线缆相交置于最高优先级(优先解决布线问题,再考虑布局问题),其次再考虑布局的空间利用率。实际布局时:首先使用排序算法对需要并联的元件和子图进行一次排序,然后按照先大后小的顺序从左到右进行布置,最后将与这些元件子图同时连接的元件放在整个布局的下方正中央,即可完成元件子图并联场景的布局。如图5a所示为1个元件与3个子图并联的布局案例的示意图,图5b则是应用此条规则的布局结果。
图5 元件子图并联场景图
针对上述说明,从数学的角度对完备性进行证明,具体证明过程如下所示:
一个无向简单图内任意两个顶点能被唯一的路径所连通,则该图是一棵树。树是没有回路的连通图,指定一个节点为树的根,则该树为有根树。有根树中的节点可以根据节点到根的距离分层。通过这种分层,可以定义节点的方向。对于树中的任一节点,有且仅有两种与子节点的连接方式:与一个子节点相连、与多个子节点相连。而这两种连接方式对应到电气布线分类中则称为串联和并联。
因此,对于任意符合有根树的树状接线图,内部有且仅有串联和并联两种连接方式。故树状接线图可以通过有限次元件的串联和并联构成。
上述论证表明,通过串联和并联最小的基本单元可以构建出一个完整的树。在本文中,最小基本单元定义为子图和元件,这些最小基本单元所构成的集合称为G,将串联和并联抽象为两种运算,因为方法的完备性定义与原群定义等价,所以通过证明集合G与这两种运算构成原群可以证明本方法具有完备性。
首先基于抽象代数定义如下代数系统,定义元件集合的数学符号为A,每个元件通过集合符号与下标表示,子图集合的数学符号为B,每个子图通过集合符号与下标表示,串联数学运算符号为+,并联的数学符号为⊕,则上述规则可以归纳为3类运算:
元件串联的运算定义为:
Am+An=Bj,
(1)
Am+Am-1+…+An=Bk。
(2)
元件子图串联的运算定义为:
Bm+An=Bj,
(3)
Bm+Am+Am-1+…+An=Bk。
(4)
元件子图并联的运算定义为:
Bm⊕Bn=Bj,
(5)
Am⊕An=Bk,
(6)
Bm⊕Bm-1⊕…⊕Bn⊕Am⊕
Am-1⊕…⊕An=Bl。
(7)
定义集合G:
G=A∪B,
(8)
A1,A2,A3…An∈A,
(9)
B1,B2,B3…,Bn∈B。
(10)
对于串联运算+,可以证明集合G关于+运算具有封闭性:
∵Am+An=Bj,
Bm+An=Bk,
Bj,Bk∈B∈G。
因此集合G关于+运算具有封闭性。
对于并联运算⊕,也可证明集合G关于运算⊕具有封闭性:
∵Bm⊕Bn=Bj,
Bm⊕An=Bk,
Am⊕An=Bl
Bj,Bk,Bl∈B∈G。
因此集合G关于⊕运算具有封闭性。故集合G关于上述两运算分别构成原群。其中m,n,i,j,k,l均为正整数下标。
1.2.2 参数优化神经网络
上述先验规则可以实现完备的自动化布局布线,但在空间利用率方面存在提升空间。由于布局参数控制图纸中各个部分的间距和比例,对布局参数进行优化可以提高空间利用率。神经网络优化方法在很多参数优化场景中显示出较好的优化效果[14],但是其训练需要大量的数据和算力,这些实际困难阻挡了端到端神经网络在本场景中的应用[15]。
为了提高空间利用率,本文在前述方法的基础上引入了神经网络优化方法,通过神经网络优化方法可以根据实际布局拓扑特征调整布线参数。如图6所示,本方法首先将图纸拓扑特征信息转换为连接关系矩阵,然后通过奇异值分解提取该矩阵的特征作为输入向量交由神经网络进行计算,最后经过前向传播得到布局参数。下文将分别介绍连接关系矩阵、奇异值分解和神经网络的技术细节。
图6 神经网络优化方法示意图
连接关系矩阵是图纸拓扑的矩阵形式。对于一个由n个元件组成的图纸,生成n×n的零矩阵,每个元件对应矩阵的一行与一列。如果图纸中两个元件直接相连,则将矩阵中两个元件对应的行列所确定的两个元素置为1(因为每个元件对应一个行与一个列,所以两个元件可以确定出两个对称坐标的元素)。遍历所有连接,并据此将矩阵中相应的元素置1后,即可获得连接关系矩阵。如图7所示例子为一个具有5个元件的拓扑及其连接关系矩阵。
图7 接拓扑与连接关系矩阵的转换关系
利用奇异值分解提取拓扑特征的方法可以降低神经网络的处理难度[16]。该方法在连接关系矩阵输入到神经网络之前,使用奇异值分解该矩阵,舍弃掉较小奇异值及其对应的酉向量从而提取连接关系矩阵中主要特征。取舍比例按照下述方法推导。对496张电气图纸的元件数量进行统计(详细统计数据见后文3.4节实验部分)得到平均每张图纸中含有约250个元件,对应连接关系矩阵平均大小为一个250行250列的实对称矩阵。根据现有研究成果,取前10%到20%的奇异值可以同时兼顾信息保留和压缩效率[17]。根据现有图纸统计数据,图纸中的元件数量上限约为330个,由于现有图纸统计数据样本具有一定的局限性,需留取一定的元件数量裕度。因此,取图纸元件数量上限为400个(连接关系矩阵尺寸为400×400)满足极端情况后,按照10%的下限取值为40个奇异值作为输入参数。该取值在平均元件数量250个(连接关系矩阵尺寸为250×250)时对应的比例为16%,也能满足压缩效率上的需求。
神经网络包含4个隐藏层,隐藏层神经元数量(32,64,256,128),使用了ReLu激活函数、tanh激活函数和Sigmoid激活函数,神经网络的具体结构和参数如图8所示。神经网络训练超参数如表1所示。
表1 神经网络训练超参数设置
图8 神经网络结构与参数示意图
输入参数经神经网络前向传播计算后,输出子图的长宽比和最佳间距两个布局参数。神经网络可以在后文所述的节点迭代过程中多次调用,例如一个包含一些元件的子图如果希望得到自己的长宽比例和最佳间距比,也可以在自己内部调用该神经网络来进行预测。通过该神经网络的优化可提高图纸的空间利用率。
1.2.3 节点迭代法
因为布局布线场景具有随机性,同时考虑到在布局过程中,所需要布局的元件数量不确定,布局的结构层数也不确定,所以方案引入了节点迭代法来遍历并布局所有元件。该方法可以自行根据元件连接关系来迭代调用并确定元件布局。节点迭代法可以简单概括为“自上而下迭代,自下而上布局”。算法伪代码如图9所示。为了降低内存占用,方案选择了深度优先的搜索策略。
图9 节点迭代法伪代码
实际节点迭代法运行流程如图10所示,从父节点(初始节点)开始,判断父节点(初始节点)和与其连接的节点是否符合基础布局场景。若符合,使用相应布局场景的规则进行布局;否则,从该节点的第一个子节点开始,继续判断是否符合基础布局场景,即按照深度优先算法进行搜索,直到符合基础布局场景。完成布局后将该部分元件和子图替换为布局完成的子图。当一个节点下的所有元件都布局完成,那它一定符合基础布局场景,因此也可以被布局成一个完整的子图。最终可以得到完整的、包含所有元件的图纸布局。当完成布局任务之后,按照连接关系连线,完成电气布线图的绘制。
图10 节点迭代运行流程图
下面通过样例说明上述方法生成电气布线图的过程。样例包含一个由8个元件组成的电气拓扑结构(如图11a)。
图11 复杂场景布局步骤示意图1
方法运行时从“元件1”开始判断。发现“元件1”及其下面的结构并不符合基础布局场景;因此,探索“元件1”的子节点,发现子节点“元件2”及其下面的结构也不符合基础布局场景;继续探索“元件2”的子节点,这个时候识别到“元件2”的第一个子节点“元件4”及其下面的节点符合基础布局场景中的“元件串联场景”。调用“元件串联场景”的规则将“元件4”及其下面的3个元件的布局计算出来,并将这4个元件替换成一个包含了其本身信息以及布局信息的子图,这样整个图形的拓扑布局就如图11b所示。
当“子图1”替换到了整个图形中之后,将“元件5”与规则匹配,发现“元件5”是一个单节点,并无串并联关系,无需处理。
当“元件2”的子节点被全部处理完之后,结束当前层级的搜索,返回“元件2”发现“元件2”及其下面的元件和子图符合基础布局场景中的“元件子图并联场景”。应用“元件子图并联场景”规则将“元件2”及其下面的一个子图和一个元件的布局计算出来,并将这部分也替换成“子图2”,如图12a所示。
图12 复杂场景布局步骤示意图2
当“元件2”及其下面的部分被替换为“子图2”之后,与上述方式类似,“元件1”及其下面的子图和元件也可以应用“元件子图并联场景”规则进行布局。至此,成功完成一个包括8个节点的串并联拓扑的电路的布局,如图12b所示。最后按照连接关系将元件用线缆连接起来即可。由于先验规则在布局过程中已经充分考虑到线缆布置并进行了恰当的规划和取舍,可直接用直线和折线进行连接,就可以完成布线的任务。最终效果图如图13所示。
图13 复杂场景布局结果示意图
布局布线任务完成之后,即可根据输出的布局布线数据调用CAD二次开发软件接口进行图纸绘制。调用过程按照如下步骤进行,首先在数据库中搜索出每个元件名称对应的元件CAD器件库,然后按照布局布线数据中的布局坐标将每个元件绘制在CAD的图纸上,最后再根据元件间连接关系连接线路,绘图效果如图14和图15所示。图14a展示的是应急充放电汇流排的电路组成与连接关系,图14b为应用本文所述方法计算出的布局布线示意图,图15a为最终调用CAD软件接口生成的工程图纸,图15b则说明了工程图纸与示意图中元件的对应关系。
图14 应急充放电汇流排布局图
图15 应急充放电汇流排CAD工程图
该部分实验使用技术手段屏蔽了布局参数优化神经网络及连接矩阵压缩器,使用人工指定的布局参数对先验规则布局器进行测试。
实验实际选取某民用舰船的部分图纸设计工作作为测试样本,所选的7张图纸中,布局布线都未出现错误。在更大测试样本上,496张图纸的布局布线都没有出现错误。
在使用先验规则进行布局的过程中,面积比和线长比两个参数可以描述算法布局与人工布局参数差异[18]。其中:面积比为算法布局的图纸面积比人工布局的图纸面积;线长比为算法布局的走线长度比人工布局的走线长度。表2所示的实验结果为所选的实验样本经过本方法布局后在面积与线长方面与人工布局的差距。根据表2中的数据,在仅使用先验规则布局的情况下,所选7张测试图纸的平均面积比为1.635,即使用先验规则布局的图纸面积比人工布局的图纸面积大63.5%;平均线长比为1.325,即使用先验规则布局的布线长度比人工布局的布线长度大32.5%。
表2 先验规则布局实验结果
该实验表明,基于先验规则的布局方法可以有效解决船舶电气设计中的布线布局问题,但是该方法实际占用图纸面积超过人工布局63.5%、实际规划线长超过人工布线32.5%,在布局布线的空间利用率方面和人工布局布线相比还存在差距。
在神经网络的训练过程中,可能会无法收敛,因此设计如下实验验证本文所述参数优化神经网络是否能够正常收敛且收敛速度与传统端到端神经网络是否存在区别。
参数优化神经网络的训练使用了一个拥有1 984个样本的数据集。选取样本中1 488个样本作为训练集,496个样本作为验证集,每次随机选取40个样本作为一个batch来进行训练。在训练过程中,误差函数在经过约17万次的迭代后收敛。如图16所示的误差函数的变化曲线展示的是验证集上的误差函数的变化趋势,其中横坐标表示迭代次数,纵坐标表示损失函数值。
图16 神经网络训练过程中损失函数的收敛趋势
图16中,灰色线条表示传统端到端神经网络训练过程中损失函数的变化过程,蓝色线条表示引入奇异值分解压缩的参数优化神经网络训练过程中损失函数的变化过程。对比两曲线,在本文所提出的参数优化神经网络已经收敛时,传统端到端神经网络尚未收敛。通过基于奇异值分解的压缩之后,神经网络的收敛速度[19]相比端到端神经网络的收敛速度有显著提升。
本实验中所阐述的末端优化方法主要由两部分组成:①参数优化神经网络;②基于奇异值分解的连接矩阵压缩器。本实验旨在验证这些优化方法在提升图纸空间利用率方面所能起到的效果。
本实验中解除了前文中3.1节所述的实验对布局参数优化神经网络和连接矩阵压缩器的屏蔽。在加入了末端优化算法处理之后,用与前文中3.1节同样的方法和定义记录相同图纸实验数据,如表3所示,其中面积比为算法布局的图纸面积比人工布局的图纸面积;线长比为算法布局的走线长度比人工布局的走线长度,面积优化率与线长优化率均是针对前文中3.1节所展示的实验结果(后文用原图纸面积与原线长指代)进行计算的,面积优化率指引入末端优化方法后减少的图纸面积占原图纸面积的百分比;线长优化率指引入末端优化方法后减少的线长占原线长的百分比。
表3 末端优化实验结果
表3中7张图纸面积比的平均值为1.275、线长比的平均值为1.209、面积优化率的平均值为21.44%、线长优化率的平均值为8.53%。
与前文中3.1节的实验数据进行对比,7张图纸面积比的平均值从1.635下降到了1.275,下降了21.99%;线长比的平均值从1.325下降到了1.209,下降了8.79%。在空间利用率方面,经过末端优化算法优化之后的图纸面积比人工布局的面积平均大27.57%,布线长度平均大20.90%。
在经过末端优化算法优化之后,算法的布线水平已经接近人工,综合考虑到算法布线的布线速度和布线正确率,本算法已经能够胜任大部分场景下的自动化布线任务。
在布局布线工作中,布局布线的速度也是影响工作效率的一个重要因素,但是布线速度不仅和算法的运算速度相关,还与图纸中元件的数量相关联。因此,本实验旨在收集本算法在不同元件数量下的布局布线速度,同时也探究布线速度与元件数量之间的关系。
实验随机选取了496张不同元件数量的图纸进行布局布线速度测试,得到了如下的布局布线速度分布曲线,以及近似的布局布线速度与元件数量的关系曲线。
图17展示了所选取的496张图纸中元件数量情况,测试用图纸中的元件数量全部在400个以内。图18展示了所选取的图纸中布局布线时间所需时间长度的分布,经统计,99.1%图纸都能在10秒内完成布局布线的计算,速度为普通人工布线速度的300倍。图19展示了图纸的布局时间与元件数量的关系,通过线性回归拟合发现布局布线的时间与图纸中所包含的器件近似呈二次函数关系,因此随着元件数量的增加,布局布线的时间也会变长。
图17 布局样本元件数量分布图
图18 布局布线所需时间分布
图19 布局布线速度与元件数量关系图
经过上述4组实验,可得出以下实验结论。本文所提方法能够有效解决舰船电气图纸的布局布线场景中可靠性低、合理性低和布局效率低的问题。在布局可靠性方面,能够保证相关元件连接关系正确;在布局合理性方面,空间利用率已经接近人工布线的水平;在布局速度方面,布局速度为人工布局速度的300倍。
与其他相似领域的算法对比,本算法可以通过数学推导证明其完备性,能够保证布局布线的正确性。在上述496张图纸数据集中的验证,成功率为100%。相较于RePlAce 99.27%的成功率、RL graph placement method 99.83%的成功率,在大规模电气设计领域,由于人工核查难度大、耗时长,本方法的所提供的完备性布线方法具有更高的应用价值。
在工程实践应用过程中,本文所述方案工程落地门槛低,神经网络部分模块可以在算力有限,样本有限的情况下较快地收敛,方案整体对算力要求不高。
需要说明的是,在本文的前期调研中,发现现阶段国内船舶电气图纸的自动化设计领域研究相对较少,大部分研究集中在三维的路径规划领域,与本文所针对技术问题存在偏差。同时经过调研,国外可能有类似的自动化设计技术,但由于涉及到军事应用,并未找到公开的技术报道和论文。因此本文选择了人工布线作为主要的技术对比对象。
本文的主要贡献在于提出了一种可应用于工程实践的舰船电气图纸自动布局布线的方法。本文所提出的方法主要存在以下的优点:①布局布线可靠性高,对于符合条件的连接场景,可以确定地完成布局布线任务并且不会发生布线交叉或布线失败;②资源占用低,充分利用奇异值分解的方法提取特征,降低神经网络的运算复杂程度;③运行速度快,99.1%图纸可以在10s内完成布局和布线任务。同时本文所提出的方法也为其他复杂场景下利用神经网络执行优化任务提出了一个可行的方法。
本文所论述的方法虽然已经能够基本实现自动化的布局布线,但是在空间利用率上与人工布线之间还存在约20%的差距。未来的研究可以聚焦于以下3个方面的改进:①总结并使用更为细致的先验规则,可以优化一部分因为规则粗糙导致的布局短板;②增加神经网络训练的数据样本数量,并相应的增加神经网络内部隐藏层节点数量,提高神经网络所能学习到的特征数量;③引入其他优化方法来对布局参数进一步优化以取得局部最优解。如果继续细化场景先验规则,换用更大规模的神经网络和样本数更多的训练数据集的话,进一步缩小算法布线和人工布线之间的空间利用率的差别。