当前位置: 首页 > news >正文

【JuMP.jl】非线性规划

[JuMP] 03 非线性规划

非线性规划模型

非线性规划问题是线性规划问题的自然推广, 在实际的工程问题中,优化问题中的目标函数与约束不会总是线性函数,因此非线性规划的求解功能是必要的。

min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤ u j j = 1 … m l i ≤ x i ≤ u i i = 1 … n . \begin{aligned} \min_{x \in \mathbb{R}^n} & f_0(x) \\ \;\;\text{s.t.} & l_j \le f_j(x) \le u_j & j = 1 \ldots m \\ & l_i \le x_i \le u_i & i = 1 \ldots n. \end{aligned} xRnmins.t.f0(x)ljfj(x)ujlixiuij=1mi=1n.

例:

max ⁡ 1 + x 2 + y 2 s . t . x ≥ 0 y ≥ 0 x 2 + y 2 ≤ 2 \begin{aligned} \max~& \sqrt{1+x^2+y^2}\\ \mathrm{s.t.}~& x\geq 0\\ & y\geq 0\\ & x^2+y^2\leq 2 \end{aligned} max s.t. 1+x2+y2 x0y0x2+y22

using JuMP
import Ipopt
import Test

非线性向量值函数的定义

function_calls = 0
function foo(x, y)global function_calls += 1common_term = x^2 + y^2term_1 = sqrt(1 + common_term)term_2 = common_termreturn term_1, term_2
end
foo_1(x, y) = foo(x, y)[1]
foo_2(x, y) = foo(x, y)[2]

打印模型

model = Model(Ipopt.Optimizer)
set_silent(model)
@variable(model, x[1:2] >= 0, start = 0.1)
register(model, :foo_1, 2, foo_1; autodiff = true)
register(model, :foo_2, 2, foo_2; autodiff = true)
@NLobjective(model, Max, foo_1(x[1], x[2]))
@NLconstraint(model, foo_2(x[1], x[2]) <= 2)
function_calls = 0
print(model)

max ⁡ f o o 1 ( x 1 , x 2 ) S u b j e c t t o x 1 ≥ 0.0 x 2 ≥ 0.0 f o o 2 ( x 1 , x 2 ) − 2.0 ≤ 0 \begin{aligned} \max~& foo_1(x_1,x_2)\\ \mathrm{Subject~ to}~& x_1\geq 0.0\\ & x_2\geq 0.0\\ & foo_2(x_1,x_2)-2.0\leq 0 \end{aligned} max Subject to foo1(x1,x2)x10.0x20.0foo2(x1,x2)2.00

optimize!(model)
@show value.(x)

value.(x) = [1.0000000024913394, 1.0000000024913394]


http://www.mrgr.cn/news/79109.html

相关文章:

  • GPU上没程序在跑但是显存被占用
  • 校验收货地址是否超出配送范围实战3(day09)
  • Markdown Viewer 浏览器
  • mybatis学习(7/134)
  • SpringCloud系列教程:微服务的未来(十二)OpenFeign连接池、最佳实践、日志、微服务拆分
  • 【Linux】正则表达式
  • 项目开发之Jenkins
  • React第十二节组件之间通讯之发布订阅模式(使用pubsub-js插件)
  • FFmpeg:强大的音视频处理工具指南
  • 鸿蒙 Next 可兼容运行 Android App,还支持出海 GMS?
  • 每日速记10道java面试题13
  • 365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)
  • 知乎大数据开发面试题及参考答案
  • AI大模型原理
  • 重生之我在异世界学编程之C语言:选择结构与循环结构篇
  • 使用 libssh2_session_set_timeout 设置 SSH 会话超时时间
  • Unity 基于Collider 组件在3D 物体表面放置3D 物体
  • 中国矿业大学《2024年868自动控制原理真题》 (完整版)
  • 显卡(Graphics Processing Unit,GPU)比特币挖矿
  • 926[study]Docker,DHCP
  • @Component 详解
  • 单例模式实现axios的封装(TS版本)
  • 代码随想录算法训练营第51期第8天 | 344. 反转字符串、541.反转字符串 II、卡码网:54.替换数字
  • 【计算机网络】实验11:边界网关协议BGP
  • 计算机毕业设计hadoop+spark民宿推荐系统 民宿数据分析可视化大屏 民宿爬虫 民宿大数据 知识图谱 机器学习 大数据毕业设计
  • Dataset用load_dataset读图片和对应的caption的一个坑