问一下,下面解法中的
@for(days(J): @sum(days(I) | I #le# 5: start(@wrap(J+I+2,7))) >= required(J)); 是什么意思? 谢谢
@sum(days(I) | I #le# 5:
start(@wrap(J+I+2,7))) >= required(J));
是什么意思?
谢谢
例4.13 职员时序安排模型 一项工作一周7天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。
model:
sets:
days/mon..sun/: required,start;
endsets
data:
!每天所需的最少职员数;
required = 20 16 13 16 19 14 12;
enddata
!最小化每周所需职员数;
min=@sum(days: start);
@for(days(J):
@sum(days(I) | I #le# 5:
start(@wrap(J+I+2,7))) >= required(J));
end
计算的部分结果为
Global optimal solution found at iteration: 0
Objective value: 22.00000
Variable Value Reduced Cost
REQUIRED( MON) 20.00000 0.000000
REQUIRED( TUE) 16.00000 0.000000
REQUIRED( WED) 13.00000 0.000000
REQUIRED( THU) 16.00000 0.000000
REQUIRED( FRI) 19.00000 0.000000
REQUIRED( SAT) 14.00000 0.000000
REQUIRED( SUN) 12.00000 0.000000
START( MON) 8.000000 0.000000
START( TUE) 2.000000 0.000000
START( WED) 0.000000 0.3333333
START( THU) 6.000000 0.000000
START( FRI) 3.000000 0.000000
START( SAT) 3.000000 0.000000
START( SUN) 0.000000 0.000000
从而解决方案是:每周最少需要22个职员,周一安排8人,周二安排2人,周三无需安排人,周四安排6人,周五和周六都安排3人,周日无需安排人。
这表示下面的7个约束条件:
[attach]3340[/attach]
11.gif.gif (1.54 KB, 下载次数: 90)
11.gif
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |