我想使用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?

最佳答案

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

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


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

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

08-17 02:54