问题标签 [pyomo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3244 浏览

pyomo - 用 PYOMO 和 BONMIN 求解 MINLP

是否可以在 PYOMO 和 BONMIN 求解器的帮助下求解混合整数非线性问题 (MINLP)?

0 投票
1 回答
112 浏览

differential-equations - pyomo dae 微分方程正在“追溯”应用 ode

很抱歉标题中的单词选择很尴尬。

问题是:我有一个具体的模型,它有一个连续的集合变量来表示时间和一个非常简单的 ode,其中一个变量的导数,我们称之为 dadt,等于其他两个不依赖于的变量 b 和 c 之间的差a (换句话说,a 只是 b 和 c 的差乘以时间)。不幸的是,该程序似乎向后应用了积分,这意味着如果在 time=20s 时 dadt 是 20,那么 a 在 0s 和 20s 之间增加了 20*dadt。这样,微分方程约束并不真正适用于 time=0s,因此使优化变得无用。是这样打算的还是我在此过程中犯了一个错误?我应该添加 Lagrange-Radau 搭配。是不是这种搭配的标准方式来解读融合的方向,意思是“

谢谢。

0 投票
1 回答
1874 浏览

pyomo - 在 Pyomo 中,如何根据另一个参数编写具有不同时间段的约束?

我正在研究采购优化模型,以下是一些相关输入:

设置:

  • model.b = Set(initialize=Brands, doc='Brands')
  • model.s = Set(initialize=Suppliers, doc='Suppliers')
  • model.t = Set(initialize=Time, doc='Time in days')

参数:

  • model.lt = Param(model.s, initialize=LeadTime, doc='以天为单位从供应商处采购的提前期')

变量:

  • model.q = Var(model.b, model.t, model.s, domain=NonNegativeIntegers, bounds=(0.0,None), doc='每个品牌(b)的接收数量,时间(t),表格供应商(s)。')
  • model.pr = Var(model.b, model.t, model.s, domain=NonNegativeIntegers, bounds=(0.0,None), doc='Purshase 每个品牌的订单数量(b), 在时间(t), form供应商。')

我正在努力编写一个约束,使从时间 (t) 开始的 (LT) 天之前订购的数量 = 现在在时间 (t) 收到的数量,其中 LT 是每个供应商所需的交货时间。这就是我想象的约束,但我不知道如何写它:

在时间 (t - 提前期) 订购的数量 = 在时间 (t) 收到的数量,对于所有时间 (t)、品牌 (b) 和供应商 (s)

非常感谢您的时间和帮助!

0 投票
0 回答
433 浏览

pyomo - 抽象模型解析数据

我从 pyomo 开始,我有一些问题。

我创建了一个抽象模型和相应的数据文件。我想在脚本中解决它,以便以后使用变量的解决方案。我试图用下一个代码来做到这一点:

它完美地解决了它,但我对数据有一些问题。在我的模型中没有设置,所以数据是简单的常量,定义为:

但是,如果我使用这个数据文件 python 告诉我一个错误:

当我更改定义参数的数据文件时,例如:

我得到另一个错误:

最后,为了解决这个问题,我必须将常量定义为表(见下文),但我不明白前面的错误。

强调一下,如果我尝试通过以下方式解决问题:

在第一种情况下定义的数据(参数 qv := 2.832; ...)我没有任何问题,我得到了相同的解决方案。

谁能告诉我区别并解释我的错误?

谢谢!!

玛丽亚

0 投票
1 回答
1176 浏览

python - 在 Pyomo 中即时更新 ConstraintList

我正在编写一个折弯机分解程序。python中的算法与pyomo。我的问题是,正如您在第 1 步中看到的那样,我需要找到一种方法以某种方式更新添加的约束,而不是删除并添加新约束到子问题约束列表。

有什么优雅的方法吗?

就像是

s.Cut_Defn[1].update(sx == mxvalue)

或者

s.Cut_Defn[1].pop

s.Cut_Defn.add(sx == mxvalue)

???

冰激凌

Ps:在第0步,我在子问题约束列表中添加了一个约束。在第 1 步,我想实际更新第 0 步中添加的约束,但我做不到,所以我删除了第一个添加的约束并添加了下一个,这是一种有点糟糕的编码方式。

0 投票
1 回答
265 浏览

python-2.7 - 类似于 IndexedParam 或 IndexedVar 的 .get() 属性

我需要检查变量的索引是否存在,同时调用约束初始化,如果它不存在,我想将变量的值设置为 0。在 python 字典中,你可以这样做:dict.get('not -a-key',0). Pyomo 对象有类似的东西吗?

0 投票
1 回答
94 浏览

pyomo - 打印标量值

有人知道为什么标量类型参数值不可打印吗?我有以下代码:

当我运行它时,我得到以下结果:

任何人都可以帮助我真的需要能够打印标量进行调试。

0 投票
0 回答
194 浏览

python - Pyomo DAE 优化 - IPOPT 不可重现的结果

我最近开始在使用 Pyomo 优化参数估计的 DAE 问题时遇到一些问题。

我在 Windows 10 中使用 Python 2.7.12 和 Anaconda2 4.1.1 并作为求解器 Ipopt 3.11.1

每次我运行我的脚本时,我都会得到不同的估计值,并且 Ipopt 完成优化时的迭代次数在每次运行和其他运行之间也不同。当我安装 ArcGis 时问题就开始了,我猜它对我之前安装的 Python 版本进行了一些更改。

我完全摆脱了 ArcGis,并重新安装了 Python、Anaconda 和 Ipopt 3 次,使用 Ccleaner 清理了注册表。但是,问题仍然存在。

可以做什么?

0 投票
1 回答
489 浏览

pyomo - PYOMO:索引元组集

我想创建一个元组索引集,我的意思是如果我这样做: LINEAS_DOWNSTREAM_BARRA[1]我想看到[(1,3),(1,2),(1,4)].

我的代码是:

问题是:

ValueError: value=(1, 2) 是 set=LINEAS_DOWNSTREAM_BARRA 的元组,其中有 dimen=1

谢谢!!

0 投票
1 回答
159 浏览

pyomo - 在 Pyomo 中创建具有不同名称的相同集合

我正在尝试使用不同的名称创建多个相等的集合。我尝试了类似的方法:

我在操作章节 (4.2) 的 Pyomo 文档中看到了一些东西,但是当我运行程序时,我收到以下错误: