数学建模计划问题文档格式.docx
《数学建模计划问题文档格式.docx》由会员分享,可在线阅读,更多相关《数学建模计划问题文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
铁合金3
600
150
铜合金1
90
500
220
铜合金2
96
4
240
铝合金1
100
铝合金2
165
咱们的目标是求出各类原材料各取多少才能使生产本钱最低。
模型的数学表达
咱们利用RAW表示原材料集合,COMP表示与材料品质相关的各类成份(化学元素)的集合。
咱们希望找到每种原材料r的用量user,以能够生产出数量为produce的知足给定要求DEM的钢材。
咱们用Prc表示在原材料r中的化学元素c的含量,COSTr表示原材料r每千克的采购价钱。
另外,每种成份c的最低和最高品质含量别离用PMINc和PMAXc表示。
如此就能够够取得如下的是数学模型:
()
.
()
式()是目标函数,即最小化总本钱,总本钱等于每种原材料的单位价钱乘以此原材料的用量然后对所有原材料进行求和。
约束条件()说明最终取得的产品重量等于生产此产品所利用的各类原材料重量之和。
约束条件()和()对最终产品的品质进行了限制。
给出这些约束条件的依照是:
若是取得的钢材中含有user吨某种化学元素c含量百分比为Prc的原材料,那么此化学元素在此钢材中的总含量能够表示为如下式:
那么在最终产品中的化学元素c的含量百分比能够表示为:
对最终产品中的元素c含量百分比最低含量进行约束,那么有如下关系:
此关系是非线性的,可是能够通过在两边都乘以produce将它线性化,如此咱们最终就取得了线性约束条件()
同理能够导出约束条件()
约束条件()将保证利用的原材料量可不能超过可用库存量。
约束条件()将保证生产出的钢铁量知足要求。
最后一个约束条件()是对此问题中所有变量的非负约束。
案例二:
动物饲料制造
有一家牛饲料公司要生产两种类型的动物饲料:
粉状饲料和颗粒饲料。
生产这些饲料所需的原料有:
燕麦、玉米,和糖渣。
第一需要将这些原料(糖渣除外)磨碎,然后将所有原料混合形成饲料产品。
在最后一个生产工序中,需要将半成品制成颗粒状或粉末状,从而取得最终产品。
图1:
动物饲料生产流程
每种饲料产品都需要知足一些营养成份需求。
表3中列出了原料含有的和最终产品要求的蛋白质,脂肪,和纤维含量百分比。
表格3:
营养成份含量百分比
原料
蛋白质
脂肪
纤维素
燕麦
7
玉米
糖渣
5
25
要求含量
>
=
=2
<
=6
各类原料的可用量也有限制。
表4列出了天天各类原料的可用量和对应的价钱。
表4:
原材料可用量与价钱
可用量(千克)
价格(欧元/千克)
11900
23500
750
表5列出了各道工序的本钱。
表5:
加工本钱(欧元/千克)
磨碎
混合
结粒
筛粉
若是生产9吨的颗粒,12吨的粉末,如何使本钱最低?
此模型与上一个模型很相似,区别在于此刻咱们需要生产两种类型的产品,而且再也不要求最终产品中各成份位于给定的最低和最高范围内,而是要知足特定的营养需求。
令FOOD={1,2}(1表示颗粒饲料,2表示粉状饲料)为将要生产的饲料类型集合,RAW为原材料集合,COMP={1,2,3}为要求的营养成份(1表示蛋白质,2表示脂肪,3表示纤维素)。
另外咱们还用COSTr表示原料r的每千克采购价,PCOSTr表示工序p的每千克加工本钱,REQc表示营养成份,Prc表示在原材料r中的营养成份c的含量,AVAILr表示原料r天天能够取得的最大量,DEMf表示饲料产品f天天的需求量。
设变量userf表示生产饲料f所利用的原料r的量,producef表示饲料f天天的生产量,那么能够取得如下模型:
.
需要最小化的目标函数()是生产的总本钱。
其中第一项为哪一项原料的采购本钱,后面几项是不同工序的加工本钱。
除糖渣之外的其他原料都需要进行磨碎,所有原料都要进行混合。
关于已经混合后的半成品,通过结粒工序能够取得颗粒饲料(f=1),通过筛粉工序能够取得粉末饲料(f=2)。
约束条件()说明每种类型饲料的生产量等于生产这种产品的各类原料利用量之和。
约束条件()和()即表示对营养成份的需求。
得出这些约束条件的思路与前一个例子中咱们关于钢铁“品质”约束条件的推导相同。
饲料产品f中营养成份c的含量百分比能够表示为:
关于前两种营养成份(蛋白质,脂肪),此百分比必需至少为REQc,关于第三种营养成份(纤维素),此百分比不该超过REQc。
关于前两种营养成份,那么能够取得如()所示的关系,关于第三种营养成份,此关系为()。
由于在分母上显现了变量producef,因此这两个关系都是非线性关系,但和前面一样,能够通过在两边都乘以producef来将它们转化为线性约束条件。
如此咱们就取得了约束条件()和()
约束条件()能够保证原料的用量不超过天天原料的可提供量。
约束条件()表示生产量要知足需求。
最后约束条件()将保证所有变量都为非负值。
案例三:
蔗糖生产
在澳大利亚甘蔗的收割已经实现了高度机械化。
甘蔗在砍下以后将马上通过运行于小型铁路网上的货车输送到蔗糖厂。
一辆货车的运量能够生产的蔗糖量取决于甘蔗收购的地址和甘蔗成熟的程度。
在收割以后,甘蔗中的含糖量将由于发酵而迅速下降,在一段时刻以后,所含糖份将完全流失。
此刻有11辆货车抵达了蔗糖厂,每辆货车运载的甘蔗量都相同。
已经对每辆货车每小时的损失量和剩余时刻进行了测算,具体数据如下表所示。
表格8:
每车甘蔗属性
货车编号
1
6
8
9
10
11
损失率(千克/小时)
43
26
37
28
13
54
62
49
19
30
剩余时间
在甘蔗厂内有三条生产线,每辆货车都能够选择在哪条生产线上进行加工。
一车甘蔗的加工时刻为两个小时。
必需在这车甘蔗的质量寿命终止之前完成加工。
制糖厂的领导希望找出一个生产打算,使总的蔗糖损失降到最低。
那个问题也是关于第一产业的,但与前几个混合问题有所不同。
设WAGONS={1,…,NW}为货车集合,NL为生产线数量,DUR为每车甘蔗的加工时刻。
每辆货车w每小时的损失能够表示为LOSSw,其剩余寿命为LIFEw。
咱们能够看到,在最优解中,生产线需要持续不断工作——不然咱们就能够够通过将提早进行下一次生产来减少蔗糖损失。
这表示每车甘蔗完成加工的时刻都能够表示为s.DUR,其中S>
0,且为整数。
S的最大值即为制糖厂将要工作的时刻窗口数(每一个窗口长为DUR),即NS=ceil(NW/NL),其中ceil表示向上取整。
若是NW/NL为整数,那么每条生产线将加工NS车甘蔗。
不然,那么有一些生产线会加工NS-1车甘蔗,但至少有一条生产线将加工NS车甘蔗。
在任何情形下,最优解打算的历时都是小时。
咱们能够称SLOTS={1,…,NS}为时刻窗口的集合。
必需为每车甘蔗分派一个时刻窗口。
咱们概念一个二进制变量processws,只有在第w车甘蔗分派给时刻窗口S时其值才为1(约束条件)。
每车甘蔗都应有一个与之相对应的时刻窗口(),但由于有NL条并行的生产线,因此在每一个时刻窗口中都能够同时处置NL车甘蔗()。
甘蔗的剩余质量寿命以小时为单位,而不是以DUR小时为单位。
因此一车甘蔗w若是不希望完全变质,那么许诺向其分派的时刻窗口最大值为LIFEw/DUR。
()式对每车甘蔗w给出了那个限制。
注意:
在此表达式中左侧的时刻窗口编号表示为求和的形式:
由于约束条件(),只有使processws=1d时刻窗口标号s才会计入求和。
到时刻窗口s时第w车甘蔗的总损失量为s·
DUR·
LOSSw。
因此目标函数(蔗糖总损失量)能够用下面那个表达式()表示:
式()到()即概念了咱们那个问题的模型。
此线性问题属于最小费用流问题类型。
它与运输问题有必然关系。
关于最小费用流问题,用单纯形算法能够求得整数可行的最优线性计划解。
因此咱们能够将模型中的整数约束条件替换为非负约束条件。
案例四:
露天采矿
探测发觉了一个露天铀矿。
依照一些探测钻探的结果,发觉那个矿能够分为假设干个可开采区。
矿坑需要挖掘成阶梯形,以方便卡车开到矿坑底部。
铀矿呈东西方向散布。
在西面有一个村落,在东面是山脉,因此矿坑大小要受到它们限制。
考虑了这些因素以后,确信有18个可开采区,呈三层散布,总储量为10000吨(如图2)。
为挖掘一个可开采区,第一需要掘开它上方的三个区块:
其正上方的区块,和其左上和右上的区块(由于要形成梯形斜坡)。
露天矿山结构图
挖开第一层的区块每顿需要花费100欧元,挖开第二层的区块每顿需要花费200欧元,挖开第三层的区块每顿要花费300欧元。
可是若是有区块是由含有很多石英的石头组成(显示为斜线区域),那么由于这些石头超级坚硬,因此每顿要花费1000欧元。
只有以灰色显示的区块才含有铀(1,7,10,12,17,18)。
其市场价钱非别为200,300,400,500,1000,和1200欧元/吨。
第18区块,尽管含有大量的矿石,可是此区块也和其他绘有斜线的区块一样,含有大量的石头。
为使得总的受益最大,应掘开哪些区块?
令BLOCKS代表这些区块的集合,VULUBb为区块b中每顿矿石的市场价钱,COSTb为挖掘每吨石头的本钱。
那么挖掘块b中的净收益能够表示为
。
区块挖掘的顺序能够表示为一个有向图
,其中ARCS代表连接两个区块的弧。
弧(b,a)即表示只有在区块a已经挖掘以后才能够挖掘b。
例如,关于16那么在图G中有弧:
(16,10),(16,11)和(16,12),而且10,11,12也各有三条弧,如下图。
区块16的挖掘先决关系图
为了决定挖掘哪些区块,咱们引入二进制变量extractb,量若是区块b被挖掘,那么其取值为1,不然取值为0.如此就能够够取得如下的形式:
.
需要最大化的目标函数()是从挖掘各个区块能够取得的总收益。
约束条件()将保证区块依照正确的顺序进行挖掘:
若是b(extractb-=1)被挖掘,那么a也应被挖掘(extractb=1)。
约束条件()概念了二进制变量。
案例五:
电力生产
为知足每日的电力需求(单位为兆瓦),能够选用四种不同类型的发电机。
每日的电力需求如下表所示。
每日用电需求(兆瓦)
时段
0-----6
6----9
9----12
12---14
14---18
18---20
20---24
需求
12000
32000
25000
36000
30000
18000
每组发电机都有一个最大的发电能力,当接入电网时,其输出功率不该低于某一最小的输出功率。
所有的发电机都存在一个最小的发电本钱,而且若是功率高于其最小功率,那么超出部份的功率每兆瓦每小时还存在一个成不,即边际本钱。
这些数据都在下表中。
发电机描述
可用
数量
最小输出功率
最大输出功率
固定
成本
每兆瓦边际成本
启动
(MW)
(欧元/小时)
型号1
1750
2250
5000
型号2
1000
1500
1800
1600
型号3
1200
2000
3750
2400
型号4
3500
4800
只有在每一个时段开始和终止时才能够启动或关闭发电机。
与启动发电机不同,关闭发电机不需要付出任何的代价。
在任意时刻,正在工作的发电机组必需留出20%的发电能力余量,以防用电量突然上升。
问:
每一个时段应该别离利用哪些发电机才能够使天天的总本钱最小?
令
为天天的时段集合,TYPES为发电机型号集合。
关于给定的时段t,
表示电网的用电量需求,
表示现在段的长度。
关于任一发电机型号p,
和
别离表示它的最小和最大功率,
是可用的发电机数量。
启动的本钱为
,最小功率的每小时工作本钱为
,每兆瓦每小时的边际本钱为
关于此模型数学的表述,并处置不同类型的本钱,需要三组变量。
变量
是在时段t开始的型号p的发电机的数量,且为整数值()。
是在时段t内工作的型号为p的发电机数量。
此变量为整数值,且不该超过可用的此型号发电机数量
,即有约束条件()。
表示型号p的发电机在时段t内功率超出其最低功率之上的那部份。
关于一台型号p的发电机,其额外功率(超出最小功率之上的功率)不能超过
因此关于每一个类型和每一个时段,咱们能够将发电机的额外功率与正在工作的发电机数量关联起来:
为使每一个时段内发电量知足用电的需求,因此有约束条件()。
求和符号中第一项为哪一项对所有各个发电机的最小功率进行求和,第二项是对所有发电机的额外功率进行求和。
在不启动新的发电机的前提下,当前正在工作的发电机的发电能力必需比实际用电量高20%,因此有:
若是不关闭发电机,那么在时段t开始工作的发电机数量应等于在时段t和t-1中工作的发电机量只之差。
但有些发电机可能会关闭,(由于对本钱可不能带来阻碍,因此没有说明),那么开始工作的发电机数量应该至少等于此差值()针对当日午夜和第二天凌晨这两个时段,因此还有约束条件()。
每日本钱()中包括发电机启动本钱,最小功率工作本钱,即额外功率的本钱。
后两项与工作的时段长度成正比。
因此,此计划模型的完整的表达式为: