【发布时间】:2020-09-05 01:28:57
【问题描述】:
我正在尝试用纸浆解决分配问题。代码的基本部分如下:
set_I = range(1, numberOfPoints)
set_J = range(1, numberOfCentroids)
tau = 0.15
Q = 15
# decision variable
x_vars = LpVariable.dicts(name="x_vars", indexs=(set_I, set_J), lowBound=0, upBound=1, cat=LpInteger)
# model name
prob = LpProblem("MIP_Model", LpMinimize)
# constraints
for i in set_I:
prob += lpSum(x_vars[i][j] for j in set_J) == 1, ""
for j in set_J:
prob += lpSum(x_vars[i][j] for i in set_I) >= 1, ""
for j in set_J:
prob += lpSum(x_vars[i][j] for i in set_I) <= Q*(1-tau), ""
for j in set_J:
prob += lpSum(x_vars[i][j] for i in set_I) >= Q*(1+tau), ""
# objective
prob += lpSum(d[i, j]*x_vars[i][j] for i in set_I for j in set_J)
prob.solve()
结果是这样的:
问题模型有 31 行 76 列和 304 个元素
Coin0008I 模型读取错误 0 次
问题不可行 - 0.01 秒
PrintingOptions 的选项由 normal 改为 all
但是,该问题并非不可行,并且可以通过其他求解器获得结果。
不知道是不是语法错误,是不是这个引起的问题?
我在下一个链接中问了一个类似的问题:
【问题讨论】: