为调度问题编写一个约束,以具有相同类型的连续课程

问题描述

生成时间表的工具我的模型如下:

for l in lessons:
 for r in rooms:
  for t in timeslots:
    tables[(l,r,t)] = model.NewBoolVar('table %s/%s/%s' % (l.subject,t))

我对星期五有一定的限制,应该有 2 节阿拉伯语课和 2 节法语课和 1 节数学课,而星期五只有 5 到 6 节课。

下图显示了某些组的良好结果及其应该如何(蓝色部分只是暂停而不是会话):

enter image description here

enter image description here

这对某些群体来说是糟糕的结果:

enter image description here

enter image description here

enter image description here

所以我想要一个约束,保证结果与前两个图像的结果相似,这意味着例如两个 Ar 课程不应彼此相距很远,并且如果 MATHS 介于两者之间,则 Fr 需要顺序相同的东西其中之一。

感谢任何帮助并提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)