我试图建立一个线性规划问题,涉及3个工厂和4个配送中心。目标是最小化成本,但每个工厂配送中心组合的相关成本不同
有没有更好的方法用纸浆或其他库来创建变量,这样我就不用写那么多了。 现在我的看起来像这样
from pulp import *
#define the problem
prob=LpProblem('transportation', LpMinimize)
#create Variables
plant1_center1 = LpVariable('plant1_center1', lowBound=0, cat='Integer')
plant1_center2 = LpVariable('plant1_center2', lowBound=0, cat='Integer')
plant1_center3 = LpVariable('plant1_center3', lowBound=0, cat='Integer')
plant1_center4 = LpVariable('plant1_center4', lowBound=0, cat='Integer')
plant2_center1 = LpVariable('plant2_center1', lowBound=0, cat='Integer')
plant2_center2 = LpVariable('plant2_center2', lowBound=0, cat='Integer')
plant2_center3 = LpVariable('plant2_center3', lowBound=0, cat='Integer')
plant2_center4 = LpVariable('plant2_center4', lowBound=0, cat='Integer')
plant3_center1 = LpVariable('plant3_center1', lowBound=0, cat='Integer')
plant3_center2 = LpVariable('plant3_center2', lowBound=0, cat='Integer')
plant3_center3 = LpVariable('plant3_center3', lowBound=0, cat='Integer')
plant3_center4 = LpVariable('plant3_center4', lowBound=0, cat='Integer')
它可以工作,但我讨厌每次都要创建这样的变量
对行(工厂)和列(配送中心)使用字符串插值和几个循环如何:
我已经为它建立了零索引,因此您可以使用
plants[plant_number][dist_center_number]
访问特定的plant
,但是如果需要使用range(1, n_plants + 1)
,您应该能够轻松地对它进行1索引请参阅A Transportation Problem,它提供了类似的模式,您可以尝试
相关问题 更多 >
编程相关推荐