Как создать двоичный файл [0,1]? - PullRequest
0 голосов
/ 18 мая 2018

Я хочу объявить, что x будет переменным для двоичного 0,1

i и k представляют объекты в матрице потока, j и q представляют местоположение в матрице расстояний.

x (i, j) означает, что x будет равен 1, если i (средство) назначено в j (местоположение) ..

x (i, j) = 1, если средство i назначено местоположению j и еслив противном случае xij = 0, в противном случае это означает, что если x (k, q) = 1, x (i, J) будет 0 ...

пример ручного расчета

Мин= (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) .....

Я хочу * xi1, j1 * xk1, q1, чтобы быть 0 или 1 .. если я выберу i1, j1 = 1, другой будет 0 .. дляпример i2, j1 будет равен 0

ниже приведена кодировка

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

1 Ответ

0 голосов
/ 19 ноября 2018

с использованием recperm

этот recperm используется для точной перестановки 0,1 в кодировке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...