万网制作淘宝客网站深圳有什么公司名称

张小明 2026/1/11 18:33:57
万网制作淘宝客网站,深圳有什么公司名称,万网网站建设方法,手机网站备案文章目录一、关键输入信息1、优化问题的维度2、优化变量的边界3、优化问题的初始迭代点#xff1a;4、优化问题的数据结构(Structure)#xff1a;5、优化问题函数的值#xff1a;二、C Interface1、Ipopt::TNLP::get_nlp_info2、Ipopt::TNLP::get_bounds_info3、Ipopt::TNLP…文章目录一、关键输入信息1、优化问题的维度2、优化变量的边界3、优化问题的初始迭代点4、优化问题的数据结构(Structure)5、优化问题函数的值二、C Interface1、Ipopt::TNLP::get_nlp_info2、Ipopt::TNLP::get_bounds_info3、Ipopt::TNLP::get_starting_point4、Ipopt::TNLP::eval_f5、Ipopt::TNLP::eval_grad_f6、Ipopt::TNLP::eval_g7、Ipopt::TNLP::eval_jac_g8、Ipopt::TNLP::eval_h9、Ipopt::TNLP::finalize_solutionIpopt(Interior Point OPTimizer)是求解大规模非线性最优化问题的求解库。可以求解如下形式的最优化问题的(局部)最优解。其中f ( x ) : R n → R f(x):R^n → Rf(x):Rn→R是优化目标函数g ( x ) : R n → R m g(x):R^n → R^mg(x):Rn→Rm是约束函数f ( x ) , g ( x ) f(x),g(x)f(x),g(x)可以是非线性和非凸的但是需要二阶微分连续。一、关键输入信息为了求解最优化问题Ipopt需要更多信息如下1、优化问题的维度1优化变量x xx的数目2约束函数g ( x ) g(x)g(x)的数目;2、优化变量的边界1优化变量x xx的边界2约束函数g ( x ) g(x)g(x)的边界3、优化问题的初始迭代点1优化变量x xx的初始值2拉格朗日乘子的初始值(仅仅是在warm start的时候需要)4、优化问题的数据结构(Structure)1约束函数g ( x ) g(x)g(x)的雅可比矩阵的非零元素的数目2拉格朗日函数的海森矩阵的非零元素的数目3约束函数g ( x ) g(x)g(x)​ 的雅可比稀疏矩阵的非零元素的行索引和列索引(sparsity structurerow and column indices of each of the nonzero entries)4拉格朗日函数的海森稀疏矩阵的非零元素的行索引和列索引(sparsity structurerow and column indices of each of the nonzero entries)5、优化问题函数的值1优化目标函数f ( x ) f(x)f(x)2优化目标函数的梯度函数c cc3约束函数g ( x ) g(x)g(x)​4约束函数的雅可比矩阵∇ g ( x ) T ∇g(x)^T∇g(x)T5拉格朗日函数的海森矩阵σ f ∇ 2 f ( x ) ∑ i 1 m λ i ∇ 2 g i ( x ) \sigma_f∇^2f(x) \sum_{i1}^{m}\lambda_i∇^2g_i(x)σf​∇2f(x)∑i1m​λi​∇2gi​(x)​如果使用拟牛顿法则不需要此矩阵优化问题的维度和边界约束可以直接获得并且来自于问题定义。初始迭代点会影响优化问题的是否收敛或者是否收敛到(局部)最优解不同的初始值可能会导致收敛到不同的局部最优解。计算微分矩阵(雅可比矩阵和海森矩阵)可能有一点复杂Ipopt需要提供约束函数的雅可比矩阵和拉格朗日函数的海森矩阵的非零元素以及他们所在的行索引和列索引并且标准接口是下三角矩阵(海森矩阵是对称矩阵)。矩阵的非零元素确定后在整个求解过程中是不可变的因此非零元素不可以仅仅包含在初始值条件下还需要包括在求解过程中不为零的元素。二、C Interface需要继承纯虚基类Ipopt::TNLP来编写自己的求解类并且需要重载9个Ipopt::TNLP基类的虚函数Ipopt通过Ipopt::IpoptApplication类来求解最优化问题。1、Ipopt::TNLP::get_nlp_infovirtual bool get_nlp_info( Index n, Index m, Index nnz_jac_g, Index nnz_h_lag, IndexStyleEnum index_style ) 0;Ipopt使用这个函数来确定数组的内存分配这里如果发生问题会引起内存泄漏等问题很难去debug。n优化变量x xx的数目m约束函数g ( x ) g(x)g(x)的数目nnz_jac_g雅可比矩阵非零元素的数目nnz_h_lag海森矩阵非零元素的数目index_style稀疏矩阵的索引使用C语言风格(从0开始还是使用Fortran语言风格(从1开始)2、Ipopt::TNLP::get_bounds_infovirtual bool get_bounds_info( Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u ) 0;Ipopt使用这个函数来确定优化变量x xx的边界和约束函数g ( x ) g(x)g(x)的边界。n优化变量x xx的数目x_l优化变量x xx的下边界数组x_u优化变量x xx的上边界数组m约束函数g ( x ) g(x)g(x)的数目g_l约束函数g ( x ) g(x)g(x)的下边界数组g_u约束函数g ( x ) g(x)g(x)的上边界数组在Ipopt中默认设置边界值需要在( − 1 0 9 , 1 0 9 ) (-10^9, 10^9)(−109,109)范围内当不在此范围时则认为是无穷大或者无穷小。3、Ipopt::TNLP::get_starting_pointvirtual bool get_starting_point( Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda ) 0;Ipopt使用这个函数来确定迭代优化的起点。n优化变量x xx的数目init_x如果是true则需要提供优化变量x xx的初始值x优化变量x xx的初始值其他为dual variables的初始值一般不用设置。在Ipopt中默认是需要设置x xx的初始值。4、Ipopt::TNLP::eval_fvirtual bool eval_f( Index n, const Number* x, bool new_x, Number obj_value ) 0;Ipopt使用这个函数来确定优化目标函数。n优化变量x xx的数目x优化变量x xx的值用来计算f ( x ) f(x)f(x)new_x在此之前调用的eval_*函数是否有错误发生可以忽略obj_valuef ( x ) f(x)f(x)5、Ipopt::TNLP::eval_grad_fvirtual bool eval_grad_f( Index n, const Number* x, bool new_x, Number* grad_f ) 0;Ipopt使用这个函数来确定优化目标函数的梯度。n优化变量x xx的数目x优化变量x xx的值用来计算∇ f ( x ) ∇f(x)∇f(x)new_x在此之前调用的eval_*函数是否有错误发生可以忽略grad_f∇ f ( x ) ∇f(x)∇f(x)数组的大小和x xx的数组大小一致6、Ipopt::TNLP::eval_gvirtual bool eval_g( Index n, const Number* x, bool new_x, Index m, Number* g ) 0;Ipopt使用这个函数来确定约束函数g ( x ) g(x)g(x)。n优化变量x xx的数目x优化变量x xx的值用来计算∇ f ( x ) ∇f(x)∇f(x)new_x在此之前调用的eval_*函数是否有错误发生可以忽略m 约束函数g ( x ) g(x)g(x)的数目gg(x)数组的大小和m一致7、Ipopt::TNLP::eval_jac_gvirtual bool eval_jac_g( Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index* jCol, Number* values ) 0;Ipopt使用这个函数来确定约束函数g ( x ) g(x)g(x)的雅可比矩阵的非零元素的值以及其在稀疏矩阵中的行索引值和列索引值。雅可比矩阵中的第i ii行和第j列的元素值是g i ( x ) g_i(x)gi​(x)对x j x_jxj​的导数。n优化变量x xx的数目x优化变量x xx的值用来计算∇ g ( x ) T ∇g(x)^T∇g(x)Tnew_x在此之前调用的eval_*函数是否有错误发生可以忽略m约束函数g ( x ) g(x)g(x)的数目iRow存储雅可比矩阵非零元素在矩阵中的行索引值如果是C语言风格雅可比矩阵索引值从0开始jCol存储雅可比矩阵非零元素在矩阵中的列索引值如果是C语言风格雅可比矩阵索引值从0开始values存储雅可比矩阵中的非零元素需要注意的是①iRow、jCol和values三个数组的大小是一致的并且其储存的值应该和雅可比矩阵非零元素的行索引值、列索引值和非零元素值相对应②数组iRow和jCol只需要被填写一次即第一次调用此函数时填写iRow和jCol第一次调用时x和values都是null当Ipopt需要values的值时传递iRow和jCol将会是null此时对values的值进行填写。8、Ipopt::TNLP::eval_hvirtual bool eval_h( Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values )Ipopt使用这个函数来确定拉格朗日函数海森矩阵的非零元素的值以及其在稀疏矩阵中的行索引值和列索引值。n优化变量x xx的数目x优化变量x xx的值用来计算∇ g ( x ) T ∇g(x)^T∇g(x)Tnew_x在此之前调用的eval_*函数是否有错误发生可以忽略obj_factorσ f \sigma_fσf​m约束函数g ( x ) g(x)g(x)​ 的数目lambda拉格朗日乘子λ \lambdaλnew_lambda如果之前调用的函数使用相同的λ \lambdaλ则为false一般忽略nele_hess海森矩阵非零元素的个数(下三角矩阵)iRow存储海森矩阵非零元素在矩阵中的行索引值如果是C语言风格雅可比矩阵索引值从0开始jCol存储海森矩阵非零元素在矩阵中的列索引值如果是C语言风格雅可比矩阵索引值从0开始values存储海森矩阵中的非零元素需要注意的是①iRow、jCol和values三个数组的大小是一致的并且其储存的值应该和海森矩阵非零元素的行索引值、列索引值和非零元素值相对应②数组iRow和jCol只需要被填写一次即第一次调用此函数时填写iRow和jCol第一次调用时x、lambda和values都是null当Ipopt需要values的值时传递iRow和jCol将会是null此时对values的值进行填写③由于海森矩阵是对称阵Ipopt使用下三角矩阵④Ipopt默认是需要海森矩阵的当使用拟牛顿法时则不需要海森矩阵。9、Ipopt::TNLP::finalize_solutionvirtual void finalize_solution( SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq ) 0;Ipopt使用这个函数来得到最优化问题的求解结果对其重要的值进行介绍。status求解器的状态SUCCESS在满足收敛条件的情况下找到局部最优解MAXITER_EXCEEDED超出最大迭代次数CPUTIME_EXCEEDED超出最大求解时间STOP_AT_ACCEPTABLE_POINT求解收敛在某点不满足期望的容差但是在可接受范围内LOCAL_INFEASIBILITY在可行域内找不到最优解一般是由于bounds和约束设置不合理导致的x优化变量x xx的局部最优解的值
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

