本文主要是介绍非线性优化Ipopt 单精度浮点运算构建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
非线性优化Ipopt 单精度浮点运算构建
前言
本人使用Ipopt来求解优化MPC控制,对实时性要求较高。为了提高求解效率,尝试构建IPOPT的单精度浮点运算(float)来减少计算量,IPOPT默认是双精度(double)浮点运算。
踩坑记录
以上是官网给出的教程。其中写道在编译时,即./configure
的时候,需要添加选项--with-precesion=float
,但是按此操作系统报错,查看configure源码后发现应该是--with-precesion=single
。这样才能编译成功。
除此之外,ipopt所依赖的其他库比如MUMPS HSL Lapack
在编译的时候都需要以单精度的形式构建才能构建成功。
后言
因为我需要采用CPPAD与IPOPT结合来构建MPC,虽然IPOPT构建了单精度浮点型运算,但是好像CPPAD并不支持float运算,从官网上没有找到构建单精度的教程,所以最初的设想也失败了。如果各位同仁有什么好的方法能够构建单精度型的CPPAD或者有其他的方法提高运算效率,欢迎多多交流。
这篇关于非线性优化Ipopt 单精度浮点运算构建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!