问题标签 [scpsolver]

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 投票
2 回答
1260 浏览

java - 带有 Java nullPointerException 的 SCPSolver。一个可运行的例子

我正在尝试在 Java 中使用一些线性编程工具。我决定探索 SCPSolver,因为它带有文档。

所以我尝试运行 SCPSolver 主页中所示的示例:低杠杆接口示例

当我运行它时,我收到一条错误消息

我意识到SolverFactory.newDefault();返回null。文件说

搜索 LinearProgramSolver 服务的服务提供者并返回它找到的第一个实例。如果没有找到服务,它将堆栈跟踪打印到 stderr 并返回 null。当这个方法第一次被调用时,它会初始化 ServiceLoader,它会从类路径中找到可用的服务。后续调用使用第一次初始化的结果。因此,如果在第一次调用时没有可用的服务,则程序运行的其余部分将没有可用的服务。未来的实现可能会忽略这个问题。

但我不知道该怎么做才能解决这个问题。在这一点上,我需要你的帮助。我不能从现有的例子中理解很多,我不知道该怎么做。

有人可以给我一个可运行的例子,以了解发生了什么吗?先感谢您

0 投票
1 回答
204 浏览

java - 如何在 SCPSolver 中向 LP 添加非负约束?

我正在使用SCPSolver在 Java 中制定线性问题。

玩具线性问题:

可以用java写成:

现在添加非负约束xy我可以添加:

但是是否有一个函数调用来为所有变量添加非负约束?像lp.addAllNonNegativityConstraints()什么?

0 投票
0 回答
148 浏览

playframework - SolverFactory.newDefault(); 在播放框架项目中返回始终为空

我正在开发一个 Play Framework 项目。我想做的下一步是添加项目的线性规划部分。因此我包含了这个网站的库: http: //scpsolver.org

如果我想在 IntelliJ 的一个小 java 程序中运行这个小示例代码,它就可以正常工作。但是,如果我将相同的小代码示例添加到我的 Play Framework 项目中,它会崩溃,因为 SolverFactory.newDefault() 总是返回 null。我不知道为什么。

这是我在遇到提及代码行后立即收到的错误:

321 行以红色突出显示。

哦,这可能是一个重要的信息。目前我正在使用 Mac Sierra 10.12.4。我提到这一点,因为在我的 Windows 笔记本电脑坏了之前,我一直在研究它,它在那里工作没有任何问题,除了需要使用 32 位 JDK 之外。

0 投票
0 回答
145 浏览

java - 有没有办法禁用 SCPSolver 的输出?

我正在用 Java 编写一个使用以下外部库的应用程序:SCPSolver(链接:http ://scpsolver.org/ )。

该库似乎是 ac 库的包装器,并在标准输出上打印了一些信息。我的问题是我希望我的应用程序有一个干净的输出:我正在寻找一种方法

一个。清除控制台,可能是系统(windows)控制台或eclipse的控制台;或者

湾。直接阻止库在输出上打印。

关于a点:

我已经尝试过使用

也不工作。

我试过打印“\b”字符但无济于事。在所有这些情况下,我的输出都是乱码。

关于b点:

我尝试将 System.out 重定向到新的 PrintStream,但它不起作用。这很可能是因为该库是 ac 库的包装器,并且 c 库打印绕过 java 的 System.out。因此,我不确定这种方法是否可行,因为我无法控制库的功能。我在文档中查看了一种禁用输出的方法,但还没有发现任何有用的东西。

一个可能有用的注释: 调用

在要求求解器解决 LP 问题之前会阻止显示输出。当然,问题是:我没有更多流到标准输出来打印。也许一个解决方案可以让另一个流到同一个控制台?虽然我不知道该怎么做。

简而言之:

对 lpw.solve() 的调用是打印不需要的输出的原因:

当前输出为:

GLPK Simplex Optimizer,v4.65 4 行,4 列,8 个非零值 0:obj = 0.000000000e+000 inf = 2.700e+001 (4) 3:obj = 1.350000000e+001 inf = 0.000e+000 (0 ) 找到最佳 LP 解决方案 x1:4.0 x2:2.5 x3:7.0 x4:0.0

我希望它不是。