Nlp模型。jl
|
该页面正在翻译中。 |
NLPModels,类似于优化。jl本身提供了一个标准化的建模接口,用于表示非线性程序,便于在同一问题上使用不同的求解器。 的优化。NLPModels的jl扩展旨在提供一个薄的翻译层,使 Nlp模型s、包的主导出,兼容优化中的优化器。jl生态系统。
安装:NLPModels。jl
翻译一个 Nlp模型,安装OptimizationNLPModels包:
import Pkg;
Pkg.add("OptimizationNLPModels")
包NLPModels。jl本身不包含优化器或模型。 几个包提供了优化问题(https://jso…最可爱的。jl/稳定/[最可爱。jl],https://jso…dev/NLPModelsTest.jl/dev/[NLPModelsTest。jl]),然后可以用优化支持的任何优化器求解。jl
使用方法
例如,解决在 Nlp模型 与https://github.com/jump-dev/Ipopt.jl[脧锚脧赂`Ipopt。jl`]. 首先,像这样安装软件包:
import Pkg;
Pkg.add("NLPModelsTest", "Ipopt")
我们实例化https://jso…dev/NLPModelsTest.jl/dev/reference/#NLPModelsTest。HS10[问题10]在霍克-Schittkowski优化套件可从 Nlp模型 作为 HS10,然后将其翻译成一个 优化问题.
using OptimizationNLPModels, Optimization, NLPModelsTest, Ipopt
using Optimization: OptimizationProblem
nlpmodel = NLPModelsTest.HS10()
prob = OptimizationProblem(nlpmodel, AutoForwardDiff())
OptimizationProblem. In-place: true
u0: 2-element Vector{Float64}:
-10.0
10.0
现在可以像其他任何东西一样解决 优化问题:
sol = solve(prob, Ipopt.Optimizer())
retcode: Success
u: 2-element Vector{Float64}:
-5.513205801266308e-15
1.0000000024923896