线性规划优化饲料配方的模型及其软件设计

2018-07-18 02:24:34张大伟
中国饲料 2018年12期
关键词:单纯形法约束条件原料

张大伟

(辽东学院信息工程学院,辽宁丹东 118000)

饲料是动物赖以生存的物质基础,在畜牧养殖业中,饲料成本占总成本的70%左右,对养殖业的经济效益起着决定性作用(田珂等,2014)。单一饲料所含的营养物质不全面,不能满足动物营养和降低养殖成本的需要。充分考虑畜禽种类、日龄、体重、生理状况、饲喂条件和饲喂方式等因素,目前的规模化养殖普遍采用配合饲料(沈秋采等,2017)。配合饲料集中了动物营养和饲料科学的研究成果,将多种饲料原料和添加剂预混料按一定的加工工艺配制而成,能够保证有效成分的稳定一致,优点合理利用了各种饲料资源,营养全面、成本较低、质量标准化,具有防病保健功能(张颖,2018)。

饲料配方直接影响配合饲料成本。传统手工计算法的优点是简单易学、不需要特殊工具,但计算量较大,不能筛选出最优方案,不能满足饲料配方营养性、安全性和经济性的需要。线性规划是运筹学领域应用最广泛和最成熟的方法,也是目前广泛应用的饲料配方优化技术。但当参与配方的原料种类和营养指标较多时,线性规划方法计算非常复杂,没有专业的数学知识很难掌握。本文利用计算机技术设计软件,将饲料配方的目标定位在经济效益、社会效益和生态效益的结合点上,充分发挥线性规划和现代信息技术在饲料配方中的双重优势,提高养殖业的科学技术含量,为广大养殖户提供“信息化的饲料配方专家”,为提高养殖业的经济效益服务。

1 线性规划优化饲料配方模型设计

饲料优化配方,就是要解决多种原料配比,满足多个营养指标要求,同时满足饲料成本最低的要求。通过线性规划,将饲料配方中的有关因素和限制条件转化为线性数学函数,求解一定约束条件下的最小值问题。线性规划的数学模型由目标函数和约束条件两部分构成。

设参与配方的原料为n种,用i ( i =1,2,…,m)表示其中的第i种原料;营养指标的需求为m个,用j ( j =1,2,…,n)表示其中的第j个营养指标。xj为决策变量,表示第j种原料在配方中的用量(通常用百分比);aij为技术系数,表示第j种原料的第i种营养指标含量;bi为约束值,表示配方应满足的第i种营养指标的需求量约束;cj为成本系数,表示参与配方的第j种原料的单位价格;z为单位配合饲料的配方总成本(张元跃等,2017、2016;李云甫等,2012)。

目标函数是使饲料配方总成本最低:

约束条件由营养指标需求量约束、原料用量约束和总量约束构成。第i个营养指标应满足的约束条件为,原料用量应满足的约束条件为 x1,x2,… ,xn≥0,原料总量应满足的约束条件为 x1+x2+… + xn=1。最终模型的约束条件为:

2 线性规划优化饲料配方求解流程

对于只有两个变量简单的线性规划,可采用图解法求解,建立坐标系,从满足约束条件解的范围中确定最优解。线性规划优化饲料配方模型存在多个变量,不能使用图解法,通常使用单纯形法,求解过程分5步:第1步,加入松驰变量和人工变量,将问题转化为标准形式。第2步,确定初始基可行解。第3步,最优性检验与解的判别,如果是最优解,计算结束;否则,转入下一步。第4步,转换到另一个目标函数值更优的基可行解。第5步,重复第3步和第4步,直到求出最优解为止(孟香惠等,2018;薛静芳,2013)。具体求解流程如图1所示。

图1 单纯形法求解流程

单纯形法的迭代计算优点是计算就去简单,容易掌握。但是,重复计算了很多与迭代过程无关的数字,增大了迭代中的累积误差,基变量的个数越多,重复计算工作量就越大。在用计算机进行迭代运算过程中,增加了中间数据的存储量,计算速度较慢。因此,本文采用改进单纯形法,可以避免添加人工变量,提高计算精度,减少中间数据存储量。计算流程如图2所示。

图2 改进单纯形法求解流程

在图2中,满足“两正一非负”条件是指“检验数为正值,并且所在列中含有数值为正的分量,正分量对应的右端项存在非负值”;满足“两负一非正”条件是指“右端项为负,并且所在行中含有数值为负的分量,负分量对应的检验数中存在非正值”;当迭代无法持续时进行过渡迭代是指“任取一个为负值的右端项所在行中的负分量为主元素进行换基迭代,使换入变量经迭代后的值为正”。

3 线性规划优化饲料配方软件设计

软件设计遵循软件工程的思想,采用面向对象的程序设计方法,相关数据存储在Oracle数据库中,开发工具使用Visual C#.NET,数据报表采用Crystal Reports。软件基于三层结构体系,界面层使用Winform方式,负责与用户交互并收集数据;业务逻辑层依据改进单纯形法求解流程进行运算;数据访问层使用Ado.NET技术与数据库交互(彭莉,2015)。软件主程序执行界面如图3所示。

图3 线性规划优化饲料配方软件主程序执行界面

对于图3所示的主程序执行界面,提供“新建、打开、删除和求解”等核心功能。其中,“新建”用于重新构建一种饲料配方,“打开”用于打开已存储在数据库中的饲料配方,“删除”用于删除已经存在的一个饲料配方,“求解”用于求解界面中数据的最优配方。进入界面后进行“参数输入”,包括“原料种类数量、营养指标数量和目标函数(选取min或max)”,输入完后点击“确定”按钮,软件将自动按照所输入参数对屏幕中的两个表格进行初始化,然后用户输入“成本系数和约束条件”等数据,点击“求解”按钮后,进行最优配方计算,并输出结果。

猜你喜欢
单纯形法约束条件原料
基于一种改进AZSVPWM的满调制度死区约束条件分析
造血原料缺乏引起的贫血
基于单纯形法的TLE轨道确定
基于单纯形法的简单问题的研究与应用
青年生活(2019年35期)2019-09-10 00:13:32
严把原料采购关,才是对养殖负责
当代水产(2019年4期)2019-05-16 03:04:12
A literature review of research exploring the experiences of overseas nurses in the United Kingdom (2002–2017)
线性规划最优解研究
线性规划的八大妙用
基于改进单纯形法的冗余证券的判别
金融经济(2016年16期)2016-11-02 08:19:42
烘焙原料简易“识”
美食堂(2015年5期)2015-05-30 10:48:04