java - Benders.Strategy 使用 Java 和 opl

标签 java algorithm mathematical-optimization cplex opl

我正在使用 Java 解决数学模型,但是当我尝试调用 Benders 策略时,我不断收到此错误:

线程“main”中的异常 java.lang.IllegalArgumentException:没有值为 1501 的枚举类 ilog.cplex.cppimpl.IloCplex$IntParam

在 ilog.cplex.cppimpl.IloCplex$IntParam.swigToEnum(IloCplex.java:1974) 在 ilog.opl.IloCplex.setParam(IloCplex.java:5640)

这是我的 Java 代码的一部分(我使用的是 CPLEX 12.8 和库 oplall.jar):

import ilog.concert.IloException;
import ilog.concert.IloIntMap;
import ilog.concert.IloIntSet;
import ilog.concert.IloSymbolSet;
import ilog.opl.IloCplex;
import ilog.opl.IloOplDataSource;
import ilog.opl.IloOplErrorHandler;
import ilog.opl.IloOplFactory;
import ilog.opl.IloOplModel;
import ilog.opl.IloOplModelDefinition;
import ilog.opl.IloOplModelSource;
import ilog.opl.IloOplSettings;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;

...

            IloOplFactory.setDebugMode(false);
            IloOplFactory oplF = new IloOplFactory();
            IloOplModelSource source = oplF.createOplModelSource("Model.mod");
            IloOplDataSource dataSource = oplF.createOplDataSource("Instance.dat");
            IloOplErrorHandler handler = oplF.createOplErrorHandler();
            IloOplSettings settings = oplF.createOplSettings(handler);
            IloOplModelDefinition def = oplF.createOplModelDefinition(source, settings);
            IloCplex cplex = new IloCplex();
            IloOplModel opl = oplF.createOplModel(def, cplex);
            opl.addDataSource(dataSource);

            cplex.setParam(IloCplex.IntParam.Benders.Strategy, 3);

            opl.generate();
            cplex.solve();
            cplex.end();

最佳答案

有一个 similar question here .

在 model.mod 中你可以这样写:

execute { cplex.bendersstrategy=3; }

关于java - Benders.Strategy 使用 Java 和 opl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49145821/

相关文章:

java - 无法在 Spring Boot 中使用 @Async

java - Servlet 和串行端口

java - URL 连接中的查询中存在非法字符

c++ - 搜索对应的对

c++ - C++ 运算符的速度/简单的数学运算

java - move 物体卡在角落里

java - 从数据文件中读取数据点

algorithm - 按递增顺序打印 2^i * 5^j 形式的数字

java - Protocol Buffer package is String empty error in AnyLogic

python - 在Python中优化四个参数scipy.optimize.fmin_l_bfgs_b,出现错误