带纸浆的整数程序:延长时间约束

时间:2018-05-02 01:15:17

标签: pulp

我有一个整数程序,为使用约束的教师和学生安排“时段”:

for req in reqs:
    sked_model += sum([x[slot] for slot in slots if ('0', 'art', req[2]) == (slot[4], slot[1], slot[3])]) == 1, ""

我需要创建一个额外的约束,同时为同一位教师和学生安排紧随其后的时间段。其他信息:

  

'老虎机'代表(时间,课程,教师,学生,年级)的元组。   'reqs'也代表(年级,课程,学生)的元组

1 个答案:

答案 0 :(得分:0)

我会创建另一个0,1变量,表示将两个插槽分配给学生和教师的决定

即。为学生和老师提供第2和第3个插槽

x(2,3),s,t

然后添加反映该决定的约束 即

x2,s,t >= x(2,3),s,t x3,s,t >= x(2,3),s,t

看看它是怎么回事,如果这变得棘手,你可以看一下学生或老师定义的日子,并在你的表述中分配。

了解其他一些配方的https://pdfs.semanticscholar.org/1848/cee0d33b41b765427909297d69b8956be5f2.pdf