作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 15:25:07
运筹学的一个问题的lingo模型求解答
(对下面问题用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的值班时间
运筹学的一个问题的lingo模型求解答
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=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))=1);
@for(day(j):@sum(person(i):x(i,j))=14);
end