Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 如何将NLopt解算器与MathProgBase一起使用?_Julia_Nlopt - Fatal编程技术网

Julia 如何将NLopt解算器与MathProgBase一起使用?

Julia 如何将NLopt解算器与MathProgBase一起使用?,julia,nlopt,Julia,Nlopt,我想使用MathProgBase接口来制定一个优化问题。此外,我希望使用开源的解算器,例如NLopt(或任何其他) 位于的文档提到可以通过MathProgBase调用NLopt。不幸的是,我找不到一个简单的例子。另一方面,MathProgBase没有提到NLopt。让我们试试看。代码如下: using NLopt, MathProgBase quadprog([0., 0., 0.],[2. 1. 0.; 1. 2. 1.; 0. 1. 2.],[1. 2. 3.; 1. 1. 0.],'>

我想使用
MathProgBase
接口来制定一个优化问题。此外,我希望使用开源的解算器,例如
NLopt
(或任何其他)

位于的文档提到可以通过
MathProgBase
调用
NLopt
。不幸的是,我找不到一个简单的例子。另一方面,
MathProgBase
没有提到
NLopt
。让我们试试看。代码如下:

using NLopt, MathProgBase
quadprog([0., 0., 0.],[2. 1. 0.; 1. 2. 1.; 0. 1. 2.],[1. 2. 3.; 1. 1. 0.],'>',[4., 1.],-Inf,Inf,NLoptSolver(algorithm=:NLOPT_AUGLAG))
我收到以下错误消息:

`loadproblem!` has no method matching loadproblem!(::NLoptMathProgModel, ::Array{Float64,2}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Symbol)
while loading In[1], in expression starting on line 2

 in quadprog at /Users/harmeling/.julia/v0.3/MathProgBase/src/HighLevelInterface/quadprog.jl:46

怎么了?我对其他开源解决方案也很满意。对我来说重要的是使用
MathProgBase
调用约定,比如
quadprog
。谢谢你的帮助

NLopt包括一组用于解决一般非线性优化问题的算法。目前,仅实现了非线性。所以如果你想解决一个二次问题,你必须通过这个更通用的接口。这当然有可能自动完成,但尚未实现


对于
quadprog
,Ipopt将是比NLopt更强大的解算器。Ipopt目前支持线性接口和非线性接口,但还不支持二次接口。我打算很快实现这一点。

NLopt文档现在有这样一个例子,通过
MathProgBase
接口使用JuMP

实际上,同时我为Ipopt实现了quadprog接口。您可以在github.com/harmeling/Quadprog.jl下载它,现在我将它放在那里,并请求获取元数据。但是,请随意将其包含在正确的位置,以便为Ipopt提供接口。我想你会知道把它放在哪里。