And my data and project:
X = binvar(21, 21, 'full');
X1 = binvar(1, 21);
X2 = binvar(1, 21);
T = sdpvar(1, 21);
N = 21;
Ns = 21;
Nc = 2;
sdpvar a1 a2;
intvar nm;
Nmin = [1 <= nm <= 21, uncertain(nm)];
A1 = [0 <= a1 <= 1, uncertain(a1)];
A2 = [0 <= a2 <= 1, uncertain(a2)];
R1 = csvread('snakes.csv');
R2 = csvread('locations.csv');
var = csvread('variances.csv');
Objective = sum(T);
Constraints = [sum(X1) >= a1 * N, sum(X2) <= a2 * N];
n=0;
for j = 1: 21
for k = 1: N-1
Constraints = [Constraints, X(j, R1(j, k+1)) <= X(j, R1(j, k))];
end
Constraints = [Constraints, X1(1, j) <= X(:, j) <= 21 * X1(1, j)];
Constraints = [Constraints, X2(1, j) <= X(:, j) <= Ns * X2(1, j) + 1];
end
for i = 1:21
n = n + X(i, R1(i, 1));
Constraints = [Constraints, sum(X(i, :)) >= nm * X(i, R1(i, 1))];
m=0;
for j = 1: 21
for l = 1:21
if l ~= j
m = m + X(i, l);
end
end
Constraints = [Constraints, T(1, i) >= (X(i, j) * R2(i, j) + X(i, j) - m) * (R2(i, j) * Var(i, R2(i, j)))];
end
end
Constraints = [Constraints, n == Nc];
options = sdpsettings('verbose', 2, 'showprogress', 1, 'solver', 'cplex');
sol = optimize(Constraints, Objective, options);
if sol.problem == 0
sol_x = value(X);
sol_x1 = value(X1);
sol_x2 = value(X2);
sol_t = value(Objective);
dlmwrite('X.csv', sol_x);
else
sol.info
yalmiperror(sol.problem)
end
options = sdpsettings('verbose', 2, 'showprogress', 1, 'solver', 'cplex');