Я работаю с SolverStudio (надстройка Excel) и PuLP (язык оптимизации на основе Python), чтобы создать инструмент, который назначает студентов рабочим местам.Печать индексов 3-мерной переменной в PuLP для планирования
Это переменная, индексы Я хочу напечатать:
# 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]
является пустой 2d параметр, определенный в SolverStudio и Name[s]
содержит имена студентов.
Я поместил последовательность кода в разные положения модели. Это не имеет значения, будь то до или после инструкции prob.solve()
.
В настоящее время Schedule[w,d]
полностью заполняется именем последнего ученика в списке студентов.
Я заметил, что предложение if полностью игнорируется. Я могу удалить его и создать тот же результат.
Есть ли другой способ рассказать Python «для каждого рабочего места и дня, распечатать назначенного студента»?
спасибо, что заблаговременно!