作业帮 > 综合 > 作业

生产任务分配问题,求建立运筹模型.包含目标函数和约束条件就行,有完整lingo语句更好.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/16 03:56:07
生产任务分配问题,求建立运筹模型.包含目标函数和约束条件就行,有完整lingo语句更好.
某构件公司有四个构件厂,现接受五个企业预应力梁和预制桩的订货,订货量分别为2400件和3100件,单价分别是1.2万元和1万元.各构件厂生产能力、单位成本、材料单耗等资料见表12,公司拥有水泥与钢材的数量为20000吨和5000吨,各构件厂所需材料由公司供应,公司到各构件厂的距离为30,50,40,60公里,水泥与钢材的每吨公里运输单价分别为0.2与0.3元.订货企业与各构件厂的距离见表13,预应力梁单件重5吨,预制桩单件重3吨,每吨公里运费1元.当生产能力不足时,可安排加班生产,加班生产的单位成本见表14.建立综合考虑生产和运输费用,按公司利润最大建立并求解模型.
表12 各构件厂生产能力、单位成本、材料单耗资料
项目
企业\x05生产能力(件)\x05单位成本(元)\x05材料单耗(㎏)
\x05预应力梁\x05预制桩\x05预应力梁\x05预制桩\x05水泥\x05钢材
\x05\x05\x05\x05\x05预应力梁\x05预制桩\x05预应力梁\x05预制桩
1\x05200\x051000\x058600\x056000\x054000\x052000\x051000\x05600
2\x05800\x05700\x058700\x056500\x054050\x052050\x051050\x05510
3\x05500\x05800\x058750\x056400\x054050\x052060\x051030\x05510
4\x05450\x05400\x058750\x055950\x054000\x051990\x05990\x05515
合计\x051950\x052900\x05—\x05—\x05—\x05—\x05—\x05—
表13 构件厂厂与订货企业之间的距离(公里)
订货企业
构件厂\x051\x052\x053\x054\x055
1\x0515\x0512\x0519\x0525\x059
2\x0512\x0518\x0515\x0518\x0517
3\x0517\x0510\x0514\x0511\x0515
4\x0516\x059\x0518\x0513\x0520
预制桩订货量\x05800\x05500\x051000\x05400\x05400
预制梁订货量\x05500\x05600\x05500\x05400\x05400
表14 构件厂加班生产单位成本表(元)
企业
产品\x051\x052\x053\x054
预应力梁\x0510000\x059700\x059500\x0510200
预制桩\x057500\x058000\x058400\x056500
生产任务分配问题,求建立运筹模型.包含目标函数和约束条件就行,有完整lingo语句更好.
用全局求解器去求 模型自己根据我写的lingo自己对应写就行了
model:
sets:
supply/1..4/:distance1;
demand/1..5/:;
goods/1..2/:tnum,weight,price;
link1(supply,demand):distance2;
link2(supply,goods):mproduce,cost,cementcost,steelcost,cost1;
link3(goods,demand):booking;
link4(supply,demand,goods):num;
endsets
data:
tnum=2400 3100;
price=12000 10000;
distance1=30 50 40 60;
weight=5 3;
mproduce=
200 1000
800 700
500 800
450 400;
cost=
8600 6000
8700 6500
8750 6400
8750 5950;
cementcost=
4000 2000
4050 2050
4050 2060
4000 1990;
steelcost=
1000 600
1050 510
1030 510
990 515;
distance2=
15 12 19 25 9
12 18 15 18 17
17 10 14 11 15
16 9 18 13 20;
booking=
500 600 500 400 400
800 500 1000 400 400;
cost1=
10000 7500
9700 8000
9500 8400
10200 6500;
enddata
max=@sum(goods:tnum*price)
-@sum(link2(i,j):cost(i,j)*@if(@sum(demand(k):num(i,k,j))#le#mproduce(i,j),@sum(demand(k):num(i,k,j)),mproduce(i,j)))
-@sum(link2(i,j):cost1(i,j)*@if(@sum(demand(k):num(i,k,j))#le#mproduce(i,j),0,@sum(demand(k):num(i,k,j))-mproduce(i,j)))
-0.2*@sum(supply(i):distance1(i)*@sum(goods(j):@sum(demand(k):num(i,k,j))*cementcost(i,j)/1000))
-0.3*@sum(supply(i):distance1(i)*@sum(goods(j):@sum(demand(k):num(i,k,j))*steelcost(i,j)/1000))
-@sum(link1(i,k):distance2(i,k)*@sum(goods(j):weight(j)*num(i,k,j)));
@sum(supply(i):@sum(goods(j):@sum(demand(k):num(i,k,j))*cementcost(i,j)))