纸浆三维变量的印刷指标调度



我正在使用SolverStudio (Excel插件)和PuLP(基于python的优化语言)创建一个将学生分配到工作场所的工具。

这是我要打印其索引的变量:

# Decision variable, =1 if student s is assigned to working place w on day d; 0 otherwise Assignment = LpVariable.dicts("Assignment",(Students,Working_places,Days),0,1,LpBinary)

对于每个工作地点和日期,我想输出分配到那里的学生的名字,以便创建一个时间表。

我目前的方法是:

for w in Working_places:
    for d in Days:
        for s in Students:
            if Assignment[s][w][d] == 1:
                Schedule[w,d] = Name[s]

Schedule[w,d]是在SolverStudio中定义的一个空2d参数,Name[s]包含学生的名字。

我将代码序列放置在模型的不同位置。无论在prob.solve()语句之前还是之后,它都没有区别。

当前,Schedule[w,d]完全被学生列表中最后一个学生的名字填满。

我注意到if-子句完全被忽略了。我可以删除它,并生成相同的输出。

是否有一种不同的方式告诉Python"对于每个工作地点和日期,打印指定的学生"?

提前非常感谢!

同时我自己也发现了这个错误:

for w in Working_places: for d in Days: for s in Students: if Assignment[s][w][d].varValue == 1: Schedule[w,d] = Name[s]

相关内容

  • 没有找到相关文章

最新更新