?

單純形法在圈養野生動物飼料配方優化設計中的應用

2019-02-22 11:05冰,劉
飼料博覽 2019年12期
關鍵詞:約束條件數學模型野生動物

王 冰,劉 赫

(北京動物園,圈養野生動物技術北京市重點實驗室,北京 100044)

野生動物的食性紛繁復雜,營養需求也不盡相同。在圈養條件下,野生動物只能采用人類種植的植物和養殖的動物為飼料原料,而且這些飼料原料的種類和數量非常有限,受到地區和季節的影響很大[1-2]。飼料配方是營養的主要載體,也是飼養管理的核心。合理的飼料配方才能保證營養的均衡,利于動物的健康發展。因此,利用有限的飼料原料配置合理的飼料配方是圈養野生動物飼養管理的關鍵。

野生動物的營養需求主要包括能量、粗蛋白質、粗纖維和粗脂肪等,每種動物根據食性不同,所需的條件也相應不同。野生動物的飼料配方優化需要結合每種動物的營養需求,以及當前可供的飼料原料,建立數學模型。在限定目標函數和多個營養成分指標的約束條件后,計算出適合規定營養成分的飼料配方,發現規定條件中的最優方案,節約飼料成本和消耗。因此,本研究旨在選擇恰當的數學模型并將模型轉化成應用程序,利用計算機將野生動物的飼糧配方優化,在滿足粗蛋白質、粗纖維等約束條件的情況下,以單位配方飼料能量最大。

1 材料與方法

1.1 線性規劃模型介紹

線性規劃的數學模型有很多種形式,為了計算方便,需要將這些數學模型統一成標準型,如下:

1.2 單純形法求解

線性規劃中的一個主要求解方法就是單純形法,是1947年美國Dantzig創立而來,也是目前飼料配方優化領域的一個重要方法[3]。使用單純形法求解線性規劃通常是建立單純形表,在對單純形表進行一系列的迭代運算求解,每迭代一步構造出一個新的單純形表,見表1。

表1 單純形表的應用

1.3 系統架構設計

目前,流行的線性規劃運算工具很多,例如Excel、Matlab等,其作為專用的數學工具功能雖然強大,但是系統集成度低,并非專門針對飼料管理設計。每次配制飼料都要在多種軟件之間切換,使用非常不方便,而且數據直接的反復錄入復制也容易造成混亂。本文將線性規劃引擎作為飼料管理信息系統的一個模塊納入到信息系統中,使管理程序、數據庫、算法引擎之間相互協作,提高系統的集成度,降低使用復雜度。

本飼料配方系統采用MVC架構,用戶通過瀏覽器查詢飼料原材料,選擇好希望加入配方的原料后,通過網絡提交到服務器,服務器運算后返回給用戶飼料配方結果經過適當調整后自動保存至數據庫。操作始終在一個系統內完成,不需要其他軟件輔助。應用系統運行環境為ASP.net 4.5,數據庫采用SQLServer 2012。MVC架構包括Model、View、Controller 3部分組成,交互界面對應View控制層對應Controller,業務層及線性規劃計算引擎對應Model。MVC設計使每層之間都是松耦合的,界面的改變不會影響業務邏輯和算法引擎,而算法引擎的改變也不會影響界面的顯示。

1.4 核心算法設計

本系統中用單純形法解決線性規劃問題使用的是迭代運算求最優解,通過編程實現單純形法自動演算。目前主要的計算方法有:大M法和兩階段法。其中兩階段法比較適合應用于計算機運算。第一階段:不考慮原問題是否存在基可行基;給原線性規劃問題加入人工變量,并構造僅含人工變量的目標函數和要求實現最小化。然后用單純形法求解。若值帶入目標函數為0,說明有可行基,否則無可行解,停止運算。第二階段:將第一階段計算結果得到最終表,除去人工變量。將目標函數的系數換成原問題的目標函數系數,作為第二階段的初始表,然后進行迭代運算。

