问题标签 [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 回答
339 浏览

python - 时间序列缺失值的 ODE 系统中 Pyomo 的参数估计

我有一个由 7 个方程组成的 ODE 系统,用于解释以下形式的一组特定微生物动力学:

其中是涉及的不同化学和微生物物种(甚至是化合物的子指数),是产率系数,是假反应:

我正在使用 Pyomo 来估计我所有的未知参数,这些参数基本上是所有的屈服系数和动力学常数(总共 15 个)。

当与每个动态变量的完整实验时间序列一起使用时,以下代码可以完美运行:

但是,我试图在另一个实验数据中运行相同的估计例程,这些数据在一些动态变量的一个或最多两个时间序列的末尾有缺失值。

换句话说,这些完整的实验数据看起来像(在 .dat 文件中):

虽然我的一个不完整的数据集可能具有完整的所有时间序列,但是像这样的一个:

我知道人们可以指定 Pyomo 对不同的时间序列取某些变量的导数。但是,在尝试之后,它没有工作,我猜那是因为它们是耦合的ODE。所以基本上我的问题是是否有办法在 Pyomo 中克服这个问题。

提前致谢。

0 投票
2 回答
1503 浏览

python - 如何避免在 pyomo “检索组件 Pd [1] 时出错:组件尚未构建”中出现此错误。

我是pyomo的新手。我正在尝试运行一个简单的最大化问题,但我不断收到此错误消息:Error retrieving component Pd[1]: The component has not been constructed.. 只有最后 5 个约束给了我这个问题,前三个约束工作正常。我在 IPython 控制台上使用这个命令来运行它!pyomo --solver-manager=neos --solver=cbc battpyomo.py battpyomo.dat

在数据文件上,我只定义了集合 T 和参数 p。

设置 T := 1 2 3 4 5 6 7 8 9;

参数:p:=
1 51.12
2 48.79
3 39.56
4 36.27
5 36.16
6 34.90
7 33.33
8 21.16
9 24.42;

这是 battbyomo.py 的代码:

0 投票
1 回答
2800 浏览

python - 如何在 pyomo 中使用集合和范围集的多级索引?

我的模型中有多个级别的索引,pyomo我需要能够像这样索引变量:

但这似乎由于某种原因是不可能的。我可以像这样使用多级索引:

但这不起作用,但是:

...它抛出异常:

为什么第一个有效,第二个无效?

0 投票
1 回答
66 浏览

python - PySp-Pyomo 错误:“dict”没有属性“f”

我是促销和 PySP 的新手。我正在尝试复制随机编程教程下的车辆路由问题的解决方案,https://projects.coin-or.org/Coopr/browser/pyomo.data/trunk/pyomo/data/pysp/vehicle_routing/3-7f?rev=9398&order=name 但使用 PS3-7b 的摘录,所有其他代码,一旦我在它们各自的文件夹中复制并运行命令

抛出以下错误

'这几天一直在烦我。关于我做错了什么的任何帮助。

谢谢

0 投票
2 回答
669 浏览

python - 如何在pyomo中将积分定义为目标函数?

我希望能够将积分定义pyomo为目标函数的一部分。

我无法弄清楚积分需要什么样的表达式。
这是我最好的猜测:

错误是:TypeError: A callable type that is not a Pyomo expression can not be used to initialize an Expression object. Use 'rule' to initalize with function types.

但是,我不明白为什么积分内部的表达式是一个问题,因为这些变量似乎完全可以被索引索引model.t

我对此有误解吗?

以下是我迄今为止咨询过的一些资源:

https://groups.google.com/forum/#!topic/pyomo-forum/6RhEXEMDTPc https://software.sandia.gov/downloads/pub/pyomo/PyomoOnlineDocs.html#_parameters https://projects.coin- or.org/Coopr/browser/pyomo/trunk/examples/dae/Heat_Conduction.py?rev=9315

我愿意接受有关其他资源的建议/链接pyomo

0 投票
1 回答
275 浏览

pyomo - 使用带有 NL / ASL 求解器接口的 Pyomo 时从 cplex 接收 .rc 后缀

我想使用带有 NL / ASL 接口的 Pyomo 从 cplex 求解器中为我的变量获取 .rc 或 .urc 后缀。这个接口通常比我的模型的默认 cplex 接口快。但是我似乎无法让 NL 接口返回这些后缀。如果我使用带有默认选项的 cplex 求解器,我会得到 rc 后缀的值。但是,如果我使用 solver_io='nl' 或将求解器设置为 'cplexamp' (我认为它做同样的事情),那么我不会得到 rc 值。(我能够获得双打,但不是 rc。)

这是一些示例代码:

文档特别提到通过后缀降低成本,而 .rc 后缀似乎是 AMPL 中的标准位置,但我没有通过 Pyomo 的 NL 接口阅读此内容。谁能指出我正确的方向?

0 投票
1 回答
394 浏览

ipopt - Pyomo Ipopt 不返回解决方案

我的脚本是:

虽然这是一个非常简单的问题,虽然程序声明它找到了最优解,但解的数量为 0,并且没有显示任何解。

有任何想法吗??

非常感谢。

0 投票
1 回答
151 浏览

pyomo - 重新制定 AMPL 汽车示例

我正在尝试迁移 Ipopt 源代码 tarball 中的放大器汽车问题作为示例。我遇到了结束条件(在最终迭代中达到零速度的地方)和成本函数(最小化最终时间)的问题。

有人可以帮我修改以下模型吗?

0 投票
1 回答
219 浏览

pyomo - Pyomo:使用附加约束扩展“汽车放大器示例”

在看到 Pyomo 存储库中“ampl car example”的良好实现之后,我想继续用新的特性和约束来扩展这个问题,但是我在开发过程中发现了下一个问题。有人能够修复它们吗?

1) 增加了新的约束“电动车”:现在通过坚持限制加速度,直到确定速度,然后使用恒功率模型。我无法像我想的那样实施这个约束。中对此进行了评论,但 Pyomo 抱怨约束与变量有关。(现在 Umax 取决于车速)。

