张继新 吴正大
粒子群优化技术在饲料配方设计中的应用
张继新 吴正大
张继新,河南工业大学信息科学与工程学院,博士,450052,河南 郑州。
吴正大,南京中兴软创软件技术有限公司。
★ 河南省自然科学基金(NO.072300430220);河南工业大学校基金(NO.08XJC013)
在饲养业中,要提高饲料转化率,增加产量,降低成本,关键措施是配制营养完善和平衡的饲料。而在实际的配方设计应用中,这是一个非常复杂的问题。首先不同动物的营养标准不统一,相同动物的不同成长期营养标准也不同[1]。其次在考虑是否选用某种饲料原料时,配方的决策者不仅要考虑饲料原料的营养价值,还需要综合考虑它的适口性、抗营养因子、可获得性等因素。最后还有一个关键因素,就是原料的价格问题。而目前原料种类繁多、原料市场价格复杂多变。如何综合各种因素寻求最经济而又营养平衡的饲料配方具有一定的困难。
将计算机技术与优化技术应用到饲料配方优化系统中是一种新的思路。目前很多饲料配方优化决策系统采用线性规划、目标规划和模糊规划等数学方法,优化决策计算出符合一定限制条件(畜禽所需营养成分及部分原料的用量上下限)的最低成本配方。饲料配方决策系统成为了饲料配方工作者的重要工具。自从有了饲料配方决策系统,饲料配方软件的算法改进就成了饲料配方软件设计的核心,算法的好与坏直接关系到配方的成本和营养指标的满足程度。本文提出了一种基于粒子群算法的饲料配方优化方法。该方法在速度和解的质量方面都达到了令人满意的效果,为配方优化这一复杂问题的求解提供了一种新的有效的方法。
目前,用于饲料配方优化决策系统中的方法实质都是采用线性规划数学方法。线性规划问题数学模型的一般形式为:
①列出约束条件及目标函数;
②画出约束条件所表示的可行域;
③在可行域内求目标函数的最优解。
在饲料配方问题中,约束条件即为动物的各种营养素范围,即各种原材料配比后,各种营养素的含量应达到营养标准范围之内。有些优化系统为了追求最低成本,优化后的饲料配方中某些营养素的含量达不到营养标准,为了保证所有营养素达标,必须约束所有营养条件,这就造成约束条件过多,优化方法效率低下,适用范围有限。因此,如何处理好约束问题是饲料配方优化问题的难点之一。
饲料配方设计是一个典型的约束优化问题,约束条件非常复杂,既有多个不等式约束条件,还有等式约束条件,并且有些约束条件之间互相制约。约束条件处理不好极易陷入局部最优。对约束优化问题的求解,已有许多算法(如梯度映射法、梯度下降法、惩罚函数法、障碍函数法等),但单纯使用这些方法不是效率很低就是适用范围有限。而粒子群算法由于其求解过程不依赖于目标函数的解析性质,同时又能以较大的概率收敛于全局最优解,所以用粒子群算法求解约束优化问题已成为一个研究热点。
粒子群优化(PSO)算法是近年来发展起来的一种进化算法。它是Kennedy和Eberhart受鸟群觅食行为的启发于1995年提出的。PSO概念简单、容易实现、收敛速度快、参数设置少,是一种高效的搜索算法。同时又有深刻的智能背景,既适合科学计算,又特别适合工程应用。
约束优化问题将变量约束在可行域内,在可行域内寻找使目标函数最小的解。PSO算法非常依赖于随机的过程,在初始化粒子群时,难以控制粒子是否在可行解域,基于解的可行性,可以通过建立惩罚函数,对违反约束的情况进行惩罚,将有约束的优化问题转化为无约束的优化问题。本文采用外惩罚函数法,就是以不可行解为搜索起始点,逐渐向可行解域移动。外惩罚函数表达式为:
式中:f(x)——目标函数;
g(x)——不等式约束函数;
h(x)——等式约束函数。
非负r、c为惩罚因子。m为不等式约束函数个数,p为等式约束个数。
饲料配方优化问题中,PSO算法的粒子向量形式设为(X1X2X3……Xn),分别表示每一种原料的比率。通过上述转换,约束优化问题转换成无约束优化问题。适应度函数即为新构造的目标函数F(X)。
PSO中并没有许多需要调节的参数,一般采用经验参数。为了改善PSO算法的收敛性能,本文的算法仿真中惯性权重采用模糊系统[3]方法进行动态调整。
饲料配方优化问题的PSO算法过程如下:
步骤1:初始化粒子群。包括:确定迭代次数、粒子群数、粒子每一维的上下界及最大速度值;随机产生粒子的位置和速度,并用公式(1)计算适应值;初始化每一粒子的初始最优和粒子群中的全局最优粒子。
步骤2:对每一个粒子,按照PSO距离,速度更新公式进行更新,对粒子位置与速度进行检测,超过其范围时按边界取值。
步骤3:用评价函数公式(1)评价所有粒子。
步骤4:若某个粒子的当前评价值优于其历史最优评价值,则记当前评价值为该历史最优评价值,同时记当前位置为该粒子历史最优位置。
步骤5:寻找当前粒子群中最优解,若优于历史最优解则更新全局最优。
重复步骤2到步骤5,直到满足终止条件或最大迭代数。
以一个鲤鱼成鱼用的饲料配方设计问题为例,查得鲤鱼成鱼饲料营养标准[1]见表1。
在配合饲料中选用鱼粉、蚕蛹、菜籽饼、玉米、麦麸、米糠6种原料,查得它们的营养成分及当前市场价格[2]见表2。同时要求鱼粉含量不超过10%,蚕蛹含量不超过28%,菜籽饼含量不超过30%,玉米含量不超过24%,麦麸含量不低于25%,米糠含量不低于15%。
表1 鲤鱼成鱼饲料营养标准
表2 各原料成分、营养含量和市场价格
实验环境采用VC++6.0,在普通微机上进行模拟试验,学习因子C1为2,C2为2,惯性权重w采用模糊系统[3],惩罚因子为1,粒子个数为30,迭代次数为110。部分实验结果如表3所示。
对结果进行分析发现,几种不同的配方结果,市场最优价基本上都为0.422元/kg,而且每种结果中所有营养素的含量均达到表1所示范围之内。说明试验结果十分接近最优结果,而且符合营养素约束条件。配方达到了营养均衡而成本最优的效果。
表3 各原料配比及市场最优价
本文将先进的优化技术应用到饲料配方中,优化计算出最低成本最大效益的饲料配方,大大降低生产经营成本。本文采用的PSO算法,基本式子简单,易于编程,可以优化计算出符合一定限制条件的最低成本配方。但是此种方法在追求营养均衡和价格最低的优化目标下,如果原材料市场价格波动非常大,得到的配方结果可能大不一样,这样配出的饲料可能不太适合动物的口感。因此在设计约束条件时可以再加上某些原料所占比重限制。本文提出的粒子群优化方法,适合复杂的约束条件,优化结果不仅成本最低,而且达到营养要求,如果将此优化方法与计算机技术相结合,可以设计出优秀的饲料配方决策优化系统,从而使所设计的配方更加准确、经济。
若干篇,刊略,需者可函索)
(编辑:张学智,mengzai007@163.com)
2010-05-23