陈镜如
(南京林业大学经济管理学院 江苏省南京市 210037)
摘要:本文基于规划模型对饲料加工方案进行了相关研究,加工原料的两两亲源值=两个加工原料相同位点相同基因序列的数目,因此对 16 个加工原料两两之间的亲缘值进行分析。之后建立 16×16 的矩阵,采用 Matlab 的 surf 函数对矩阵形成可视化三维图,并就其相关统计特征给出具体值。然后又将 16 个加工原料进行混合全部放入 9 个加工窖中,根据已知内容,也就是使得 9 个加工窖中的亲源值最高,约束条件为各个加工窖中所加入的原原料不能超过他的限定范围,同时每种加工原料的和应等于其总重量。这是一个线性规划问题,我们通过 Matlab 的 linprog 函数来解。
关键词:优化模型;饲料加工;线性优化
1. 引言
在技术高速发展的时代,我们认为合理利用资源对城市发展起着至关重要的作用[1]。因此,根据需求规划最优方案对技术发展具有不可或缺的意义[2]。在生产经营中,为保证产品质量,同时获得最高收益,不断地优化方案以达到低成本,高效率更是成为能否在同行竞争中脱颖而出的关键[3]。
2. 模型的建立与解决方案
经过以上的分析和准备,我们将逐步建立以下数学模型,进一步阐述模型的实际建立过程。
2.1 第一个问题模型建立与解决方案
抽取题目信息:由题干信息可得加工动物饲料的原料有 16 种,其中不同原料有不一样的效能率,总量也不一样,不同原料之间还有相似度的要求。可供加工的装置有 9 台,分 3 种规格,成本计算也不同。分析数据可以获得需要加工的原料有 16 种,共 6000kg,所有 9 台加工装置的加工能力在 5400~8100kg 之间。16种原料中有六种饲料的能耗率<0.8,分别是2、6、7、11、12、14,这六种的总重量是 2300kg。
2.1.1 模型的建立
我们采用计算机的深层嵌套遍历模型:选择性地选择题目所给的原料数据,然后利用排列组合的相关知识罗列出不同原料之间的所有组合情况, 按照题目所给亲缘度判断方法对所有的组合情况逐个进行判断,得到问题一的求解模型。
2.1.2 模型的求解
我们对数据题目所给的数据进行简单处理,并研究 16 种原料两两之间的亲缘度,并进行统计性分析。鉴于原料种类和判断指标众多,对于两两之间亲缘度的判断,我们选择使用Matlab 软件,利用三重循环的深层遍历编写个简单的比较函数,得到两两之间亲缘度的结果。根据所得的亲缘度结果得出一个 16*16 方阵,并做简要统计学分析。并得到矩阵图,根据矩阵图可得任意两样本的亲缘值数据,根据题中的公式,就可以计算任意多个样本之间亲缘值了,这个结果为接下来的深入的问题创造了较好的条件。
根据得到的亲缘值方阵,进行如下的统计性数据分析。
(1)绘制基于亲缘值结果的三维空间分布图(图 1)以及频数分布图(图 2)。
.jpg)
图 1 三维空间分布图 图2 频数分布图
(2)绘制亲缘值的统计性指标表
表1 亲缘值的统计性指标表
.jpg)
2.1.3 结论
三维分布图的点位分布和统计性指标表,两两原料之间的亲缘值都普遍较低,且大多数为 0,亲缘值较高的情况是极少的个例。所以,可以判断得,这一批原料得亲缘度并不好,如果可以,建议更换亲缘度更高得原料来加工合成饲料,这样才能使得加工所得的原料质量更好。
2.2 第二个问题模型的建立与求解
依据题中信息,仅从亲缘度角度考虑混合加工饲料的质量,亲缘度越高,饲料质量就越高。此问题的优化目标是饲料质量,也就是“亲缘度”最高。那么什么是饲料质量最高呢?假果我们已经有最优的混合方案,那么饲料质量=九个加工装置的“混合后亲缘值×加工质量”之和。16 种一次性放入 9 个装置中,必有混合。而所有装置的加工下限是 300kg,所以<300kg 的原料必须与其他混合。我们暂且只考虑可以两两混合的情况。因此我们对总的饲料质量进行计算,九个加工装置要求一次性加工完全,那就是九种成品饲料,可以计算出九个亲缘值。九种饲料的重量不一,总的饲料质量需要使用饲料重量对九种饲料的亲缘值进行加权。
2.2.1 模型的建立
Xi,第 i 个加工包加工出来的饲料的重量: .jpg)
Lt,总亲缘值,即总饲料质量: .jpg)
总饲料质量=各饲料质量之和/饲料总重量
目标函数为: .jpg)
每个加工包的亲缘度即 Li
混合方案为 wij(i=1,2,…,9, j=1,2,…,16),约束条件和之前的相同。
2.2.2 模型的求解
我们可以看到,对加入窑的饲料的亲缘值有要求,我们可以罗列出加入某一个窑的所有组合方案如下:
窑中仅一种原料:2,4,12,13
窑中仅二种原料:1-2,1-5,1-6,1-7,1-16,2-3,2-4,2-5,3-4,3-5,4-5,4-10,4-15,5-6,5-10,6-7,6-8,6-10,7-8,7-9,8-9,8-10,8-11,9-11,9-12,9-16,10-11,10-13,10-15,11-12,11-13,11-14,12-13,12-14,12-16,13-14,13-15,13-16,14-16,15-16
窑中仅三种原料: 1-2-5,1-5-6,1-6-7,2-3-4,2-3-5,2-4-5,3-4-5,4-5-10, 4-10-15,5-6-10,6-7-8,6-8-10,7-8-9,8-9-11,8-10-11,9-11-12,9-12-16,10-11-13,10-13-15,11-12-13,11-12-14,11-13-14,12-13-14,12-13-16,12-14-16,13-14-16,13-15-16
窑中仅四种原料:2-3-4-5,11-12-13-14,12-13-14-16
我们根据两种不同的思路选择了两种不同的方案,这两种方案各有利弊,权衡选择效果更佳。
方案一:
鉴于题目中所给的几个约束条件用计算机语言表达比较困难,我们选择参考了逐步优化,缩小解集的方案。
(1)先根据实际生产的精度需要划分最小质量单元 R0,使得 Wij 为 R0 的整数倍。
(2)再根据“各窑装配原料的上下限”,“所有原料全部用完”这两种约束条件求得所有可行域 M。
(3)将可行域 M 中所有情况,进行另外几个约束条件的检验(任何两个加工原料之间必须具有亲缘关系;品种代码 10 的加工原料不能单独成为一个加工包;某加工原料重量不少于 500 千克,则可以单独成为一个加工包), 检验之后,保留满足限制条件的解 M0.
(4)遍历 M0 中所有解,比较得到亲缘度最高的方案,即得最优解。
方案二:
运用局部优化算法:利用目标函数以及约束函数的一阶导数信息,从给的初始点开始,在满足约束条件的前提下,沿着目标函数下降的方向开始迭代,最后收敛到最优解。
充分运用 matlab 中的非线性规划函数 fmincon:自定义“窑亲缘度”函数 f2,设定线性等式参数 aeq, beq,线性不等式参数 A,b,将参数带入 fmincon 求得最优解。最大亲缘值为 4.4342 此时饲料质量最高
2.2.3 结论
针对这个问题我们有两种求解方案可供选择:
方案一缺点是数据量巨大,需要较长的运行时间,优点是规避了部分约束条件难以表述的不变,转而用作检验条件,而且第三问可以套用第二问的限制解 R0,只需改变一下目标函数即可。
方案二相较于方案一而言,操作更加简单,且运算速度更快数据量更小,但普适性不如方案一。
参考文献:
[1]许家赫, 陈岳坪. 改进粒子群算法与fmincon函数混合寻优的平面度、垂直度误差评定[J]. 广西科技大学学报, 2019, 30(04): 105-109.
[2]姜衍猛. 基于MATLAB的数据采集与分析系统的研究及设计[D]. 山东大学, 2012.
[3]刘维富, 陈建平, 王春明, 葛建芳, 邱建林, 顾晖. C++程序设计课程研究与教材建设[J]. 计算机教育, 2010(14): 153-158.