烤箱烘烤问题的研究12.docx
- 文档编号:8269534
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:19
- 大小:69.50KB
烤箱烘烤问题的研究12.docx
《烤箱烘烤问题的研究12.docx》由会员分享,可在线阅读,更多相关《烤箱烘烤问题的研究12.docx(19页珍藏版)》请在冰豆网上搜索。
烤箱烘烤问题的研究12
2012高教社杯全国大学生数学建模竞赛
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
A
我们的参赛报名号为(如果赛区设置报名号的话):
46
所属学校(请填写完整的全名):
参赛队员(打印并签名):
1.
2.
3.
指导教师或指导教师组负责人(打印并签名):
日期:
2012年7月28日
赛区评阅编号(由赛区组委会评阅前进行编号):
2011高教社杯全国大学生数学建模竞赛
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用):
评
阅
人
评
分
备
注
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
烤箱烘烤问题的研究
摘要
目前消费市场竞争日益激烈,为了使面包店的效益达到最大,缩短面包烘烤时间是一个很好的解决方法。
本课题研究的是烤箱的烘烤问题,最终目的是使烤箱的工作时间最短,从而提高效益,属于最优化问题。
针对问题一,我们首先对各种面包烘烤所需时间和所占烤箱容量进行综合分析,确定烘烤次数的大致范围,之后建立0-1规划模型,列出目标函数,运用lingo软件进行求解,从而得出烘烤方案及所需最短时间为264分钟。
对于如何评价该方案的性能优劣,我们将每次烘烤中面包所需的最大烘烤时间与最小时间的差值m作为评价标准,规定m属于:
为优秀,
为良好,
为一般。
经过综合评定,结果约为1.22,故该方案性能优秀。
针对问题二,我们在问题一的基础上解决该问题,根据问题一中所得的烘烤方案,因为最短烘烤时间已经求出,所以时间固定,为了使三台烤箱的烘烤时间尽可能短,所以应该使三台烤箱之间的烘烤时间差值尽可能地小,我们运用C语言将每次烘烤所用的时间从小到大进行排序并进行分组。
在此基础上设计出烘烤方案,且计算出最短时间为88分钟。
运用问题一中的评价标准该方案进行评价,得出该方案优秀。
针对问题三,该问题的目的是使面包的准备时间和烘烤时间之和最短,在第一个问题的基础上再加上准备时间,建立类似的模型,求解从面包准备开始到烘烤好所有的面包的时间最短值。
通过lingo软件进行求解,从而得到烘烤方案。
模型的建立是按照问题解决的思路进行的,同时我们规定了对所设计方案性能优劣的评价标准,我们将每次烘烤的不同种类的面包理论最大时间和最小时间之差的平均值来对面包质量的好坏进行评价,具有合理性,其次根据评价标准建立新模型,供决策者抉择。
关键词:
最优化问题0-1规划模型lingo软件C语言差值
一、问题的重述
一个面包房现有一些面包需要放入烤箱烘烤,烤箱的容量为40个单位,每个面包烘烤所需要的时间(分钟)和所占用的烤箱容量(单位)如下表所示:
烘烤所需时间(分钟)
10
16
9
21
16
14
8
10
12
10
9
11
14
8
13
17
17
所占烤箱容量(单位)
12
9
15
10
20
16
10
12
17
24
14
6
9
10
7
19
21
烘烤所需时间(分钟)
9
10
13
14
8
17
20
15
16
12
8
10
9
18
10
13
11
所占烤箱容量(单位)
12
9
16
8
5
17
16
8
9
12
14
11
19
24
14
12
16
烘烤所需时间(分钟)
21
16
15
17
24
22
26
12
18
11
15
16
9
14
12
19
13
所占烤箱容量(单位)
9
6
21
15
10
14
9
22
16
8
14
15
16
9
14
23
16
面包的烘烤规则如下:
大小不同,烘烤时间不同的面包可以同时烘烤,但是不能和比自己的烘烤时间大于5分钟的放在一起烘烤,以免烤坏。
一旦烤箱开始工作,中间不能打断,也不允许移走正在烘烤的面包。
(1)请为面包房设计一个烘烤方案,使得烤箱的工作时间尽可能短;并且评价该方案的性能优劣。
(2)假设现有另外两台烤箱可供同时使用,请另外为面包房设计一个烘烤方案,使得三台烤箱的工作时间尽可能短;并且评价该方案的性能优劣。
(3)假设各个面包在烘烤前还需要一定的准备时间(制作,发酵),各个面包的准备好的时刻列表如下(对应于上表的面包顺序),只有在准备时间之后面包才可以开始烘烤。
现只有一台烤箱可供使用,请为面包房设计一个烘烤方案。
面包准备好的时刻(分钟)
6
16
19
31
42
12
28
13
19
26
39
21
34
38
3
17
27
面包准备好的时刻(分钟)
9
27
16
30
29
43
22
26
33
11
45
17
24
8
23
3
32
面包准备好的时刻(分钟)
8
25
28
23
36
19
35
12
36
27
39
11
17
23
13
24
31
二、问题的分析
2.1问题一的分析
通过对本课题的理解与分析,该课题所涉及的问题属于最优化问题。
我们首先对课题中所提供的数据进行整理统计,该题的目的是为了使烘烤时间尽可能短,故我们应该让烘烤次数尽可能的少,并且尽可能的充分利用烤箱容量,从而我们建立0-1规划模型,列出目标函数和约束条件,利用lingo软件对该问题进行求解,从而设计出烘烤方案并得出所需最短时间为264分钟。
对于如何评价该方案性能的优劣,我们考虑到为了使烘烤出来的面包质量更好,所以应该使每次烘烤中面包烘烤所需时间的最大值与最小值之间的差值尽可能的小,这样既可以使烤箱工作时间短,同时也使面包的味道更加鲜味美可口。
故我们将此作为评价该方案优劣的标准,并规定此差值m属于:
为优秀,
为良好,
为一般。
通过对该方案的综合评定,结果约为1.22,故该方案优秀。
2.2问题二的分析
问题二中烤箱增加至三台,但最终目的仍旧是使工作时间尽可能短,故和问题一中要解决的问题是一样的,所以我们在问题一的基础上解决该问题。
问题一中已经确定一台烤箱工作的最短时间,故时间是固定不变的,为了使三台烤箱的工作时间最短,我们应该使三台烤箱各自工作时间的差值最小,即尽可飞觉得接近平均时间(最短时间/3)。
我们运用C语言将每次烘烤所用的时间从小到大进行排序并进行分组,在此基础上设计出烘烤方案。
运用问题一中的评价标准该方案进行评价,得出
2.3问题三的分析
该问题增加了准备时间建立模型,我们用求解问题一的思想来考虑这个问题。
其间我们先综合分析了一下面包的准备时间和烘烤时间,第一次用最短准备时间再加上最短烘烤时间之和大概为16分钟。
而准备时间小于16分钟面包种类有12种,综合起来可以满足烘烤箱的不停留要求。
因此我们忽略了烤箱的等待时间,认为烤箱是一直处于工作状态。
然后我们仍然用0-1规划模型,列出目标函数和约束条件。
运用lingo软件求解方程。
从而得出一套烘烤方案。
二、问题的假设
1、每次烘烤拿出、放入面包的时间忽略不计;
2、烤箱预热时间忽略不计;
3、题目所给的烘烤所需的时间都是准确无误的;
4、工作人员准备面包的时间准确无误;
三、符号的说明
等于1说明第
次烘烤了第
种面包
等于0说明第
次没有烘烤第
种面包
第
种面包烘烤所需的时间
第
种面包所占的烤箱容量
第
次烘烤面包中各面包所需烘烤时间的最大时间差
烘烤面包中各面包所需烘烤时间的总最大时间差的平均数
第
种面包的准备时间
没有计算准备时间时烘烤所有面包所需的最短时间
计算准备时间时烘烤面包所需的最短时间
第
号烤箱
第
号烤箱的工作时间
四、对问题一的解答
4.1模型的建立:
该问题建立的模型应该为最优化模型,需要确定目标函数和约束条件,同时为了便于解答问题我们采用了0-1规划模型,目标函数即最少用时函数,根据问题一的分析确定最小用时函数为:
满足条件:
(1)因为每种面包在第几个箱里是不确定的,用0-1规划模型。
;当
时说明在第
次烘烤了第
种面包,
时说明在第
次没有烘烤第
种面包。
(2)每个箱里装的面包的烘烤时间不一样,需要求出来每个箱的最长烘烤时间作为最终的面包出炉时间。
(3)每个箱的面包理论最大烘烤时间和最小烘烤时间之差不能超过五分钟。
(4)每个箱盛放的面包总容量不能超过40。
综上所述得到最少用时函数:
满足约束条件:
4.2模型的求解:
我们建立0-1规划模型,运用lingo软件编程求解。
具体的程序见附录一。
通过lingo软件,得出一个
的矩阵,求出共烘烤了18箱面包,具体数据表格见附录一。
为了使烘烤方案更简洁明了,我们对表格进行了处理,从中筛选出每次烘烤箱里面包种类。
具体见下表格。
烘烤方案
烘烤面包次数
面包种类
烘烤面包所需时间(分钟)
1
7142228
8
2
192930
10
3
1047
10
4
138
10
5
111832
10
6
122742
12
7
94449
12
8
62134
14
9
152051
13
10
13254548
15
11
3337
15
12
2526
16
13
1617
17
14
233638
17
15
3143
18
16
4650
19
17
42440
22
18
353941
26
通过这个模型我们算出的最短用时为各次烘烤面包所需时间的最小值为264分钟。
4.3模型的评价:
通过对模型的求解我们给出一种评价模型优劣的方法。
对求出的每次烘烤面包的不同种类的面包理论最大时间和最小时间之差的平均值来对面包质量的好坏来评价次模型的具体优劣,即差值法。
(
为每次烘烤面包的时间差,即该时间就是每次烘烤面包的不同面包种类所用时间的最大值和最小值的差。
为总共所用时间差的平均值。
建立模型如下:
如果
的范围在
之间则说明该模型为优,如果
的范围在
之间则说明该模型为良好,如果
的范围在
之间则说明该模型为一般。
该模型我们运用了C语言进行编程求解,具体的程序见附录二。
由求解结果得出
约为1.22。
我们认为该模型是相对较优的。
五、对问题二的解答
5.1模型的建立
该问题中烤箱增加至三台,但其它条件都没有改变,故三台烤箱各自所用的时间之和应该与问题一中所求解出的最短时间相同。
为了使三台烤箱工作时间尽可能短,应该使它们各自的工作时间尽可能接近最短时间的平均值(最短时间/3)。
为此我们又建立一个数学模型,其目标函数为:
满足的条件:
(1)每号箱的烘烤时间尽可能的短;
(2)每号箱的总时间差尽可能的短;
(3)我们首先对每箱烘烤的面包所用的时间进行了从小到大的排序,然后进行运算;
5.2模型的求解
针对该问题的解答,我们运用C语言编写程序将这18次烘烤分到三个烤箱中,以达到最短工作时间。
从而得到烘烤方案如下表:
(具体编程件附录三)
烤箱的烘烤方案
烘烤次数
面包种类
烘烤面包所需时间(分钟)
1
7、14、22、28
8
2
35、39、41
26
3
1、3、8
10
4
31、43
18
5
9、44、49
12
6
2、5、26
16
烤箱的烘烤方案
烘烤次数
面包种类
烘烤面包所需时间(分钟)
1
19、29、30
10
2
4、24、40
22
3
11、18、32
10
4
23、36、38
17
5
6、21、34
14
6
33、37
15
烤箱的烘烤方案
烘烤次数
面包种类
烘烤面包所需时间(分钟)
1
10、47
10
2
46、50
19
3
9、44、49
12
4
16、17
17
5
15、20、51
13
6
13、25、45、48
15
从表格中可计算出各烤箱的工作时间:
=90,
=88,
=86,故烤箱工作时间为90分钟。
5.3模型的评价
该问题的结果算出来后,我们对求出的结果进行分析,发现它们相邻箱之间的差值正好都是2分钟。
于是我们对每个烤箱的面包烘烤时间进行分析,结果发现把
箱第一次烘烤的面包所需的时间为8分钟,
箱第一次烘烤的面包所需的时间为10分钟。
两者的面包对换一下,时间正好达到最短,即每号箱的总烘烤时间都是88分钟。
此时达到最优。
或者将
箱第三次烘烤的面包和
箱第三次烘烤的面包对换一下,也能在时间上达到最优。
六、对问题三的解答
6.1模型的建立
根据对问题三的分析,我们建立了新的目标函数:
满足的条件:
(1)因为每种面包在第几个箱里是不确定的,用0-1规划模型。
;当
时说明在第
次烘烤了第
种面包,
时说明在第
次没有烘烤第
种面包。
(2)每个箱里装的面包的烘烤时间不一样,需要求出来每个箱的最长烘烤时间作为最终的面包出炉时间。
(3)每个箱的面包理论最大烘烤时间和最小烘烤时间之差不能超过五分钟。
(4)每个箱盛放的面包总容量不能超过40。
(5)除了第一次需要等待面包的准备外,其他箱的面包都不需要等待准备。
(6)将要烘烤的面包的准备时间要小于等于上一箱的准备时间和烘烤时间之和。
综上所述得到最少用时函数:
满足约束条件:
s.t.
6.2模型的求解
我们按照问题一得思路,仍然建立0-1规划模型,运用lingo软件编程求解。
具体的程序见附录四。
通过lingo软件,得出一个
的矩阵,求出共烘烤了19箱面包,我们从中筛选出每次烘烤箱里面包种类。
具体见下表格。
烘烤面包的次数
面包的种类
烘烤面包用时
总共用时
1
1,15,33
13
19
2
8,18,49
12
31
3
10,47
10
41
4
3,7,14,22
9
50
5
11,29,32
10
60
6
12,19,34,44
11
71
7
9,42
12
83
8
13,21,27,48
14
97
9
6,25,51
15
112
10
20,37,
15
127
11
28,30
9
136
12
5,36,45
16
152
13
16,17
17
169
14
31,43
18
187
15
23,50
19
206
16
2,38,46
17
223
17
24,26,36
21
244
18
39,40,41
26
270
19
4
21
291
七、模型的评价和改进
7.1模型的优点
1.模型由简单到复杂一步步建立,增强了可读性,理解性,逻辑性强。
2.模型的合理性,模型建是建立在对数据进行充分的分析的基础上的,建立0-1模型使求解过程简化,从而的比较满意的烘烤方案。
3.模型的建立是按照问题解决的思路进行的,同时我们规定了对所设计方案性能优劣的评价标准,其次根据评价标准建立新模型,供决策者抉择。
4.对于评价标准的确定,我们将每次烘烤的不同种类的面包理论最大时间和最小时间之差的平均值来对面包质量的好坏进行评价,显得比较合理。
7.2模型的缺点
1.约束条件比较少,所以求解出的烘烤方案并不一定是最优的,模型还有待改进。
2.问题三中我们认为每次面包烘烤结束,下一次要进行烘烤的面包已经准备好,忽略了烤箱等待时间。
3.本模型具有一定得借鉴意义,但本模型是建立在每种面包数量只有一个的基础上的,当每种面包的数量增加时,该模型的可行性会降低。
4.问题二中建立的模型以及编写的程序比较简单,求解出的结果并不一定是最优的,有待改进。
7.3模型的改进
1.问题二的求解是在问题一所得到的烘烤方案的基础上进行求解的,只是将18次烘烤进行了分组得到的方案并不一定是最优的,所以我们可以对问题二建立新的模型进行求解。
参考文献
[1]谢金星薛毅,《优化建模与LINDO/LINGO软件》,北京:
清华大学出版社,2005;
[2]韩中庚,《数学建模方法及其应用》,北京:
高等教育出版社,2005;
[3]贾宗璞许合利,《C语言程序设计》,北京:
人民邮电出版社,2010;
附录:
附录一:
model:
sets:
time/1..51/:
t;
capacity/1..51/:
c;
order/1..21/:
m,n;
links(order,time):
x;
endsets
data:
t=101692116148101210911148131717910131481720151612810918101311211615172422261218111516914121913;
c=1291510201610121724146910719211291685171689121411192414121696211510149221681415169142316;
enddata
min=@sum(order(i):
@max(time(j):
x(i,j)*t(j)));
@for(links(i,j):
@bin(x(i,j)));
@for(time(j):
@sum(order(i):
x(i,j))=1);
@for(order(i):
@sum(capacity(j):
x(i,j)*c(j))<=40);
@for(order(i):
m(i)=@max(time(j):
x(i,j)*t(j)));
@for(order(i):
n(i)=@min(time(j):
x(i,j)*t(j)#and#x(i,j)*t(j)#ne#0));
@for(order(i):
m(i)-n(i)<=5);
End
附录二:
#include
main()
{
inta[18][2]={8,8,10,10,10,9,10,9,10,9,12,11,12,11,14,11,13,13,15,14,15,12,16,16,17,17,17,16,18,18,16,22,20,26,21};
intb[18];
inti;
floatave=0.0;
for(i=0;i<18;i++)
b[i]=a[i][0]-a[i][1];
for(i=0;i<18;i++)
ave+=b[i];
ave/=18;
printf("%f",ave);
}
附录三:
#include
main()
{
inta[18]={8,10,10,10,10,12,12,14,13,15,15,16,17,17,18,19,22,26};
intb1[6],b2[6],b3[6];
inti,j,t1=0,t2=0,t3=0,k=0,m=0,n=0;
for(i=0,j=17;i<=8,j>=9;i+=3,j-=3)
{b1[k++]=a[i];
b1[k++]=a[j];
}
for(i=1,j=16;i<=8,j>=9;i+=3,j-=3)
{b2[m++]=a[i];
b2[m++]=a[j];
}
for(i=2,j=15;i<=8,j>=9;i+=3,j-=3)
{b3[n++]=a[i];
b3[n++]=a[j];
}
for(i=0;i<6;i++)
{t1+=b1[i];
t2+=b2[i];
t3+=b3[i];
}
for(i=0;i<6;i++)
printf("%d",b1[i]);
printf("\n%d\n",t1);
for(i=0;i<6;i++)
printf("%d",b2[i]);
printf("\n%d\n",t2);
for(i=0;i<6;i++)
printf("%d",b3[i]);
printf("\n%d\n",t3);
}
附录四:
model:
sets:
time/1..51/:
t,d;
capacity/1..51/:
c;
order/1..25/:
m,n;
links(order,time):
x,s;
endsets
data:
t=101692116148101210911148131717910131481720151612810918101311211615172422261218111516914121913;
c=1291510201610121724146910719211291685171689121411192414121696211510149221681415169142316;
d=616193142122813192639213438317279271630294322263311451724823332825282336193512362739111723132431;
enddata
min=@sum(order(i):
@max(time(j):
x(i,j)*t(j)))+@max(time(j):
x(1,j)*d(j));
@for(links(i,j):
@bin(x(i,j)));
@for(time(j):
@sum(order(i):
x(i,j))=1);
@for(order(i):
@sum(capacity(j):
x(i,j)*c(j))<=40);
@
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 烤箱 烘烤 问题 研究 12