Cplex12.6.3版IntelliJ IDEA配置详细步骤
- 一、Cplex12.6.3版下载地址
- 二、Cplex安装步骤
- 三、IDEA配置CPLEX
- 3.1 添加CPLEX安装目录的cplex.jar包到项目文件中
- 3.2 将CPLEX的x64_win64文件夹添加到IDEA的VM options中
- 四、检查IDEA中Cplex是否安装成功
- 卸载Cplex
一、Cplex12.6.3版下载地址
免费试用有求解规模限制,学术版需要学校邮箱,很难办
因此推荐12.6.3版本的CPLEX Studio软件安装包(源自华中科技秦虎教授团队数据魔术师公众号): cplex12.6 链接: https://pan.baidu.com/s/1E9x1RtY9pqoJM62qeG4PAQ 提取码: 131i
二、Cplex安装步骤
全部默认,一直next即可
三、IDEA配置CPLEX
3.1 添加CPLEX安装目录的cplex.jar包到项目文件中
打开IDEA,快捷键ctrl+alt+shift+s调出Project Structure选项卡,将CPLEX安装目录的cplex.jar包添加到项目文件中:
3.2 将CPLEX的x64_win64文件夹添加到IDEA的VM options中
点击IDEA菜单栏Run——Edit Configuration选项卡——Modify options——Add VM oiptions,在弹出的VM options中输入下面的命令,注意这里和你自己的cplex安装位置有关,不要直接复制,玩了点apply就行。
-Djava.library.path="CPLEX安装文件夹\cplex\bin\x64_win64"
四、检查IDEA中Cplex是否安装成功
新建一个类,将一下代码复制到类中。如能运行成功,即cplex配置好了。
public static void main(String[] args) {
// cplex求解,一般都使用try...catch...
try {
// 声明cplex优化模型
IloCplex cplex = new IloCplex();
System.out.println(cplex);
// 设定变量上下限
double[] lb = {0.0, 0.0, 0.0}; // 下限
double[] ub = {40.0, Double.MAX_VALUE, Double.MAX_VALUE}; // 上限
IloNumVar[] x = cplex.numVarArray(3, lb, ub); // 定义优化变量:IloNumVar,3维,以及对应的边界
// 设定目标函数
double[] objvals = {1.0, 2.0, 3.0}; // 目标函数系数
cplex.addMaximize(cplex.scalProd(x, objvals)); // 定义目标函数:addMaximize最大化,scalProd,连乘
// 设定约束条件
double[] coeff1 = {-1.0, 1.0, 1.0}; // 第一组约束条件的系数
double[] coeff2 = {1.0, -3.0, 1.0}; // 第二组约束条件的系数
cplex.addLe(cplex.scalProd(x, coeff1), 20.0); // 定义第一组约束条件的系数,addLe(a,b):a小于等于b
cplex.addLe(cplex.scalProd(x, coeff2), 30.0); // 定义第二组约束条件的系数
// cplex.solve():模型求解
if (cplex.solve()) {
// cplex.output(),数据输出,功能类似System.out.println();
cplex.output().println("Solution status = " + cplex.getStatus()); // cplex.getStatus:求解状态,成功则为Optimal
// cplex.getObjValue():目标函数的最优值
cplex.output().println("Solution value = " + cplex.getObjValue());
// cplex.getValues(x):变量x的最优值
double[] val = cplex.getValues(x);
for (int j = 0; j < val.length; j++)
cplex.output().println("x" + (j + 1) + " = " + val[j]);
}
// 退出优化模型
cplex.end();
} catch (IloException e) {
System.err.println("Concert exception caught: " + e);
}
}
卸载Cplex
控制面板卸载即可,环境变量会自动删除。