软件学报
JOURN AL OF SOFTWARE
1999年　第10卷　第10期　Vol.10　No.10　1999



一种改进的遗传算法及其在布局优化中的应用
唐 飞　　滕弘飞

摘要　该文以人造卫星舱布局为背景,研究二维带平衡及不干涉等约束的圆集在圆容器内的布局优化问题,属于NP-困难问题.文章提出一种求解此类问题的改进的遗传算法,即十进制编码控制参数自适应遗传算法,从而缓解了“组合爆炸”和遗传算法的早熟收敛问题.文章给出两个算例(其中一个为作者构造的已知最优解的算例),计算结果表明了此算法的有效性,并且优于数学规划的乘子法的计算结果.此遗传可推广应用于其他布局优化问题的求解.
关键词　卫星舱,布局优化,性能约束,圆集,十进制,编码,遗传算法.
中图法分类号　TP183
　
A Modified Genetic Algorithm and Its Application to Layout Optimization
TANG Fei1 TENG Hong-fei1,2
1(Department of Mechanical Engineering Dalian University of Technology Dalian 116024)
2(Open Laboratory of CAD/CAM Technology for Advanced Manufacturing The Chinese Academy of Sciences Shenyang 110003)
Abstract Taking the layout problem of satellite cabins as background, the authors make a study of the optimal layout problem of circle group in a circular container with performance constraints of equilibrium etc. in this paper, which belongs to NP-complete problem. A modified genetic algorithm called decimal coded adaptive genetic algorithm (DAGA) is presented to solve the problem. In this way, the algorithm relaxes the combinatorial explode and the premature convergence of genetic algorithm. Two examples are provided (one of them is proposed by the authors, and its optimal solution is known). The numerical results show that the DAGA is effective and superior to multiplicator algorithm. The DAGA can be developed to solve other layout optimization problems.
Key words Satellite cabin, layout optimization, performance constraint, circle group, decimal, coding, genetic algorithm.
　　在一个旋转的人造卫星舱中,设置有垂直于舱的中心轴线的圆形隔板,要求将需要布置的部件—待布物(系统的功能部件,如仪器或者设备)最优地配置于这些隔板上.在如图1(a)所示的旋转隔板上需要布局给定的n个待布物,其布局需满足以下技术要求:① 待布物之间、待布物与容器之间不干涉;② 静不平衡量小于许用值;③ 待布物尽量向容器中心聚集;④ 要求在给定的角速度ω下各待布物的动不平衡量小于允许值,等等.

