首先搜索官网cplex下载安装包,本次示例以windows版本
1.双击打开安装包
2.选择简体中文
3.都是默认,修改路径的同学请记得自己的安装路径后面配置环境变量要用
4.这里我已经安装过了中间步骤直接跳过
5.接下来我们需要在java项目导入cplexjar包,Jar包路径就在安装路径下如图
6.打开idea创建项目,选择projectStructure
7.选择modules,再选择添加
8.确认jar包已导入
9.配置环境变量,网上有些说在vm参数中配置
-Djava.library.path=C:\Program Files\IBM\ILOG\CPLEX_Studio_Community2211\cplex\bin\x64_win64
但是我试了还是会报错,所以选择直接配置环境变量
变量名 CPLEX_HOME
路径 C:\Program Files\IBM\ILOG\CPLEX_Studio_Community2211\cplex\lib
系统变量 %CPLEX_HOME%
路径 C:\Program Files\IBM\ILOG\CPLEX_Studio_Community2211\cplex\bin\x64_win64
10.再次运行
示例代码
package com.example.magic_test.utils;
import ilog.concert.*;
import ilog.cplex.IloCplex;
public class Cplex { //类的名字必须跟.java的名字一样
public static void main(String[] args) throws Exception {
// 1. 创建模型
IloCplex cplex = new IloCplex(); // create a model
// 2. 定义优化参数
IloNumVar[] x = cplex.numVarArray(3, -Double.MAX_VALUE, Double.MAX_VALUE);
// 3. 设置目标函数
IloNumExpr cs1 = cplex.numExpr();
for (int i = 0; i < 3; i++) {
cs1 = cplex.sum(cs1, cplex.prod(x[i], x[i]));
}
cplex.addMinimize(cs1);
// 4. 设置约束
cplex.addEq(cplex.sum(x[0], x[1]), 1);
cplex.addEq(cplex.sum(x[0], x[2]), 1);
cplex.addEq(cplex.sum(x[1], x[2]), 1);
// 5. 模型求解及输出
if (cplex.solve()) {
cplex.output().println("Solution status = " + cplex.getStatus());
cplex.output().println("Solution value = " + cplex.getObjValue());
double[] val = cplex.getValues(x);
for (int j = 0; j < val.length; j++)
System.out.println("x" + (j + 1) + " = " + val[j]);
}
cplex.end();
}
}