Python-Pulp没有添加所有变量约束,并且忘记了目标函数

2024-09-30 12:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用模块纸浆时遇到了一些问题。我想创建一个混合整数线性规划问题,并把它写成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)

Tags: nameinformodeltimepulpcatflight
1条回答
网友
1楼 · 发布于 2024-09-30 12:29:35

我不认为列表理解[x[I]对于I in…]可以添加到bay峎模型中。 如果希望约束保留在列表中的每个元素上,可以预先定义元素:

for i in flights:
  for j in flights:
    if f.time_matrix[i][j] == 1:
      for k in gates:
        bay_model += y[i][j][k] * f.time_matrix[i][j] <= g.capacity[k]

相关问题 更多 >

    热门问题