如何使用clp-java解决一个简单的线性问题

时间:2019-11-06 14:18:33

标签: java optimization linear-programming

我想使用clp-java

解决此问题
Maximize 2 * x + 5 where x <= 10

我使用此代码

CLP clp = new CLP();
CLPVariable x = clp.addVariable().free();
clp.createExpression().add(2, x).add(5).asObjective();
clp.createExpression().add(x).leq(10);
clp.maximize();

System.out.println("obj=" + clp.getObjectiveValue());
System.out.println("x=" + x.getSolution());

产生此输出

obj=15.0
x=10.0

我的问题是为什么目标值是15,而不是应该的25?

1 个答案:

答案 0 :(得分:2)

该错误已在最新版本v1.16.11中修复。
要使用maven包含此版本,您需要将以下依赖项添加到pom文件

<dependency>
    <groupId>com.github.quantego</groupId>
    <artifactId>clp-java</artifactId>
    <version>1.16.11</version>
</dependency>

他们更改了版本之间的groupID。

根据MVNRepository,工件应包含在Mulesoft存储库中,但我在那儿找不到它。 如果在其他地方找不到它,可能会不走运。