Как решить простую линейную задачу с помощью clp-java - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу решить эту проблему, используя 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 Ответ

2 голосов
/ 06 ноября 2019

Ошибка исправлена ​​в самой последней версии v1.16.11.
Чтобы включить эту версию с помощью maven, вам нужно добавить следующую зависимость в ваш файл pom

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

Они изменили groupID междуверсии.

Согласно MVNRepository артефакт должен быть включен в Mulesoft репозиторий, но я не могу найти его там. Возможно, вам не повезло, если вы не можете найти его где-то еще.

...