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

运筹学的一个问题的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的值班时间
小花鸟 1年前 已收到1个回答 举报

laiba1 幼苗

共回答了17个问题采纳率:82.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=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

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.013 s. - webmaster@yulucn.com