数学建模上机习题

背景与问题

组装某产品有六道工序,由一条装配线完成。装配线由一系列工作站组成,被装配的产品在装配线上流动,每个工作站都要完成一道或几道工序,这些工序按先后次序在各工作站上完成。关于这些工序有如下的数据:
在这里插入图片描述
另外工艺流程特别要求,在任一给定的工作站上,不管完成哪些工序,可用的总时间不能超过10分钟。如何将这些工序分配给各工作站,以使所需的工作站数为最少?

问题分析

首先是对于决策变量的定义:

在这里插入图片描述
可以知道当第一个工作站完成工序1,2,3时,工序4,5,6分别完成,所以工作站的个数不会超过4个。定义变量如下:
在这里插入图片描述

目标函数如下:
min = w1 + w2 + w3 + w4
再考虑该模型的约束条件:
(1)每道工序均隶属于一个工作站,且每一工序都必须完成,故有以下六个约束:
在这里插入图片描述
(2)在任一工作站上完成隶属工序所用的时间不能超过10分钟,故有以下四个约束:
在这里插入图片描述
(3)最后,我们再考虑各道工序所受的先后次序约束的条件。
先考察工序2与工序3的关系,因工序2在工序3之前运行,故若工序3隶属于工作站4,则工序2无论属于那个工作站均可;若工序3隶属于工作站3,则工序2可属于工作站1或2或3;此时,变量在这里插入图片描述应满足的约束条件为:在这里插入图片描述

同理,若工序3隶属于工作站2或1,则变量在这里插入图片描述应满足的约束条件为:
在这里插入图片描述
在这里插入图片描述
同理,根据其它工序的优先关系,可仿此法给出其相应的约束条件,由上图知,六个工序之间有五个优先关系,故这类约束条件共有15个。
另外,在最优解中,若有一个工作站在这里插入图片描述不用(即在这里插入图片描述=0),则隶属于该工作站的全部必须为0,于是,有以下四个约束条件:
在这里插入图片描述

模型建立

由上面的分析建立该问题的0-1数学规划模型,模型如下:

该问题的目标函数为:
min z = w1 + w2 +w3 +w4
约束条件为:
在这里插入图片描述

模型求解

利用LINGO进行求解

model:
sets:
process/1..6/;
workstation/1..4/;
link(process,workstation):x;
endsets
min = w1 + w2 +w3 +w4;
@ for(process(i): x(i,1)+x(i,2)+x(i,3)+x(i,4)=1);
@ for(workstation(j): 3*x(1,j)+5*x(2,j)+2*x(3,j)+6*x(4,j)+8*x(5,j)+3*x(6,j)<=10);
x(2,1)+x(2,2)+x(2,3)>=x(3,3);
x(2,1)+x(2,2)>=x(3,2);
x(2,1)>=x(3,1);
x(2,1)+x(2,2)+x(2,3)>=x(5,3);
x(2,1)+x(2,2)>=x(5,2);
x(2,1)>=x(5,1);
x(1,1)+x(1,2)+x(1,3)>=x(4,3);
x(1,1)+x(1,2)>=x(4,2);
x(1,1)>=x(4,1);
x(3,1)+x(3,2)+x(3,3)>=x(4,3);
x(3,1)+x(3,2)>=x(4,2);
x(3,1)>=x(4,1);
x(4,1)+x(4,2)+x(4,3)>=x(6,3);
x(4,1)+x(4,2)>=x(6,2);
x(4,1)>=x(6,1);
x(1,1)+x(2,1)+x(3,1)+x(4,1)+x(5,1)+x(6,1)<= 6*w1;
x(1,2)+x(2,2)+x(3,2)+x(4,2)+x(5,2)+x(6,2)<= 6*w2;
x(1,3)+x(2,3)+x(3,3)+x(4,3)+x(5,3)+x(6,3)<= 6*w3;
x(1,4)+x(2,4)+x(3,4)+x(4,4)+x(5,4)+x(6,4)<= 6*w4;
@ for(link: @ bin(x));
@ bin(w1);
@ bin(w2);
@ bin(w3);  @ bin(w4);
End

结果:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
求解得到的结果是工序1,2,3由工作站1完成,工序4,6由工作站3完成,工序5由工作站4完成,即最少所需工作站为3个工作站。

评注

最少所需3个工作站的解释唯一的,但是分配给每个工作站的工序不是唯一的,可能有1,2分配给工作站1;3,5分配给工作站2;
4,6分配给工作站3,这就可能需要考虑到分配后工序循环的问题,可能就是需要考虑多目标规划的问题了。

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值