问题标签 [ojalgo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
215 浏览

ojalgo - 如何使用 ojalgo 金融的 Markovitz 模型

我一直在尝试使用 ojalgo 的 MarkowitzModel 来确定投资组合的最佳权重。该文档引用了构造函数的 BasixMatrix,但我相信这已被弃用。根据下面的代码,我已经设法使用需要 MarketEquilibrium 和 expectedExcessReturns 的构造函数来工作。但是,我不确定 MarketEquilibrium 是什么以及这是否是正确的方法。给出三只股票投资组合的一系列回报的简单示例会很棒。

0 投票
1 回答
176 浏览

java - commons math3 和 ojalgo 库的 SVD 解决方案输出之间的巨大差异

commons-math3 和 ojalgo 库之间的 SVD 差异解决方案非常高。有什么方法可以减少基于任何输入参数的差异。

Commons Math3 解决方案:[0.01612903225806451, 0.016129032258064502]

OjAlgo 解决方案解决方案:[7.614155324982286E13, -7.614155324982295E13]

0 投票
0 回答
95 浏览

java - 分解 SVD 时 OjAlgo 和 Commons-math 之间奇异值的差异

我们目前正在评估 OjAlgo 库作为 SVD 计算的 commons-math 库的替代品。对于以下输入,OjAlgo 和 commons-math 的奇异值之间存在差异。

我使用过 OjAlgo 47.1.2 和开发分支的最新代码,但输出仍然相同。这是一个错误吗

OjAlgo output Singular values[4.000000000000001, 1.4142135623730956, 1.4142135623730951, 1.4142135623730951, 1.4142135623730951, 1.4142135623730945, 1.4142135623730945, 4.566099776030485E-16]

Commons-Math output Singular values[4.000000000000001, 1.4142135623730951, 1.4142135623730951, 1.414213562373095, 1.414213562373095, 1.4142135623730945, 1.4142135623730945, 0.0]

有没有办法使 OjAlgo 奇异值的最后一个值,即 4.566099776030485E-16 为 0.0

0 投票
0 回答
103 浏览

maven - OjAlgo Gurobi 集成

我有一个适用于 ILP 的 OjAlgo 求解器,我希望将它与 Gurobi 集成(在学术许可上)。这是作者解释如何将 Gurobi 与 OjAlgo 集成的存储库https://github.com/optimatika/ojAlgo-extensions/tree/develop/ojAlgo-gurobi 但是,POM 声明了需要 Gurobi 7.5.1 jar 路径的属性和二进制文件。但是,Gurobi 网站不再提供此版本的 Gurobi。是否可以使用 Gurobi 8.1.0(这是我拥有的版本)?如果是,有人可以根据上面 Github 页面上的说明详细说明如何操作。具体来说,在我将页面中提到的依赖添加到我的项目后,如何从上面的 Github 页面执行以下步骤。

该 POM 声明的属性是安装 jar 和本机二进制文件的路径。您需要设置这些属性以匹配您的安装: <properties> <!-- You have to change this! --> <path.installation.gurobi>/Library/gurobi751</path.installation.gurobi> <path.jar.gurobi>${path.installation.gurobi}/mac64/lib/gurobi.jar</path.jar.gurobi> <path.native.gurobi>${path.installation.gurobi}/mac64/bin</path.native.gurobi> </properties>

在我的 POM 中,我没有看到这些属性。我假设作者的意思是这些属性存在于他的项目 POM 中。但是我该如何编辑呢?

感谢您的任何帮助。为我对 POM 和 Maven 的无知道歉

0 投票
1 回答
144 浏览

java - 如何添加 ojalgo SparseArray 的所有元素?

我有一个 SparseArray,需要获取其所有元素的总和

我目前正在用一个相同大小的数组填充一个数组的点积,但我觉得应该有一些更直接(和高效?)

在这里找不到合适的方法:https ://javadoc.scijava.org/ojAlgo/org/ojalgo/array/SparseArray.html

我有:

然后用它做一些操作,最后想要一些返回所有元素总和的方法,比如:

0 投票
1 回答
90 浏览

java - java - 如何将ojalgo稀疏数组存储到java中的文件?

我目前有一个 SparseStore 矩阵,我在其上执行大量计数和计算。我想将它存储到文件中,以便以后可以重复使用它而无需重新进行所有先前的计算。

我尝试了 Java 中的基本序列化:

但似乎该类没有实现 java.io.Serializable:

我不介意更改为 Array2D 或其他一些 ojalgo 稀疏结构,但也找不到其中任何一个可以序列化。

建议将稀疏数组存储到文件中吗?

0 投票
2 回答
270 浏览

java - ojAlgo 使用 ExpressionsBasedModel 解决最小二乘问题

我试图了解如何使用 ExpressionsBasedModel 类来解决最小二乘问题并构建了一个最小问题,但我没有得到我期望的结果。我的玩具问题是最小化

f(x) = (x - 4)^2

关于 x。很容易看出这个函数的最小值是 x = 4。我编写了这个 Java 小程序,使用 ojAlgo 将其最小化:

当我运行它时,我得到了输出

但我希望输出表明解决方案 x = 4:

为什么 ojAlgo 似乎没有按照我的预期解决我的问题?

我特别想使用 ExpressionsBasedModel 稍后将线性不等式约束添加到最小二乘问题,但在此之前,我希望能够解决我能想到的最小可能的最小二乘问题。

我使用以下命令编译并运行它:

0 投票
0 回答
73 浏览

java - 在 ojAlgo 中检测导致无界优化问题的成本/变量

我通过ExpressionsBasedModel使用 ojAlgo 线性/二次求解器来求解绘图库中图形元素的布局,以便它们整齐地适合屏幕边界。具体来说,我想解决比例和平移问题,以便散点图的坐标填满屏幕空间。我通过声明的比例和平移变量来做到这一点,并ExpressionsBasedModel使用这些变量将散点图坐标转换到屏幕上,然后构造转换后的坐标应该投射到屏幕内的线性约束。我还为比例变量添加了一个负成本,以便它们最大化并且散点图覆盖尽可能多的屏幕空间。我的问题是在某些特殊情况下,例如,如果我只有一个点要绘制,这会导致一个无界问题,其中规模趋于无穷大而没有任何约束处于活动状态。如何检测会发生这种情况的比例变量并将它们修复为一些默认值?

为了说明上述问题,我构建了一个玩具绘图库(我正在研究的完整库太大而无法解决这个问题)。为了帮助布局图形元素,我有一个问题类:

它包装了一个ExpressionsBasedModel并有一些工具来创建变量。对于我将用来将散点坐标映射到屏幕坐标的转换,我有这个类:

该方法用于在前面提到respectBounds的类的散点图中添加单个点的约束。Problem要添加散点图的所有点,我有这个功能:

首先,让我们看看非退化案例是什么样子的。我指定用于散点图的屏幕大小和标记的大小。我还指定要绘制的数据、构建问题并解决它。这是代码

打印出来Solution: OPTIMAL -81.0958904109589 @ { 0, 81.0958904109589, 795.99999999999966, -158.19178082191794 }

这是退化情况的样子,用相同的 y 坐标绘制两个点:

它显示Solution: UNBOUNDED -596.0 @ { 88.44444444444444, 596, 0, 0 }. 如前所述,我的问题是:如何检测负成本会导致无界解决方案的比例变量并将它们限制为某个默认值,以便我的解决方案不是无界的?

0 投票
1 回答
36 浏览

java - 将列插入 OjAlgo 中的矩阵 - 怎么做?

我有一个矩阵

我想插入一个列向量y

到 中的特定列X。我怎样才能在 OjAlgo 中做到这一点?

0 投票
1 回答
38 浏览

java - 在 OjAlgo 的 Primitive64Store 中的特定列和行处插入 Access2D 元素

是否可以在 OjAlgo 的 Primitive64Store 中插入 Access2D 元素?

我想在特定的起始行和起始列将数据插入 B 中。

暂时。我已经实现了这样的程序:

但这一定是更好的方法吗?