运筹学的一个问题的lingo模型求解答

(对下面问题用lingo求解)某大学计算机实验室聘用4名大学生(代号1、2、3、4)和两名研究生(代号5、6)值班答疑。已知每人从周一到周五最多可安排的值班时间及每人每小... (对下面问题用lingo求解)某大学计算机实验室聘用4名大学生(代号1、2、3、4)和两名研究生(代号5、6)值班答疑。已知每人从周一到周五最多可安排的值班时间及每人每小时值班报酬如下表,该实验室开放时间为上午8点至晚10点,开放时间内须且仅须一人值班,规定每名大学生每周值班不少于8h,研究生不少于7h,每名学生每周值班不超过3次,每次值班不少于2小时,每天安排值班的学生不超过3人,期中一定有一名研究生建立使该实验室总支付报酬为最小的数学模型
学生代号 报酬元/h 每天最多可安排的值班时间,周一 周二 周三 周四 周五
1 10 6 0 6 0 7
2 10 0 6 0 6 0
3 9.9 4 8 3 0 5
4 9.8 5 5 6 0 4
5 10. 8 3 0 4 8 0
6 11.3 0 6 0 6 3
设:xij为学生i在周j的值班时间
展开
 我来答
icucuio
推荐于2016-12-01 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:125万
展开全部
model:
sets:
week/1..5/;
stu/1..6/:pay;
link(stu,week):cap,T,X;
endsets
data:
cap=
6 0 6 0 7
0 6 0 6 0
4 8 3 0 5
5 5 6 0 4
3 0 4 8 0
0 6 0 6 3;
pay=10 10 9.9 9.8 10 11.3;
enddata
min=@sum(link(i,j):T(i,j)*X(i,j)*pay(i));
!工作约束条件;
@for(link:@bin(X));
!每天时间满足14小时;
@for(week(j):
@sum(link(i,j):T(i,j)*X(i,j))=14);
!本科生工作时间不少于8小时;
@for( stu(i)|i#lt#5:
@sum(link(i,j):T(i,j)*X(i,j))>=8);
!研究生工作时间不少于7小时;
@for( stu(i)|i#ge#5:
@sum(link(i,j):T(i,j)*X(i,j))>=7);

!每天安排的人不超过3人;
@for(week(j):
@sum(link(i,j):X(i,j))<=3);
!每周值班次数不超过3次;
@for(stu(i):
@sum(link(i,j):X(i,j))<=3);
!每次最大工作时间限制;
@for(link(i,j):T(i,j)<=cap(i,j));
@for(link(i,j):T(i,j)>=0);
!每天至少一名研究生;
@for(week(j):
@sum(link(i,j)|i#ge#5:X(i,j))>=1);
!每次工作最少2个小时;
!@for(link(i,j):T(i,j)*X(i,j)>=2);

Local optimal solution found.
Objective value: 705.6000
Objective bound: 705.6000
Infeasibilities: 0.6825536E-08
Extended solver steps: 34
Total solver iterations: 3635
Model Class: MINLP
Total variables: 60
Nonlinear variables: 60
Integer variables: 30
Total constraints: 88
Nonlinear constraints: 12
Total nonzeros: 310
Nonlinear nonzeros: 180
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
wswhk
2012-06-25 · TA获得超过7.1万个赞
知道顶级答主
回答量:4.6万
采纳率:68%
帮助的人:7.4亿
展开全部
model:
sets:
person/1..6/:a;
day/1..5/;
arrange(person,day):y,x,c;
endsets
data:
a=10 10 9.9 9.8 10 11.3;
c=
6 0 6 0 7
0 6 0 6 0
4 8 3 0 5
5 5 6 0 4
3 0 4 8 0
0 6 0 6 3;
enddata
min=@sum(arrange(i,j):a(i)*x(i,j));
@for(arrange:y=@if(x#ge#2,1,0);x<=c;x>=2*y);
@for(person(i)|i#le#4:@sum(day(j):x(i,j))>=8);
@for(person(i)|i#ge#5:@sum(day(j):x(i,j))>=7);
@for(day(j):@sum(person(i):y(i,j))<=3);
@for(day(j):@sum(person(i)|i#ge#5:y(i,j))>=1);
@for(day(j):@sum(person(i):x(i,j))=14);
end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式