Math 线性互补问题的Java实现

Math 线性互补问题的Java实现,math,physics,linear-programming,physics-engine,Math,Physics,Linear Programming,Physics Engine,我目前有一个新项目的问题,因为我需要一个LCP的解决方案。我知道有 像LeMek等的算法,但是它们中的每一个似乎都是用C++或Python(使用NUMPY)编写的。 我真的不能自己实现一个算法,因为我不完全熟悉它背后的所有数学知识 所以我的问题是,是否有任何针对Java的LCP解算器,我可以通过调用 SolveLCP(矩阵M,向量q,向量w,向量z) 从M和q计算w和z 我发现了一个算法 这似乎很好,但不幸的是它是C++,我没有把它转换成java(实际上我使用KOTLIN)。我的版本有时有正确

我目前有一个新项目的问题,因为我需要一个LCP的解决方案。我知道有 像LeMek等的算法,但是它们中的每一个似乎都是用C++或Python(使用NUMPY)编写的。 我真的不能自己实现一个算法,因为我不完全熟悉它背后的所有数学知识

所以我的问题是,是否有任何针对Java的LCP解算器,我可以通过调用

SolveLCP(矩阵M,向量q,向量w,向量z)

从M和q计算w和z

我发现了一个算法

这似乎很好,但不幸的是它是C++,我没有把它转换成java(实际上我使用KOTLIN)。我的版本有时有正确的结果,但不是每次都与C++实现相比。

我在kotlin中实现了它,您可以在这里找到它:


如果有人能帮我找出错误,我将不胜感激。我认为我在表示所有这些指针时犯了一些错误,但事实上,它只在某些时候起作用。

您可以使用QP解算器。好主意,谢谢。但我也找不到。你有java版的吗?谷歌找到了很多。商业、开源和简单的学生项目。你推荐一个具体的项目吗?如何将LCP表述为QP?好的QP解决方案是Cplex、Gurobi和Mosek。如何将LCP制定为QP是非常标准的,甚至在此处也有说明:。读一点书会有很大的帮助。