饲料配方软件是
饲料配方工作者的重要工具。自从有了
饲料配方软件,配方软件的算法改进就成了配方软件设计的核心,算法的好与坏直接关系到配方的成本和营养指标的满足程度。
目前,用于配方软件的算法都是基于线性规划的,经过一系列的修改又产生了所谓的多配方套算、目标规划和模糊规划。虽然这些算法都有一定的特色和优越性,但是,他们仍然具备线性规划最基本的特征。多配方套算则仅仅是改变了线性规划的条件和输出方式而已,实质就是线性规划。
线性规划
线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。在经济管理、交通运输、工农业生产等经济活动中,提高经济效益是人们不可缺少的要求,而提高经济效益一般通过两种途径:一是技术方面的改进,例如改善生产工艺,使用新设备和新型原材料。二是生产组织与计划的改进,即合理安排人力物力资源。线性规划所研究的是在一定条件下,合理安排人力物力等资源,使经济效益达到最好。
一般的,求线性目标函数在线性约束条件下的最大值或最小值问题,统称为线性规划问题。满足线性约束条件的解叫作可行解,由所有可行解组成的集合叫作可行域。
线性规划问题数学模型的一般形式:
(1)列出约束条件及目标函数。
(2)画出约束条件所表示的可行域。
(3)在可行域内求目标函数的最优解。
正是因为利用线性规划可以合理配置资源,从它问世以来,很快就被用来进行
饲料配方设计。它可以在满足营养指标和
饲料原料使用上下限多个约束条件的情况下,给出最小成本的配方。
目标规划
线性规划模型只考虑了单一目标,并且所有约束都要绝对满足。然而,很多问题具有不同衡量单位的多重目标,这样建立一个综合的单一目标即使可能的话,也非常困难。
目标规划是线性规划的一种变异形式,它容许处理不同层次的相互冲突的多个目标。各目标是分等级的,按优先级处理。在求解过程中,不能牺牲高等级的目标来满足低等级的目标。解决这个问题相当于把高等级目标当作低等级目标的约束,解一系列嵌套的线性规划问题。线性规划是要使单一目标最优化,而目标规划则是要使对目标体系的偏差最小,这样得出的解称为满意解。因为并不一定要满足所有目标,而是要尽量接近目标。
目标函数仅包含偏差变量(即对目标或正或负的偏差),在同一优先级的偏差变量中,还可以赋予偏差权数以表示其相对重要程度。其目标则是在考虑优先级的前提下,使各优先级的偏差之和最小。全部约束都是等式约束,包括正的或负的偏差变量以及决策变量。
饲料配方设计有时候也和目标规划相类似,一些条件无法满足的情况下,设计者会根据各个营养要素的重要性,进行相应的取舍,从而得到一个比较满意的配方。
模糊线性规划
模糊线性规划是在线性规划及加入伸缩量之后构造一新的线性规划。它能根据原线性规划各项营养成分及原料的影子价格自动按用户给出的伸缩量调整配方,从而得到一个成本低、又满足要求的合理配方。模糊线性规划期望模拟有经验的配方师对线性规划配方进行调整,但是,实质上有经验的配方师调整配方的时候并非完全按照事先确定所谓伸缩变量的规则来调整配方,因而,模糊线性规划也不能完全得出与优秀配方师一样的结果。
三种计算方法的比较
三种算法中,计算最为复杂的是模糊线性规划,其次是目标规划。后面两种都是从线性规划发展而来。
从上面的简述可以看出,三者最大的不同不在于参与计算的条件,其实核心的计算方法都一样,都是线性规划。而后两者之所以能够区别于前者,其主要原因是引入了伸缩变量,也就是说,线性规划的计算条件是相对刚性的,而后两者的计算条件却可以在计算中调整。而目标规划和模糊线性规划的区别又在于目标规划的弹性变量只能靠人为引入,模糊线性规划却可以根据计算后的影子价格自动调整。
需要指出的是,无论目标规划还是模糊线性规划的伸缩量,都必须由使用者在计算前指定。伸缩量的指定实质上是对饲养标准和原料使用量的调整。既然要对饲养标准和原料使用量进行调整,使用者就必须对动物营养和
饲料科学知识有一定了解。
在应用中,无论是目标规划还是模糊线性规划,使用者一般都会追求最低成本。由于在刚性条件下,线性规划的最优解已经是成本最低值,毫无疑问,目标规划和模糊线性规划都是并且只能通过牺牲营养指标的满足程度来获得更低成本。一般自己调整饲养标准和原料的添加比例,用线性规划按照自己的意愿来进行配方设计,而不是直接使用目标规划和模糊线性规划。
三种算法的弊端
因为这三种算法的核心都是线性规划,而线性规划的目标是获得最理想的结果。如果不人为设置某些常用原料的使用量,可能会因为原料价格的小小波动导致某种原料的使用与否,这样的话,动物对原料的剧烈变动不一定能适应。即便动物能够承受,一个厂家也没有那么大的仓储能力来满足原料选择的迅速变动。
另外,这三种算法都是以获得单位营养浓度成本最低为原则计算的,实际上动物生产中
饲料营养素浓度是可以在一定范围内变化的。需要指出的是,这种变化应该是按照预先设定的模型按比例变化,并非单独降低或者提高某个指标,如果期望利用大幅度改变营养素之间比例导致营养素之间的比例偏离,已经成熟的模型太远来求得配方成本下降,从而达到生产效益最高,最终只能导致营养素的浪费和总成本的上升。而参与计算的营养素浓度值得到的配方却不一定是性价比最高的,真正性价比最高的配方可能会略微提高或者降低营养素浓度才能达到,这也是线性规划为基础的所有算法的最大弊端。因为目前的线性规划还不能把某种营养素和价格之比(暂且称为性价比)作为线性规划的目标。也就是说,纯粹的线性规划程序无法得到效益配方。