问题标签 [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.
memory - 如何调试错误“bonmin.exe 已停止工作”
我正在尝试解决多整数非线性规划问题。我有大约 178848 个决策变量,它们都是二进制的。我正在创建.nl
文件pyomo
,然后尝试.nl
通过命令提示符使用以下命令解决此文件:bonmin test.nl
在我得到标题中的错误之前,我看到内存突然跳跃,其中我看到在程序退出之前内存使用率上升到 100%。我可以将任何设置传递给 bonmin 以防止发生此错误吗?或者是否有任何可用的启发式选项可以传递给 bonmin?
pyomo - 从 IPOPT Display Pyomo 获取价值
这是我的 Rosenbrock 混凝土模型的代码。
通过 tee=True 时的solver.solve 行打印出各种漂亮信息的漂亮显示。我想从打印输出中访问该信息,并浏览了 Pyomo 和 IPOPT 文档,但似乎无法理解如何访问打印到屏幕上的值。我还包含了一个简短的打印输出示例,我想保存每次运行的值,以便我可以迭代并收集整个范围内的统计信息。
****省略****
我需要其中一些值,但我看不到通过搜索文档来访问它们的可行接口,任何向导都知道如何做到这一点?谢谢。
python - pyomo 等式表达式是可交换的吗?
这是一个由函数定义的约束:
我假设相等项的顺序无关紧要,但如果我切换它们,我会得到不同的结果。
我不知道如何深究。
生成的 .nl 文件略有不同,但我处于死胡同,因为我不知道如何解释它们。
调查 .nl 文件
两个 thee-line 集合具有符号差异。
文件 1:
文件 2:
将两个文件都提供给 ipopt 时,我得到文件 1 的“不可行”和文件 2 的解决方案。如果我编辑文件 1 以更改第一个或第二个三行集中的符号,我会得到相同的结果作为文件 2。
所以表达式相等的顺序应该无关紧要,但是当改变它时,我在 .nl 文件中得到一个重要的符号差异。
演示术语顺序如何影响 .nl 文件的简单示例
根据约束 c1 中术语的顺序,我没有得到相同的 .nl 文件。
更具体地说,除了两行之外,这两个文件都是相同的:
解决时,我得到相同的结果。可能是因为这个例子是垃圾。
julia - 使用 JuMP 解决 NL 优化问题时未定义 erf()
我正在用 Julia 中的 JuMP 解决非线性优化问题,我的目标函数中有一个 erf() 调用。我的代码抛出一个错误,指出未定义 erf() 函数。
我调用了 Pkg.update(),加载了 SpecialFunction 包并在不同的求解器(NLopt、Itopt)之间切换,但它们都没有工作。
下面是我在 Julia 1.0.3 下测试的环境和最小化代码
有没有办法用求解器在这里调用 erf() ?
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)。
python - Pyomo:超出 Ipopt 最大迭代次数
我在 pyomo 的目标遇到了一些麻烦。我试图最小化测量值(参数 - 我从 .txt 导入)与优化模型中变量的结果之间的差异。
现在我的目标是:
所以第一部分是测量(参数),第二部分是优化的变量。我想最小化差异。
我该怎么办?当我像这样启动程序时,我收到一个错误,即超出了最大迭代次数。
提前致谢!
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。我试图重做所有步骤,但我一遍又一遍地得到同样的错误。
pyomo - colaboratory (colab.research.google.com) 上的 pyomo ipopt
我很高兴地发现 pyomo 已经预先安装在 colaboratory 上。不幸的是,我需要的求解器没有安装。我试图安装它,但它确实有效。(使用 conda install ipopt_bin -c cachemeorg)
知道如何在 colaboratory 上安装 ipop 吗?
谢谢
optimization - Pyomo-IPOPT:求解器陷入局部最小值,如何避免这种情况?
我试图解决一个优化问题,包括找到一个高维(10+)单调函数的全局最大值(如在每个方向上都是单调的)。约束使得它们用平面切割搜索空间。
我已经编码了整个事情pyomo
,我正在使用ipopt
求解器。在大多数情况下,我相信它会成功收敛到全局最优值。但是,如果我稍微考虑一下约束,我会发现它有时会收敛到局部最小值。
这看起来像是一种探索与开发的权衡。我已经研究了可以传递给的选项,ipopt
并且列表太长了,以至于我无法理解要使用哪些参数来帮助收敛到全局最小值。
编辑:
解决方案的两个提示:
我的变量曾经被定义为非常无限的界限,例如
bounds=(0,None)
在无限的半线上移动。我对它们实施了两个有限的界限。我现在使用多个开头:
/li>
到目前为止,这让我对融合感到满意。
optimization - 使用 Bonmin Counne 和 Ipopt 进行 NLP
我只想确定我有资格使用 Bonmin 和 Couenne 来解决 NLP 问题(我仍然没有整数变量)并且我渴望获得全局最优而不是局部。我还读到 Ipopt 首先搜索全局答案,如果没有找到,它将提供本地答案。当我使用 Ipopt 时,我如何理解我的答案是一个全球性的答案。另外,我想针对可以与 Pyomo 合并的这些问题,最好的 NLP 和 MINLP 开源 pythonic 求解器是什么?我的问题的主要原因是使用 Bonmin 的以下输出:
注意:默认情况下,您将 Ipopt 与 MUMPS 线性求解器一起使用。其他线性求解器可能更有效(请参阅 Ipopt 文档)。
问候