Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Q=3;
- d = [
- 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 3, 7, 7, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 1, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 5, 5, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- c=[
- 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 102, 10, 60, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 20, 70, 2, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30, 100, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 17, 39, 31, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 36, 35, 25, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 71;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 57;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 31;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- t=[
- 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 10, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 110, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 111, 132, 101, 160, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 111, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 120, 73, 172, 111, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 33, 123, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 171, 319, 131, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 361, 315, 125, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 711;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 157;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 311;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
- L=[15,15,15,15];%БЛЕЯРХЛНЯРЭ ОСМЙРЮ
- f=[2, 3, 4, 5];%ЯРНХЛНЯРЭ НРЙПШРХЪ
- [f_n,f_m]=size(f);
- csc=1;
- res=1;
- x=zeros(2*nm+f_m,1);
- while sum(sum(res))>=0
- %start =
- [n, m]=size(d);
- nm=n*m;
- Aeq = zeros(n, nm);
- for i = 1:n
- output = 0;
- input = 0;
- for j1 = 1:n
- if (d(i,j1) ~= 0)
- output = 1;
- end
- if (d(j1, i) ~= 0)
- input = 1;
- end
- end
- for j = 1:m
- if (input == 1 && output == 0)
- continue;
- end
- if (output == 1)
- if d(i, j) > 0
- Aeq(i, (i - 1)*n + j) = 1;
- end
- if (input == 1 && d(j, i) > 0)
- Aeq(i, ((j - 1)*n + i)) = -1;
- end
- end
- end
- end
- index=0;
- for j=1:size(d)
- if sum(d(:,j))==0
- index=index+1;
- end
- end
- Aeq1=Aeq;
- Aeq=[Aeq,zeros(n,nm+f_m)];
- Aeq(1:index,:)=0;
- Aeq=[Aeq;sum(Aeq1(1:index,:)),zeros(1,nm+f_m)];
- %end =
- %<=
- A_1=[-eye(nm),eye(nm),zeros(nm,f_m)];
- A_2=[eye(nm),-eye(nm).*reshape(d',1,[]),zeros(nm,f_m)];
- A_3=[Aeq1(1:index,:),zeros(index,nm),-eye(f_m).*L];
- A_4=[zeros(1,2*nm),ones(1,f_m)];
- A=[A_1;A_2;A_3;A_4];
- %end <=
- b=[zeros(1,2*nm+f_m),Q];
- beq=[zeros(1,n),csc];
- ub=[reshape(d',1,[]),ones(1,nm+f_m)];
- lb=zeros(1,2*nm+f_m);
- intcon=1:2*nm+f_m;
- lk=ones(1,nm);
- lk1=sum(Aeq1(1:index,:));
- ff=[reshape(c',1,[]),reshape(t',1,[]),f];
- F=x(2*nm+1:2*nm+f_m,:);
- [x, fval, exitflag,lambda]=intlinprog(ff,intcon,A,b,Aeq,beq,lb,ub);
- csc=csc+1;
- res = x(1:nm,1);
- res = reshape(res, n, []);
- g = digraph;
- %res=d;
- for i = 1:n
- for j = 1:m
- if not(res(i,j) == 0 )
- g = addedge(g, j,i, res(i,j));
- end
- end
- end
- h = plot(g,'Layout','layer','EdgeLabel',g.Edges.Weight,'LineWidth', 4,'ArrowSize', 12, 'MarkerSize', 14, 'LineStyle', ':', 'Marker','s');
- hs = struct(h); %and ignore the warning message
- for nhl = hs.NodeLabelHandles_
- nhl.Font.Size = 25;
- end
- for nhl = hs.EdgeLabelHandles_
- nhl.Font.Size = 20;
- end
- end
- TCF=sum(F.*f')
- TC=sum(sum(c.*res))+sum(F.*f')
- Time=sum(sum(t.*res))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement