2016-07-26 6 views
0

Я пытаюсь определить двоичную переменную решения в java с помощью cplex. Это двумерная переменная. Это означает, что если путь начинается с определенной станции, он должен быть 1 или иным образом. У меня есть набор станций, J и набор путей, K, а моя переменная решения - Z_jk. В настоящее время я определяю код как следующий, но он не работает. Может ли кто-нибудь помочь мне?Определение переменной двоичного решения в java с использованием cplex

Заранее спасибо.

// 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); 
        } 
       } 

ответ

0

Вы пытаетесь создать 2D-массив двоичных переменных решения. Какие ошибки вы получаете?

Попробуйте найти пример кода, снабженного CPLEX. См. Например, transport.java, который включает в себя некоторые двумерные массивы переменных, объявленных и инициализированных следующим образом:

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); 
    } 
Смежные вопросы