首页 文章

使用cplex在java中定义二进制决策变量

提问于
浏览
0

我试图使用cplex在java中定义二进制决策变量 . 这是一个二维变量 . 这意味着如果路径从特定站开始,它应该是1或者其他0.我有一组站,J和一组路径,K和我的决策变量是Z_jk . 目前我正在定义代码如下,但它不起作用 . 有人可以帮帮我吗?

提前致谢 .

// define variables
                z = new IloNumVar[stations_start.size()][];
                for (int j=0; j<stations_start.size();j++) {
                    z[j] = cplex.numVarArray(paths.size(),0,1);
                    for (int k=0;k<paths.size();k++) {
                        z[j][k] = cplex.numVar(new_column, 0, 1,"z");
                        z[j][k].setName("z."+j+"."+k);  
                    }   
                }

1 回答

  • 0

    您正在尝试创建二进制决策变量的二维数组 . 你得到了什么错误?

    尝试查看CPLEX提供的一些示例代码 . 请参阅示例transport.java,其中包含一些声明和初始化的变量的2D数组,如下所示:

    IloNumVar[][] x = new IloNumVar[nbSupply][];
        IloNumVar[][] y = new IloNumVar[nbSupply][];
    
        for (int i = 0; i < nbSupply; i++) {
           x[i] = cplex.numVarArray(nbDemand, 0., Double.MAX_VALUE);
           y[i] = cplex.numVarArray(nbDemand, 0., Double.MAX_VALUE);
        }
    

相关问题