应用单亲遗传算法进行树状管网优化布置

来源:互联网 发布:女生网络伤感歌曲大全 编辑:程序博客网 时间:2024/05/17 03:28

应用单亲遗传算法进行树状管网优化布置

周荣敏1,林性粹2
(1.郑州大学 水环学院 2.西北农林科技大学)

摘 要:树状管网布置优化属于典型的组合优化问题。本文针对树状管网布置的特点,以图论和遗传算法为理论基础,应用改进遗传算法 单亲遗传算法进行树状管网优化布置,并设计了相应的适应度函数、单亲换位算子和逆转算子。与Dijkstra算法和Kruskal算法相比,单亲遗传算法直接以管网投资最小为优化目标,能够获得一批管网投资最小的布置方案,且算法的寻优效率较高,收敛性和稳定性较好。

关键词:单亲遗传算法;树状管网;优化布置

收稿日期:2000 05 17
作者简介:周荣敏(1971-),女,河南新野人,博士,讲师,主要从事节水灌溉方面的研究。

1 树状管网遗传优化布置的基本原理

  树状管网具有图论中树的性质,有ND个节点的树状管网对应于一棵过ND个节点、有ND-1条边的树。树状管网优化布置的目标是寻找管网投资最小的树状管网布置形式,实质上就是以管网初步连接图为依据,以管道造价为权值,求管网投资最小的生成树。一个有ND个节点和NP条待选边的管网初步连接图,有许多个可行的树状管网布置形式,由于管网内流量分配模式不同,管网投资和水力性能差异较大。若用枚举法寻求所有生成树,计算量较大,求解效率低。若用图论中Dijkstra算法和Kruskal算法[1],只能分别获得一个管网总长度和路径最短的布置方案,但其管网投资未必最小。遗传算法(Genetic Algorithms GA)是一种新兴的全局优化算法,其仅以目标函数值为搜索依据,通过群体优化搜索和随机执行基本遗传运算,实现遗传群体的不断进化,适合解决离散组合优化问题和复杂非线性问题[2]。树状管网布置优化属于典型的组合优化问题,可以应用遗传算法进行树状管网优化布置:首先选择一种合适的编码方式表示树状管网布置问题,然后以随机方式从NP条边中选取ND-1条边构成一个管网连接子图,利用深度优先搜索算法(DFS)判断其连通性。如果一次搜索能找到ND个节点,则该连接子图是一个连通图。过ND个顶点且有ND-1条边的连通图一定一棵支撑树,即所选择的ND-1条边构成一个树状管网。

  已知树状管网布置形式和各节点需水量(假定流出管网为正,流入管网为负),根据管网节点连续性方程[3],由式(1)求树状管网中各管段流量:

BT+qT+QT=0

