本帖最后由 songjs2101 于 2010-11-16 16:58 編輯
四川省畜牧科學研究院 易禮勝
飼料配方軟件是飼料配方工作者的重要工具。自從有了飼料配方軟件,配方軟件的算法改進就成了配方軟件設計的核心,算法的好與壞直接關系到配方的成本和營養(yǎng)指標的滿足程度。
目前,用于配方軟件的算法都是基于線性規(guī)劃的,經過一系列的修改又產生了所謂的多配方套算、目標規(guī)劃和模糊規(guī)劃。雖然這些算法都有一定的特色和優(yōu)越性,但是,他們仍然具備線性規(guī)劃最基本的特征。多配方套算則僅僅是改變了線性規(guī)劃的條件和輸出方式而已,實質就是線性規(guī)劃。
線性規(guī)劃 線性規(guī)劃是運籌學中研究較早、發(fā)展較快、應用廣泛、方法較成熟的一個重要分支,它是輔助人們進行科學管理的一種數學方法。在經濟管理、交通運輸、工農業(yè)生產等經濟活動中,提高經濟效益是人們不可缺少的要求,而提高經濟效益一般通過兩種途徑:一是技術方面的改進,例如改善生產工藝,使用新設備和新型原材料。二是生產組織與計劃的改進,即合理安排人力物力資源。線性規(guī)劃所研究的是在一定條件下,合理安排人力物力等資源,使經濟效益達到最好。 一般的,求線性目標函數在線性約束條件下的最大值或最小值問題,統(tǒng)稱為線性規(guī)劃問題。滿足線性約束條件的解叫作可行解,由所有可行解組成的集合叫作可行域。 線性規(guī)劃問題數學模型的一般形式:
(1)列出約束條件及目標函數。
(2)畫出約束條件所表示的可行域。
(3)在可行域內求目標函數的最優(yōu)解。
正是因為利用線性規(guī)劃可以合理配置資源,從它問世以來,很快就被用來進行飼料配方設計。它可以在滿足營養(yǎng)指標和飼料原料使用上下限多個約束條件的情況下,給出最小成本的配方。
目標規(guī)劃 線性規(guī)劃模型只考慮了單一目標,并且所有約束都要絕對滿足。然而,很多問題具有不同衡量單位的多重目標,這樣建立一個綜合的單一目標即使可能的話,也非常困難。 目標規(guī)劃是線性規(guī)劃的一種變異形式,它容許處理不同層次的相互沖突的多個目標。各目標是分等級的,按優(yōu)先級處理。在求解過程中,不能犧牲高等級的目標來滿足低等級的目標。解決這個問題相當于把高等級目標當作低等級目標的約束,解一系列嵌套的線性規(guī)劃問題。線性規(guī)劃是要使單一目標最優(yōu)化,而目標規(guī)劃則是要使對目標體系的偏差最小,這樣得出的解稱為滿意解。因為并不一定要滿足所有目標,而是要盡量接近目標。 目標函數僅包含偏差變量(即對目標或正或負的偏差),在同一優(yōu)先級的偏差變量中,還可以賦予偏差權數以表示其相對重要程度。其目標則是在考慮優(yōu)先級的前提下,使各優(yōu)先級的偏差之和最小。全部約束都是等式約束,包括正的或負的偏差變量以及決策變量。 飼料配方設計有時候也和目標規(guī)劃相類似,一些條件無法滿足的情況下,設計者會根據各個營養(yǎng)要素的重要性,進行相應的取舍,從而得到一個比較滿意的配方。
模糊線性規(guī)劃 模糊線性規(guī)劃是在線性規(guī)劃及加入伸縮量之后構造一新的線性規(guī)劃。它能根據原線性規(guī)劃各項營養(yǎng)成分及原料的影子價格自動按用戶給出的伸縮量調整配方,從而得到一個成本低、又滿足要求的合理配方。模糊線性規(guī)劃期望模擬有經驗的配方師對線性規(guī)劃配方進行調整,但是,實質上有經驗的配方師調整配方的時候并非完全按照事先確定所謂伸縮變量的規(guī)則來調整配方,因而,模糊線性規(guī)劃也不能完全得出與優(yōu)秀配方師一樣的結果。
三種計算方法的比較 三種算法中,計算最為復雜的是模糊線性規(guī)劃,其次是目標規(guī)劃。后面兩種都是從線性規(guī)劃發(fā)展而來。 從上面的簡述可以看出,三者最大的不同不在于參與計算的條件,其實核心的計算方法都一樣,都是線性規(guī)劃。而后兩者之所以能夠區(qū)別于前者,其主要原因是引入了伸縮變量,也就是說,線性規(guī)劃的計算條件是相對剛性的,而后兩者的計算條件卻可以在計算中調整。而目標規(guī)劃和模糊線性規(guī)劃的區(qū)別又在于目標規(guī)劃的彈性變量只能靠人為引入,模糊線性規(guī)劃卻可以根據計算后的影子價格自動調整。 需要指出的是,無論目標規(guī)劃還是模糊線性規(guī)劃的伸縮量,都必須由使用者在計算前指定。伸縮量的指定實質上是對飼養(yǎng)標準和原料使用量的調整。既然要對飼養(yǎng)標準和原料使用量進行調整,使用者就必須對動物營養(yǎng)和飼料科學知識有一定了解。 在應用中,無論是目標規(guī)劃還是模糊線性規(guī)劃,使用者一般都會追求最低成本。由于在剛性條件下,線性規(guī)劃的最優(yōu)解已經是成本最低值,毫無疑問,目標規(guī)劃和模糊線性規(guī)劃都是并且只能通過犧牲營養(yǎng)指標的滿足程度來獲得更低成本。一般自己調整飼養(yǎng)標準和原料的添加比例,用線性規(guī)劃按照自己的意愿來進行配方設計,而不是直接使用目標規(guī)劃和模糊線性規(guī)劃。
三種算法的弊端 因為這三種算法的核心都是線性規(guī)劃,而線性規(guī)劃的目標是獲得最理想的結果。如果不人為設置某些常用原料的使用量,可能會因為原料價格的小小波動導致某種原料的使用與否,這樣的話,動物對原料的劇烈變動不一定能適應。即便動物能夠承受,一個廠家也沒有那么大的倉儲能力來滿足原料選擇的迅速變動。 另外,這三種算法都是以獲得單位營養(yǎng)濃度成本最低為原則計算的,實際上動物生產中飼料營養(yǎng)素濃度是可以在一定范圍內變化的。需要指出的是,這種變化應該是按照預先設定的模型按比例變化,并非單獨降低或者提高某個指標,如果期望利用大幅度改變營養(yǎng)素之間比例導致營養(yǎng)素之間的比例偏離,已經成熟的模型太遠來求得配方成本下降,從而達到生產效益最高,最終只能導致營養(yǎng)素的浪費和總成本的上升。而參與計算的營養(yǎng)素濃度值得到的配方卻不一定是性價比最高的,真正性價比最高的配方可能會略微提高或者降低營養(yǎng)素濃度才能達到,這也是線性規(guī)劃為基礎的所有算法的最大弊端。因為目前的線性規(guī)劃還不能把某種營養(yǎng)素和價格之比(暫且稱為性價比)作為線性規(guī)劃的目標。也就是說,純粹的線性規(guī)劃程序無法得到效益配方。 |