呂 陽, 高榮華, 賴成榮, 李奇峰, 耿愛蓮, 王海宏, 丁露雨
(1. 北京市農林科學院信息技術研究中心,北京 100097; 2. 國家農業(yè)信息化工程技術研究中心,北京 100097;3. 北京市農林科學院畜牧獸醫(yī)研究所,北京 100097)
北京油雞(簡稱油雞)是優(yōu)良的地方品種,在北京地區(qū)具有悠久的飼養(yǎng)歷史,具有外貌獨特、蛋質優(yōu)良、肉味鮮美等特點,養(yǎng)殖方面具有耐粗飼、抗病能力強、抗逆性強等優(yōu)點[1-2]。近年來油雞規(guī)?;B(yǎng)殖廣泛推廣,為提高油雞養(yǎng)殖的經濟效益,提供充足的營養(yǎng)供給必不可少。油雞需要的主要營養(yǎng)素包括代謝能、粗蛋白質、必需氨基酸、鈣和磷,營養(yǎng)物質缺乏會導致畜禽出現(xiàn)異食癖、代謝紊亂、生長緩慢等問題[3]。營養(yǎng)物質的配比更加重要,不同氣候條件、養(yǎng)殖階段、養(yǎng)殖品種對飼料配比有更加細致的要求[4]。
現(xiàn)有的商業(yè)飼料配方軟件大多集成于電腦終端,無法解決軟件戶外便攜使用的問題,造成先進的養(yǎng)殖技術難以融入基層養(yǎng)殖農戶中,尤其是影響到中小養(yǎng)殖規(guī)模的農戶。本文飼料配比尋優(yōu)問題是典型的線性規(guī)劃問題,目前求解線性規(guī)劃問題常用的方法是最優(yōu)化方法和遺傳算法[5]。修正的單純形算法是最優(yōu)化方法中計算速度較快的一種方法,該方法可有效解決線性規(guī)劃的求解問題[6]。遺傳算法是一種模擬生物進化過程的求解方法,該方法可解決復雜的優(yōu)化問題,在人工智能、信號處理、規(guī)劃求解領域應用廣泛[5]。本文對比兩種方法在油雞飼料配比尋優(yōu)系統(tǒng)中的表現(xiàn),選擇計算效果較優(yōu)的算法作為尋優(yōu)算法。
為了提高中小養(yǎng)殖戶飼養(yǎng)油雞的經濟效益,保障油雞飼喂過程中合理高效的營養(yǎng)配比,開發(fā)基于智能手機平臺的飼料配方系統(tǒng),運用最優(yōu)化算法尋找油雞飼料配比的最優(yōu)值,使飼料營養(yǎng)成分更符合新品種油雞的實際需要,提高生產性能,推動整個油雞產業(yè)的健康可持續(xù)發(fā)展。
現(xiàn)有的油雞飼料配方系統(tǒng)功能單一,功能實現(xiàn)不夠細致,缺乏氣候條件、養(yǎng)殖階段、養(yǎng)殖品種等因素在飼料配比中的選擇,同時缺乏良好的系統(tǒng)界面和產品流程設計,導致用戶體驗感較差,無法廣泛應用,且沒有形成一套功能完善、用戶體驗較優(yōu)、輕量級的產品[7]。
現(xiàn)有商用飼料配方軟件大多以電腦終端的操作界面為主,且缺乏對油雞的養(yǎng)殖用途、地區(qū)、季節(jié)等條件的配置,無法適用靈活的實際養(yǎng)殖條件,對現(xiàn)有商業(yè)飼料配方軟件的不足之處進行補充,能對不同階段、不同季節(jié)、不同地域需求進行智能調整[8]。
系統(tǒng)對原料管理、營養(yǎng)標準管理、配方管理等模塊設置了增刪改查功能,可依據實際使用環(huán)境靈活調整系統(tǒng)參數(shù),充分利用農戶現(xiàn)有飼料資源,配合系統(tǒng)推薦的營養(yǎng)指標,可實現(xiàn)靈活高效的飼料配方管理。
智能配方系統(tǒng)配合服務器部署的優(yōu)化算法,實現(xiàn)不同需求的飼料配比優(yōu)化,降低油雞飼養(yǎng)的技術門檻,靈活的飼料選擇方式和搭配比例計算,使養(yǎng)殖戶可以結合自身養(yǎng)殖條件,靈活調整飼料搭配方式,進一步降低養(yǎng)殖成本,提高生產效率,推動整個油雞產業(yè)的健康可持續(xù)發(fā)展。
油雞飼料智能配方系統(tǒng)主要包括3 部分,分別是基于Android 的操作系統(tǒng)、基于Mysql 的數(shù)據庫、基于python 語言的尋優(yōu)模型。
油雞飼料智能配方系統(tǒng)存儲飼養(yǎng)所需的原料品種和對應的營養(yǎng)物質含量,可實現(xiàn)養(yǎng)殖品種、生長階段、營養(yǎng)標準、季節(jié)氣候、地域及養(yǎng)殖方式的選擇,并根據選擇結果計算出最優(yōu)的飼料配比,既能滿足油雞在該階段所需的營養(yǎng)需求,又能降低飼料的成本[9]。油雞飼料智能配方系統(tǒng)的架構如圖1 所示。
圖1 油雞飼料智能配方系統(tǒng)架構Fig. 1 Architecture diagram of intelligent formula system for oil chicken feed
油雞飼料智能配方系統(tǒng)擁有原料管理、營養(yǎng)標準管理、歷史飼料配方管理功能,同時可實現(xiàn)基于最優(yōu)化算法的配方比例尋優(yōu)功能。油雞飼料智能配方系統(tǒng)功能框架如圖2 所示。
圖2 油雞飼料智能配方系統(tǒng)功能框架Fig. 2 Functional framework of chicken feed intelligent formula system
1.2.1 原料管理
原料管理可實現(xiàn)已有飼料中營養(yǎng)素占比的查看和編輯,其界面如圖3 所示。查看功能可顯示飼料名稱、飼料號、代謝能、粗蛋白質、必需氨基酸、鈣和磷的具體參數(shù);編輯功能可結合飼料產地和品質的不同,對飼料中營養(yǎng)素占比進行修改,也可以增加新飼料。
圖3 原料管理界面Fig. 3 Raw material management interface
1.2.2 營養(yǎng)標準管理
營養(yǎng)標準管理可實現(xiàn)營養(yǎng)標準的選擇和編輯,其界面如圖4 所示。查看模塊可顯示預設的推薦標準和自定義標準,便于后期借鑒和使用,查看模塊同時還具備模糊搜索功能,便于快速找到所需的營養(yǎng)標準;編輯功能可依據最新研究成果修改和新建營養(yǎng)標準,靈活調整飼喂中營養(yǎng)素配比。圖4a 展示了自定義的兩種“1w~6w 種用油雞飼料糧主要營養(yǎng)推薦量”,其中“w”表示“周”;圖4b 展示了營養(yǎng)標準詳細的自定義界面,界面中提供了養(yǎng)殖對象、生長階段、營養(yǎng)標準等可編輯內容;如圖4c 所示自定義完成后營養(yǎng)標準信息將匯總顯現(xiàn),并添加到“我的營養(yǎng)標準”中。
圖4 營養(yǎng)標準管理界面Fig. 4 Nutrition standard management interface
1.2.3 歷史飼料配方管理
歷史飼料配方管理界面可顯示用戶歷史生成的配方記錄,也可對歷史配方搜索查找,對于搜索到的歷史配方可查看詳細信息,其界面如圖5 所示。
圖5 歷史飼料配方管理界面Fig. 5 Historical feed formula management interface
1.2.4 飼料配方比例尋優(yōu)
基于最優(yōu)化算法的配方比例尋優(yōu)功能可根據飼料營養(yǎng)成分、價格、限制用量和營養(yǎng)推薦標準求解飼料配比最優(yōu)值。配方結果界面展示原料價格和品種,同時顯示最終配比完成飼料的營養(yǎng)成分。
油雞飼料配比尋優(yōu)問題需要一些已知條件,包括各種飼料營養(yǎng)成分、價格、限制用量和油雞營養(yǎng)推薦表。該問題的目標是滿足油雞營養(yǎng)需求的前提下,控制飼料成本最小,同時可以根據用戶自定義的飼料配方尋找最優(yōu)的配方比例。
考慮普通全價飼料和預混合飼料,并提供飼料名稱、飼料號、各營養(yǎng)物質含量和單位質量價格。飼料的營養(yǎng)物質包括代謝能、粗蛋白質、賴氨酸、鈣和磷的含量,以及蛋氨酸與胱氨酸含量的總和,如表1 所示。
表1 飼料營養(yǎng)成分占比Tab. 1 Proportion of feed nutrients
油雞養(yǎng)殖營養(yǎng)推薦表給出不同養(yǎng)殖階段所需的營養(yǎng)素推薦量,并按照養(yǎng)殖用途將營養(yǎng)素推薦量劃分種用、肉用、蛋用推薦量,滿足不同養(yǎng)殖類型的需求,如表2所示。
表2 油雞養(yǎng)殖營養(yǎng)推薦Tab. 2 Recommended nutrition for oil chicken breeding
預混合飼料是配合飼料發(fā)揮作用的核心,因其含有的眾多生長所需的微量元素,配合飼料飼喂具有較好的效果。根據油雞的飼養(yǎng)用途和預混合飼料選用的不同,提供了對應的普通飼料和預混飼料限制用量標準,限制不同情況普通全價飼料和預混飼料的使用比例。
經過對油雞飼料配方尋優(yōu)問題的具體分析,可以確定該問題是線性規(guī)劃問題,該問題中飼料成本是最終的目標函數(shù),營養(yǎng)標準和限制用量是問題的約束條件,求解后最終輸出每種原料的用量。
給出線性規(guī)劃問題決策變量、目標函數(shù)、約束條件,如式(1)所示。
使用遺傳算法和修正單純形法求解上述目標函數(shù),比較兩種算法求解效果,選擇效果較好的一種算法作為本系統(tǒng)的尋優(yōu)算法。
遺傳算法(genetic algorithm,GA)模擬生物進化方式求解目標問題[10]。GA 首先隨機生成一個種群,通過優(yōu)勝劣汰的方式選擇出質量較高的個體,再通過交叉變異等繁衍方式生成新個體,新個體組成新的種群,循環(huán)上述過程直到當前種群找到滿意的個體或達到迭代次數(shù)時停止[11]。
遺傳算法在使用前需要確定問題求解的一種編碼,本文使用二進制對數(shù)據編碼,并在定義域內隨機生成t個可行解,也就是生成的第1 代染色體,t表示染色體的數(shù)量。GA 使用適用函數(shù)衡量個體的適應性,本文使用線性規(guī)劃問題的目標函數(shù)作為適應函數(shù)。
GA 算法的輸入、輸出和流程如下。
(4)在z條染色體中,以概率pc執(zhí)行交叉操作,生成t-z條染色體,再對其執(zhí)行變異操作。變異后的t-z條染色體連同剩余的z條染色體組成新的染色體群體。
(5)返回步驟1,判斷群體是否滿足終止條件,如滿足進入步驟6,否則繼續(xù)執(zhí)行步驟1。
(6)終止計算,輸出最優(yōu)的結果。
修正單純形法是求解線性規(guī)劃問題的一種常用方法[12]。修正單純形法是一種使用方便、行之有效、應用廣泛的重要算法[13-13]。
按最小比值確定主行,令
循環(huán)上述算法求解步驟,直到滿足zk-ck≤0 ,則停止計算,現(xiàn)行基本可行解就是問題的最優(yōu)解。
油雞飼料智能配方系統(tǒng)采用的編程語言是JAVA,利用BS 架構進行平臺搭建,對數(shù)據進行離線式存儲,使用Spring Boot 2.3 作為核心框架進行開發(fā),Windows服務器環(huán)境為Tomcat 7。
配比尋優(yōu)算法使用Python 語言編寫,運用numpy、scikit-opt、scipy 庫編寫算法部分,使用flask 框架將算法部署到服務器,數(shù)據采用json 形式傳輸。
為了保證尋優(yōu)結果的準確性和高效性,分別對遺傳算法和修正單純形法進行試驗測試。試驗提供營養(yǎng)標準、飼料品種、飼料營養(yǎng)含量、限制用量,并以玉米、小麥麩、大豆粕、豆油和石粉作為配比原料,求解每種飼料的配比結果,對比30 次尋優(yōu)結果,對遺傳算法和修正單純形法予以評價。飼料中除普通飼料外,還應具備預混料,預混料補充了普通飼料缺乏的微量元素和維生素。飼料配比尋優(yōu)界面如圖6 所示,油雞飼料智能配方系統(tǒng)測試示例如表3 所示,預混料的配料和營養(yǎng)成分是飼料公司機密內容,考慮到知識產權問題,沒有將預混料添加到示例中,在實際應用中將預混料參數(shù)添加到數(shù)據庫后即可參與飼料配比尋優(yōu)的計算。
表3 油雞飼料智能配方系統(tǒng)測試示例Tab. 3 Test example of intelligent formula system for oil chicken feed
圖6 配方比例尋優(yōu)界面Fig. 6 Formula proportion optimization interface
修正單純形法和遺傳算法在求解油雞飼料配比尋優(yōu)時,各個方面的表現(xiàn)存在差異,測試結果如表4 所示。修正單純形法結果準確率達到100%,單次平均尋優(yōu)所需運算時間為0.031 0 s;測試遺傳算法時,考慮到油雞飼料智能配方系統(tǒng)將應用于實時計算尋優(yōu)的場景中,將繁衍次數(shù)設置為2 000 次,此時算法的單次平均尋優(yōu)用時3.020 0 s,導致遺傳算法應用效果較差[13]。
表4 修正單純形法和遺傳算法測試結果Tab. 4 Test results of modified simplex method and genetic algorithm
從試驗結果來看,修正單純形法相較于遺傳算法具有準確率高和求解速度快的優(yōu)點,油雞飼料智能配方系統(tǒng)中選用修正單純形法作為尋優(yōu)算法。
基于最優(yōu)化算法配比尋優(yōu)的油雞飼料智能配方系統(tǒng)以手機為載體,設計并實現(xiàn)了原料管理、營養(yǎng)標準管理、歷史飼料配方管理功能。借助使用廣泛的智能手機為更多中小養(yǎng)殖戶和技術人員提供智能化配方服務,使飼料配比更符合中小養(yǎng)殖戶的實際需求,提高生產能力。本系統(tǒng)解決了現(xiàn)有商業(yè)飼料配方系統(tǒng)操作復雜,使用便捷性較差的問題,同時增加飼料配比過程中養(yǎng)殖用途、地區(qū)、季節(jié)等條件配置,更符合新品種油雞養(yǎng)殖的實際需要,大大提高了產能和肉蛋品質,可充分發(fā)揮油雞的經濟價值,推動整個油雞產業(yè)的健康可持續(xù)發(fā)展,具有廣闊的市場發(fā)展前景。
油雞飼料智能配方系統(tǒng)未來可增加多種微量元素和維生素的計算,合理規(guī)劃微量元素和維生素的使用劑量,進一步完善油雞養(yǎng)殖過程中的營養(yǎng)配比。