2) 增加了新的舒适加速度和加加速度限制。看起来他们工作正常,但如果 Pyomo 大师监督他们并告诉我他们是否真的以正确的方式实施,那应该很好。

3)关于最后一个,以减少冗长的顺序。有什么方法可以在一个唯一约束中组合加速 L 和加速 U 吗?jerkL 和 jerkU 也一样。

4)最后一个特征是速度限制约束,分为两步。同样,我无法让它工作,所以它在代码中进行了注释。有人敢修吗?

非常感谢,巴勃罗

0 投票
1 回答
877 浏览

mathematical-optimization - 建议 ILP 求解器的下限

我有一个整数线性规划问题,我尝试过的求解器(CPLEX、CBC)需要很长时间才能解决,即使他们很早就找到了最优解。他们只需要永远充分证明这一点。

为我的最小化问题的目标值计算一个微不足道的下限很容易,但在 CPLEX 的输出(Best Bound 列)中,我可以看到它甚至在很长很长时间内都没有接近。它几乎可以立即找到非常好的解决方案,但它错误地认为最佳解决方案可能会好得多。

现在我不得不承认我真的不知道这些求解器是如何工作的,但看起来他们正在浪费时间试图改进可笑的弱下限,寻找不可能乐观的解决方案。所以我的问题是:

  1. 告诉求解器一个不错的目标下限可以帮助它更快地运行吗?

  2. 如果是这样,哪些求解器可以接受作为附加输入提供的已知下限?

作为说明,我粘贴了示例运行中 CPLEX 输出的前几行(运行时间更长,目标没有任何进一步的改进,最佳界限的改进也非常缓慢):

我希望我可以告诉求解器不要费心寻找目标低于 10 的解决方案(因为我可以用更简单的方法证明这一点),尤其是没有负目标值的解决方案(因为在我的模型中甚至不可能)。