/********************************************* * OPL 20.1.0.0 Model * Author: Hp * Creation Date: 26 apr. 2021 at 16:56:18 *********************************************/ //SETS {int} N_={1,2,3,4,5,6,7,8,9,10}; //customer nodes {int} N={0,1,2,3,4,5,6,7,8,9,10,11}; //nodes including depot {int} T = {1,2,3}; //time periods {int} S={1,2,3,4,5,6,7,8,9,10}; //number of customers subset //PARAMETERS int c[N][N] = ...; int U[N] = ...; int r[N][T] = ...; int Q = ...; int Initial[N] = ...; float h[N] = ...; //DECISION VARIABLES dvar boolean y[N_][N_][T]; dvar int+ x[N_][T]; dvar boolean z[N][T]; dvar int+ I[N][T]; //execute{cplex.tilim=60;} minimize sum(t in T, i in N) h[i] * I[i][t] + sum(t in T, i in N, j in N: j > i) c[i][j]*y[i][j][t]; subject to { forall(t in T) I[0][t] == I[0][t-1] + r[0][t] - sum(i in N_) x[i][t]; forall(i in N_, t in T) I[i][t] == I[i][t-1] + x[i][t] - r[i][t]; forall(i in N, t in T) I[i][t] >= 0; forall(i in N_, t in T) I[i][t] <= U[i]; forall(t in T) sum(i in N_) x[i][t] <= Q*z[0][t]; forall(t in T, i in N_) x[i][t] <= U[i]*z[i][t]; /*subtour elimination*/forall(i in N, t in T) sum(j in N: j > i) y[i][j][t] + sum(j in N: j < i) y[j][i][t] == 2* z[i][t]; /*subtour elimination*/forall(t in T, s in S, i in N) sum(i in S, j in S: j > i) y[i][j][t] <= sum(i in S) z[i][t] - z[s][t]; // don't know if this constraint is correct }