微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。