首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于线性规划,有没有一种更快的方法来定义变量呢?

对于线性规划,有没有一种更快的方法来定义变量呢?
EN

Stack Overflow用户
提问于 2021-08-19 00:37:58
回答 1查看 51关注 0票数 3

我正在尝试建立一个涉及3个工厂和4个配送中心的线性规划问题。目标是最小化成本,但每个工厂配送中心组合都有不同的相关成本。

有没有更好的方法来创建变量,不管是用纸浆还是其他库,这样我就不用写那么多了。目前我的是这样的。

代码语言:javascript
复制
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')  

它可以工作,但我讨厌每次都要创建一个这样的变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-19 02:21:00

如何对行(工厂)和列(配送中心)使用字符串插值和几个循环:

代码语言:javascript
复制
from pulp import *

def make_var(i, j):
    return LpVariable(f"plant{i}_center{j}", lowBound=0, cat="Integer")

n_plants = 3
n_dist_centers = 4
prob = LpProblem("transportation", LpMinimize)
plants = [
    [make_var(i, j) for j in range(n_dist_centers)] 
    for i in range(n_plants)
]

for row in plants:
    print(row)

我对它进行了零索引,这样您就可以使用plants[plant_number][dist_center_number]访问特定的plant,但是如果您需要使用range(1, n_plants + 1),您应该能够轻松地对它进行1索引。

请参阅A Transportation Problem,它提供了类似的模式,您可以尝试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68840732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档