(1)
{ 1 表示管段k和节点i相连,且管内水流流离该节点

bik

0 表示此管段不与该节点关联 -1 表示管段k和节点i相连,且管内水流流入该节点

式中:BT=(bik)n×m(i=1,2,…,n;k=1,2,…,m)为树状管网关联矩阵;n为树状管网节点数;m为树状管网边数,m=n-1;qT=(q1,q2,q3,…,qm)T管段流量列向量;QT=(Q1,Q2,Q3,…,Qn)T为节点流量列向量。

  假定流量qk以最小允许流速Vmin通过,由qk=π/4D2Vmin计算各管道的经济直径Dk:

(2)

  由单位长度管道造价经验公式G=aDb估算树状管网静态投资:

(3)

式中:WC为管网静态投资,元;a、b为管道造价经验公式的参数;Lk为树状管网中第k个管道的长度,m;Dk为树状管网中第k个管道的直径,m。

  应用遗传算法进行树状管网优化布置时,直接以管网投资最小为优化目标,从一组随机产生的初始管网布置方案出发,以遗传算法控制优化搜索进程,对每一个可行的树状管网布置方案用式(1)、式(2)和式(3)计算管网投资大小,通过不断地搜索并评价树状管网,逐渐进化到一组投资最小的布置方案,实现树状管网的遗传优化布置。

2 单亲遗传算法

  应用遗传算法进行树状管网优化布置的关键是确定编码方式,设计适应度函数、遗传算子和遗传控制策略[4]

2.1 二进制编码方案 应用遗传算法进行树状管网优化布置,采用简单的二进制编码方法就可以完整地描述所要求解的问题。

图1 管网初步连接图G

图2 树A

  假定管网初步连接图G中共有ND个节点和NP条边,分别对图中的节点和边进行编号。以图G中的所有待选边为编码变量,各个编码变理的取值为0或1。按照边的编号顺序,用一个长度为NP的二进制字符串即可表示图G的一个子图,当某位上的字符值为1时,表示它所对应的边是构成子图的边;当字符值为0时,表示它所对应的边不是构成子图的边。依编码方案,用长度为NP的二进制字符串可以表示出图G的所有子图,每个子图对应一种可能的管网连接方案,然后通过连通性检验,判定该子图是否为一个可行的树状管网布置方案。例如,有一个管网初步连接图G(图1),图中共有5个节点和10条边,节点和边的编号如图1示,可用10位的二进制字符串表示图G的所有子图。图2是图G的一个支撑树,对应于一个树状管网,由边4、5、7和10组成,用二进制编码可将树A表示为:{0001101001}

2.2 适应度函数设计 遗传算法在进化搜索过程中要求以非负的最大值形式来反映个体的生存能力。为适应遗传算法的特点,结合树状管网的二进制编码方式和目标函数即式(3),定义适应度函数为:

F=

且为一个状管网

(4)

0, 其它
其中,F0=(ND-1)·aDbmaxLmax

式中:F0为一个正常数,其值随优化问题规模的不同而变化,能够保证个体适应度F总为非负;Lmax=max(L1,L2,…,LNP)为管网初步连接图中的最长管段,m;Dmax为以Vmin通过管网总流量Q时的最大管径,m;qi为第i条管段的流量,由式(1)确定,m3/s;Di为以Vmin通过流量qi时的管径,m;Li为第i条管段的长度,m;Zi为个体编码串中第i位上的字符值,其对应于管网中的第i条管段,为0或1;NP为管网初步连接图中管段数;ND为管网中节点数;其它符号同前。

  在树状管网的遗传进化过程中,首先对所产生的每一个个体进行连通性检验,判断其是否为树状管网。如果是一个树状管网,用式(1)和式(2)计算管段流量和管径,然后用式(4)计算个体适应度F。个体适应度F值的大小是衡量相应布置方案优劣的标准。F值越大表明该个体所对应的树状管网投资越小,其在进化过程中的生存能力和产生后代的概率越高。如果个体对应于一个非树状管网,则个体适应度F值为零,其生存能力最低,在进化过程中逐渐被淘汰。

2.3 单亲换位算子和逆转算子 由于树状管网有ND-1条边且满足连通性,有小于或大于ND-1个字符值为1的个体必定不是树状管网。因此在进化搜索过程中必须控制所产生的各个个体满足成为可行方案的必要条件,即每个个体有ND-1个字符值为1.基本遗传算法主要利用交叉算子生成新个体,即通过随机地从亲代群体中选择两个个体,随机交换两个亲代个体的部分基因段生成新的子代个体。对于树状管网布置问题,交叉算子容易破坏子体成为可行解的基本条件,产生可行个体的概率较小。因此,本文根据树状管网优化布置特点,放弃了传统的双亲交叉算子,设计出新的单亲换位算子和逆转算子,并称这种改进的遗传算法为“单亲遗传算法”(Single Parent Genetic Algorithm SPGA)。



图3 树B


图4 树C

  单亲换位算子通过对母体基因链上的任意一对基因进行交换产生新个体,基因对交换次数和被交换的基因位随机确定。例如:母体A对应于树A(图2),经过一次基因随机交换后产生一个新子体B,其对应于树B(图3),由边2、4、5和10组成。

  母体A 子体B。

  单亲逆转算子通过对母体基因链上的任意一段基因进行逆行一次单亲逆转算子产生一个新子体C,对应于树C(图4),由边4、6、7和10组成。

  母体子体C。
  与基本遗传算法相比,SPGA的突出特点是:在子代群体生成过程中每个子体只有一个母体,通过对母体随机执行换位算子或逆转算子产生出具有不同性状的新个体。单亲换位算子和逆转算子既可保证新一代个体具有成为可行解的基本特性,又可提高对解空间的搜索能力。单亲换位算子能使任何一个母体通过有限次的基因换位生成另一个新个体。单亲逆转算子执行速度较快,有助于将母体中的有效基因段直接遗传到子体中。

2.4 进化策略设计 在SPGA的进化过程中,综合应用平等选择与优先选择相结合的混合选择机制、代间竞争和群体单一化策略相结合的生存机制、单亲换位算子和逆转算子随机执行的遗传机制等进化策略,协调控制进化过程不断向理想的优化方向前进,使算法的寻优效率、收敛性和稳定性显著增强。

3 应用


图5 管网初步连接

3.1 算例描述 有一管网初步连接图(图5)共有10个节点,23条可能的管道连接路线。管网中各个节点需水量为10m3/h,最低允许流速为0.5m/s。管道单价经验公式为G=0.0047D1.6347,管径D的单位为mm。

3.2 SPGA优化布置结果 以节点1为水源点,应用SPGA进行树状管网遗传优化布置。设置群体规模为20,遗传代数为400代,以不同的选择率和换位率组合模式进行优化,获得20个最优树状管网布置方案,其中管网投资最小的前10个方案见表1,SA1方案管网投资最小(图6).应用SPGA进行400代遗传进化,当选择率和换位率的组合模式在[0,0]~[0.5,0.5]之间变化时,相应的程序运行时间为120~600s,程序总共搜索和评价了20×400=8000个方案,平均评价每个方案的计算时间为0.015~0.075s。

  同时,为比较不同优化方法获得最优布置方案的能力,分别采用了图论中的Dijkstra算法和Kruskal算法进行树状管网优化布置。用Dijkstra算法获得从水源点1到各需水节点路径最短的DA方案(图7),程序运行时间为0.06s;用Kruskal算法获得管网总长度最短的KA方案(图8),程序运行时间为0.05s。DA方案、KA方案和SA1方案的管网总长度和投资变化见表2。

表1 SPGA所得到的管网投资最小的树状管网优化布置方案


编号 水源点 管网投资/元 总长度/m

管 道 编 号


SA1 1 684.23 64 1 2 3 5 10 11 13 19 20 SA2 1 684.29 67 1 2 3 9 10 11 13 19 20 SA3 1 692.7 63 1 2 3 5 10 11 15 19 20 SA4 1 692.76 66 1 2 3 9 10 11 15 19 20 SA5 1 699.55 68 1 2 3 9 10 11 18 19 20 SA6 1 700.23 65 1 2 3 5 10 11 18 19 20 SA7 1 701.11 65 1 2 3 10 11 13 16 19 20 SA8 1 702.48 73 1 2 3 8 9 10 13 19 20 SA9 1 703.16 70 1 2 3 5 8 10 13 19 20 SA10 1 704.58 64 1 2 3 5 10 11 13 19 22
   

表2 KA,DA和SA1方案的管网长度和投资比较(以节点1为水源点)


方案 优化方法 管网总长度/m 管网长度变化率(%) 管网投资/元 投资变化率(%)
KA方案 Kruskal算法 60 -- 743.2 -- DA方案 Dijkstral算法 67 11.67 684.29 --7.93 SA1方案 SPGA算法 64 6.67 684.23 --7.94


图6 SA1方案


图7 DA方案


图8 KA方案

3.3 结果分析

  (1)SPGA直接以管网投资最小为优化目标,能够在较短的时间内获得一批管网投资最小的布置方案。尽管Kruskal算法和Dijkstra算法从理论上讲也是全局优化算法,但都只能得到一个管网总长度最短或路径最短的方案,其管网投资并非最小。因此进行树状管网优化布置时,应该以管网投资最小为优化目标,以求获得能满足工程实际需要且管网投资最小的布置方案。

  (2)从表2可以看出,当水源点位置一定时由SPGA、Dijkstra算法和Kruskal算法所得方案的管网总长度和管网投资具有明显差异。与KA方案相比,尽管DA方案和SA1方案的管网总长度分别比KA方案长11.67%和6.67%,但管网投资分别降低了7.93%和7.94%,说明管网总长度最短的方案不一定是管网投资最小的方案。并且SPGA搜索到了比Dijkstra算法更优或相同的布置方案,表1中的SA2方案与DA方案相同,SA1方案投资最小。

  (3)由于SPGA在整个进化搜索过程中评价了大量方案,其总的运行时间比Dijkstra算法和Kruskal算法要长,但是从评价每个方案的平均运行时间来看,若选择适当的选择率和换位率组合模式,其计算效率明显优于Dijkstra算法和Kruskal算法,且收敛性和稳定性较好。  

  (4)SPGA不仅可以提供多个具有相同水源点的优化布置方案,而且可为选择最佳的水源点位置提供依据。

4 结论

  (1)SPGA是一种树状管网优化布置新方法,可以在较短的时间内提供一批更接近工程实际需要且管网投资最小的布置方案,为方案评价和决策提供了可靠依据。

  (2)应用SPGA进行树状管网优化布置,所需数据量少,操作简单,适应性强,寻优效率较高,收敛性和稳定性较好。

  (3)SPGA可以与优化设计算法自然衔接,使管网优化设计在最优树状布置形式上获得最优设计方案,提高管网优化设计效率和设计水平。

参 考 文 献:

[1]卢开澄,卢华明。图论及其应用(第二版)[M]。北京:清华大学出版社,1995.

[2]陈国良。遗传算法及应用[M]。北京:人民邮电出版社,1996.

[3]魏永曜,林性粹。农业供水工程[M]。北京:水利水电出版社,1992.

[4]周荣敏。遗传算法与人工神经网络优化理论及其在压力管网最优化中的应用研究[D]。陕西杨凌:西北农林科技大学,2000.

来源:http://www.cws.net.cn/Journal/slxb/200106/03.html