简体   繁体   English

ILOG Cplex Java API 中的约束公式

[英]Constraint formulation in ILOG Cplex Java API

I'm trying to formulate a VRPTW model in Java, same one in OPL works just fine, but I keep getting problem with one constrain:我正在尝试在 Java 中制定一个 VRPTW 模型,在 OPL 中同样可以正常工作,但是我一直遇到一个约束问题:

a[i][k]+t[i][j]- a[j][k] + M * x[i][j][k] = M a[i][k]+t[i][j]- a[j][k] + M * x[i][j][k] = M

I get error mesagge: The method addTerm(double, IloNumVar) in the type IloLinearNumExpr is not applicable for the arguments (double).我收到错误消息: IloLinearNumExpr 类型中的 addTerm(double, IloNumVar) 方法不适用于参数 (double)。 It seams that it is a problem only with t[i][j] which is double and calculated based on two other doubles: t[i][j] = d[i][j]+ s[i];它看起来只有 t[i][j] 是一个问题,它是双精度并基于另外两个双精度计算:t[i][j] = d[i][j]+ s[i];

    for(int i = 0; i < n; i++) {
                for(int j = 0; j < n; j++) {
                    for(int k = 0; k < v; k++) {
                        if(i != j) {
                            IloLinearNumExpr expr8 = cplex.linearNumExpr();
                            expr8.addTerm(1.0, a[i][k]);
                            expr8.addTerm(t[i][j]);
                            expr8.addTerm(-1.0, a[j][k]);
                            expr8.addTerm(M, x[i][j][k]);
                            cplex.addLe(expr8, M);

Any ideas are welcome.欢迎任何想法。 Thank you!谢谢!

您应该使用 setConstant:

expr8.setConstant(t[i][j]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM