我正在开发一个Android应用,它将用作电动汽车的辅助系统。
出于优化目的,我必须解决带有非线性约束的非线性优化问题。我想集成像IPOPT这样功能强大的开放源代码求解程序来做到这一点。
我尝试按照以下说明在我的Galaxy Note 4上安装求解器
http://www.coin-or.org/Ipopt/documentation/node14.html
和使用IPOPT的Java接口(interface)
http://www.coin-or.org/Ipopt/documentation/node16.html
没有成功。
有没有一种使用Android NDK集成IPOPT的方法,或者是一种交叉编译方法?
还是有其他方法可以做到这一点?
感谢您为我提供的帮助,使我更加接近目标。
最佳答案
这里最困难的部分是由于IPOPT使用了大量的Fortran代码,特别是依赖于它的依赖,例如BLAS和Lapack。实际上,由于困难,您将几乎找不到任何人甚至尝试为Android编译它们。尽管如此,我还是做到了,并且最近发布了您想要的东西。
这是一个使用IPOPT的简单Android项目:https://github.com/jeti/android_ipopt_example
它使用了此仓库中可用的IPOPT库:
https://github.com/jeti/android_ipopt
依次使用独立的Android工具链和Fortran创建,这些工具链可通过此存储库提供:
https://github.com/jeti/android_fortran