问题标签 [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.
pyomo - 用 PYOMO 和 BONMIN 求解 MINLP
是否可以在 PYOMO 和 BONMIN 求解器的帮助下求解混合整数非线性问题 (MINLP)?
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 搭配。是不是这种搭配的标准方式来解读融合的方向,意思是“
谢谢。
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)
非常感谢您的时间和帮助!
pyomo - 抽象模型解析数据
我从 pyomo 开始,我有一些问题。
我创建了一个抽象模型和相应的数据文件。我想在脚本中解决它,以便以后使用变量的解决方案。我试图用下一个代码来做到这一点:
它完美地解决了它,但我对数据有一些问题。在我的模型中没有设置,所以数据是简单的常量,定义为:
但是,如果我使用这个数据文件 python 告诉我一个错误:
当我更改定义参数的数据文件时,例如:
我得到另一个错误:
最后,为了解决这个问题,我必须将常量定义为表(见下文),但我不明白前面的错误。
强调一下,如果我尝试通过以下方式解决问题:
在第一种情况下定义的数据(参数 qv := 2.832; ...)我没有任何问题,我得到了相同的解决方案。
谁能告诉我区别并解释我的错误?
谢谢!!
玛丽亚
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 步中添加的约束,但我做不到,所以我删除了第一个添加的约束并添加了下一个,这是一种有点糟糕的编码方式。
python-2.7 - 类似于 IndexedParam 或 IndexedVar 的 .get() 属性
我需要检查变量的索引是否存在,同时调用约束初始化,如果它不存在,我想将变量的值设置为 0。在 python 字典中,你可以这样做:dict.get('not -a-key',0). Pyomo 对象有类似的东西吗?
pyomo - 打印标量值
有人知道为什么标量类型参数值不可打印吗?我有以下代码:
当我运行它时,我得到以下结果:
任何人都可以帮助我真的需要能够打印标量进行调试。
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 清理了注册表。但是,问题仍然存在。
可以做什么?
pyomo - PYOMO:索引元组集
我想创建一个元组索引集,我的意思是如果我这样做:
LINEAS_DOWNSTREAM_BARRA[1]
我想看到[(1,3),(1,2),(1,4)]
.
我的代码是:
问题是:
ValueError: value=(1, 2) 是 set=LINEAS_DOWNSTREAM_BARRA 的元组,其中有 dimen=1
谢谢!!
pyomo - 在 Pyomo 中创建具有不同名称的相同集合
我正在尝试使用不同的名称创建多个相等的集合。我尝试了类似的方法:
我在操作章节 (4.2) 的 Pyomo 文档中看到了一些东西,但是当我运行程序时,我收到以下错误: