我正在开发一个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

10-01 19:09