图1　笛卡尔从标系下的放置隔板上的待布物布局示意图
　　作为简化模型,假定各待布物均为圆柱体,在隔板上进行布局.由于问题复杂,整个布局优化可采用分步优化的方法来解决,即先在隔板的二维平面内进行布局优化.本文主要研究在此隔板面上的二维布局问题,归结为在满足待布物在容器中的可容性这一前提下,考虑①～③条件下的一个二维带不平衡性能约束的多种尺寸的圆待布物在圆容器内的布局优化问题.它是整个卫星舱布局问题求解的关键.
　　关于装填布局优化问题的文献综述性工作详见文献[1,2].这些文献大部分内容是研究二维或三维矩形物体在矩形容器中的装填布局.目前常用的布局优化方法有数学规划法、图论法、启发式方法、人工智能(包括专家系统),多为不带性能约束的装填布局问题.文献[3]提出新的拟物法以解决带性能约束的圆装填布局问题.文献[4]以卫星舱布局为背景,提出了新的启发式算法以解决带性能约束的圆布局优化问题.文献[5~7]以载人飞船舱布局为背景,对圆柱体、长方体在多个圆柱体容器中的装填布局问题进行了研究,采用了数学、仿真复合模型,提出了综合的启发式算法.由于带性能约束的布局问题的计算复杂性,利用数学规划方法、图论法求解是不太有效的.启发式方法虽然较为有效,但大多数只能解某类具体问题,其局限性较大.为此,本文提出了一种改进的遗传算法.为防止该算法的早熟收敛以及为适合布局问题的待布物位置坐标描述的需要,本文给出了一种基于十进制编码的控制参数自适应遗传算法,用于求解上述布局问题.
1　数学模型
　　本文研究一个带平衡和不干涉约束的圆集在圆容器中的布局优化问题.
　　集合I表示要被置入圆形容器的圆的集合,i表示这个待布圆集合的一个元素.ri表示第i个圆的半径,mi表示第i个圆的质量,R表示圆形容器的半径.建立如图1所示的笛卡尔坐标系,设圆容器以角速度ω旋转,待布物圆的形心、质心重合,忽略其厚度.
　　令设计变量X=(xi,yi)T,xi,yi分别表示第i个圆的圆心在x,y轴方向的坐标值,如图1所示.
　　建立其布局优化问题的数学模型:
minF（X）=λ1F1（X）λ2F2（X）. 　　　　　　　　　　(1)
由不平衡条件②,
,　　　　　　　　　　　　　 (2)
由聚集条件③,
,i∈I, 　　　　　　　　　　　(3)
s.t.,由不干涉条件①,
　　　　　　　　　　　　　　　　 (4)
　　　　　　　　　　　(5)
－R＜xi＜R,　-R＜yi＜R,i∈I　　　　　　　　　　　(6)
以上各式中,mi为第i个待布物的质量,ri为第i个待布物的半径,R＇为圆形容器的半径,w 为隔板旋转角速度.R￠ 为以圆形容器中心为圆心的所有待布物的外包络圆半径,λ1,λ2为目标函数的权值系数.约束(4)保证置入圆形容器的圆不会超越圆形容器的边界.约束(5)保证任意两个已经置入圆形容器的圆不发生干涉,即不互相重叠.约束(6)说明了待布圆的圆心x-y坐标是连续的,且限定了圆心的坐标值范围.
2　用于布局优化设计的改进的遗传算法
　　遗传算法源于自然界的生物进化过程,在Holland和Goldberg的文献中阐述了遗传算法的思想[8,9].由于遗传算法在求解一些NP-困难问题(如TSP旅行商问题)时所显示出的有效性,研究如何将遗传算法自然且合理地应用于求解具有NP难度的布局优化问题是很有意义的.遗传算法在布局设计领域中的应用目前刚刚开始[10].本文给出一种基于十进制编码的控制参数自适应遗传算法,用于求解此类问题.
2.1 十进制编码策略
　　问题P是一个难解的非线性规划问题.文献[9]证明了它的非凸性,如果用二进制编码必然会有相当大的精度损失.本文使用十进制数编码,即将圆柱体待布物的形心坐标值(十进制数)排列起来,形成一个解串,每一个待布物的形心坐标(xi,yi)相当于二进制编码的一位.以本文第3节的算例中的5个待布物为例,其形心坐标值表示为一个五位的数串,如下所示.

