数学建模天然肠衣搭配问题.docx
- 文档编号:26315445
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:23
- 大小:45.58KB
数学建模天然肠衣搭配问题.docx
《数学建模天然肠衣搭配问题.docx》由会员分享,可在线阅读,更多相关《数学建模天然肠衣搭配问题.docx(23页珍藏版)》请在冰豆网上搜索。
数学建模天然肠衣搭配问题
天然肠衣搭配问题
一、摘要
肠衣加工企业对原材料应制定合理有效的方式来搭配,使得企业的收益最大化,同时基于保鲜的需要,也要求搭配方案能够尽可能快速。
因此肠衣的搭配问题是个很有实际意义的研究课题。
在本问题中,给出了2组数据,我们需要根据这2组数据设计搭配的方案。
显然,肠衣分配问题是一个整数规划问题。
所以本文都采用Lingo软件进行编程求解,求解这个整数规划问题本文都选择单纯形法。
对于每一个题设的要求,我们都单独考虑。
对于第一个问题:
我们将问题分为3个小块,对于长度在[3,6.5]的长度,由于题设限制了一捆要求满足20根肠衣并且一捆最短要89米,所以我们通过构建线性方程组,来找到满足条件的结果;对于其他长度的肠衣,我们也是类似于[3,6.5]的方式进行。
对于第二个问题,题设要求最短长度的尽量多,所以我们在第一问的基础上,给较短长度的肠衣较大的权系数,最后通过Lingo软件求得全局最优解。
关于第三个问题的求解,我们参照求解问题一的方法使用不等式约束。
对于问题四,我们运用贪心算法来求解,即对于剩余的肠衣,我们通过贪心准则来进行降级,使得每次的贪心选择都是当时的最佳选择。
由于原材料已定,按照题设,分别讨论每个要求,解得第一问中肠衣最多只能做出130捆;第二问中对剩余的肠衣加权,也得到了比较理想的结果;第三问最多可以生产183捆合格成品;第四问中我们通过贪心算法对降级问题进行处理,最终得到剩下的肠衣可以组成183捆。
对于第五问,我们每个程序的时间都仔分钟内就可以得到结果,所以能够在30分钟内得到分配方案。
关键词:
搭配问题、LINGO软件、整数规划、全局最优、加权
二、问题重述
天然肠衣(以下简称肠衣)制作加工就是我国的一个传统产业,已有百余年的历史,出口量占世界首位,为我国创造了可观的经济价值。
肠衣经过清洗整理后被分割成长度不等的小段(原料),进入组装工序。
传统的生产方式依靠人工,边丈量原料长度边心算,将原材料按指定根数和总长度组装出成品(捆)。
原料按长度分档,通常以0.5米为一档,如:
3-3.4米按3米计算,3.5米-3.9米按3.5米计算,其余的依此类推。
表1是几种常见成品的规格,长度单位为米,∞表示没有上限,但实际长度小于26米。
为了提高生产效率,提高产品的市场竞争力,公司计划改变组装工艺,先丈量所有原料,建立一个原料表。
并按照公司对原料搭配的具体要求,设计一个原料搭配方案,使工人按其“照方抓药”进行生产,以提高生产效率。
其搭配要求如下:
(1)对于给定的一批原料,装出的成品捆数越多越好;
(2)对于成品捆数相同的方案,最短长度最长的成品越多,方案越好;
(3)为提高原料使用率,总长度允许有±0.5米的误差,总根数允许比标准少1根;
(4)某种规格对应原料如果出现剩余,可以降级使用。
如长度为14米的原料可以和长度介于7-13.5米的进行捆扎,成品属于7-13.5米的规格;
(5)为了食品保鲜,要求在30分钟内产生方案。
三、模型假设及符号说明
1、模型的假设
(1)假设所有选定的肠衣原料都能组装为成品;
(2)假设所生产的成品肠衣都为合格产品;
(3)假设该公司提供的原材料均能符合国家标准,为合格的新鲜肠衣原料;
(4)假设肠衣在搭配过程中除去无法组成整捆的原料,均无浪费现象;
2、符号说明
:
每种肠衣原料的总数;
:
第
捆成品使用的第
种原材料的数量;
:
为每种原材料的长度。
:
假设的最多捆数
四、问题分析
本题共有五个要求:
(1)对于给定的一批原料,装出的成品捆数越多越好;针对本题,因为原料已定,也就是说原料的总长度一定,我们认为要想装出的成品捆数增加,就必须尽量让所有的原料都被利用,争取浪费最少,采用线性规划的方法来解决问题。
(2)对于成品捆数相同的方案,最短长度最多的成品越多,方案越好;这里涉及到一个最优化问题,即在成品中原材料最短长度最多。
因此使用LINGO编程求其全局最优方案。
(3)为提高原料使用率,总长度允许
米的误差,总根数允许比标准少1根;对于这个要求来看,误差为
,即成品的合格范围是
米之间,在误差范围内,比原定根数少一根也算是合格成品。
(4)某种规格对应原料如果出现剩余,可以降级使用;与上一要求类似,在提高效率方面,不对原料进行多次切断组装加工处理,直接归类,可以缩短工人产生方案的时间,同时也就提高了效率。
(5)为了食品保鲜,要求在30分钟内产生方案。
在前四个要求都满足的情况下,要对模型进行简化,方便工人在生产加工时,能够在最短时间内对原料的组合搭配进行规划,并且找到最优方案。
五、模型的建立及求解
(一):
对第一个要求进行探究:
要求对于给定的一批原料,装出的成品捆数越多越好,则首先对该公司部分成品规格表进行分析,并对举出的三种规格命名,如下表:
规格名称
最短长度
最大长度
根数
总长度
规格1
3
6.5
20
89
规格2
7
13.5
8
89
规格3
14
∞
5
89
在此表格中能得到成品总长度为89米,由此来规定本文中合格成品肠衣的标准为每捆肠衣总长度为89米。
原料的相关信息基于表2:
长度
3-3.4
3.5-3.9
4-4.4
4.5-4.9
5-5.4
5.5-5.9
6-6.4
6.5-6.9
根数
43
59
39
41
27
28
34
21
长度
7-7.4
7.5-7.9
8-8.4
8.5-8.9
9-9.4
9.5-9.9
10-10.4
10.5-10.9
根数
24
24
20
25
21
23
21
18
长度
11-11.4
11.5-11.9
12-12.4
12.5-12.9
13-13.4
13.5-13.9
14-14.4
14.5-14.9
根数
31
23
22
59
18
25
35
29
长度
15-15.4
15.5-15.9
16-16.4
16.5-16.9
17-17.4
17.5-17.9
18-18.4
18.5-18.9
根数
30
42
28
42
45
49
50
64
长度
19-19.4
19.5-19.9
20-20.4
20.5-20.9
21-21.4
21.5-21.9
22-22.4
22.5-22.9
根数
52
63
49
35
27
16
12
2
长度
23-23.4
23.5-23.9
24-24.4
24.5-24.9
25-25.4
25.5-25.9
根数
0
6
0
0
0
1
先来研究第一种规格:
最短长度
最大长度
根数
总长度
3
6.5
20
89
由于在本题要求根据题中所给信息处理,建立出初始模型
首先要满足题中对每捆成品肠衣所使用原料根数的要求列出式
(1),如下:
…………………………………………………….
(1)
然后根据题意对每捆成品标准长度进行限制,每捆肠衣的总长度为89米,列出式
(2)如下:
…………………………………………………
(2)
生产成品所使用的每种档次原料数量不能超过该原料的总数,因此得出式(3)如下:
…………………………………………………….(3)
第
捆成品使用原料
的个数记为
:
是整数………………………………………………………(4)
;.
要使得捆数最大,需要下面的最大目标约束:
;
LINGO11.0求解得到第一种规格的最优解,此时
(程序解题代码见附件一第一要求规格1):
X1
X2
X3
X4
X5
X6
X7
X8
根数
组合1
1
11
0
0
2
1
1
4
20
组合2
6
0
2
0
6
6
0
0
20
组合3
2
0
0
17
0
0
0
1
20
组合4
0
0
2
18
0
0
0
0
20
组合5
0
4
2
6
8
0
0
0
20
组合6
4
6
3
0
1
0
0
6
20
组合7
3
3
8
0
1
0
0
5
20
组合8
3
9
0
0
0
0
7
1
20
组合9
0
9
1
0
7
0
2
1
20
组合10
7
0
3
0
2
4
4
0
20
组合11
0
5
8
0
0
5
2
0
20
组合12
10
0
0
0
0
3
6
1
20
组合13
7
4
0
0
0
1
7
1
20
组合14
0
3
10
0
0
7
0
0
20
以上结论共14种材料组合,在规定条件下,是捆数最多的结果。
接下来同理对表1中另外两个规格进行讨论:
名称
最短长度
最大长度
根数
总长度
规格2
7
13.5
8
89
规格3
14
∞
5
89
按照规格一的计算方式,计算规格二和三。
我们发现36捆是在规格二能生产出最多的数量,也就是说在组装成品最多的条件下,36捆是最符合题目要求的数量(程序解题代码详见附件一第一要求规格2、可行组合见附件二第一要求规格2)
因此对于规格二,生产36捆的方案最合理。
而第三规格的生产捆数,与前两种规格的产生不同,按照原料长度、成品长度与最大生产捆数的关系求解,类似于规格一的方式,我们得出第三规格在仅考虑做出成品的情况下,最多可以生产80捆成品肠衣。
最后我们将得到的这三个结果进行求和,
,即第一问的最终结果为:
最大成品的捆数为130捆。
(二):
由于要求
(2)中,对于成品捆数相同的方案,最短长度最多的成品越多,方案越好。
在解决第一个要求时,我们所得到都是可行方案。
但是我们要求是最短长度最多的成品越多越好,即最短长度剩余的长度越少越好,因此我们需要增加目标函数使得最短长度剩余的长度越少越好。
在这里我们对剩余长度进行加权,给较短的长度较大的权重。
这样就能得到我们新的目标函数。
由表1中给出的数据,先来研究第一种规格:
……(5)
为第
种肠衣原料的长度,因为要求取的是最短长度的原料,将这个长度作为我们的权重。
即在捆数相同的方案中,优先考虑最短长度原料,即尽可能使得最短长度的原料剩余尽可能少。
然后在结合原是模型于是我们得到了下面这组整数线性规划列式:
………………………………………………………(6)
带入数据,在保证了每捆成品肠衣都为标准的89米的情况下,用LINGO求解得到了三种规格的全局最优解(由于篇幅原因,以下只列出了第一种规格的具体组合方案,程序解题代码详见附件一第二要求、组合方案见附件二第二要求运算结果)。
第一种的规格:
x1
x2
x3
x4
x5
x6
x7
x8
根数
组合1
3
0
3
10
1
1
1
1
20
组合2
2
0
0
16
0
2
0
0
20
组合3
1
0
15
0
0
0
0
4
20
组合4
8
0
1
1
1
7
0
2
20
组合5
10
0
0
0
1
0
9
0
20
组合6
7
0
3
0
0
9
0
1
20
组合7
0
13
0
0
0
2
0
5
20
组合8
0
1
3
13
3
0
0
0
20
组合9
0
13
0
1
0
0
0
6
20
组合10
0
8
0
0
11
0
1
0
20
组合11
0
0
14
0
0
6
0
0
20
组合12
10
0
0
0
1
0
9
0
20
组合13
0
12
0
0
1
0
7
0
20
组合14
0
12
0
0
1
0
7
0
20
按照规格一的计算方式,计算规格二和三。
同理可以得到我们的最优搭配方案。
(三):
在前面的计算中,并没有将原料使用率放在首要因素考虑,为了提高肠衣原料使用率,该公司提出了
米每捆的误差与成品中使用原料总跟数允许比标准少一根的合理评定标准。
在允许的误差范围内,现在将成品肠衣长度的评定标准改为
,而每捆成品肠衣的原料使用根数为比标准规格少一根也算合格。
先来研究第一种规格,于是将原始模型改为:
…………………………………(7)
如此便可以提高对肠衣原料的利用率,然而在现实情况下看来,原料利用率永远无法达到百分之百,因此我们的模型只是给出了最直接的可行方案,用Lingo程序求得规格一能得到的最多捆数为14捆。
类似于规格一的方式,我们可以得带规格二和规格三的最多捆数,见下表:
规格1生产捆数
规格2生产捆数
规格3生产捆数
捆数总数
14捆
36捆
133捆
183捆
下面是规格1的LINGO求解的具体方案(程序解题代码详见附件一第三要求、组合方案见附件二第三要求运算结果)。
x1
x2
x3
x4
x5
x6
x7
x8
根数
组合1
8
3
0
0
0
0
9
0
20
组合2
8
3
0
0
0
0
9
0
20
组合3
2
5
0
0
13
0
0
0
20
组合4
0
0
16
0
0
0
3
1
20
组合5
1
0
0
19
0
0
0
0
20
组合6
0
3
12
0
0
0
5
0
20
组合7
0
11
2
0
0
0
7
0
20
组合8
5
1
0
0
14
0
0
0
20
组合9
7
2
0
0
0
11
0
0
20
组合10
0
8
4
0
0
7
1
0
20
组合11
5
8
0
0
0
0
0
7
20
组合12
3
4
4
0
0
9
0
0
20
组合13
0
11
1
3
0
0
0
5
20
组合14
1
0
0
19
0
0
0
0
20
(四)、虽然通过提出误差范围可以提高原料利用率,因为原料用量始终只能是个估计值,在提高原料利用率的同时,也始终存在原料剩余,当某种规格对应原料出现剩余,我们根据规定对其降级使用。
可是原料过剩是不可避免的,因此对于第四个要求,我们采用贪心算法,每一次选择我们都根据贪心原则,进行对目前最有利的选择。
根据第三要求得到的可行解,可以推算出每种原材料剩余情况如下:
原料代号
1
2
3
4
5
6
7
8
长度
3
3.5
4
4.5
5
5.5
6
6.5
剩余原料根数
3
0
0
0
0
1
0
8
原料代号
9
10
11
12
13
14
15
16
长度
7
7.5
8
8.5
9
9.5
10
10.5
剩余原料根数
20
14
11
16
5
0
0
0
原料代号
17
18
19
20
21
22
23
24
长度
11
11.5
12
12.5
13
13.5
14
14.5
剩余原料根数
0
0
0
0
0
0
1
0
原料代号
25
26
27
28
29
30
31
32
长度
15
15.5
16
16.5
17
17.5
18
18.5
剩余原料根数
0
0
0
9
3
1
0
4
原料代号
33
34
35
36
37
38
39
40
长度
19
19.5
20
20.5
21
21.5
22
22.5
剩余原料根数
0
0
0
0
0
0
0
0
原料代号
41
42
43
44
45
46
长度
23
23.5
24
24.5
25
25.5
剩余原料根数
0
0
0
0
0
0
表格3剩余肠衣原料统计
贪心选择步骤:
1.建立数学模型。
为了使得原料损失最少,由于规格2降级到规格1损失的原料比规格3降级到规格2损失少,所以根据贪心原则优先使用规格2与规格1组合;
2.通过1的分析,将问题分为2个子问题,分别是规格2降级到规格1的情况和规格3降级到规格2的情况;
3.分别对每个子问题的进行求解;分别求每个子问题的最优解;
4.把子问题的解合并成原问题的解。
首先我们通过表格3的剩余肠衣原料统计,得到还剩余的原料。
然后根据贪心算法将规格2降级为规格1,类似于问题一的第一种规格的方式,我们可以得到规格1还能得到1捆。
同样的方式可以知道规格3降级为规格2能够得到4捆结果。
这样降级情况总共可以得到188捆。
到此,对于原料剩余的问题,通过贪心算法已经解决,在以原料损失最少作为目标的情况下得出了这样一个可行解。
(五)、根据《出口肠衣加工企业注册卫生规范》规定,出口肠衣加工企业对原料应制定合理有效的源头控制措施,避免来自空气、土壤、水、饲料、肥料中的农药、兽药或者其他有害物质的污染,保证原料的安全卫生。
超过保质期的原料、辅料不得用于生产。
因为天然肠衣是采用健康牲畜的食道、罚、小肠、大肠和膀胱等器官,经过特殊加工,对保留的组织进行盐渍或干制的动物组织,是灌制香肠的衣膜,所以原料的保鲜十分重要。
本题要求对肠衣原料的选择时间在半小时以内,其实就是对模型的要求为简明直接。
希望模型能在最短的时间内得到对原料的合理分配方案,模型在进行规格1这类数据较小的原料分配上的确十分迅速。
然而,当成品规格类似于规格3的数据时,会因为计算步骤以及数据量变大而导致方案产生速度变慢,针对这一现象,我们的模型很好的控制了求解时间,用我们所给的模型对已知的任意一组数据都能在半小时内找到可行的方案,并且给出每种原料的使用数量。
因此在时间上来看产生方案的时间越短,对于方案来说就越实用,因此使用单纯形法得出的模型是计算量最小的模型,同时也就说明了产生方案的时间最短。
六、模型结果分析与检验
通过以上分析与计算建立的这个模型的目的是为了工人根据此模型“照方抓药”,提高效率,因此对此模型的要求就是操作简便、省时。
本文模型通过整数规划的方式,得到了比较理想的结果,同时本文模型具有较好的扩展性能,能够快速移植到其他相识问题。
模型的检验:
由于我们已经给出了算法的程序和算法的结果(见表格),所以我们可以将最终的结果代入进行检验。
七、模型评价及推广
本模型是在根据该公司的生产要求并结合其具体情况,运用LINGO求解得出最佳方案而建立的模型,是给肠衣搭配量身制作的最佳生产方案,工人只要按此模型“照方抓药”,就能确保在最短的时间内组装出最多的成品,从而提高生产效率。
但是,我们的模型毕竟是按照公司提供有限的原料通过计算建立起来的,因此对于公司大量的、长久的生产难免达不到最大的经济效益,建议该公司在实际生产中在此模型的基础上要酌情的对肠衣搭配进行小范围的调整,以便达到效率的最大化,该模型又可广泛运用到类似的各种搭配问题。
我们始终认为,数学模型的建立是为了将一些看是十分复杂的问题用最简单的方法解决,因此我们的出发点就是尽量使模型简洁明了,减少计算时间,为人们的日常工作提高效率。
[参考文献]
[1]赵静,但琦,《数学建模与数学实验》[M],高等教育出版社,2003.
[2]王晓东,《算法设计与分析》[M],清华大学出版社,2009.
[3]XX搜索,,贪心算法,2011年9月11日.
附件一:
LINGO程序代码:
第一要求:
规格1:
model:
sets:
kun/wh1..wh14/;
dc/v1..v8/:
d,shuliang;
a(kun,dc):
x;
endsets
data:
d=33.544.555.566.5;
shuliang=4359394127283421;
enddata
@for(kun(I):
@sum(dc(J):
x(i,J))=20);
@for(kun(i):
@sum(dc(j):
d(j)*x(i,j))=89);
@for(dc(i):
@sum(kun(j):
x(j,i))<=shuliang(i));
@for(kun(i):
@for(dc(j):
@gin(x(i,j))));
End
规格2:
model:
sets:
kun/wh1..wh36/;
dc/v1..v14/:
d,shuliang;
a(kun,dc):
x;
endsets
data:
d=77.588.599.51010.51111.51212.51313.5;
shuliang=2424202521232118312322591825;
enddata
@for(kun(I):
@sum(dc(J):
x(i,J))=8);
@for(kun(i):
@sum(dc(j):
d(j)*x(i,j))=89);
@for(dc(i):
@sum(kun(j):
x(j,i))<=shuliang(i));
@for(kun(i):
@for(dc(j):
@gin(x(i,j))));
End
规格3:
model:
sets:
kun/wh1..wh80/;
dc/v1..v24/:
d,shuliang;
a(kun,dc):
x;
endsets
data:
d=1414.51515.51616.51717.51818.51919.52020.52121.52222.52323.52424.52525.5;
shuliang=35293042284245495064526349352716122060001;
enddata
@for(kun(I):
@sum(dc(J):
x(i,J))=5);
@for(kun(i):
@sum(dc(j):
d(j)*x(i,j))=89);
@for(dc(i):
@sum(kun(j):
x(j,i))<=shuliang(i));
@for(kun(i):
@for(dc(j):
@gin(x(i,j))));
End
第二要求:
规格1:
model:
sets:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 天然 肠衣 搭配 问题