【求教】JAVA新手求各位前辈指点,关于调用
先谢谢各位高手了。
我需要通过JAVA调用cplex(一个数学规划建模软件,用于在多种约束下求最优解)。
请问调用cplex是怎么实现?是通过接口吗?还是什么技术?
恳求大家指点,说详细一点更好,谢谢!
下面是我找到的,JAVA使用cplex相关的代码,还请各位一看。
import ilog.concert.*;
import ilog.cplex.*;
public class Example {
public static void main(String[] args) {
try {
IloCplex cplex = new IloCplex();
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);
double[] objvals = {1.0, 2.0, 3.0};
cplex.addMaximize(cplex.scalProd(x, objvals));
cplex.addLe(cplex.sum(cplex.prod(-1.0, x[0]),
cplex.prod( 1.0, x[1]),
cplex.prod( 1.0, x[2])), 20.0);
cplex.addLe(cplex.sum(cplex.prod( 1.0, x[0]),
cplex.prod(-3.0, x[1]),
cplex.prod( 1.0, x[2])), 30.0);
if ( cplex.solve() ) {
cplex.output().println("Solution status = " + cplex.getStatus());
cplex.output().println("Solution value = " + cplex.getObjValue());
double[] val = cplex.getValues(x);
int ncols = cplex.getNcols();
for (int j = 0; j < ncols; ++j)
cplex.output().println("Column: " + j + " Value = " + val[j]);
}
cplex.end();
}
catch (IloException e) {
System.err.println("Concert exception '" + e + "' caught");
}
}
}