待布物1待布物2待布物3待布物4待布物5
x1y1x2y2x3y3x4y4x5Y5
- 494.30- 69.73533.156.37- 324.77700.70404.88- 463.24- 149.15438.69

　 
　　采用十进制编码的遗传算法,其寻优的精度不再受编码长度的限制,使得布局寻优的范围充满整个解空间,最优解的精度仅取决于计算机数值表达的误差.在此基础上,可以设计出相应的十进制交叉和变异算子.
2.2 适应度函数
　　在设计适应度函数时,除了考虑对不平衡等性能要求外,还要考虑待布圆之间、待布圆与可布区域容器边界干涉约束的因素.令ＩG表示在任意一代群体中的干涉量值,则适应度函数为
MinF=λ1F1（X）+λ2F2（X）+λ3IG. 　　　　　　　　　　　(7)
其中λ1,λ2,λ3为权值系数或罚因子,且λ1,λ2,λ3＞0.
　　为便于遗传算法计算,需对适应度函数进行比例变换.由于指数比例既可以让非常好的串保持有较多的复制机会,同时又限制了其复制数目以免其很快控制整个群体,并提高了相近串间的竞争性.由指数比例变换得到的适应度函数为
μ(f)=exp(-βf).　　　　　　　　　　　　　　　　 (8)
其中系数β的值非常重要,它决定选择的强制性,值越小,选择强制就越趋向于那些具有最高适应值的串,则问题P的求解归结为求解问题:
Q:maxμ(f) 　　　　　　　　　　　　　　　　　　(9)
2.3 控制参数的自适应调整
　　每一代群体的优劣可以用该代群体的平均适应度F表示,而该代群体平均适应度的稳定性可用其群体中最优个体的适应度与其群体平均适应度的关系表示.设fmax表示某一代群体中适应度最大的个体的适应度值,F表示该代群体的平均适应度值,则有
δ=fmax-F. 　　　　　　　　　　　　　　　　　　(10)
δ越大,表示个体之间的适应度值的差别越大,群体中个体特性分散;δ越小,表示群体中个体之间的适应度值的差别越小,说明该群体收敛到局部最优即早熟收敛的可能性愈大.因此可以用δ来反映种群的收敛程度.这样,交叉概率pc与变异概率pm就可以由δ来决定.为了尽量克服早熟收敛问题,当δ较大时,减小pc和pm;当δ较小时,增大pc和pm,即pc和pm的值与δ成反比,可用下式表示.
Pc∝1/δ,Pm∝1/δ.　　　　　　　　　　　　　　 (11)
　　在群体的进化过程中,根据实际情况随时调整控制参数pc和pm的值.当群体趋于收敛时,提高pc和pm的值,增加交叉和变异的概率,破坏当前的稳定性;当群体趋于发散时,则降低交叉和变异的概率,以使群体趋于收敛.
　　但是采用上述方法会带来一个新问题,即当群体实际上已经收敛到全局最优时,因无法判定是否到达全局最优,而又增大了pc和pm,迫使最优个体遭到破坏.这虽然缓解了早熟收敛,但也破坏了最优个体,使得算法无法收敛到全局最优.所以,不但要防止早熟收敛,而且也要保护优秀个体.为此,在同一代中对不同的个体,其pc和pm也应相应不同.对于适应度高的个体应加以保护,使其pc和pm相应减小;对于适应度低的个体,使其pc和pm相应增大.这样,在缓解早熟收敛的同时避免了优秀个体遭到破坏.从这一点出发,令fc为两个交叉个体中较小的一个的适应度值,fm为变异个体的适应度值,设ε＝｜F－fc｜,ε＇=｜F-fm｜,则pc和pm分别正比于pc和pm,则有
Pc∝ε,Pm∝1/ε＇.　　　　　　　　　　　　　 (12)
　　综上分析,本文给出如下控制参数:
Pc∝εδ,Pm∝1/ε＇δ， 　　　　　　　　　　　　(13)
或者表示为
pc=k1ε/δ,pm=k2ε＇/δ,　　　　　　　　　　　　　(14)
其中k1,k2为比例系数.需要注意的是,此比例系数的取值对于算法缓解早熟收敛的性能有很大影响.
2.4 十进制遗传算子
2.4.1 复制算子
　　设群体规模为N,复制算子分两步实施.
　　第1步:实施最优保存.所谓最优保存,就是找出父代群体中性能最好的个体,无条件地放入下一代群体之中.文献[11]指出,对于采用最优保存的遗传算法,以概率1收敛到全局最优解.
　　第2步:对父代群体的个体,按照其各自的适应度与群体平均适应度的比例实施转轮法则,生成下一代群体中的N- 1个个体.
2.4.2 交叉算子
　　交叉算子是实现部分基因互换的基本操作.本文针对十进制编码的特点,提出了一种双层交叉的两点交叉算子来实现交叉操作.所谓双层交叉,顾名思义,就是实施一次交叉算子,完成两次交叉操作.第1层是解串级的交叉操作,即交换两个解串的基因;第2层是基因级的交叉操作,即交换基因中的元素.采用这种交叉算子,充分地发挥了十进制编码的交叉算子的潜力,拓展了交叉算子的开发能力.下面举例加以说明.
　　假定有如下两个父解串α和b如下所示:

解串x1y1x2y2x3y3x4y4x5y5
a- 494.30- 69.73533.156.37- 324.77700.70404.88- 463.24- 149.15438.69
b- 67.06- 418.41170.94305.04375.07682.41- 27.32229.13- 96.56685.91

　 
　　第1层交叉位选定在解串的第2和第4基因位之间的基因段,则得到的两个新解串为:

解串x1y1x2y2x3y3x4y4x5y5
a＇ - 494.30- 69.73170.94305.04375.07682.41- 27.32229.13- 149.15438.69
b＇ - 67.06- 418.41533.156.37- 324.77700.70404.88- 463.24- 96.56685.91

　　第2层交叉操作则是以第1层交叉操作交换的基因段为对象,充分发掘十进制编码的潜力,继续交换基因段的元素.假定交叉元素选定为表示x坐标的数,交叉位选定在百位和十位之间,则第2层交叉操作产生的两个新解串为:

解串x1y1x2y2x3y3x4y4x5y5
A＂- 494.30- 69.73133.15305.04324.77682.41- 4.88229.13- 149.15438.69
b＂- 67.06- 418.41570.946.37- 375.07700.70427.32- 463.24- 96.56685.91

　 
　　使用双层交叉算子,对于适应度高的个体,它的高位模板与最优解比较接近,当其与差的个体进行信息交换时,通过有意识的引导使高位模板尽可能地少遭破坏,同时又将差的个体的低位优良模板吸引过来.因此,双层交叉算子能够在信息交换重组过程中有目的地引导种群向最优解进化.
2.4.3 变异算子
　　假定染色体为α=((x1,y1),(x2,y2),…(xn,yn)),非一致变异算子要求每个基因xi以完全相同的概率进行变异,一次变异后的结果为α=((xk,yk)＇…,(x2,y2),…(xn,yn)),,其中1kn.(xk,yk)＇的值按照下面的随机方式来确定.
 　　　　　　　　　(15)
