gpt4 book ai didi

python - 创建具有递增整数的变量

转载 作者:行者123 更新时间:2023-12-01 08:08:59 28 4
gpt4 key购买 nike

我想创建一个包含 1000 个基本 pyomo 变量的 pyomo 模型。我知道像下面的脚本那样这样做是一个坏主意。而且它也不起作用。我希望您理解这个想法并能够帮助我。

import pyomo.core as pyomo

def create_model_a():
m = pyomo.ConcreteModel()

for i in range(1000):
m.var_i = pyomo.Var(within=pyomo.NonNegativeReals)

return m

所以基本上我没有将 m.var_0 = ... 写入 m.var_999 = ...,而是使用了 for 循环,当然这样它就可以了不起作用,但想法是创建 1000 个变量,而无需硬编码 m.var_0m.var_1m.var_2 等直到m.var_999我该怎么做?

我想创建这个不是为了建模任何东西,但我想在这个函数上使用内存配置文件来了解具有 1000 个变量的 pyomo 模型需要多少内存。

Ps:我尝试了以下操作,但它不起作用(当我转换 m.pprint() 时看不到任何声明):

def create_model_a():
m = pyomo.ConcreteModel()
m.var = {}
for i in range(1000):
m.var[i] = pyomo.Var(within=pyomo.NonNegativeReals)

return m

PS2:也检查了 How to increment variable names/Is this a bad ideaHow do I create a variable number of variables? ...遗憾的是没有帮助

最佳答案

如果你真的想了解拥有许多 Pyomo 变量对内存的影响,你应该将拥有许多单例变量的情况与拥有一个大索引变量的情况进行比较。两者的示例如下:

# Make a large indexed variable
m = ConcreteModel()
m.s = RangeSet(1000)
m.v = Var(m.s, within=NonNegativeReals)

# Make many singleton variables
m = ConcreteModel()
for i in range(1000):
name = 'var_' + str(i)
m.add_component(name, Var(within=NonNegativeReals))

关于python - 创建具有递增整数的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55381023/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com