标签: ipopt

针对 openblas 的链接;我还需要Lapack吗?

我使用以下链接使用 openblas 编译 Ipopt:./configure --with-blas-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-blas-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/ -libopenblas_sandybridgep-r0.2.14.a"

如果我没有定义任何特定的 LAPACK 库,Ipopt 会自动使用 netlib 中的 LAPACK。openplas 是否有自己优化的 LAPACK 实现?

如果我使用--with-lapack-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-lapack-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/"

make 失败,因为无法解析某些 Lapack 例程,例如undefined reference todpotrs_ At least there is the filelapacke.h in theinclude folder but there are not LAPACK libraries in thelib` 文件夹。

我在 GitHub 上发现了这个问题:

好的,我想我想通了...您可以通过在 make 命令行上指定 NO_LAPACK=1 来构建 OpenBLAS,而不包含 LAPACK。默认情况下,它包含完整的 LAPACK 库(某些部分已优化)。

但如果是这种情况,库在哪里?

我应该针对 openblas 编译 LAPACK 吗?

如果有人能够阐明这个问题,我将不胜感激。

blas lapack ipopt openblas

5
推荐指数
1
解决办法
6825
查看次数

在Mac OS X 10.11.1上安装适用于Matlab R2015a的IPOPT(El Capitan)

我正在尝试为IPOPT安装Matlab接口.我按照https://projects.coin-or.org/Ipopt/wiki/MatlabInterface上的说明进行操作.

我已成功配置Matlab来构建MEX文件.运行

 mex -setup
Run Code Online (Sandbox Code Playgroud)

来自Matlab的应该生成一个文件mexopts.sh(应该位于./matlab/目录中).但是,我似乎没有这个目录在我的计算机上的任何位置.

此外,似乎从版本R2014a开始,Matlab不再使用.sh文件(参见:http://www.mathworks.com/matlabcentral/answers/124597-how-to-setup-gfortran-on-mac-osx -10-9-and-matlab-r2014a#comment_211324).

有没有人知道如何在El Capitan上为R2015a安装IPOPT的Matlab接口?在线浏览旧方向的页面并没有多大帮助.

macos matlab mex ipopt

5
推荐指数
1
解决办法
657
查看次数

IpOpt选项列表无法访问

我目前正试图让IpOpt内点求解器工作.我运行的示例,运行正常,除了选项.

每当我尝试设置选项时,例如:

app->Options()->SetStringValue("mu_strategy", "adaptive");
Run Code Online (Sandbox Code Playgroud)

我得到一个std :: bad_alloc异常.如果我从示例中删除所有选项集,它运行正常,如上所述.

我还尝试通过在初始化程序中给出路径来手动设置选项文件:

app->Initialize("C:\\ipopt.opt");
Run Code Online (Sandbox Code Playgroud)

但是,这会在initialize()中抛出异常.

我的可执行文件夹中有一个ipopt.opt文件.

关于我做错什么或我能做些什么来解决这个问题的任何线索?

我已经尝试使用实例(全部给我上bad_alloc的设置选项):
- http://codepad.org/mHIfBz3k
- https://projects.coin-or.org/Ipopt/browser#releases/3.11.0/ Ipopt /示例/ hs071_cpp
(具体:https://projects.coin-or.org/Ipopt/browser/releases/3.11.0/Ipopt/examples/hs071_cpp/hs071_main.cpp)

编辑(已解决):我正在使用在发布模式下构建的Visual Studio的预编译库.当我的项目处于调试模式时,我尝试在visual studio中使用它们,因此它崩溃了.

c++ ipopt

5
推荐指数
1
解决办法
291
查看次数

如何从 pyomo 的 ipopt 接口中查找违反了哪个约束?

我正在使用 pyomo 的求解器运行优化问题ipopt。我的问题有点复杂,它是infeasible由IPOPT声明的。除非需要,我不会发布整个问题。但是,需要注意的一件事是,我这个问题提供了一个温暖的开始,我认为这将有助于防止不可行的情况再次出现。

这是我在求解器内部设置pyomo时的输出:ipopttee=True

Ipopt 3.12.4: 

******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
 Ipopt is released as open source code under the Eclipse Public License (EPL).
         For more information visit http://projects.coin-or.org/Ipopt
******************************************************************************

This is Ipopt version 3.12.4, running with linear solver mumps.
NOTE: Other linear solvers might be more efficient (see Ipopt documentation).

Number of nonzeros in equality constraint Jacobian...:      104
Number of nonzeros in inequality …
Run Code Online (Sandbox Code Playgroud)

optimization python-2.7 ipopt pyomo

5
推荐指数
1
解决办法
2482
查看次数

Julia+JuMP:函数参数数量可变

我正在尝试使用 JuMP 来解决非线性问题,其中变量的数量由用户决定 - 也就是说,在编译时未知。

为了实现这一点,该@NLobjective行如下所示:

@eval @JuMP.NLobjective(m, Min, $(Expr(:call, :myf, [Expr(:ref, :x, i) for i=1:n]...)))
Run Code Online (Sandbox Code Playgroud)

例如,如果n=3,编译器将该行解释为与以下内容相同:

@JuMP.NLobjective(m, Min, myf(x[1], x[2], x[3]))
Run Code Online (Sandbox Code Playgroud)

问题是它@eval仅在全局范围内有效,并且当包含在函数中时,会引发错误。

我的问题是:如何在函数的本地编译范围内完成相同的功能(使用可变数量的参数@NLobjective进行调用)?myfx[1],...,x[n]

def testme(n)
    myf(a...) = sum(collect(a).^2)

    m = JuMP.Model(solver=Ipopt.IpoptSolver())

    JuMP.register(m, :myf, n, myf, autodiff=true)
    @JuMP.variable(m, x[1:n] >= 0.5)

    @eval @JuMP.NLobjective(m, Min, $(Expr(:call, :myf, [Expr(:ref, :x, i) for i=1:n]...)))
    JuMP.solve(m)
end

testme(3)
Run Code Online (Sandbox Code Playgroud)

谢谢!

julia ipopt julia-jump

4
推荐指数
1
解决办法
1898
查看次数

使用 Bonmin Counne 和 Ipopt 进行 NLP

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

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

问候

optimization ipopt pyomo coin-or

3
推荐指数
1
解决办法
1184
查看次数

在 Windows 中安装 IPOPT 求解器以与 pyomo 一起使用

如何安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用。我尝试了 pip install ipopt 但收到此错误(错误:为 ipopt 构建轮子失败)

我正在使用 Windows 10 和 Python 3.7.4

python optimization python-3.x ipopt pyomo

3
推荐指数
1
解决办法
1万
查看次数

Pyomo Ipopt不会返回解决方案

我的脚本是:

    from __future__ import division
    import numpy
    import scipy
    from pyomo.environ import *
    from pyomo.dae import *
    from pyomo.opt import SolverFactory
    m=ConcreteModel()

    m.x3=Var(within=NonNegativeReals)
    m.u=Var(within=NonNegativeReals)


   def _con(m):
     return m.x3 >=3 
   m.con=Constraint(rule=_con)

   def _con2(m):
      return 4 >= m.u >=1 
   m.con2=Constraint(rule=_con2)

   m.obj=Objective(expr=m.x3*m.u)
   opt = SolverFactory("Ipopt", executable = "/Ipopt-3.12.6/bin/ipopt")
   results = opt.solve(m)
   results.write()
Run Code Online (Sandbox Code Playgroud)

虽然这是一个非常简单的问题,虽然程序声明已找到最佳解决方案,但解决方案的数量为0并且没有显示任何解决方案.

有任何想法吗??

非常感谢.

ipopt pyomo

2
推荐指数
1
解决办法
289
查看次数

如何加速 Ipopt 求解器?

我想用cyipopt解决以下(宽松的,即 v(t) \xe2\x88\x88 [0, 1])最优控制问题:

\n

在此输入图像描述

\n

这是迄今为止我解决离散问题的方法:

\n
import numpy as np\nimport matplotlib.pyplot as plt\nfrom cyipopt import minimize_ipopt\nfrom scipy.optimize._numdiff import approx_derivative\n\n# z = (x1(t0) .... x1(tN) x2(t0) .... x2(tN) v(t0) .... v(tN))^T\n\ndef objective(z, time):\n    x0, x1, v = np.split(z, 3)\n    res = 0.0\n    for i in range(time.size-1):\n        h = time[i+1] - time[i]\n        res += h*((x0[i]-1)**2 + (x1[i]-1)**2)\n    return res\n\n\ndef ode_rhs(t, x, v):\n    x0, x1 = x\n    xdot1 = x0 - x0*x1 - 0.4*x0*v\n    xdot2 = -x1 + x0*x1 …
Run Code Online (Sandbox Code Playgroud)

python numpy mathematical-optimization ipopt cyipopt

2
推荐指数
1
解决办法
2618
查看次数

在回溯中使用`delete`取消分配时出现`free()`错误

我从gdb得到以下错误:

*** glibc detected *** /.root0/autohome/u132/hsreekum/ipopt/ipopt/debug/Ipopt/examples/ex3/ex3: free(): invalid next size (fast): 0x0000000120052b60 ***
Run Code Online (Sandbox Code Playgroud)

这是回溯:

#0  0x000000555626b264 in raise () from /lib/libc.so.6
#1  0x000000555626cc6c in abort () from /lib/libc.so.6
#2  0x00000055562a7b9c in __libc_message () from /lib/libc.so.6
#3  0x00000055562aeabc in malloc_printerr () from /lib/libc.so.6
#4  0x00000055562b036c in free () from /lib/libc.so.6
#5  0x000000555561ddd0 in Ipopt::TNLPAdapter::~TNLPAdapter ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#6  0x00000055556a9910 in Ipopt::GradientScaling::~GradientScaling ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#7  0x00000055557241b8 in Ipopt::OrigIpoptNLP::~OrigIpoptNLP ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#8  0x00000055556ae7f0 in Ipopt::IpoptAlgorithm::~IpoptAlgorithm ()
   from /home/ba01/u132/hsreekum/ipopt/ipopt/build/lib/libipopt.so.1
#9  0x0000005555602278 in …
Run Code Online (Sandbox Code Playgroud)

c++ debugging ipopt

1
推荐指数
1
解决办法
497
查看次数

安装Ipopt解算器与ubuntu中的Pyomo一起使用

如何在ubuntu中安装ipopt解算器与pyomo一起使用?我已经下载了ipopt的zip文件

但是我没有找到任何具体说明如何安装它并与pyomo一起使用.

python ipopt ubuntu-16.04 pyomo

1
推荐指数
1
解决办法
1136
查看次数