
运筹学课程设计(用lingo语言解决实际问题)
2、图书馆值班安排问题某大学图书馆聘用两名大学生(代号A1,A2)和两名研究生(代号B1,B2)值班。大学生值班报酬为10元/小时,研究生12元/小时。已知每人每天最多可...
2、图书馆值班安排问题
某大学图书馆聘用两名大学生(代号A1,A2)和两名研究生(代号B1,B2)值班。
大学生值班报酬为10元/小时,研究生12元/小时。
已知每人每天最多可安排的值班时间见表。
值班时间
学生代号 每天最多可安排的值班时间(h)
周一 周二 周三 周四 周五 周六 周日
A1 5 8 6 0 7 4 8
A2 5 6 0 6 0 8 5
B1 4 4 3 8 5 8 0
B2 5 3 6 2 4 2 8
该图书馆开放时间为上午9:00至晚上8:00,开放时间内须有且仅须一名学生值班,规定大学生每周值班不少于12小时,研究生每周不少于10小时,每名学生每周值班不超过5次,每次值班不少于2小时,每天安排值班的学生不超过3人,且其中必须有一名研究生。
试为该实验室安排一张人员的值班表,使总支付的报酬为最少。 展开
某大学图书馆聘用两名大学生(代号A1,A2)和两名研究生(代号B1,B2)值班。
大学生值班报酬为10元/小时,研究生12元/小时。
已知每人每天最多可安排的值班时间见表。
值班时间
学生代号 每天最多可安排的值班时间(h)
周一 周二 周三 周四 周五 周六 周日
A1 5 8 6 0 7 4 8
A2 5 6 0 6 0 8 5
B1 4 4 3 8 5 8 0
B2 5 3 6 2 4 2 8
该图书馆开放时间为上午9:00至晚上8:00,开放时间内须有且仅须一名学生值班,规定大学生每周值班不少于12小时,研究生每周不少于10小时,每名学生每周值班不超过5次,每次值班不少于2小时,每天安排值班的学生不超过3人,且其中必须有一名研究生。
试为该实验室安排一张人员的值班表,使总支付的报酬为最少。 展开
展开全部
sets:
xuesheng/1..4/:;
week/1..7/:;
worktime(xuesheng,week):wtime,x,y;
endsets
data:
wtime = 5 8 6 0 7 4 8
5 6 0 6 0 8 5
4 4 3 8 5 8 0
5 3 6 2 4 2 8;
enddata
min = 10 * @sum(worktime(i,j) | i #LT# 3:x(i,j)) + 12 * @sum(worktime(i,j) | i #GT# 2:x(i,j)) ;
!两名大学生每周值班不少于12小时;
@for(xuesheng(i) | i #LT# 3: @sum(week(j):x(i,j)) >= 12);
!两名研究生每周值班不少于10小时;
@for(xuesheng(i) | i #GT# 2: @sum(week(j):x(i,j)) >= 10);
@for(worktime: y = @if(x #GT# 0,1,0));
!每次值班不少于2小时;
@for(worktime: x >= y * 2);
!每名学生每周值班不超过5次;
@for(xuesheng(i):@sum(week(j):y(i,j)) <= 5);
!每天安排值班的学生不超过3人;
@for(week(j):@sum(xuesheng(i):y(i,j)) <= 3);
!每天安排值班的学生中必须有一名研究生;
@for(week(j):@sum(xuesheng(i) | i #GT# 2:y(i,j)) >= 1);
!该图书馆开放时间为上午9:00至晚上8:00,开放时间内须有且仅须一名学生值班;
@for(week(j):@sum(xuesheng(i):x(i,j)) >= 11);
@for(worktime:x <= wtime);
@for(worktime:@gin(x));
计算结果:
最少报酬:816元
5 3 6 0 7 0 7
4 6 0 6 0 8 2
0 2 2 3 2 3 0
2 0 3 2 2 0 2
xuesheng/1..4/:;
week/1..7/:;
worktime(xuesheng,week):wtime,x,y;
endsets
data:
wtime = 5 8 6 0 7 4 8
5 6 0 6 0 8 5
4 4 3 8 5 8 0
5 3 6 2 4 2 8;
enddata
min = 10 * @sum(worktime(i,j) | i #LT# 3:x(i,j)) + 12 * @sum(worktime(i,j) | i #GT# 2:x(i,j)) ;
!两名大学生每周值班不少于12小时;
@for(xuesheng(i) | i #LT# 3: @sum(week(j):x(i,j)) >= 12);
!两名研究生每周值班不少于10小时;
@for(xuesheng(i) | i #GT# 2: @sum(week(j):x(i,j)) >= 10);
@for(worktime: y = @if(x #GT# 0,1,0));
!每次值班不少于2小时;
@for(worktime: x >= y * 2);
!每名学生每周值班不超过5次;
@for(xuesheng(i):@sum(week(j):y(i,j)) <= 5);
!每天安排值班的学生不超过3人;
@for(week(j):@sum(xuesheng(i):y(i,j)) <= 3);
!每天安排值班的学生中必须有一名研究生;
@for(week(j):@sum(xuesheng(i) | i #GT# 2:y(i,j)) >= 1);
!该图书馆开放时间为上午9:00至晚上8:00,开放时间内须有且仅须一名学生值班;
@for(week(j):@sum(xuesheng(i):x(i,j)) >= 11);
@for(worktime:x <= wtime);
@for(worktime:@gin(x));
计算结果:
最少报酬:816元
5 3 6 0 7 0 7
4 6 0 6 0 8 2
0 2 2 3 2 3 0
2 0 3 2 2 0 2
追问
请问,你写的这些数据里面一些字母都代表什么意思?LT GT x y x(i,j) 这些都是代表什么的?急求,谢谢。
追答
LT:小于
GT:大于
x(i,j):第i个学生星期j值班的时间
y(i,j):第i个学生星期j是否值班,1要值班,0不值班
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-09-30 广告
上海艾羽信息科技有限公司是一家以CAE软件销售、技术咨询及服务,仿真咨询及规划布局为一体的高科技公司。作为ANSYS的合作伙伴,艾羽致力于将ANSYS推出的产品,通过业界性能颇佳、丰富的工程仿真软件产品组合帮助客户解决复杂的仿真难题。力求与...
点击进入详情页
本回答由VSH艾羽提供
展开全部
model:
sets:
student/1..4/:pay,time;
day/1..7/;
arrange(student,day):t,x,y;
endsets
data:
pay=10 10 12 12;
time=12 12 10 10;
enddata
min=@sum(arrange(i,j):x(i,j)*pay(i));
@for(student(i):@sum(day(j):x(i,j))>=time(i));
@for(day(j):@sum(student(i):x(i,j))=11);
@for(arrange:y=@if(x#gt#1,1,0));
@for(student(i):@sum(day(j):y(i,j))<=5);
@for(arrange:x>=y*2);
@for(day(j):@sum(student(i):y(i,j))<=3);
@for(day(j):@sum(student(i)|i#ge#3:y(i,j))>=1);
end
sets:
student/1..4/:pay,time;
day/1..7/;
arrange(student,day):t,x,y;
endsets
data:
pay=10 10 12 12;
time=12 12 10 10;
enddata
min=@sum(arrange(i,j):x(i,j)*pay(i));
@for(student(i):@sum(day(j):x(i,j))>=time(i));
@for(day(j):@sum(student(i):x(i,j))=11);
@for(arrange:y=@if(x#gt#1,1,0));
@for(student(i):@sum(day(j):y(i,j))<=5);
@for(arrange:x>=y*2);
@for(day(j):@sum(student(i):y(i,j))<=3);
@for(day(j):@sum(student(i)|i#ge#3:y(i,j))>=1);
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那个是什么语言
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询