其中UBx和LBx分别为第k个基因x分量定义域的上下界,UBy,LBy分别为第k个基因y分量定义域的上下界,函数Δ(gυν)返回x∈[0,ν],∈[0,ν]上的一个基因,并使这个值随着代数g的增大逐渐趋向于0.这样选取的函数允许这个算子在算法的开始阶段一致地搜索整个定义空间,而在算法的后期进行局部搜索.
,　　　　　　　　　　　 (16)
其中r是［0,1］上的随机数;g是当前进化的代数;G是遗传算法中设置的最大代数;αβ是决定非一致程度的参数.
2.5 算法收敛准则
　　给出以下两个条件作为收敛准则.
　　(a) 进化到给定的一个代数G的上界Gmax;
    (b) 
|(f*(G+1)-f*(G))/f*(G)|σ, 　　　　　　　　　　　　　(17)
其中f*(G)为第G代最好个体的适应度,σ为一个给定的小正数.
2.6 算法步骤
　　(1) 置群体代数G=0,随机生成规模为N的初始群体,确定pr;
　　(2) 计算适应度m (f );
　　(3) 确定自适应控制参数pc和pm;
　　(4) 实施复制、交叉和变异算子,生成新一代群体;
　　(5) 计算新一代群体的适应度,并记录该代群体中的最优个体.
　　(6) 检验2.5节的算法收敛准则.若满足,转(7);否则,令G=G+1,转(3);
　　(7) 按照某种既定规则(如适应度值最好的个体)比较各代群体中最好的个体,并将其中最好的作为布局寻优的最终结果.
3　算 例
　　本节给出两个带性能约束的圆集布局算例,其中算例2为我们构造的一个很有趣的已知其最优解的算例.
　　算例1:圆形容器半径R=880mm,其旋转角速度w =1.0rad/s,待布圆形的其他数据如表1所示,要求给出满足第1节中的① 不干涉性和② 静平衡条件的布局.
表1 算例有关数据

序号半径
(mm)质量
(kg)序号半径
(mm)质量
(kg)序号半径
(mm)质量
(kg)序号半径
(mm)质量
(kg)
1106111189721108113111112
211212129282286732918
39891310911239383310110
4105111410410241001034918
5938151151325102103510811
610310161101226106113611412
7826171141227111123711813
893818897281071138857
91171319826291091139877
1081620120143091840989

　 
　　建立问题P(除了式(3)以外)的数学模型,分别采用遗传算法和乘子法求解问题Q.设遗传算法群体大小为N=60;乘子法中多维搜索用BFGS法,一维搜索用抛物线法.在586微机上运行(以下算例同),计算结果如表2和图2所示.
表2　布局优化计算结果
计算结果遗传算法乘子法
不平衡量
(kg mm rad2/s2)11.39542.190
干涉量
(mm)00
计算时间
(h)0.460.58


3
图2　算例1的布局结果示意图
　　计算结果表明,改进的遗传算法对最优解的逼近程度和计算效率均明显优于乘子法.
　　算例2:为了验证本遗传算法的有效性,我们特意构造了一个已知最优解的算例,其最优布局如图3(a)所示.圆形容器半径R=130mm,其圆心与质心、形心重合,旋转角速度ω=1.0rad/s,要求给出满足不干涉、静平衡约束条件和待布圆尽量向圆容器中心聚集的条件的布局.待布圆形的其他数据如表3所示.

图3　算例2的布局结果示意图
表3　待布物有关数据
序号半径(mm)质量(kg)
120.7120.71
250.0050.00
350.0050.00
450.0050.00
550.0050.00

　　本问题的最优解为静不平衡量及所有干涉量皆为0,以圆形容器中心为坐标原点的全体待布物最小外包络圆半径R＇=120.71mm,各待布物的位置为:待布物1的圆心坐标为(0,0);待布物2～5的圆心位于半径为Rc=50.00+20.71=70.71mm的圆上,其坐标位置由下式确定:
.　　　　　　　　　　　　　 (18)
式中r0是待布物1的半径,r是待布物2～5的半径,θ=min{θ2,θ3,θ4,θ5},θ∈ [0,π/2],θi是坐标原点与i圆圆心的连线与x轴夹角(逆时针方向);ni∈{0,1,2,3},i=2,3,4,5.
　　建立问题P数学模型,分别采用改进的遗传算法和乘子法求解.设遗传算法群体大小N=80,计算结果如表4和表5所示,计算结果布局图如图3所示.
表4　布局优化计算结果