企业网站代码模板下载网站建设中 倒计时

NVIDIA Profile Inspector:专业显卡性能调优完整指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 在追求极致游戏体验的道路上,你是否曾感到显卡性能未能充分发挥&#xff1f…

张小明 2026/1/9 11:57:01 网站建设

长垣高端建站中国建设部网站首页

引言斐波那契数列不仅是数学概念,更是编程学习的经典案例。通过不同的实现方法,我们可以深入理解算法效率、编程范式和性能优化的核心思想。什么是斐波那契数列?斐波那契数列(Fibonacci Sequence)是由意大利数学家列昂…

张小明 2026/1/9 11:56:59 网站建设

怎么让公司网站显示官网金山网站建设推广

XVim终极指南:在Xcode中体验Vim的高效编辑魅力 【免费下载链接】XVim Xcode plugin for Vim keybindings 项目地址: https://gitcode.com/gh_mirrors/xv/XVim 想要在Xcode开发环境中享受Vim的极致编辑效率吗?XVim插件正是为满足这一需求而生&…

张小明 2026/1/9 17:39:01 网站建设

jsp购物网站开发视频韩城市网站建设

在信号分析领域,我们经常面对这样的问题:信号中有哪些频率成分?这些频率在什么时候出现?是否发生了突变?围绕这个问题,形成了三种非常经典、也是工程中最常用的分析工具: 傅里叶变换&#xff08…

张小明 2026/1/9 17:38:59 网站建设

网站制作的必备技巧有哪些邢台做wap网站的地方

Vue Admin Box实战指南:快速构建现代化管理后台 【免费下载链接】vue-admin-box vue-admin-box是一个基于Vue.js的开源后台管理框架项目。特点可能包括预设的后台管理功能模块、灵活的布局和主题定制、以及可能的权限管理、数据可视化等特性,旨在简化和加…

张小明 2026/1/9 17:38:57 网站建设

电子商务网站名称深圳网站建设模板

Kotaemon支持问答对自动聚类,发现潜在知识盲区在智能客服系统日均处理数万条用户提问的今天,一个现实问题摆在企业面前:即便知识库已有上千条FAQ,仍有不少用户反馈“找不到答案”。这些未被命中的问题去哪儿了?它们是偶…

张小明 2026/1/9 17:38:55 网站建设