核心算法采用面向對象編程,主要包含兩類。格式化類:負責將用戶錄入的數據格式化成單純形法迭代運算需要的數據格式。運算類:負責對數據進行運算最后返回結果。面向對象的編程,封裝了內部的運算邏輯只暴露出用戶必須使用的函數。這樣的設計模式減少了程序代碼之間的耦合,增強了代碼的復用性。如果將來系統希望使用目標規劃作為運行引擎,只要更改少量代碼即可滿足需求。

1.5 前端設計

前端設計采用EasyUI框架提供的組件,用戶選擇配方需要的飼料以及營養成分,然后點擊“生成矩陣”頁面自動切換到矩陣編輯頁面??梢孕薷募s束條件以及價值系數和目標函數系數,然后點擊“計算”后將數據無刷新上傳至服務,通過運算返回結果。根據需求添加所需計算的飼料,再添加所提供的營養成分條件,如蛋白質、脂肪、纖維素等,同時還需要添加保證盡可能多飼料的百分比條件。

2 試驗結果

輸入目標函數系數以及相應的約束條件參數后,輸出結果滿足約束條件以及目標函數最大化原則。以野生水禽的飼料配方設計為例,原料有雞蛋、胡蘿卜、油菜和顆粒料,要求能量最大,粗蛋白質>10%,粗脂肪<5%,粗纖維>2%。根據目標輸入后計算結果如表2所示:顆粒飼料61.4%、胡蘿卜13.6%、雞蛋10%、油菜5%。

表2 野生水禽飼料配方優化設計應用

再以圈養食草動物為例,原料有食草顆粒、干羊草、鮮苜蓿、胡蘿卜,要求能量最大,粗蛋白質>12%,粗脂肪<3%,粗纖維>30%。根據目標輸入后計算結果如表3所示。

表3 野生食草動物飼料配方優化設計應用

3 討論

目前飼料配方的優化和設計主要采用線性規劃、目標規劃和模糊線性規劃3種方式,每種優化模型各有特點[4-5]。線性規劃模型是最簡單、最準確的方法,不會因為建模不當而導致不合理的配方[6]。目標規劃是處理多個目標共存,以及主目標與次目標共存時常用的數學模型。目標規劃雖然貌似適合解決飼料配方這種多目標問題,但是目標規劃中“權系數”選擇的偏差會直接影響結果的有效性,而“權系數”選擇沒有標準的公式,需要經驗積累,對于普通使用者來講,這是有一定難度的。顯然,目標規劃并不適合作為飼料配方的最佳算法。根據需求,選擇經典的線性規劃數學模型是比較穩妥的方案。

通過線性規劃中的單純形法求解飼料配方,建模簡便,適合計算機編程輔助運算,減少了人工盲目試算,提高了效率。然而,線性規劃也有其自身的不足,線性規劃只能有一個目標函數而實際飼料配方中往往目標不止一個。飼料配方是一門經驗性科學,有些配方是多年經驗總結,無法完全通過模型配置所需配,還需結合實際情況,以及動物本身的狀況進行參考。而且,在數學建模中無法列出足夠完備的約束方程,往往只要幾種原材料就能滿足約束條件,從而導致結果偏差,這顯然違背了飼料配方多樣性的原則。為了解決上述問題,可以在飼料配比中預留調整空間,進行人工干預,這個預留比例約為15%,以便酌情添加其他原料。

4 結論

利用單純形法解決線性規劃問題是飼料配方優化應用中的主要方法,建模簡單、結果準確。通過設定特殊的約束條件和目標函數通過經驗積累也可以模擬出目標規劃的效果。由于本系統開發時考慮到數學模型需要不斷的優化和提升,在系統設計上盡量減少程序間的耦合。這為今后飼料配方系統的升級打下了良好的基礎,為飼料配方的優化核心算法提供依據。

猜你喜歡
約束條件數學模型野生動物
基于一種改進AZSVPWM的滿調制度死區約束條件分析
AHP法短跑數學模型分析
活用數學模型,理解排列組合
保護野生動物
保護野生動物
保護野生動物
保護野生動物
基于電力機器人控制系統的數學模型簡述
對一個數學模型的思考
基于半約束條件下不透水面的遙感提取方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合