粒子群算法在渠道横断面优化设计中的应用
2018-09-21叶振威于贤磊
叶振威 于贤磊
(1.扬州大学水利与能源动力工程学院,江苏 扬州 225009;2.南水北调东线江苏水源有限责任公司徐州分公司,江苏 徐州 221000)
现行的渠道横断面设计是用明渠均匀流公式,以试算法或图解法进行计算,这些方法复杂、计算量大、精度低。粒子群算法与遗传算法相类似,也是基于群体的优化算法,不要求函数连续或者显式表达,具有很强的全局搜索能力,但它比遗传算法简单,易于使用,而且收敛速度也更快[1]。本文将粒子群算法与罚函数法相结合,解决非线性约束问题,并对渠道横断面设计进行优化计算。
1.粒子群算法设计
假设在一个D维搜索空间里有n个粒子组成的种群X=(X1,X2,…,Xn),第i个粒子的位置为X=(Xi1,Xi2,…,XiD);第i个粒子所经历的最好的位置记为Pi=(Pi1,Pi2,…,PiD),称个体极值;群体中所有粒子经历过的最好的位置记为Pg=(Pg1,Pg2,…,PgD),称群体极值[2]。PSO算法步骤如下:
步骤一:确定迭代次数k、种群规模X、搜索空间的维数D,在搜索空间中产生粒子的初始速度V和初始位置x。
步骤二:计算粒子适应度。
步骤三:将每个粒子当前适应度值与自身个体极值和群体极值进行比较,如果当前适应度值优于个体极值,则更新个体极值;如果当前适应度值又优于群体极值,则更新群体极值。
步骤四:更新粒子速度和位置,公式[3]如下:
式中:ω为惯性权重,ω取1;i=1,2,…,D;j=1,2,…,n;k为当前迭代次数;c1、c2为加速因子,取1;φ1、φ2为区间[0 1]之间的随机数。
步骤五:迭代次数k=k+1,若满足迭代次数或精度要求,则停止搜索,输出结果,否则返回步骤二。
2.渠道横断面优化设计
2.1 目标函数及约束条件
渠道梯形断面优化设计是根据明渠均匀流公式进行水力计算。明渠均匀流公式为:
由此可推得明渠均匀流公式为:
由此可得渠道横断面优化模型[4]为:
2.2 罚函数法及处理
目前,使用最广泛的处理约束条件的方法是惩罚函数法,设法将约束问题转化为无约束的问题求解。具体做法是,根据约束的特点,构造某种惩罚函数,然后,把它加到目标函数中去,将约束优化问题的求解转化为无约束问题的求解。这种惩罚策略在无约束问题求解过程中,那些企图违反约束的迭代点给予很大的目标函数值(对于极小化而言是一种惩罚),迫使一系列无约束问题的极小点或者无限地靠近可行域,或者一直保持在可行域内移动,直至迭代点列收敛到原约束问题的极小点。罚函数处理的适应度函数公式[5]如下:
式中: F( x)为原适应度函数;G( x)为罚函数;D为x满足约束条件的集合。
2.3 算例分析
例[6]:某灌区渠道采用梯形断面,设计流量3.2m3/s,边坡系数m=1.5,渠比降i=0.0005,渠床糙率系数n=0.025,渠道不冲流速该渠道为清水渠道,无防淤要求,为了防止长草,最小允许流速为0.4m/s。求该渠道过水断面尺寸。
文献[6]将免疫遗传算法引入梯形渠道断面优化设计,免疫遗传算法具有较高的全局搜索能力,但其算法复杂,需要不断编码解码,运行时间长。本文采用的粒子群算法,算法结构简单,运行速度快,在非线性约束问题中要优于免疫遗传算法。应用粒子群算法求解,迭代次数为1000,种群规模为20,变量b取离散值[1.0 1.5 2.0 2.5 3.0],变量h取区间[0.0 5.0]。
粒子群算法求得最优解与文献[6]所求最优解对比见表1。粒子群算法所得结果与文献[6]中免疫遗传算法所得解相近,精度高,完全满足实际工程设计要求。粒子群算法程序在多次运行中,平均耗时0.6s,优于免疫遗传算法。
表1 梯形渠道断面优化设计表
3.结论
本文基于MATLAB平台,应用粒子群算法与罚函数法相结合对渠道断面进行优化设计,并与免疫遗传算法计算结果比较,证明了粒子群算法在求解该问题上具有全局性好、收敛速度快、精度高等特点。粒子群算法具有较好的非线性极值寻优能力,为解决非线性约束问题提供了新思路。