问题标签 [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.
scip - 如何验证用 Ipopt 编译的 SCIP?
我通过 Julia 使用 SCIP(目前使用 SCIP.jl,之前使用 AmplNLWriter.jl)。我按照 SCIP.jl 的说明编译 SCIP,如下所示:
我可以从 Julia 呼叫 SCIP。我还确认 SCIP 与make test
. 但是,当我尝试解决(可能是非凸的)MINLP 时,我收到以下警告消息:
这条消息让我怀疑 SCIP 实际上没有使用 IPOPT。如何解决此消息并验证 SCIP 实际上是否在使用 IPOPT?
我的模型有许多双线性项,其中一些可能会导致凸约束。因此,我预计使用 IPOPT 将加速 SCIP。
谢谢,亚历克斯
optimization - 减少迭代次数后减少违反约束的 IPOPT 选项
我正在使用通过 OpenMDAO 实现的 IPOPT,并且在理解和控制停止标准时遇到了一些麻烦。
这是我具体经历的情况:最初,IPOPT 能够找到一个看起来要好得多的解决方案,尽管稍微违反了约束(直觉告诉我,调整一些参数可能会将其带入可行区域)。从这个讨论中,我了解到“在求解器在最终迭代中完成收敛之前,不一定会满足线性或非线性等式或不等式约束”,所以我想知道我是否可以更改容差以使求解器开始完全尽快满足约束(我什至理解正确吗?)。目前几乎所有的评估都处于不可行的状态。
我意识到这种方法会导致不太理想的解决方案,但我的函数评估在计算上相当昂贵,所以我希望能够对提前退出进行某种控制,但结果可行。在查看IPOPT 终止文档时,我不清楚如何做到这一点。( dual_inf_tol
?)
这是一个尚未收敛的优化的一些输出,以防万一。我的每个参数都在大约 -30 到 +30 的数量级上,并且我的约束都具有 1.0 的上限。
我对 IPOPT 还很陌生,所以如果很明显我误解了任何东西或者优化显然表现不佳(我有我的怀疑......),请随时纠正我。
excel - 解决 EXCEL 和 CYGWIN-DLL 中的堆管理差异
我正在尝试使用用 C 编写并编译为 EXCEL VBA 代码中使用的 DLL 的示例 IPOPT 问题。我正在使用 Cygwin 在 Windows 中编译 DLL。(作为独立的 EXE,它可以正常工作)。从 EXCEL 中,我可以毫无问题地访问 DLL 并且可以交换数据。但是,一旦 DLL 开始运行 IPOPT 函数,EXCEL 就会关闭并出现错误。从我的调试活动来看,这是由内存分配造成的。如果 DLL 中的 C 代码尝试使用 malloc 分配内存,EXCEL 将遇到错误。如果 DLL 中的 C 代码通过函数 LocalAlloc(来自 windows.h)分配内存,则一切正常。
现在,我显然需要将整个 IPOPT 代码(可能还有 BLAS、LAPACK 和求解器?)中的 malloc 调用从 malloc 更改为 LocalAlloc。有没有一种无痛的方法来做到这一点?包装器或任何方式使 EXCEL 接受由 Cygwin 创建的 C-DLL 的堆管理的任何机会?任何配置选项?
感谢您的任何帮助!
python-2.7 - 如何从 pyomo 的 ipopt 接口中找到违反了哪个约束?
我正在使用 pyomo 的ipopt
求解器运行优化问题。我的问题有点复杂,它是infeasible
由 IPOPT 声明的。除非需要,否则我不会发布整个问题。但是,需要注意的一点是,我为这个问题提供了一个温暖的开端,我认为这将有助于防止不可行的问题抬头。
这是我在求解器内部设置pyomo
时的输出:ipopt
tee=True
您实际上可以从上面输出的日志中看到,这一行只有 2 个约束评估:
所以,它实际上很快就被宣布为不可行,所以我想不难找出违反了哪个约束。
如何找出违反了哪个约束?或者哪个约束使它不可行?
这是一个不同的问题,但仍然是关于IPOPT
:IPOPT options for reduce constraint violation after less iterations
julia - Julia+JuMP:函数的可变参数数量
我正在尝试使用 JuMP 来解决非线性问题,其中变量的数量由用户决定 - 也就是说,在编译时不知道。
为此,该@NLobjective
行如下所示:
例如,如果n=3
,编译器将该行解释为与以下内容相同:
问题是它@eval
仅在全局范围内有效,并且当包含在函数中时,会引发错误。
我的问题是:如何在函数的本地、编译时未知的范围内完成相同的功能——使用可变数量的参数@NLobjective
进行调用?myf
x[1],...,x[n]
谢谢!
java - 通过 MinGw 终端下载 BLAS、LAPACK 和 ALS 库时出错
我正在编译 Win8 64bit 下 java IPOPT 的安装。为此,我已经完成了 MSYS/MinGW 的安装。我正在遵循此链接下部给出的说明:
https://www.coin-or.org/Ipopt/documentation/node15.html
现在我想通过 MinGw 的终端安装一些库:
https://www.coin-or.org/Ipopt/documentation/node13.html
但是我在 shell 中传递一些命令时遇到错误,例如
它给了我类似command not found
or的错误No such file or directory
。我不明白如何通过 shell 安装这些库?有人能帮我吗?我对shell脚本一无所知。提前致谢。
c++ - 将局部变量表达式传递给第三方库(Ipopt)的有效方法
我正在使用 Ipopt 第三方库。为了使用它,我必须从它的一个类中实现一些虚函数。下面给出两个虚函数以便理解。
这里x
是变量数组,是变量obj_value
的表达式x
。x
将在每次迭代中更改值。
一个示例实现:
我的问题:
我有一个类,其中包含我的问题所需的数据和表达式。
现在,从 TNLP 继承,我可以实现虚函数。我必须在相应的虚函数中传递m_x
和m_obj_value
传递。我不能只复制and因为是. 如何有效地使用数据和实现虚拟功能?x
obj_value
m_x
m_obj_value
m_obj_value
m_x
m_x
m_obj_value
python - python ipopt安装错误
我正在尝试从 mac 终端安装 ipopt,但出现以下错误: 终端
/usr/bin/clang -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-3.6/src/callback.o build/temp.macosx-10.6-intel-3.6/src/ pyipoptcoremodule.o -L/usr/local/lib -lipopt -lcoinblas -lcoinmumps -lcoinmetis -lcoinlapack -ldl -lm -o build/lib.macosx-10.6-intel-3.6/pyipopt/pyipoptcore.cpython-36m-darwin.so
ld:
找不到 -lipopt
clang 的库:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
错误:命令“/usr/bin/clang”失败,退出状态为 1
python-3.x - 通过 pyomo 设置 ipopt 选项
我无法通过 pyomo 设置 ipopt 选项。
对于某些选项,可以简单地使用
这工作正常。如果我尝试为“fixed_variable_treatment”设置选项,即:
我收到以下错误:
我假设这是因为您无法通过 python 设置所有选项?
任何帮助或克服这一点的方法将不胜感激。谢谢
python - 在 ubuntu 中安装 Ipopt 求解器以与 Pyomo 一起使用
如何安装 ipopt 求解器以在 ubuntu 中与 pyomo 一起使用?我已经下载了ipopt的zip文件
但我没有找到任何具体说明如何安装它并将其与 pyomo 一起使用。