1. 引言
近年来,随着信息技术的不断进步和养殖业的发展要求,如何将现代技术和养殖业需求相结合,也成为了国内外研究热点。养殖用户如何对其养殖区的基础数据进行管理、如何获取其饲料添加剂的含量比例、如何对其配方进行优化、如何获取和管理养殖知识、如何业务数据进行可视化分析等问题,缺乏有效工具[1] [2]。而现有的动物营养信息服务平台,不仅缺乏个性化定制,而且在配方和营养管理数据方面存在管理不便的问题,同时,其营养配方往往只能满足动物营养需求、生产成本、饲料质量与安全中的一个方面,而本系统采用复杂条件下的线性规划算法,对饲料设计进行多目标优化[3],不仅低成本高质量,而且误差小、获取方案快。
本系统分为三个模块,第一个模块是对智慧配方的管理,实现对饲料、配方和成本的全面管理,包括配方的设计优化与审核[4]等,对养殖用户提供配方案例和相关知识规则库[5];第二个模块是对试验数据进行实时采集、记录和分析,并对其养殖场地的基础信息进行管理和维护;第三部分为展示模块,主要是对收集到的数据进行统计分析,并以图表格式直观地表现出来。
本论文的贡献点归纳如下:一是设计了多目标配方设计算法,利用复杂约束条件下的线性规划算法[6],使得动物饲料配方设计更加科学、合理,不仅能够降低企业的生产成本,还能保证饲料的安全与质量;二是建立了开放共享的饲料领域的数据资源,内容全面,为养殖行业的发展提供支持;三是实现为Web的应用程序,以方便用户使用。
2. 相关研究
在国内外,动物营养信息服务相关平台的研发是一个研究热点。这些平台普遍聚焦于数据采集和展示功能,而配方设计的功能相对较弱,其计算得出的饲料配方,有着误差大、获取方案慢的缺点,国内外学者都开始进行研究更智能的方式来设计饲料配方。如牛理想、王高平在研究饲料配方中对多目标最优化问题提出了多目标遗传算法[7]等。在国外,许多研究机构和企业都在致力于开发更先进、更智能的动物营养信息服务平台并提供精确的营养配方和饲养管理建议,例如Waugh首次提出将线性规划算法用于动物营养分析和最优成本计算[8],而该算法由于计算简单而至今都被广泛应用。
总而言之,智慧动物营养信息服务平台在国内外都受到了广泛的关注和研究。未来,随着技术的不断进步和应用的不断推广,该平台对养殖户提高养殖产量、为养殖业的可持续发展都将提供有力支持,而本系统在实现多目标最优化配方设计的同时,还为用户提供了个性化定制,并使用户在管理配方和营养数据方面更加方便,同时达到最低成本目标并满足动物的营养需求。
3. 系统设计与关键算法
3.1. 系统设计
本系统为了方便用户需求的使用,分为三个模块,第一个模块为智慧配方管理,主要是对饲料、配方和成本进行管理与分析,以及对配方进行设计优化,第二个模块为日常数据管理,主要是对养殖场地、养殖项目数据等的实时采集、记录和分析;第三个模块为展示模块,主要是对收集到的数据进行统计分析并以图表显示出来。系统框架图如图1所示。
Figure 1. System function frame diagram
图1. 系统功能框架图
3.2. 关键算法
为了计算饲料配方中各成分的含量并达到最低成本和最大化饲料质量,因此使用多目标线性规划算法[9]来解决问题,假设有n种原料,每种原料的成本为ci,对饲料质量的贡献为qi,而动物对第j种营养成分的需求量为bj,我们可以将目标函数表示为:
其中,xi表示配料中第i种原料的比例,此外,我们还需考虑约束条件,包括营养约束需求、原料投入需求和非负性约束。
营养约束需求表示如下:
其中,
表示第i种原料对第j种原料营养成分的含量,
表示动物对第j种营养成分的需求量。
原料投入需求表示为:
非负性约束表示为:
通过求解这个多目标线性规划问题,即可以得到最优的饲料配方组合,以满足动物的营养需求并达到最低成本和最大化饲料质量的目标。
我们基于超立方体算法设计了如下算法[10] [11]:
步骤1:初始化:选择权重向量w,用于平衡最低成本和最大化饲料质量。通常情况下,可以选择超立方体上的一组初始权重向量。
步骤2:目标函数构造:根据权重向量w,构造如下目标函数:
其中
。这里c是原料成本向量,q是饲料质量贡献向量,x是原料比例向量。
步骤3:超立方体划分:将权重空间划分为超立方体网格。每个超立方体代表一个权重向量,对应一个目标函数。
步骤4:超立方体求解:对于每个超立方体,通过求解相应的单目标线性规划问题,得到最优解。
步骤5:更新权重向量:根据每个超立方体的最优解,更新权重向量w。
步骤6:收敛判断:判断是否达到收敛条件,如果未达到,则重复步骤3到步骤5。
步骤7:输出最优解:输出最优的饲料配方组合,作为最低成本和最大化饲料质量的解。
4. 系统实现
4.1. 开发工具及运行环境
本系统使用主流的Spring Boot和Vue. js作为前后端框架,辅以Element UI设计系统页面,使用My Batis-Plus实现Java程序与关系型数据库的表的映射关系,更加方便操作数据库,前端开发工具为VS Code,而后端开发工具为IDEA,数据库则采用了My SQL。
4.2. 关键模块设计
1) 配方管理
主要对饲料配方进行设计,此外还负责饲料配方的删除、编辑、搜索以及饲料的使用等功能,以及在列表上展示饲料配方的名称、适合物种、生长阶段、设计者等信息。
2) 饲料原料管理
主要呈现数据库中所有饲料原料的信息,包括饲料原料名、饲料号、描述、价格、库存、组成成分等信息,此外还要实现饲料原料的添加、删除、编辑、模糊查询、列表的分页等功能。
3) 饲料配方审核
在此模块将呈现所有设计完成的饲料配方信息,包括饲料配方名、适合物种、生长阶段、设计者、原料及比例、审核情况等信息。系统会根据所选列表行获取到对应饲料配方的数据,将表格填充到弹框表单中,以供管理员清晰直观地了解该饲料配方的各项指标。管理员填写审核意见。
4) 知识规则库的知识、话题发布功能
在发布知识中的内容使用到了U Editor百度富文本编辑器,将其与Spring Boot整合。上传的图片主要将其保存在Static/Images目录下,并以当前时间戳为文件名,同时保存相应的路径至数据库中。编辑好知识时,点击“发布”按钮会将相应的数据添加至Knowledge表中,实现发布;点击“重置”按钮会调用清空编辑器中的内容。
5) 展示模块
在饲料使用模块主要为管理每一次饲料使用的情况,并进行统计,用户可选择相应的日期区间进行查询,系统定义了一个数组Value去接收用户所选择的开始日期及结束日期,利用Filter函数过滤得到所有使用时间在如期区间内的记录并使用表格的方式进行显示。成本分析模块展示了所有审核通过的饲料配方数据,具体是通过数组的Reduce ()函数获取得到饲料的总成本,再除以数据数可得到饲料的平均成本,而后使to Fixed (4)函数让其保留四位小数。最后通过Reduce ()函数获取得到成本最高的饲料及成本最低的饲料,生成完整的成本分析报告。
4.3. 功能实现
系统操作流程图如图2所示。
Figure 2. System operation flow chart
图2. 系统操作流程图
Figure 3. Login page
图3. 登录页面
用户在浏览器中输入正确的URL地址后,进行登录或者邮箱验证注册,即可进入到系统首页,如图3所示。
4.3.1. 养殖知识库信息管理功能实现
用户进入到知识库管理界面,首先用户看到的是系统首页,栏目中有首页、知识专栏、推荐、新闻公告、交流,用户可以根据自己的需求点击,右端会显示用户的头像和用户名,点击下拉框可以进入个人主页或退出登录,如图4所示。
Figure 4. System home page
图4. 系统首页
对于养殖专家而言点击发布知识可以直接进入到知识编辑页面进行知识发布,如图5所示。
Figure 5. Publishing page
图5. 发布页面
管理页面中管理员也选择左边导航栏的内容对系统数据等进行管理,如图6所示。
4.3.2. 智慧配方数据管理功能实现
用户进入到饲料原料管理界面,可进行饲料原料的添加、删除、编辑等功能,如果表单有空的数据,系统将会进行错误提示用户进行检查,如图7所示。
Figure 6. Management page
图6. 管理页面
Figure 7. Feed inventory management page
图7. 饲料原料库管理页面
用户进入到饲料配方管理界面,可进行饲料配方的设计、饲料的使用以及其他操作,如图8所示。
点击页面左上角“饲料配方设计”按钮,显示饲料配方设计表单,用户根据提示输入饲料配方名、选择适合该饲料配方的物种以及生长阶段、输入要生产的数量、生产目标等数据,而后在饲料原料输入框内输入相应的饲料原料关键字进行搜索,根据搜索结果选择对应的饲料原料,并输入各原料所占的比例(未选择饲料原料时无法输入原料比例),如图9所示。
饲料使用管理模块记录了每一次饲料使用的记录,包括使用的饲料配方名、使用对象、使用者、使用时间以及使用数量,用户进入饲料使用管理界面后可查看饲料使用记录列表,可以直观地了解到每一次饲料使用的情况。在列表最下方进行了饲料使用数量的统计,用户可以通过饲料配方名或者使用者账号对数据进行模糊查询,此外还可在页面左上方的时间选择器上选择开始时间以及结束时间,确认选择的时间并点击“查询”按钮,系统会自动筛选出对应时间区间内的数据并展示到列表上。具体如图10所示。
Figure 8. Feed formulation management page
图8. 饲料配方管理页面
Figure 9. Feed formula design page
图9. 饲料配方设计页面
用户可通过饲料名中的关键字进行数据的模糊查询,还可通过原料成本、人工成本以及总成本的升序降序来改变数据的排列方式,此外可点击界面左上角“分析报告”按钮,查看系统根据当前饲料成本数据生成的成本分析报告,了解库中饲料的详细成本分析数据。具体如图11所示。
在首页中,提供了数据可视化页面,该页面上使用饼图、柱状图、折线图分别展示了饲料配方审核情况、饲料库存情况以及近7天饲料使用情况。用户可以清晰直观地了解到数据的具体情况和对比数据。具体如图12所示。
Figure 10. Feed usage management page
图10. 饲料使用管理页面
Figure 11. Component analysis report page
图11. 成分分析报告页面
Figure 12. Data visualization page
图12. 数据可视化页面
4.4. 算法验证
为验证本文提出算法的有效性和准确性,我们设计了如下实验。针对于哺乳期阶段的母猪,将其重量控制在124 kg,并设置其营养成分含量的上下限见表1。
Table 1. Nutrient composition upper and lower bounds
表1. 营养成分上下限
营养成本名称 |
上下限值 |
干物质 |
76~93 |
粗蛋白 |
15~21 |
粗脂肪 |
1~7 |
粗纤维 |
1~25 |
粗灰分 |
1~13 |
同时,设置各饲料成分的成本见表2。
Table 2. Feed ingredient price
表2. 饲料成分成本
饲料成分 |
成本(元/kg) |
苜蓿干草 |
2.0 |
小麦 |
0.5 |
甘薯干 |
2.0 |
马铃薯 |
1.0 |
最终,通过多目标线性规划算法对成分进行饲料配方计算后,得出各营养成分见表3,而中国饲料数据库对应营养成分各含量范围见表4。
Table 3. The algorithm derived nutritional composition analysis
表3. 算法得出的营养成分分析
饲料名 |
配比数量(/kg) |
干物质(DM%) |
粗蛋白(CP%) |
粗脂肪(EE%) |
粗纤维(CF%) |
粗灰分(ASH%) |
苜蓿干草 |
1.87 |
90.5 |
20.4 |
2.3 |
25.2 |
8.2 |
小麦 |
62.56 |
89.8 |
13.2 |
1.6 |
2.0 |
1.5 |
甘薯干 |
27.35 |
93.3 |
5.3 |
2.1 |
2.3 |
5.0 |
马铃薯 |
32.22 |
84.8 |
5.1 |
0.2 |
1.9 |
2.3 |
Table 4. Nutrient content range of the Chinese feed database
表4. 中国饲料数据库的营养成分范围
饲料名 |
干物质(DM%) |
粗蛋白(CP%) |
粗脂肪(EE%) |
粗纤维(CF%) |
粗灰分(ASH%) |
苜蓿干草 |
87.4 - 92.8 |
12.3 - 22.5 |
1.4 - 3.7 |
19.7 - 33.6 |
6.8 - 10.9 |
小麦 |
86.3 - 92.1 |
9.5 - 13.4 |
0.8 - 3.1 |
0.8 - 2.9 |
1.0 - 8.6 |
甘薯干 |
89.0 - 93.4 |
2.2 - 5.2 |
0.9 - 2.5 |
1.9 - 2.7 |
1.3 - 5.1 |
马铃薯 |
15.2 - 84.8 |
1.1 - 5.2 |
0.0- 0.3 |
0.3 - 2.0 |
0.3 - 2.3 |
根据表3和表4中的数据与中国饲料数据库[12]给出的推荐结果进行对比,本文提出的多目标饲料设计算法计算出来的配方数据均在推荐范围内。因此,可以任务该饲料配方设计合理,且最终计算成本为121.94元,成本在合理范围内,因此证实了本算法能成功应用于饲料设计中。
5. 结论
本系统为本系统实现了智慧动物信息服务平台的智慧配方管理、日常数据管理与展示模块,同时为养殖用户提供了相关的养殖知识规则库,方便用户获取专家知识指导、设计配方、获取成分分析以及管理日常数据与项目数据。同时,所提出的多目标线性规划算法对饲料配方设计进行了优化,在保证动物的营养需求的同时,实现了最低成本和最大质量与安全性。通过该平台,用户可大大提高其养殖产量,科学决策,实现养殖管理的精准化与高效化。
基金项目
广州市科技计划项目(2023E04J1240),广东省一流课程(KA24YY039),仲恺农业工程学院大学生创新基金项目(2023CX09),仲恺农业工程学院大学生创新创业训练计划项(S202311347055)。
NOTES
*通讯作者。