У меня возникают некоторые проблемы с использованием пульпы модуля. Я хочу создать задачу смешанного целочисленного линейного программирования и записать ее в виде файла LP. После этого я решаю это с помощью cplex.
Проблема в том, что когда я добавляю вторые ограничения, целевая функция становится ложной (добавляется фиктивная функция), и только первое ограничение добавляется только с переменной решения x.
Это мой код: надеюсь, вы мне поможете!
bay_model = pulp.LpProblem('Bay Problem', pulp.LpMinimize)
y = pulp.LpVariable.dicts(name = "y",indexs = (flight, flight, gates),
lowBound = 0, upBound = 1,cat = pulp.LpInteger)
x = pulp.LpVariable.dicts(name = "x",indexs = (flight,gates),lowBound = 0,
upBound = 1, cat=pulp.LpInteger)
bay_model += pulp.lpSum([x[i][j]*g.distance[j] for i in flight for j in gates])
for i in flight:
bay_model += pulp.lpSum([x[i][j] for j in gates]) == 1
print "flight must be assigned" + str(i)
for k in gates:
bay_model += [y[i][j][k] * f.time_matrix[i][j] for i in flight for j in flight if f.time_matrix[i][j] == 1] <= g.capacity[k]
bay_model += [(2 * y[i][j][k] - x[i][k] - x[j][k]) for i in flight for j in flight] == 0
print "time constraint" + str(k)