别处看到个有点意思的问题
prolog吧
全部回复
仅看楼主
level 13
丁兔 楼主
一个班有9个人,分别是班长、甲、乙、丙、丁、孕妇、赵、钱、孙。
班次有4种:晨班、日班、中班和休息,并且晨班只能接晨班、日班和休息;日班只能接日班、中班和休息;中班只能接中班和休息;休息可以接晨班、日班、中班和休息。同一人连续排晨班最多3天。
9人中,班长只能排日班和休息 , 孕只能排日班、中班和休息,其他几人排晨班、日班、中班、休息都可。
现在假设一个月31天,每人上23-26天班,并且保证每天晨班有2人,中班有2人,日班2-3人并且2人的情况尽可能少。且甲乙丙丁四人不能同班(既每天晨班日班中班休息甲乙丙丁一人一个)。
求:在此条件下,甲、乙、丙、丁、赵、钱、孙这7个人晨日中班尽可能平均的排班方式。
2018年01月22日 16点01分 1
level 10
大神,能不能帮我看到题?
2018年03月22日 08点03分 2
level 13
丁兔 楼主
% 值班员
worker(h).
worker(a).
worker(b).
worker(c).
worker(d).
worker(m).
worker(x).
worker(y).
worker(z).
% 轮班班次
shift(morning). %晨班
shift(forenoon). %上午班
shift(noon). %中班
shift(rest). %休息
% 次日轮班变动
morrow_shift(morning, morning).
morrow_shift(morning, forenoon).
morrow_shift(morning, rest).
morrow_shift(forenoon, forenoon).
morrow_shift(forenoon, noon).
morrow_shift(forenoon, rest).
morrow_shift(noon, noon).
morrow_shift(noon, rest).
morrow_shift(rest, morning).
morrow_shift(rest, forenoon).
morrow_shift(rest, noon).
morrow_shift(rest, rest).
2018年12月09日 14点12分 3
1