張繼新 吳正大
粒子群優(yōu)化技術(shù)在飼料配方設(shè)計中的應(yīng)用
張繼新 吳正大
張繼新,河南工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,博士,450052,河南 鄭州。
吳正大,南京中興軟創(chuàng)軟件技術(shù)有限公司。
★ 河南省自然科學(xué)基金(NO.072300430220);河南工業(yè)大學(xué)校基金(NO.08XJC013)
在飼養(yǎng)業(yè)中,要提高飼料轉(zhuǎn)化率,增加產(chǎn)量,降低成本,關(guān)鍵措施是配制營養(yǎng)完善和平衡的飼料。而在實際的配方設(shè)計應(yīng)用中,這是一個非常復(fù)雜的問題。首先不同動物的營養(yǎng)標(biāo)準不統(tǒng)一,相同動物的不同成長期營養(yǎng)標(biāo)準也不同[1]。其次在考慮是否選用某種飼料原料時,配方的決策者不僅要考慮飼料原料的營養(yǎng)價值,還需要綜合考慮它的適口性、抗?fàn)I養(yǎng)因子、可獲得性等因素。最后還有一個關(guān)鍵因素,就是原料的價格問題。而目前原料種類繁多、原料市場價格復(fù)雜多變。如何綜合各種因素尋求最經(jīng)濟而又營養(yǎng)平衡的飼料配方具有一定的困難。
將計算機技術(shù)與優(yōu)化技術(shù)應(yīng)用到飼料配方優(yōu)化系統(tǒng)中是一種新的思路。目前很多飼料配方優(yōu)化決策系統(tǒng)采用線性規(guī)劃、目標(biāo)規(guī)劃和模糊規(guī)劃等數(shù)學(xué)方法,優(yōu)化決策計算出符合一定限制條件(畜禽所需營養(yǎng)成分及部分原料的用量上下限)的最低成本配方。飼料配方?jīng)Q策系統(tǒng)成為了飼料配方工作者的重要工具。自從有了飼料配方?jīng)Q策系統(tǒng),飼料配方軟件的算法改進就成了飼料配方軟件設(shè)計的核心,算法的好與壞直接關(guān)系到配方的成本和營養(yǎng)指標(biāo)的滿足程度。本文提出了一種基于粒子群算法的飼料配方優(yōu)化方法。該方法在速度和解的質(zhì)量方面都達到了令人滿意的效果,為配方優(yōu)化這一復(fù)雜問題的求解提供了一種新的有效的方法。
目前,用于飼料配方優(yōu)化決策系統(tǒng)中的方法實質(zhì)都是采用線性規(guī)劃數(shù)學(xué)方法。線性規(guī)劃問題數(shù)學(xué)模型的一般形式為:
①列出約束條件及目標(biāo)函數(shù);
②畫出約束條件所表示的可行域;
③在可行域內(nèi)求目標(biāo)函數(shù)的最優(yōu)解。
在飼料配方問題中,約束條件即為動物的各種營養(yǎng)素范圍,即各種原材料配比后,各種營養(yǎng)素的含量應(yīng)達到營養(yǎng)標(biāo)準范圍之內(nèi)。有些優(yōu)化系統(tǒng)為了追求最低成本,優(yōu)化后的飼料配方中某些營養(yǎng)素的含量達不到營養(yǎng)標(biāo)準,為了保證所有營養(yǎng)素達標(biāo),必須約束所有營養(yǎng)條件,這就造成約束條件過多,優(yōu)化方法效率低下,適用范圍有限。因此,如何處理好約束問題是飼料配方優(yōu)化問題的難點之一。
飼料配方設(shè)計是一個典型的約束優(yōu)化問題,約束條件非常復(fù)雜,既有多個不等式約束條件,還有等式約束條件,并且有些約束條件之間互相制約。約束條件處理不好極易陷入局部最優(yōu)。對約束優(yōu)化問題的求解,已有許多算法(如梯度映射法、梯度下降法、懲罰函數(shù)法、障礙函數(shù)法等),但單純使用這些方法不是效率很低就是適用范圍有限。而粒子群算法由于其求解過程不依賴于目標(biāo)函數(shù)的解析性質(zhì),同時又能以較大的概率收斂于全局最優(yōu)解,所以用粒子群算法求解約束優(yōu)化問題已成為一個研究熱點。
粒子群優(yōu)化(PSO)算法是近年來發(fā)展起來的一種進化算法。它是Kennedy和Eberhart受鳥群覓食行為的啟發(fā)于1995年提出的。PSO概念簡單、容易實現(xiàn)、收斂速度快、參數(shù)設(shè)置少,是一種高效的搜索算法。同時又有深刻的智能背景,既適合科學(xué)計算,又特別適合工程應(yīng)用。
約束優(yōu)化問題將變量約束在可行域內(nèi),在可行域內(nèi)尋找使目標(biāo)函數(shù)最小的解。PSO算法非常依賴于隨機的過程,在初始化粒子群時,難以控制粒子是否在可行解域,基于解的可行性,可以通過建立懲罰函數(shù),對違反約束的情況進行懲罰,將有約束的優(yōu)化問題轉(zhuǎn)化為無約束的優(yōu)化問題。本文采用外懲罰函數(shù)法,就是以不可行解為搜索起始點,逐漸向可行解域移動。外懲罰函數(shù)表達式為:
式中:f(x)——目標(biāo)函數(shù);
g(x)——不等式約束函數(shù);
h(x)——等式約束函數(shù)。
非負r、c為懲罰因子。m為不等式約束函數(shù)個數(shù),p為等式約束個數(shù)。
飼料配方優(yōu)化問題中,PSO算法的粒子向量形式設(shè)為(X1X2X3……Xn),分別表示每一種原料的比率。通過上述轉(zhuǎn)換,約束優(yōu)化問題轉(zhuǎn)換成無約束優(yōu)化問題。適應(yīng)度函數(shù)即為新構(gòu)造的目標(biāo)函數(shù)F(X)。
PSO中并沒有許多需要調(diào)節(jié)的參數(shù),一般采用經(jīng)驗參數(shù)。為了改善PSO算法的收斂性能,本文的算法仿真中慣性權(quán)重采用模糊系統(tǒng)[3]方法進行動態(tài)調(diào)整。
飼料配方優(yōu)化問題的PSO算法過程如下:
步驟1:初始化粒子群。包括:確定迭代次數(shù)、粒子群數(shù)、粒子每一維的上下界及最大速度值;隨機產(chǎn)生粒子的位置和速度,并用公式(1)計算適應(yīng)值;初始化每一粒子的初始最優(yōu)和粒子群中的全局最優(yōu)粒子。
步驟2:對每一個粒子,按照PSO距離,速度更新公式進行更新,對粒子位置與速度進行檢測,超過其范圍時按邊界取值。
步驟3:用評價函數(shù)公式(1)評價所有粒子。
步驟4:若某個粒子的當(dāng)前評價值優(yōu)于其歷史最優(yōu)評價值,則記當(dāng)前評價值為該歷史最優(yōu)評價值,同時記當(dāng)前位置為該粒子歷史最優(yōu)位置。
步驟5:尋找當(dāng)前粒子群中最優(yōu)解,若優(yōu)于歷史最優(yōu)解則更新全局最優(yōu)。
重復(fù)步驟2到步驟5,直到滿足終止條件或最大迭代數(shù)。
以一個鯉魚成魚用的飼料配方設(shè)計問題為例,查得鯉魚成魚飼料營養(yǎng)標(biāo)準[1]見表1。
在配合飼料中選用魚粉、蠶蛹、菜籽餅、玉米、麥麩、米糠6種原料,查得它們的營養(yǎng)成分及當(dāng)前市場價格[2]見表2。同時要求魚粉含量不超過10%,蠶蛹含量不超過28%,菜籽餅含量不超過30%,玉米含量不超過24%,麥麩含量不低于25%,米糠含量不低于15%。
表1 鯉魚成魚飼料營養(yǎng)標(biāo)準
表2 各原料成分、營養(yǎng)含量和市場價格
實驗環(huán)境采用VC++6.0,在普通微機上進行模擬試驗,學(xué)習(xí)因子C1為2,C2為2,慣性權(quán)重w采用模糊系統(tǒng)[3],懲罰因子為1,粒子個數(shù)為30,迭代次數(shù)為110。部分實驗結(jié)果如表3所示。
對結(jié)果進行分析發(fā)現(xiàn),幾種不同的配方結(jié)果,市場最優(yōu)價基本上都為0.422元/kg,而且每種結(jié)果中所有營養(yǎng)素的含量均達到表1所示范圍之內(nèi)。說明試驗結(jié)果十分接近最優(yōu)結(jié)果,而且符合營養(yǎng)素約束條件。配方達到了營養(yǎng)均衡而成本最優(yōu)的效果。
表3 各原料配比及市場最優(yōu)價
本文將先進的優(yōu)化技術(shù)應(yīng)用到飼料配方中,優(yōu)化計算出最低成本最大效益的飼料配方,大大降低生產(chǎn)經(jīng)營成本。本文采用的PSO算法,基本式子簡單,易于編程,可以優(yōu)化計算出符合一定限制條件的最低成本配方。但是此種方法在追求營養(yǎng)均衡和價格最低的優(yōu)化目標(biāo)下,如果原材料市場價格波動非常大,得到的配方結(jié)果可能大不一樣,這樣配出的飼料可能不太適合動物的口感。因此在設(shè)計約束條件時可以再加上某些原料所占比重限制。本文提出的粒子群優(yōu)化方法,適合復(fù)雜的約束條件,優(yōu)化結(jié)果不僅成本最低,而且達到營養(yǎng)要求,如果將此優(yōu)化方法與計算機技術(shù)相結(jié)合,可以設(shè)計出優(yōu)秀的飼料配方?jīng)Q策優(yōu)化系統(tǒng),從而使所設(shè)計的配方更加準確、經(jīng)濟。
若干篇,刊略,需者可函索)
(編輯:張學(xué)智,mengzai007@163.com)
2010-05-23