　不平衡量
(kg mm rad2/s2)干涉量
(mm)最大包络圆半径
(mm)计算时间
(h)
乘子法3.6850129.560.10
遗传算法1.2650123.200.18
量优解00120.71　


表5　待布贺形形心位置

序号乘子法遗传算法
　x坐标y坐标x坐标y坐标
1-4.639-7.841-0.5858-1.058
235.538-71.18165.97926.179
3-74.47226.25226.92968.061
4-26.27969.87227.891-66.894
567.19830.848-66.685-26.886

　 
4　结束语
　　本文以卫星舱布局为背景,研究二维带不平衡等性能约束的圆集布局优化问题,提出了一种改进的十进制数编码、控制参数自适应遗传算法,用于求解此类布局问题.文章给出两个算例进行对比,其中一个为我们构造的已知其最优解的算例.用本方法和乘子法进行数值仿真算例结果表明,本方法计算精度优于数学规划的乘子法,其计算效率与计算规模有关.这说明了本改进遗传算法的有效性和可行性.当问题规模较大时,改进的遗传算法更能显示出其优越性.
注释：本文研究得到国家自然科学基金资助。
作者简介：唐 飞：1972年生,博士生,主要研究领域为智能CAD/CAM，优化理论，航天器布局
　　　　　　　　　优化设计。
　　　　　滕弘飞：1963年生,教授,博士生导师，主要研究领域为智能CAD/CAM，优化理论，航
　　　　　　　　　天器布局优化设计.
作者单位:唐 飞、滕弘飞：大连理工大学机械工程系 大连 116024
　　　　　滕弘飞：中国科学院现代制造CAD/CAM技术开放实验室 沈阳 110003
参考文献
1　Haessler R W, Sweeney P E. Cutting stock problems and solution procedures. 
　　European Journal of Operational Research, 1991, 54(2):141～150 
2　Dowsland K A, Dowsland W B. Packing problems. European Journal of Operational
　　Research, 1990,56(1):2～14
3　黄文奇,詹叔浩.求解Packing问题的拟物方法.应用数学学报,1979,2(2):176～180
　　(Huang Wen-qi, Zhan Shu-hao. A method to solve the packing problem by 
　　analogizing objects and their moving. Acta Mathematicae Applicatae SINICA, 
　　1979,2(2):176～180)
4　Teng Hong-fei, Sun Shou-lin, Ge Wen-hai et al.Layout optimization for the objects
　　installed on a rotating table-the packing problem with equilibrium behavioral 
　　constraints. Science in China (series A), 1994,37(10):754～760
5　Ge Wen-hai, Teng Hong-fei. Three-dimensional optimal layout of objects allocated 
　　inside a multi-cabin rotating vessel. In: Proceeding of the 18th International 
　　Conference on Computers and Industrial Engineering. Shanghai: China Machine 
　　Press, 1995. 1315～1320
6　王秀梅,冯恩民,滕弘飞.圆柱空间中长方体群布局优化的模型、函数凸性及算法.应用数学学
　　报,1997,20(1):159～160
　　(Wang Xiu-mei, Feng En-min, Teng Hong-fei. Rectangle parallelepiped geometric 
　　layout optimization in cylinder space with behavioral constraints. Acta 
　　Mathematicae Applicatae SINICA, 1997,20(1):159～160)
7　唐飞,滕弘飞.复杂工程系统的计算机辅助三维布局.中国学术期刊文摘,1997,(9):1137～1140
　　(Tang Fei, Teng Hong-fei. Three-dimensional computer-aided layout optimization 
　　for complicated engineering system. Academic Periodical Abstracts of China, 1997,
　　(9):1137～1140)
8　Holland E A. Adaptation in natural and artificial systems. Ann Arbor, Mich.: 
　　University of Michigan Press, 1975
9　Goldberg D. Genetic algorithms in search optimization and machine learning. New 
　　York: Addison-Wesley Publishing Company, 1989
10　Jakobs S. On genetic algorithms for the packing of polygons. European Journal of
　　Operational Research, 1996,88(1):165～181
11　Suzuki Joe. A Markov chain analysis on simple genetic algorithms. IEEE 
　　Transations on System, Man and Cyber, 1995, 25(4):655～659
收稿日期:1998-08-12修稿日期:1998-10-20
