LCP线性互补问题在 Java 中的实现

问题描述

我目前有一个新项目的问题,因为我需要 LCP 的解决方案。我知道有 像 Lemke 等算法。但它们中的每一个似乎都是用 C++ 或 Python 编写的(使用 numpy)。

我真的无法自己实现算法,因为我并不完全熟悉它背后的所有数学。

所以我的问题是是否有任何用于 Java 的 LCP 求解器,我可以通过调用类似的东西来使用

SolveLCP(Matrix M,Vector q,Vector w,Vector z)

用于从 M 和 q 计算 w 和 z ?

我在

找到了一个算法

https://www.geometrictools.com/GTE/Mathematics/LCPSolver.h

这似乎工作得很好,但不幸的是它是 C++ 并且我未能将其转换为 java(实际上我使用的是 kotlin)。我的版本有时会得到正确的结果,但与 C++ 实现相比并非每次都如此。

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

https://github.com/mihisg/LCPSolver_Kotlin/tree/main

如果有人能帮助找出错误,我将不胜感激。我想我在表示所有这些指针时做错了,但实际上,它只是有时有效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)