Hi everyone,

I am new to Cplex and trying to learn and code at same time. Currently I am trying to code a location routing problem. I took some examples from my friends and I wrote the code same way they did. However I get Cannot Extract Expression error and ı cannot understand the root cause. I share my code below:

---- Code:

// Sets

{int} D = ...; //Demand points

{int} P = ...; // Potential depot Locations

int K = 2; // Car Number

int M = 9999999; // A Big Number

int dabs = 7; // Number of demand points

// arcs

tuple Route {

int i;

int j;

}

{Route} Routes = ...;

//parameters

float t[Routes] = ...; // transfer time i - j

// variables

dvar boolean X[Routes]; // route decision

dvar boolean Y[P]; // location openning dec.

dvar boolean Z[P][D]; // if node j covers node i's demand

dvar int+ U[P union D]; // visit order

// OBJ func.

minimize

sum (i in P union D, j in P union D) X[<i,j>] * t[<i,j>] + sum (i in D, j in D) Z[i][j] * t[<i,j>];

// subject to

subject to {

// cons 1

forall (i in P){

sum (j in D, <i,j> in Routes) X [<i,j>] == Y[i];

}

// cons 2

forall (i in P) {

sum(j in D, <i,j> in Routes) X[<j,i>] == Y[i];

}

// cons 3

forall (j in D) {

sum(i in P union D, <i,j> in Routes) X[<i,j>] == sum(i in P union D, <i,j> in Routes) X [<j,i>];

}

// cons 4

forall(i in D) {

sum (j in P union D, <i,j> in Routes) X[<i,j>] == Z [i][i];

}

// Cons5

forall(i in D){

sum(j in D) Z [i][j] == 1;

}

// cons 6

forall(<i,j> in Routes){

U[i] - U[j] + (1-X[<i,j>]) * M <= 0;

}

// cons7

forall(i in D){

1 <= U[i]<= dabs+1;

}

// cons 8

sum(i in P) Y[i] <= K;

}

I use Excel for data and I did not get any error from .dat

Could you help or point out the root cause ?

Thank you very much.

------------------------------

Kaan Kılıç

------------------------------