Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- d=[
- 0, 3, 0, 0, 11, 0, 3, 0, 0, 0, 0, 7, 0, 0,
- 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 11, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,
- 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, 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, 3, 0, 0, 3, 0, 1, 0, 0, 0, 0, 22, 0, 0, %1
- 0, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 0, 3, 0, 0, 0, 0, 0, %5
- 0, 0, 0, 0, 5, 0, 0, 0, 11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 11, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, %10
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7,
- 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, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 22, 0, 0,
- 0, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 5,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7,
- 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
- ];
- a=[7, 7, 7];
- M=10^10;
- [n, m] = size(d);
- nm=n*m;
- Aeq = zeros(n, n*m);
- for i = 1:n
- for j = 1:m
- if d(i, j) > 0
- Aeq(i, (i - 1)*n + j) = 1;
- end
- end
- for k = 1:n
- if d(k, i) > 0
- if (i <= n - size(a))
- Aeq(i, (k - 1)*n + i) = -1;
- else
- Aeq(i, (k - 1)*n + i) = 1;
- end
- end
- end
- end
- Aeq=[Aeq,zeros(n,nm)];
- A=[eye(nm),-eye(nm)*M];
- f=[reshape(C',1,[]),reshape(T',1,[])];
- %ub=[ones(1,nm)*inf,ones(1,nm)];
- ub=[reshape(d',1,[]),ones(1,nm)];
- lb=zeros(1,max(size(f)));
- b=zeros(1,nm);
- beq=[sum(a),zeros(1,n-1-max(size(a))),a];
- intcon=nm+1:max(size(f));
- [x,~,eflag] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub);
- x1=x(1:nm,:);
- res1 = round(reshape(x(1:nm,:), n, []));
- g = digraph;
- for i = 1:n
- for j = 1:m
- if not(res1(i,j) == 0 )
- g = addedge(g, j, i, res1(i,j));
- end
- end
- end
- h = plot(g,'Layout','layered','EdgeLabel',g.Edges.Weight,'LineWidth', 4,'ArrowSize', 10, 'MarkerSize', 14, 'LineStyle', ':', 'Marker','s')
- hs = struct(h); %and ignore the warning message
- for nhl = hs.NodeLabelHandles_
- nhl.Font.Size = 23;
- end
- for nhl = hs.EdgeLabelHandles_
- nhl.Font.Size = 16;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement