i want to declare that x will be variable for binary 0,1
i and k represent facilities in flow matrix, j and q represent location in distance matrix ..
x(i,j) mean that x will be equal to 1 if i (facility) is assign in j (location) ..
x(i, j) = 1 if facility i is assigned to location j and if otherwise, xij = 0, so otherwise mean that if x(k,q) =1 , x(i,J) will be 0...
example of the manual calculation
Min =(f i1,k1 * d j1,q1 * x i1,j1 * x k1,q1) + (f i1,k1 * d j1,q2 * x i1,j1 * x k1,q2) + (f i1,k1 * d j1,q3 * x i1,j1 * x k1,q3)....
( 0*0* 1*1 ) + ( 0* 6* 1*0 ) + ( 0*8 * 1 *0 ).....
I want to *xi1,j1 * xk1,q1 to be 0 or 1.. if i choose i1, j1=1 the other will be 0.. for example i2,j1 will be equal to 0
below is the coding
clc; clear; %sum sum sum sum(fik*djq*xij*xkq) %i,k= facilities %j,q= location %f(i,k)= flow between facilities i and k %d(j,q)= distance between locations j and q %xij = 1 if facility i is assigned to location j and if otherwise, xij = 0 % Flow matrix: flow assigning facility i (column) to facility k (row) f = [0 5 7 9; 5 0 4 6; 7 4 0 3; 9 6 3 0]; %Distance matrix: distance assigning location j (column) to location q (row) d = [0 6 8 9; 6 0 5 1; 8 5 0 2; 9 1 2 0]; z= 0; nf= 4; nd= 4; for i=1:nf for j=1:nf for k=1:nd for q=1:nd z = min('z','f(i,k)*d(j,q)*x(i,j)*x(k,q)'); end end end end %Constraints %The first set of constraints requires that each facility gets exactly one %location, that is for each facility, the sum of the location values %corresponding to that facility is exactly one
Constraints.constr1 = sum(x,2) == 1;
%The second set of constraints are inequalities. These constraints specify %that each office has no more than one facility in it.
Constraints.constr2 = sum(x,1) == 1;
disp (z);