java调用Cplex:添加约束

由于课题相关要用到cplex,但是一直都没有时间好好查看api,导致自己以前写的代码过于冗长,今天简单介绍一种添加约束的方法。

例如添加约束,拿着个约束用两种添加方式举例:

,V=DUC

// 车辆数约束
IloNumExpr[][] tempCar0 = new IloNumExpr[d][c];
for (int i = 0; i < d; i++) {
	for (int j = 0; j < c; j++) {
		tempCar0[i][j] = X[i][j + d];
	}
}
IloNumExpr[] tempCar1 = new IloNumExpr[d];
for (int i = 0; i < d; i++) {
	tempCar1[i] = cplex.sum(tempCar0[i]);
	cplex.addLe(tempCar1[i], n[i]);
}
//堆场车辆约束
for(int i = 0;i

因为用java调用cplex,添加约束的时候不能直接对决策变量使用+-*,必须使用sum,diff,prod等这些方法。

所以第一种通过定义一个约束表达式的二维数组来表示约束中用到的xij,在对二维数组的二维分别sum求和实现添加。

而第二种就很简单方便,直接使用addTerm这个方法,对表达式不断累加,最终拼凑出完整的约束。


你可能感兴趣的:(cplex,模型求解)