我有一个简单的优化问题,并为此寻找java软件。
Apache数学优化软件看起来就像我想要的,但我找不到满足我需求的文档(这些需求对初学者/非数学专业人员很有用!)
有没有人知道一个简单有效的例子?
如果它有帮助,问题是我想要找到最大r,其中
r1 = s1 * m1
r2 = s2 * m2并且有一些约束和公式来定义变量之间的关系。Excel求解器可以很好地解决这个问题。我让LPSolve运行得很好,但是这个问题需要s和m的乘法,所以我理解LPSolve无能为力,因为这会使问题变得非线性。
发布于 2012-06-14 16:42:28
我最近将免导数的非线性约束优化代码COBYLA2移植到了Java。由于该算法不显式地依赖于导数,因此对于更大的问题,该算法可能需要相当多的迭代。尽管如此,你仍然能够用非线性目标函数和(潜在的)非线性约束来阐述你的问题。
您可以阅读更多关于它的内容,并从here下载源代码。
发布于 2012-02-05 02:04:54
我不知道有一个简单的基于Java的NLP求解器。(我确实在Apache Works中找到了一个二次编程(QP)的示例,但它不符合要求,因为您要求的是非数学专业的示例。)
我给你两个建议来解决你的非线性程序:
1..Excel的Solver确实具有处理非线性问题的能力(不要使用LPSOLVE)。
以下是使用Excel求解A General Neural network example in Excel的两个链接:示例1- Step by step Solver walk-through that covers NLP和示例2-NLP
对于Excel,我喜欢Paul Jensen(德克萨斯大学)的。他有一个名为的模块。他的书中的涉及自然语言处理,可以在他的网站上找到。
2..如果你打算做一些数据分析,那么我建议你花几个小时下载并学习R的基础知识。R有numerous packages and libraries for optimization。对于求解非线性规划,optim()和nlme是相对的。
为了完整起见,我提到了SAS,MATLAB和CPLEX作为其他选项。如果你能接触到其中的任何一个,它们在解决非线性程序方面都做得非常好。
希望这些点子能有所帮助。
https://stackoverflow.com/questions/9131269
复制相似问题