问题标签 [ipopt]

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 回答
88 浏览

memory - 如何调试错误“bonmin.exe 已停止工作”

我正在尝试解决多整数非线性规划问题。我有大约 178848 个决策变量,它们都是二进制的。我正在创建.nl文件pyomo,然后尝试.nl通过命令提示符使用以下命令解决此文件:bonmin test.nl

在我得到标题中的错误之前,我看到内存突然跳跃,其中我看到在程序退出之前内存使用率上升到 100%。我可以将任何设置传递给 bonmin 以防止发生此错误吗?或者是否有任何可用的启发式选项可以传递给 bonmin?

0 投票
1 回答
544 浏览

pyomo - 从 IPOPT Display Pyomo 获取价值

这是我的 Rosenbrock 混凝土模型的代码。

通过 tee=True 时的solver.solve 行打印出各种漂亮信息的漂亮显示。我想从打印输出中访问该信息,并浏览了 Pyomo 和 IPOPT 文档,但似乎无法理解如何访问打印到屏幕上的值。我还包含了一个简短的打印输出示例,我想保存每次运行的值,以便我可以迭代并收集整个范围内的统计信息。

****省略****

我需要其中一些值,但我看不到通过搜索文档来访问它们的可行接口,任何向导都知道如何做到这一点?谢谢。

0 投票
1 回答
297 浏览

python - pyomo 等式表达式是可交换的吗?

这是一个由函数定义的约束:

我假设相等项的顺序无关紧要,但如果我切换它们,我会得到不同的结果。

我不知道如何深究。

生成的 .nl 文件略有不同,但我处于死胡同,因为我不知道如何解释它们。

调查 .nl 文件

两个 thee-line 集合具有符号差异。

文件 1:

文件 2:

将两个文件都提供给 ipopt 时,我得到文件 1 的“不可行”和文件 2 的解决方案。如果我编辑文件 1 以更改第一个或第二个三行集中的符号,我会得到相同的结果作为文件 2。

所以表达式相等的顺序应该无关紧要,但是当改变它时,我在 .nl 文件中得到一个重要的符号差异。

演示术语顺序如何影响 .nl 文件的简单示例

根据约束 c1 中术语的顺序,我没有得到相同的 .nl 文件。

更具体地说,除了两行之外,这两个文件都是相同的:

解决时,我得到相同的结果。可能是因为这个例子是垃圾。

0 投票
1 回答
409 浏览

julia - 使用 JuMP 解决 NL 优化问题时未定义 erf()

我正在用 Julia 中的 JuMP 解决非线性优化问题,我的目标函数中有一个 erf() 调用。我的代码抛出一个错误,指出未定义 erf() 函数。

我调用了 Pkg.update(),加载了 SpecialFunction 包并在不同的求解器(NLopt、Itopt)之间切换,但它们都没有工作。

下面是我在 Julia 1.0.3 下测试的环境和最小化代码

有没有办法用求解器在这里调用 erf() ?

0 投票
1 回答
292 浏览

python-3.x - 如何在 pyomo-ipopt 优化中实现 Math.pow()?

我正在尝试针对给定任务优化电机选择,即双摆摆动,似乎 ipopt 无法解决问题,因为它无法识别

我试图实现 math.pow() 但这样做

代码:

输出:

TypeError:Pyomo NumericValue 类型“ratio_motor[1]”到浮点数的隐式转换被禁用。此错误通常是在定义表达式时使用 Pyomo 组件作为 Python 内置数学模块函数之一的参数的结果。通过使用 Pyomo 提供的数学函数来避免这个错误。

而不是使用已实现的pow函数,它仅适用于整数

代码:

输出:

Ipopt 3.12.11:评估约束 1011 时出错:无法评估 pow'(0,0.8)。

0 投票
1 回答
1790 浏览

python - Pyomo:超出 Ipopt 最大迭代次数

我在 pyomo 的目标遇到了一些麻烦。我试图最小化测量值(参数 - 我从 .txt 导入)与优化模型中变量的结果之间的差异。

现在我的目标是:

所以第一部分是测量(参数),第二部分是优化的变量。我想最小化差异。

我该怎么办?当我像这样启动程序时,我收到一个错误,即超出了最大迭代次数。

提前致谢!

0 投票
0 回答
747 浏览

c++ - 无法使用 Ipopt 从共享库中获取线性求解器 MA27

我想使用 Ipopt 作为我的求解器,并在 Ubuntu 18.04 上使用 VScode 将其与 c++ 接口。我尝试按照详细说明的每个步骤安装 Ipopt

https://www.coin-or.org/Ipopt/documentation/node13.html

我可以编译,一切都成功了,但是正在运行

如 Ipopt 文档所述,出现以下错误:

类型异常:第 271 行的文件“/home/peyman/CoinIpopt/Ipopt/src/Algorithm/IpAlgBuilder.cpp”中的 OPTION_INVALID:异常消息:选定的线性求解器 MA27 不可用。尝试从共享库“libhsl.so”获取 MA27,但出现以下错误:libhsl.so: cannot open shared object file: No such file or directory

退出:遇到无效选项。

发生错误。错误代码是-12

由于此错误,我无法运行

安装 Ipopt。我试图重做所有步骤,但我一遍又一遍地得到同样的错误。

0 投票
2 回答
269 浏览

pyomo - colaboratory (colab.research.google.com) 上的 pyomo ipopt

我很高兴地发现 pyomo 已经预先安装在 colaboratory 上。不幸的是,我需要的求解器没有安装。我试图安装它,但它确实有效。(使用 conda install ipopt_bin -c cachemeorg)

知道如何在 colaboratory 上安装 ipop 吗?

谢谢

0 投票
1 回答
832 浏览

optimization - Pyomo-IPOPT:求解器陷入局部最小值,如何避免这种情况?

我试图解决一个优化问题,包括找到一个高维(10+)单调函数的全局最大值(如在每个方向上都是单调的)。约束使得它们用平面切割搜索空间。

我已经编码了整个事情pyomo,我正在使用ipopt求解器。在大多数情况下,我相信它会成功收敛到全局最优值。但是,如果我稍微考虑一下约束,我会发现它有时会收敛到局部最小值。

这看起来像是一种探索与开发的权衡。我已经研究了可以传递给的选项,ipopt并且列表太长了,以至于我无法理解要使用哪些参数来帮助收敛到全局最小值。

编辑:

解决方案的两个提示:

  • 我的变量曾经被定义为非常无限的界限,例如bounds=(0,None)在无限的半线上移动。我对它们实施了两个有限的界限。

  • 我现在使用多个开头:

    /li>

到目前为止,这让我对融合感到满意。

0 投票
1 回答
685 浏览

optimization - 使用 Bonmin Counne 和 Ipopt 进行 NLP

我只想确定我有资格使用 Bonmin 和 Couenne 来解决 NLP 问题(我仍然没有整数变量)并且我渴望获得全局最优而不是局部。我还读到 Ipopt 首先搜索全局答案,如果没有找到,它将提供本地答案。当我使用 Ipopt 时,我如何理解我的答案是一个全球性的答案。另外,我想针对可以与 Pyomo 合并的这些问题,最好的 NLP 和 MINLP 开源 pythonic 求解器是什么?我的问题的主要原因是使用 Bonmin 的以下输出:

注意:默认情况下,您将 Ipopt 与 MUMPS 线性求解器一起使用。其他线性求解器可能更有效(请参阅 Ipopt 文档)。

问候